876618556 发表于 2009-6-23 23:11

谁给讲解一下这个程序好吗

model:
     sets:
          gd/1..6/:x,y,d;
          lch/A,B/:px,py,e;
          links(gd,lch):c;
     endsets
     data:
          x=1.25 8.75 0.5 5.75 3 7.25;
          y=1.25 0.75 4.75 5 6.5 7.75;
          d=3,5,4,7,6,11;
          px=5,2;   py=1,7;
          e=20,20;
     enddata
     min=@sum(links(i,j):c(i,j)*((px(j)-x(i))^2+(py(j)-y(i))^2)^(1/2));
     @for(gd(i):@sum(lch(j):c(i,j))=d(i));
     @for(lch(j):@sum(gd(i):c(i,j))<=e(j));
end
;

zhuljmike 发表于 2009-6-24 00:25

像是在求距离之和的最小值,约束看不清!!!

buct 发表于 2009-6-24 11:50

六个点到两个确定点距离和最小值

buct 发表于 2009-6-24 11:52

c(i,j)为自变量

buct 发表于 2009-6-24 11:53

六个点和有上限。到确定点的和有定值。。。OK

jingjing1113 发表于 2009-6-24 12:52

呵呵,这个例题有见过,是非线性规划问题。
gd是代表工地,x,y为工地的地理坐标,d为水泥的日用量;px,py为料场的地理坐标,e为日储量。c为料场运到工地的水泥量。
中间为定义已知量。
目标函数是求最小的吨千米数;约束是工地日用水泥量一定,料场的水泥日储量不超过e.

gdufs0 发表于 2009-6-24 22:53

楼上的好厉害
呵呵 矩阵币才21  威望也有21点了 能否分享一下经验么:lol

lc.19880906 发表于 2009-6-26 05:59

这就是lingo软件编的程序,利用软件的集合来定义的,sets:
          gd/1..6/:x,y,d;!就相当于想x(1),x(2)。。。x(6);y(1)。。。y(6);d(1)。。d(6)
          lch/A,B/:px,py,e;类似
          links(gd,lch):c;派生集合
     endsets

data:
          x=1.25 8.75 0.5 5.75 3 7.25;
          y=1.25 0.75 4.75 5 6.5 7.75;
          d=3,5,4,7,6,11;
          px=5,2;   py=1,7;
          e=20,20;
     enddata
数据段,数据初始化
目标函数,求最小值min=@sum(links(i,j):c(i,j)*((px(j)-x(i))^2+(py(j)-y(i))^2)^(1/2]

napolen0922 发表于 2009-7-25 10:32

太高端了......
页: [1]
查看完整版本: 谁给讲解一下这个程序好吗