经典优化算法资料下载.pdf
《经典优化算法资料下载.pdf》由会员分享,可在线阅读,更多相关《经典优化算法资料下载.pdf(104页珍藏版)》请在冰豆网上搜索。
-10;
b=-4;
-3;
10;
0;
x,fval=linprog(f,A,b)解:
解:
x=4.00003.0000fval=30.0000Lindo语法语法min3x1+6x2STx1=4x2=3x1+2x2=0x2=0end工具求解工具求解Lingo语法语法MODEL:
_1MIN=3*X1+6*X2;
_2X1=4;
_3X2=3;
_4X1+2*X2=0;
_6X2=0;
END1stOpt语法语法Parametersx1,x2;
Minfunction3*x1+6*x2;
x1+2*x2=4;
x2=3;
工具求解工具求解1.有无约束条件?
有无约束条件?
约束约束(constrained)、无约束、无约束(unconstrained)2.决策变量是否连续?
决策变量是否连续?
数学规划数学规划(mathematicalprogramming)或连续优化或连续优化(continuousoptimization)线性规划线性规划(linearprogrammingLP)非线性规划非线性规划(nonlinearprogrammingNLP)二次规划二次规划(quadraticprogrammingQP)优化算法分类优化算法分类离散优化离散优化(discretedoptimization)或组合优化或组合优化(combinationaloptimization)整数规划整数规划(IntegerprogrammingIP)0-1整数规划整数规划(zeor-oneprogramming)3.目标个数?
目标个数?
单目标规划,多目标规划单目标规划,多目标规划4.参数参数/变量确定性?
变量确定性?
确定性规划,不确定性规划确定性规划,不确定性规划优化算法分类优化算法分类5.问题求解特性?
问题求解特性?
目标规划目标规划动态规划动态规划多层规划多层规划网络优化网络优化6.问题解决方法问题解决方法经典经典/传统优化,现代传统优化,现代/智能优化智能优化优化算法分类优化算法分类线性规划线性规划MATLAB工具箱工具箱命令行命令行编程编程标准型标准型max=11+22+s.t.111+122+1=1211+222+2=211+22+=0,=1,2,线性规划线性规划标准型的矩阵标准型的矩阵表达表达min=Ts.t.0=为约束矩阵1,2T为目标函数系数矩阵1,2T资源系数向量1,2T决策向量线性规划线性规划线性规划线性规划-MATLAB实现实现标准型的矩阵标准型的矩阵表达表达min=Ts.t.=函数调用x,fval,exitflag=linprog(f,A,b)x,fval,exitflag=linprog(f,A,b,Aeq,beq)x,fval,exitflag=linprog(f,A,b,Aeq,beq,lb,ub)x,fval,exitflag=linprog(f,A,b,Aeq,beq,lb,ub,x0)x,fval,exitflag=linprog(f,A,b,Aeq,beq,lb,ub,x0,options)options由由optimset设置参数,设置参数,exitflag取值从取值从-7到到1线性规划线性规划-MATLAB实现实现线性规划线性规划-MATLAB实现实现例例.某工厂计划生产甲、乙两种产品,主要材料有钢材某工厂计划生产甲、乙两种产品,主要材料有钢材3500kg,3500kg,铁材铁材1800kg1800kg、专用设备能力、专用设备能力28002800台时,材料与台时,材料与设备能力的消耗定额及单位产品所获利润如表所示,设备能力的消耗定额及单位产品所获利润如表所示,如何安排生产才能使该厂所获利润最大?
如何安排生产才能使该厂所获利润最大?
产品单位产品消耗定额材料与设备甲/件乙/件现在材料与设备能力钢材/kg853500铁材/kg641800设备能力/台时452800单位产品的利润/元80125-数学模型为数学模型为max()=801+1252s.t.81+52350061+42180041+5228001,20线性规划线性规划-MATLAB实现实现转换成转换成linprog的最小格式的最小格式min=8011252s.t.81+52350061+42180041+5228001,20线性规划线性规划-MATLAB实现实现clearall;
f=-80,-125;
A=85;
64;
45;
b=3500,1800,2800;
lb=0;
ub=inf;
inf;
x,fval,exitflag,output=linprog(f,A,b,lb)线性规划线性规划-MATLAB实现实现Optimalsolutionfound.x=0450.0000fval=-5.6250e+04exitflag=1output=structwithfields:
iterations:
2constrviolation:
0message:
Optimalsolutionfound.algorithm:
dual-simplex!
对偶单纯形法对偶单纯形法firstorderopt:
7.1054e-12线性规划线性规划-MATLAB实现实现1.命令命令:
optimtool2.APPS(应用程序应用程序)Optimization线性规划线性规划-MATLAB实现实现线性规划线性规划-MATLAB实现实现参考帮助参考帮助3.OptimizationTool下下helpShowQuickReference4.helplinprog#具体算法具体算法5.QucikReference6.工具书工具书MODEL:
_1MAX=80*X1+125*X2;
_25*X1+5*X2=3500;
_36*X1+4*X2=1800;
_44*X1+5*X2=0;
END线性规划线性规划-Lingo实现实现Parameterx,y;
MinFunctioncos(x2-2*y)+exp(-x2)*sin(y);
-x+(y-2)2=0;
x-2*y+1=0;
结果为数学最优结果为数学最优,不符合物理意义不符合物理意义线性规划线性规划-1stOpt实现实现Parameterx10,x20,;
MaxFunction80*x1+125*x2;
8*x1+5*x2=3500;
6*x1+4*x2=1800;
4*x1+5*x2=2800;
修改参数范围修改参数范围为为正正整数规划整数规划-Matlab实现实现函数调用x,fval,exitflag=intlinprog(f,intcon,A,b)x,fval,exitflag=intlinprog(f,intcon,A,b,Aeq,beq)x,fval,exitflag=intlinprog(f,intcon,A,b,Aeq,beq,lb,ub)x,fval,exitflag=intlinprog(f,intcon,A,b,Aeq,beq,lb,ub,x0)x,fval,exitflag=intlinprog(f,intcon,A,b,Aeq,beq,lb,ub,x0,options与与linprog的区别有两点的区别有两点1.关键词变关键词变intlinprog,2.多了一个整型参数设置关键词多了一个整型参数设置关键词intcon整数规划整数规划例f=75963;
ic=1,2,3,4,5;
!
5个变量全要求是整数个变量全要求是整数A=56,20,54,42,15;
1,4,1,0,0;
-1,-2,0,-1,-2;
b=100;
4;
-2;
lb=-110,-210,-310,-330,-560!
下边界下边界ub=110,210,310,330,560!
上边界上边界x,fval,flag=intlinprog(f,ic,A,b,lb,ub)整数规划整数规划-Matlab实现实现x=-110.0000-210.0000-310.0000-330.0000431.0000fval=-5297flag=1整数规划整数规划-Matlab实现实现0-1整数规划整数规划-Matlab实现实现例f=75963;
A=56,20,54,42,15;
lb=zeros(5,1);
!
限制最小值为限制最小值为0ub=ones(5,1);
限制最大值为限制最大值为1x,fval,flag=intlinprog(f,ic,A,b,lb,ub)0-1整数规划整数规划-Matlab实现实现x=00001fval=3flag=10-1整数规划整数规划-Matlab实现实现与整数规划不同的地方只有一个,就是多了lb=zeros(5,1),ub=ones(5,1),也就是说求解0-1整数规划只要在求解整数规划的基础上加上对变量最小约束为0,最大值约束为1就行了。
0-1整数规划整数规划-Matlab实现实现过时语句语句bintprogf=75963;
x,fval,flag=bintprog(f,A,b)0-1整数规划整数规划-Matlab实现实现混合规划混合规划-MATLAB实现实现没有专门的语句,是不是可以用前边的没有专门的语句,是不是可以用前边的intlinprog变化一下实现呢?
变化一下实现呢?
答案:
不能,结果不会对,找专门的工具箱或不能,结果不会对,找专门的工具箱或者用者用Lingo,1stopt来解决,来解决,MATLAB在混合整在混合整数规划上目前还很难。
数规划上目前还很难。
整数规划整数规划-Lingo实现实现MODEL:
MIN=7*X1+5*X2+9*X3+6*X4+3*X5;
56*X1+20*X2+54*X3+42*X4+15*X5=100;
X1+4*X2+X3=2;
ENDBND(-110,X1,110);
BND(-210,X2,210);
BND(-310,X3,310);
BND(-330,X4,330);
BND(-560,X5,560);
0-1整数规划整数规划-Lingo实现实现MODEL:
_1MIN=7*X1+5*X2+9*X3+6*X4+3*X5;
_256*X1+20*X2+54*X3+42*X4+15*X5=100;
_3X1+4*X2+X3=2;
ENDFREE(X1);
FREE(X2);
FREE(X3);
FREE(X4);
FREE(X5);
BIN(X1);
BIN(X2);
BIN(X3);
BIN(X4);
BIN(X5);
ParameterX(1:
5);
MinFunction7*X1+5*X2+9*X3+6*X4+3*X5;
全局实数最小值全局实数最小值整数规划整数规划-1stOpt实现实现整数规划整数规划-1stOpt实现实现整数规划整数规划-1stOpt实现实现ParameterX1-110,110,X2-210,210;
ParameterX3-310,310,X4-330,330,X5-560,560;
56*X1+20*X2+54*X3+42*X