数模整数规划实例

xiaoxiao2021-02-28  100

非线性规划习题

之前的非线性规划的练习题


题目 1.

2.

3.

解答

这里利用y = x1*x2 可以去进行替换 并且利用x的取值的特性可以得到新的条件:

x1 + x2 - 1 <= y <= x1 x1 + x2 - 1 <= y <= x2 y = 0 或 1

和之前的约束条件形成一个3个变量的线性的0-1规划问题

这是一个线性的0-1规划问题 设置备选校址对应的为:x1,x2,x3,x4,x5,x6 对应着8个居民小区会有这8个不同条件的约束 如第一个:x1 + x2 + x3 >= 1 以此类推可以得出:

f = [1,1,1,1,1,1]; Aeq = [-1 -1 -1 0 0 0; 0 -1 0 -1 0 0;0 0 -1 0 -1 0; 0 0 0 -1 0 0; -1 -1 -1 0 0 0;0 0 0 0 -1 -1;-1 0 0 0 0 0;0 -1 0 -1 0 -1]; beq = [-1;-1;-1;-1;-1;-1;-1;-1]; [x,y] = intlinprog(f,ones(6,1),Aeq,beq,[],[],zeros(6,1)); y x = 1 0 0 1 1

这里就是一个24个不同变量分配的问题,典型的机器-工人分配问题,直接用相关算法即可; 其中link集合中x表示所求企业分配,c表示分配利润 @for为约束条件

model: sets: machine/1..6/; company/1..4/; link(machine,company):c,x; endsets data: c = 4 2 3 4 6 4 5 5 7 6 7 6 7 8 8 6 7 9 8 6 7 10 8 6; enddata max = @sum(link:c*x); @for(company(j):@sum(machine(i):x(i,j)) >= 1); @for(machine(i):@sum(company(j):x(i,j)) = 1); @for(link:@bin(x)); end
转载请注明原文地址: https://www.6miu.com/read-63533.html

最新回复(0)