线性规划
(1)定义:线性规划问题是在一组线性约束条件的限制下,求一线性目标函数的最优解的问题。
(2)举例:
model:
min=@abs(x1)+2*@abs(x2)+3*@abs(x3)+4*@abs(x4);! 目标函数;
x1-x2-x3+x4=0;
x1-x2+x3-3*x4=1;
x1-x2-2*x3+3*x4=-1/2;! 约束条件;
end
非线性规划
(1)定义:非线性规划问题是在一组非线性约束条件的限制下,求一非线性目标函数的最优解的问题。
(2)举例:
model:
min=(x1)^2+(x2)^2+8;! 目标函数;
x1^2-x2>=0;
-x1-x2^2+2=0;
x1>=0;
x2>=0;! 约束条件;
end
整数规划
(1)定义
规划中的变量(部分或全部)限制为整数时,称为整数规划。若在线性规划模型中,变量限制为整数,则称为整数线性规划。
(2)分类
如不加特殊说明,一般指整数线性规划。整数线性规划模型可划分为:
- 纯整数线性规划:所有变量限制为整数
- 混合整数线性规划:部分变量限制为整数
(3)举例
model:
sets:
row/1..4/:b;!四个不等式;
col/1..5/:c1,c2,x;!五个未知数x;
link(row,col):a;!a是x对应的系数;
endsets
data:
c1=1,1,3,4,2;
c2=-8,-2,-3,-1,-2;
a=1 1 1 1 1
1 2 2 1 6
2 1 6 0 0
0 0 1 1 5;
b=400,800,200,200;
enddata
max=@sum(col:c1*x^2+c2*x);! 目标函数;
@for(row(i):@sum(col(j):a(i,j)*x(j))<b(i));
@for(col:@gin(x));
@for(col:@bnd(0,x,99));! 约束条件;
end
动态规划
(1)定义:
动态规划主要用于求解以时间划分阶段的动态过程的优化问题。动态规划是求解某一类问题的一种方法,是考察问题的一种途径,而不是一种特殊的算法(如线性规划是一种算法),因此,它不像线性规划一样有一个标准的数学表达式和明确定义的一组规则,而必须针对具体情况具体分析。
(2)举例:
model:
sets:
vertex/A,B1,B2,C1,C2,C3,C4,D1,D2,D3,E1,E2,E3,F1,F2,G/:L;
road(vertex,vertex)/A B1,A B2,B1 C1,B1 C2,B1 c3,B2 C2,B2 C3,B2 C4,
C1 D1,C1 D2,C2 D1,C2 D2,C3 D2,C3 D3,C4 D2,C4 D3,
D1 E1,D1 E2,D2 E2,D2 E3,D3 E2,D3 E3,
E1 F1,E1 F2,E2 F1,E2 F2,E3 F1,E3 F2,F1 G,F2 G/:D;
endsets
data:
D=5 3 1 3 6 8 7 6
6 8 3 5 3 3 8 4
2 2 1 2 3 3
3 5 5 2 6 6 4 3;
! D是每条路的长度;
L=0,,,,,,,,,,,,,,,;
! L是总路径;
enddata
@for(vertex(i)|i#GT#1:L(i)=@min(road(j,i):L(j)+D(j,i)));
end
目标规划
(1)引言
- 线性规划的局限性:只能解决一组线性约束条件下,某一目标只能是一个目标的最大值或最小值的问题
- 实际决策中,衡量方案优劣要考虑多个目标
(2)定义
目标规划是一种用来进行含有单目标和多目标的决策分析的数学规划方法。它是在线性规划基础上发展起来的算法。
(3)相关概念
正、负偏差变量:
设d为决策变量的函数,正偏差变量 d+=maxd−d0