Please enable JavaScript.
Coggle requires JavaScript to display documents.
ESA Week10 - Coggle Diagram
ESA Week10
Weighting Method
combine all objectives into a single objective function where each objective has a diff weight --> sum of weights = 1
-
when the weights change, the gradient of the OF changes, and therefore, the pareto frontier changes
if weights all positive, then solution is pareto optimal
does not imply that any pareto optimal solution can be obtained by using positive weight vector (there are some solutions which cannot be obtained cos of the reasons below even if weights are positive)
advantages
-
for convex problems, will guarantee to find solutions on entire pareto optimal set
disadvantages
-
in non convex problems, you cannot find all the solutions:
- two diff weight vectors might lead to same solution
- one weight vector might lead to multiple solutions
add lambda and standardise verse of optimisation, normalise by range of variability, rewrite
-
epsilon constraint
-
epsilon represents the upper bound for a minimisation problem, and the lower bound (X1+X... > epsilon) for a maximisation problem
unique solution of the multi objective is pareto optimal for any given epsilon (that means when you sub (... < epsilon) for any particular epsilon and solve, the solution you get will definitely be pareto optimal
then solve this family of single objective problems without epsilon to get a sense of variability of epsilon --> there will be a min / max point
advantages
diff pareto optimal solutions found using diff values of epsilon (you find this out after you solve your single objective opti problem)
-
disadvantages
-
as number of objectives increase, more info from user is required
notes
-
-
objective space (where its between the specific decision variables you want to compare at a given point)
-
-
coding
epsilon constraint
type in the vectors for all the coefficients, RMBR to include 0
use rbind to bind all these vectors together (include vectors for LHS, RHS, and the signs)
use lp solve (note: must specify whether you're maximising or minimising, put in all the vectors, specify if you want the solutions to be all.int = TRUE / all.bin = TRUE etc..), then use $objval / $objsolution to get the objective fn value and solutions respectively
-
create two matrices, one to store the values of the decision variables, one to store the objective function values
-
-
weighting method
-
-
use a range of values for lambda (try out diff possibilities for lambda). note you can do this as long as lambda is between 0 and 1
create two matrices to store decision variables, and objective fn values for diff values of lambda
-
scatter plot for objective space, parallel coordinate plot for decision space (but rmbr to scale uniminmax first)
when you eventually get the objval$solution, that refers to the decision variables, you need to multiply by your coefficients to get the obj fn value
installation of the goalprog package -- need to Sys.setenv("R_REMOTES_NO_ERRORS_FROM_WARNINGS"=TRUE)
note, goalprog package does not allow for integer solutions
-
-
-