Transcript

Slide 1

Introduction to multi-objective optimizationWe often have more than one objectiveThis means that design points are no longer arranged in strict hierarchyThere are points that are clearly poorer than others because all objectives are worseIn optimization jargon we call these points dominatedPoints that are not dominated are called non-dominated or Pareto optimal

Vilfredo Pareto, 1848-1923

The Italian economist Vilfredo Pareto was one of the leaders of the Lausanne School and an illustrious member of the "second generation" of the Neoclassical revolution. Although only mildly influential during his lifetime, his "tastes-and-obstacles" approach to general equilibrium theory were resurrected during the great "Paretian Revival" of the 1930s and have guided much of economics since.

Definition of Pareto optimalityFor a problem with m objective functions, a design variable vector x* is Pareto optimal if and only if there is no vector x in the feasible space with the characteristics

ExampleItemPay ($)Time (min)Fun index1133225231224321Minimize time so that you make at least $100 and maximize fun. Will need between 33.3 to 100 items. Time can vary from 66.7 minutes to 300. Fun can vary between 33.3 and 300.

ExampleItemPay ($)/hourTotal time (hours)Total fun12053002244.171003303.331004901.1133.3Item 2 is dominated. Items 1,3,4 are Pareto optimal

Multi-objective Formulation

ItemPay Time Fun 1133225231224321

Solution methodsMethods that try to avoid generating the Pareto frontGenerate utopia pointDefine optimum based on some measure of distance from utopia pointGenerating entire Pareto frontWeighted sum of objectives with variable coefficientsOptimize one objective for a range of constraints on the othersNiching methods with population based algorithms

The utopia point is (66.7,300). Finding the nearest point may be a reasonable compromise.The entire front tells us, that for this problem, the front is almost a straight line, so there is no clear appealing compromise.

Series of constraints

Matlab segmentx0 = [10 10 10 10];for fun_idx = 30:5:300 A = [-1 -2 -1 -3; -3 -2 -2 -1]; b = [-100;-fun_idx]; lb = zeros(4,1); options = optimset('Display','off'); [x,fval,exitflag,output,lambda] = fmincon('myfun',x0,A,b,[],[],lb,[],[],options); pareto_sol(fun_idx,:) = x; pareto_fun(fun_idx,1) = fval; pareto_fun(fun_idx,2) = 3*x(1) + 2*x(2) + 2*x(3) + x(4);End

function f = myfun(x)f = 3*x(1) + 4*x(2) + 2*x(3) + 2*x(4);


Top Related