1、求解线性规划
输入如下:
结果:目标值=800, x1=250, x2=100
2、求解二次规划
解:
3、求解:
解:
model:
sets: !集合部分;
factory/A1..A3/:supply; !定义了一个factory集合,隐式定义集合中的成员为A1,A2,A3,集合中每个成员的属性为supply;
market/B1..B4/:demand;
links(factory, market): cost, x; !定义了派生集links,相当于links中的成员有(A1,B1)(A1,B2)(A1,B3)...(A2)(B1)...(A4,B4);
endsets
min = @sum(links: cost*x); !links是要遍历的集合,冒号后面是作用到每个成员的表达式;
@for(market(J): @sum(factory(I):x(I,J)) = demand(J)); !market是要遍历的集,第一个冒号后面的是作用到每个成员的表达式;
@for(factory(I): @sum(market(J):x(I,J)) = supply(I));
data: !数据部分;
supply = 7 4 9; !为factory集合中每个成员的suply属性赋值;
demand = 3 6 5 6;
cost = 3 11 3 18
1 9 2 8
7 4 10 5;
enddata
end
4、
model:
sets:
number/1..6/:x;
endsets
minv = @min(number(I) | I#le#5: x); !相当于I<=5;
maxv = @max(number(I) | I#ge#4: x); !相当于I>=4;
data:
x = 5 1 3 4 6 10;
enddata
end