2支棒棒糖 发表于 2018-8-22 11:27:29

MATLAB实现多目标规划

本帖最后由 2支棒棒糖 于 2018-8-22 13:02 编辑

多目标规划函数fgoalattain被设计用于求解目标函数γ 的最小值,且满足:

其中,x、weight、goal、b、beq、lb和ub为向量,A和Aeq矩阵,c(x)、ceq(x)和F(x)为函数或方程。该函数的调用格式如下:
x = fgoalattain(fun,x0,goal,weight)
x = fgoalattain(fun,x0,goal,weight,A,b)
x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq)
x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub)
x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon)
x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon,... options)
x = fgoalattain(problem)
= fgoalattain(...)
= fgoalattain(...)
= fgoalattain(...)
= fgoalattain(...)
= fgoalattain(...)其中,goal为设置的目标,weight为权重因子;其余参数可参考fmincon函数。

例:求解x,使得下例目标函数:
满足:
且:对f 1 (x )与f 2 (x )按10:9的权重进行优化。

在命令行窗口输入:
fun= @(x)
goal =
weight=
x0=
A=-
b=-
lb=
= fgoalattain(fun,x0,goal,weight,A,b,[],[],lb,[])输出结果如下:fun =   @(x)
goal =    10
            9
weight = 10
               9
x0 =1
         1
A = -3      -1
         -2   -3
b = -5
         -5
lb =0
         0
Local minimum possible. Constraints satisfied.
fgoalattain stopped because the size of the current search direction is less than
twice the default value of the step size tolerance and constraints are
satisfied to within the default value of the constraint tolerance.
<stopping criteria details>
x = 1.7905
         0.4730
fval =    10.4730
         9.4257
页: [1]
查看完整版本: MATLAB实现多目标规划