lingo解决分配问题

来自:    更新日期:早些时候
用Lingo解决生产任务分配问题~

model:
sets:
supply/1..4/:distance1;
demand/1..5/:;
goods/1..2/:tnum,weight,price;
link1(supply,demand):distance2;
link2(supply,goods):mproduce,cost,cementcost,steelcost;
link3(goods,demand):booking;
link4(supply,demand,goods):num;
endsets
data:
tnum=2640 3470;
price=10000 12000;
distance1=30 25 60 40;
weight=5 3;
mproduce=
800 1200
1000 700
450 800
550 1000;
cost=
4800 7400
5000 7350
5100 7500
4950 7450;
cementcost=
4000 2000
4050 2050
4050 2060
4000 1990;
steelcost=
1000 600
1050 510
1030 510
990 515;
distance2=
10 15 25 18 9
12 8 15 18 17
17 12 14 11 15
16 18 18 13 20;
booking=
400 520 800 600 320
650 700 900 420 800;
enddata
max=@sum(goods:tnum*price)-@sum(link2(i,j):cost(i,j)*@sum(demand(k):num(i,k,j)))
-0.2*@sum(supply(i):distance1(i)*@sum(goods(j):@sum(demand(k):num(i,k,j))*cementcost(i,j)/1000))
-0.3*@sum(supply(i):distance1(i)*@sum(goods(j):@sum(demand(k):num(i,k,j))*steelcost(i,j)/1000))
-@sum(link1(i,k):distance2(i,k)*@sum(goods(j):weight(j)*num(i,k,j)));
@sum(supply(i):@sum(goods(j):@sum(demand(k):num(i,k,j))*cementcost(i,j)))<=23000000;
@sum(supply(i):@sum(goods(j):@sum(demand(k):num(i,k,j))*steelcost(i,j)))<=9000000;
@for(link2(i,j):@sum(demand(k):num(i,k,j))<=mproduce(i,j));
@for(link3(j,k):@sum(supply(i):num(i,k,j))=booking(j,k));
@for(link4:@gin(num));
End
但是好像有错误
看你的名字 知道你是工商2的

sets:
event /1..4/:;
athlete /1..5/:;
link(athlete,event):chji,x;
endsets
data:
chji = 8.69.78.99.4
9.28.38.58.1
8.88.79.39.6
8.57.89.57.9
8.09.48.27.7;
enddata
max = @sum(link:chji * x);

@sum(link:x) = 10;

@for(athlete(I):@sum(event(J):x(I,J)) >= 1);

@for(athlete(I):@sum(event(J):x(I,J)) <= 3);

@for(event(J):@sum(athlete(I):x(I,J)) >= 1);

@for (link:@bin(x));

model:

!4人4工作的分配问题;

title:assignment problem;!分配问题;

sets:

warehouses/wh1..wh4/:capacity;

vendors/v1..v4/:demand;

links(warehouses,vendors):cost,volume;

endsets

!目标函数;

min=@sum(links:cost*volume);

!需要约束;

@for(vendors(j):

@sum(warehouses(i):volume(i,j))=demand(j));

!产量约束;

@for(warehouses(i):

@sum(vendors(j):volume(i,j))=capacity(i));

!数据;

data:

capacity=1 1 1 1;

demand=1 1 1 1;

cost=2 15 13 4

     10 4 14 15

     9 14 16 13

     7 8 11 9;

enddata

end

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Global optimal solution found.

   Objective value:                              28.00000

   Total solver iterations:                             0

   Model Title: :assignment problem

                       Variable           Value        Reduced Cost

                 CAPACITY( WH1)        1.000000            0.000000

                 CAPACITY( WH2)        1.000000            0.000000

                 CAPACITY( WH3)        1.000000            0.000000

                 CAPACITY( WH4)        1.000000            0.000000

                    DEMAND( V1)        1.000000            0.000000

                    DEMAND( V2)        1.000000            0.000000

                    DEMAND( V3)        1.000000            0.000000

                    DEMAND( V4)        1.000000            0.000000

                 COST( WH1, V1)        2.000000            0.000000

                 COST( WH1, V2)        15.00000            0.000000

                 COST( WH1, V3)        13.00000            0.000000

                 COST( WH1, V4)        4.000000            0.000000

                 COST( WH2, V1)        10.00000            0.000000

                 COST( WH2, V2)        4.000000            0.000000

                 COST( WH2, V3)        14.00000            0.000000

                 COST( WH2, V4)        15.00000            0.000000

                 COST( WH3, V1)        9.000000            0.000000

                 COST( WH3, V2)        14.00000            0.000000

                 COST( WH3, V3)        16.00000            0.000000

                 COST( WH3, V4)        13.00000            0.000000

                 COST( WH4, V1)        7.000000            0.000000

                 COST( WH4, V2)        8.000000            0.000000

                 COST( WH4, V3)        11.00000            0.000000

                 COST( WH4, V4)        9.000000            0.000000

               VOLUME( WH1, V1)        0.000000            2.000000

               VOLUME( WH1, V2)        0.000000            12.00000

               VOLUME( WH1, V3)        0.000000            7.000000

               VOLUME( WH1, V4)        1.000000            0.000000

               VOLUME( WH2, V1)        0.000000            9.000000

               VOLUME( WH2, V2)        1.000000            0.000000

               VOLUME( WH2, V3)        0.000000            7.000000

               VOLUME( WH2, V4)        0.000000            10.00000

               VOLUME( WH3, V1)        1.000000            0.000000

               VOLUME( WH3, V2)        0.000000            2.000000

               VOLUME( WH3, V3)        0.000000            1.000000

               VOLUME( WH3, V4)        0.000000            0.000000

               VOLUME( WH4, V1)        0.000000            2.000000

               VOLUME( WH4, V2)        0.000000            0.000000

               VOLUME( WH4, V3)        1.000000            0.000000

               VOLUME( WH4, V4)        0.000000            0.000000

                            Row    Slack or Surplus      Dual Price

                              1        28.00000           -1.000000

                              2        0.000000           -5.000000

                              3        0.000000           -8.000000

                              4        0.000000           -11.00000

                              5        0.000000           -9.000000

                              6        0.000000            5.000000

                              7        0.000000            4.000000

                              8        0.000000           -4.000000

                              9        0.000000            0.000000



model:
!4人4工作的分配问题;
sets:
warehouses/wh1,wh2,wh3,wh4/:capacity;
vendors/v1,v2,v3,v4/:demand;
links(warehouses,vendors):cost,volume;
endsets
!目标函数;
min=@sum(links:cost*volume);
!需要约束;
@for(vendors(j):
@sum(warehouses(i):volume(i,j))=demand(j));
!产量约束;
@for(warehouses(i):
@sum(vendors(j):volume(i,j))=capacity(i));
!数据;
data:
capacity=1 1 1 1;
demand=1 1 1 1;
cost=2 15 13 4
10 4 14 15
9 14 16 13
7 8 11 9;
enddata
end

主要问题是中文注释后面用的;全是中文的,sets后面的:也写成了中文标点, data最后一项没分号 for循环写的不对,格式是@for(set:语句);


lingo解决分配问题视频

相关评论:
  • 19141586159lingo什么意思
    贝虽泉Lingo是一种专门用于求解优化问题的编程语言,它广泛应用于线性规划、整数规划、非线性规划等领域。其名称来源于“Linear Interactive and General Optimizer”的缩写,即线性交互式通用优化器,它提供了一种简洁明了的语法和强大的优化求解功能。Lingo的主要特点是直观易用。用户无需深入了解复杂的...

  • 19141586159lingo软件主要解决哪些问题?
    贝虽泉主要用来解决将实际问题模型化后,在几条限制条件下,编程解决一些优化、规划问题,诸如最短路线问题、最少费用问题、分配问题(指派问题)、最小生成树问题、二次分配问题,,得出局部或全局最优解,经常构造0—1变量,解决实际中的整数规划问题,,还可以做灵敏度分析等等... 件目前以仅有版本10了吧...

  • 19141586159lingo有多个目标,每个目标适当权重怎么分的
    贝虽泉是这样的,Lingo不能直接求解多目标规划问题,如果要求解的话,可以通过确定权重系数把多目标整合为单目标规划问题,这样就能用Lingo求解 至于权重分配,就要看问题的具体要求了

  • 19141586159lingo解决分配问题
    贝虽泉model:!4人4工作的分配问题;title:assignment problem;!分配问题;sets:warehouses\/wh1..wh4\/:capacity;vendors\/v1..v4\/:demand;links(warehouses,vendors):cost,volume;endsets !目标函数;min=@sum(links:cost*volume);!需要约束;for(vendors(j):sum(warehouses(i):volume(i,j))=demand(j));...

  • 19141586159lingo问题,分配甲乙丙丁四个人去完成5项工作,每个人完成各项工作所需的...
    贝虽泉x表示第i个人是否去做第j个工作 请自己到lingo里面运行算一下model:sets:person\/1..4\/;job\/1..5\/;arrange(person,job):time,x;endsetsdata:time=25 29 31 42 3739 38 26 20 3334 27 28 40 3224 42 36 23 45;enddatamin=@sum(arrange:time*x);@for(person(i):@sum(job(j):x(i...

  • 19141586159LINGO 0-1规划问题
    贝虽泉11 件任务(A—K)分配到 4 个工作站(1—4),任务的优先次序如下图,每件任务所花费的时间如下表。目标是为每个工作站分配加工任务,尽可能使每个工作站执行相同的任务量,其最终装配线周期最短。任务 A B C D E F G H I J K 时间 45 11 9 50 15 12 12 12 12 ...

  • 19141586159有100组数,请用lingo软件编程将它们分成2组,
    贝虽泉这个问题已经回答过了,用0-1变量的形式来描述某个数该分配到哪一组。至于excel分析部分你可以自己探讨。我们可以探索一下,可不可以用LINGO来实现每组的平均数尽量相等;假设待分组的数是:10,43,5,7,8,9,11,23,33,34。用LINGO得到的程序是:MODEL:SETS:NUMBERGROU\/1..10\/:NUM;CHOOSE\/1..10...

  • 19141586159用Lingo解0-1整数规划问题,泊位分配做学习用!!!
    贝虽泉这是个泊松过程的模拟吧 有个函数@pps(a,x)产生 均值为a 的Poisson 分布的累积分布函数。当x 不是整数时,采用线性插值进 行计算。。至于模拟你自己做就可以了

  • 19141586159Lingo软件基础用法
    贝虽泉用于规划类问题的求解,需动手实践。案例:使用lingo解决资源分配与生产计划问题,目标最大化总收益。定义变量与约束条件,形成整数规划模型,利用lingo代码实现。结果示例 生产计划方案为:X1=100,X2=0,X3=0,最大收入Z=200。导入Excel数据 通过@OLE函数实现与Excel文件的数据交换,支持数据导入与导出。

  • 19141586159运筹学 资源分配问题 LINGO实现代码 具体问题如下:
    贝虽泉x表示第x天开始工作的人数 model:sets:day\/1..7\/:a,x;endsets data:a=28 15 24 25 19 31 28;enddata min=@sum(day:x);for(day:@gin(x));for(day(i):@sum(day(j):x(j))-x(@mod(i,7)+1)-x(@mod(i+1,7)+1)>=a(i));end ...

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网