当前位置:文档之家› lingo实验报告

lingo实验报告

、实验名称:推销员指派问题二、实验目的及任务:1、掌握Lingo软件的使用方法2、编写简单的Lin go程序3、解决Lingo中的最优指派问题三、实验内容1、问题描述一个公司要分派5个推销员去5个地区推销某种产品,5个推销员在各个地区推销这种产品的预期利润如下表所示。

若每个推销员只能去一个地区。

应如何分派这5个推销员才能使公司的利润为最大?2、模型建立决策变量1指派第i个人去第j个地区(i,j=1,2,3,4,5): ij 0不指派第i个人去第j个地区目标函数:设总利润为Z,第i个人去第j个地区的利润为A ij(i,j=1,2,3,4,5),假设A ij为指派矩阵,则5 5Max Z A jj X jji 1 j 1约束条件:1.第j个地区只有一个人去:5X ij 1 (j=1,2,3,4,5)i 12.第i个人只去一个地区:5X ij 1 (i=1,2,3,4,5)j 1由此得基本模型:5 53、Lingo 程序 (一)常规程序 Lingo 输入:model :max=1*x11+8*x12+9*x13+2*x14+1*x15+5*x21+6*x22+3*x23+10*x24+7*x25+ 3*x31+10*x32+4*x33+11*x34+3*x35+7*x41+7*x42+5*x43+4*x44+8*x45+4*x 51+2*x52+6*x53+3*x54+9*x55; x11+x12+x13+x14+x15=1; x21+x22+x23+x24+x25=1; x31+x32+x33+x34+x35=1; x41+x42+x43+x44+x45=1; x51+x52+x53+x54+x55=1; x11+x21+x31+x41+x51=1; x12+x22+x32+x42+x52=1; x13+x23+x33+x43+x53=1; x14+x24+x34+x44+x54=1; x15+x25+x35+x45+x55=1; endLingo 输出:Global optimal solution found. Objective value: Infeasibilities: Total solver iterations:MaxA ij x ij j1S,t,x iji1j=1,2,3,4,5)x ij 1i=1,2,3,4,5) j1x ij0或1i,j=1,2,3,4,5)Variable Value Reduced45.00000 0.000000CostX11 0.000000 7.000000X12 0.000000 0.000000X13 1.000000 0.000000X14 0.000000 7.000000X15 0.000000 8.000000X21 0.000000 4.000000X22 0.000000 3.000000X23 0.000000 7.000000X24 1.000000 0.000000X25 0.000000 3.000000X31 0.000000 7.000000X32 1.000000 0.000000X33 0.000000 7.000000X34 0.000000 0.000000X35 0.000000 8.000000X41 1.000000 0.000000X42 0.000000 0.000000X43 0.000000 3.000000X44 0.000000 4.000000X45 0.000000 0.000000X51 0.000000 4.000000X52 0.000000X53 0.000000 3.000000X54 0.000000 6.000000X55 1.000000 0.000000Row Slack or Surplus Dual Price45.00000 1.0000000.000000 9.0000000.000000 10.000000.000000 11.000000.000000 8.0000000.000000 9.0000000.000000 -1.0000000.000000 -1.0000000.000000 0.00000010 0.000000 0.00000011 0.000000 0.000000(二)集合函数程序Lingo 输入:model : sets : person/1..5/;area/1..5/;assign(person,area):A,x;endsets data :A=1,8,9,2,15,6,3,10,73,10,4,11,34,2,6,3,9;enddata max = @sum(assign:A*x); @for (person(i): @for (area(j): @for (assign(i,j):endLingo 输出:Global optimal solution found. Objective value: Objective bound: Infeasibilities:Extended solver steps: Total solver iterations:VariableValueReduced CostA(0.0000001, 1) 1.000000 A(0.0000001, 2) 8.000000 A(0.0000001, 3) 9.000000 A(0.0000001, 4) 2.000000 A(0.0000001, 5) 1.000000 A(0.0000002, 1) 5.000000 A(0.0000002, 2) 6.000000 A(0.0000002, 3) 3.000000 A(0.0000002, 4) 10.00000 A(0.0000002, 5) 7.000000 A(0.0000003, 1) 3.000000 A(0.0000003, 2)10.00000A(3, 3) 4.000000@sum(area(j):x(i,j))=1); @sum(person(i):x(i,j))=1); @bin (x(i,j)));45.00000 45.00000 0.000000A( 3, 4) 11.00000 0.000000A( 3, 5) 3.000000 0.000000A( 4, 1) 7.000000 0.000000A( 4, 2) 7.000000 0.000000A( 4, 3) 5.000000 0.000000A( 4, 4) 4.000000 0.000000A( 4, 5) 8.000000 0.000000A( 5, 1) 4.000000 0.000000A( 5, 2) 2.000000 0.000000A( 5, 3) 6.000000 0.000000A( 5, 4) 3.000000 0.000000A( 5, 5) 9.000000 0.000000X( 1, 1) 0.000000 -1.000000X( 1, 2) 0.000000 -8.000000X( 1, 3) 1.000000 -9.000000X( 1, 4) 0.000000 -2.000000X( 1, 5) 0.000000 -1.000000X( 2, 1) 0.000000 -5.000000X( 2, 2) 0.000000 -6.000000X( 2, 3) 0.000000 -3.000000X( 2, 4) 1.000000 -10.00000X( 2, 5) 0.000000X( 3, 1) 0.000000 -3.000000X( 3, 2) 1.000000 -10.00000X( 3, 3) 0.000000 -4.000000X( 3, 4) 0.000000 -11.00000X( 3, 5) 0.000000 -3.000000X( 4, 1) 1.000000 -7.000000X( 4, 2) 0.000000 -7.000000X( 4, 3) 0.000000 -5.000000X( 4, 4) 0.000000 -4.000000X( 4, 5) 0.000000 -8.000000X( 5, 1) 0.000000 -4.000000X( 5, 2) 0.000000 -2.000000X( 5, 3) 0.000000 -6.000000X( 5, 4) 0.000000 -3.000000X( 5, 5) 1.000000 -9.000000Row Slack or Surplus Dual Price1 45.000001.0000002 0.000000 0.0000003 0.000000 0.0000004 0.000000 0.0000005 0.000000 0.0000006 0.0000000.000000 0.0000000.000000 0.0000000.000000 0.00000010 0.000000 0.00000011 0.000000 0.0000004、求解结果通过上面的lingo 程序求解,得出结论:甲去 C 地区,乙去 D 地区,丙去 B 地区,丁去 A 地区,茂去 E 地区,此时公司的利润最大。

四、实验总结在该实验中,我对lingo 软件有了一些基本的了解,学会了用lingo 软件求解指派问题的方法,并且能运用部分集合函数编写一些简单的程序。

相关主题