收藏 分销(赏)

LINGO求解优化问题.doc

上传人:s4****5z 文档编号:9438230 上传时间:2025-03-26 格式:DOC 页数:91 大小:1.39MB
下载 相关 举报
LINGO求解优化问题.doc_第1页
第1页 / 共91页
LINGO求解优化问题.doc_第2页
第2页 / 共91页
点击查看更多>>
资源描述
首 页 一、Lingo简介 1. 目标函数 一个函数解析式,你希望求它的最大或最小值 max=函数解析式; 或 min=函数解析式; 例 max=3*b+2*c^2; min=b^(1/3)-c*k; Lingo的语句以 ; 号结束。 2. 运算 加(+),减(-),乘(*),除(/),乘方(x^a) 3. 变量 用字母或字母数字的组合表示 例 a,b,cc1,x1。 Lingo的变量缺省值为非负数。 4. 限制条件 一组等式或不等式。 Lingo的>,<与>=,<=等价。 示例程序1 min=3*x1+5*x2; !x1,x2是非负变量; 3*x1+2*x2>=36; 3*x1+5*x2>=45; Lingo的注释语句用!开头用;结束。 5. 变量类型 变量类型 说 明 @bin( 变量名) ; 限制该变量为0或1。 @bnd( a,变量名, b); 限制该变量介于a,b之间。 @free(变量名); 允许该变量为负数。 @gin( 变量名); 限制该变量为整数。 二、Lingo高级 sets语句 连续六个月的产量,可以用x1,x2,x3,x4,x5,x6表示, 但十二个月的产量用同样的方法表示就显繁琐。 Lingo可以通过sets语句设置数组功能使问题变得简单。 例 定义数组x, 有x(1),x(2),x(3),x(4)…x(12)个成员,用以表示十二个月的产量。 sets: r/1..12/:x; !r是组的类型名,x数组名; endsets; sets语句以sets开头,endsets结束。 示例程序2 sets: mat/1..4/: x; !mat是组的类型名,x数组名; endsets min=50*x(1)+20*x(2)+30*x(3)+80*x(4); 400*x(1)+200*x(2)+150*x(3)+500*x(4)>=500; 3*x(1)+2*x(2)>=6; 2*x(1)+2*x(2)+4*x(3)+4*x(4)>=10; 2*x(1)+4*x(2)+x(3)+5*x(4)>=8; data语句 有时,我们要用到常数数组,比如在 400*x(1)+200*x(2)+150*x(3)+500*x(4)>=500 中,x(1), x(2), x(3), x(4)的系数分别为400, 200, 150, 500,此时,可用data语句。 例 定义数组a, 其中a(1)=400,a(2)=200,a(3)=150,a(4)=500。 sets: l/1..4/: a,x; endsets data: a=400 200 150 500; enddata data语句是以data开头,enddata结尾。 示例程序3 sets: l/1..4/: x, a; endsets data: a=7 2 3 9; !a(1)=7, a(2)=2, a(3)=3, a(4)=9; enddata max=x(1)*a(3)+x(2)*a(1)+x(3)*a(4)+x(4)*a(2); x(1)+x(4)-x(2)-x(3)<a(1); x(4)+2*x(2)<a(4); x(1)+x(3)<a(1); Lingo含有一些针对数组的命令,方便了数组的使用。 @for循环语句: @for(数组类型名(i): 循环的语句); 示例程序4(@gin语句) sets: r/1..5/: a, b; endsets data: a= 3.3 4.6 2.7 7.1 10.3; enddata max=a(1)*b(1)-a(2)*b(2)+a(3)*b(3)-a(4)*b(4); @for(r(i): b(i)< a(i)); !等价于b(1)<a(1);b(2)<a(2);b(3)<a(3);b(4)<a(4); @for(r(i): @gin(b(i))); !b为整数数组; !等价于@gin(b(1));@gin(b(2));@gin(b(3));@gin(b(4)); @sum语句 @sum(数组类型名(i): 含数组名(i)的语句); 示例程序5 sets: r/1..5/: a, b; endsets data: a= 3.3 4.6 2.7 7.1 10.3; enddata max=@sum(r(i):b(i))+@sum(r(i):b(i)/a(i)) +@sum(r(i):b(i)*a(i)); !等价于max=b(1)+b(2)+b(3)+b(4)+b(1)/a(1)+b(2)/a(2)+b(3)/a(3)+b(4)/a(4); @for(r(i): b(i)< a(i)); @for(r(i): @gin(b(i))); 示例程序6(bnd语句) sets: m/1..4/: x, need, g, y; endsets data: need=4000 2000 3000 10000; enddata min=30000*@sum(m(i): x(i))+30*@sum(m(i): g(i)); g(1)=600+y(1)*(x(2)+x(3)+x(4))-need(1); g(2)=g(1)+y(2)*(@sum(m(i): x(i))-x(2))-need(2); ! @sum(m(i):x(i))-x(2)等价于x(1)+x(3)+x(4); g(3)=g(2)+y(3)*(@sum(m(i): x(i))-x(3))-need(3); g(4)=g(3)+y(4)*(@sum(m(i): x(i))-x(4))-need(4); @gin(y(1)); @for(m(i): @gin( x(i)); @bnd(10, y(i), 500) ); !x为整数数组,10≤y(i)≤500; sets语句还可以定义矩阵 m×n矩阵就是m行,n列的数。 x=2 3 4 5 6 7 8 9 2 3 4 7 8 2 1; x 是一3×5的矩阵,x(1, 2)调用第一行第二列的数3。 例 定义4×5矩阵。 Sets: r/1..4/; c/1..5/; m(r,c): x; !r为行数,c为列数,m为4×5矩阵的类型名,x为矩阵名; endsets data语句用于矩阵 data: x=2 5 6 7 5 6 3 1 8 7 9 10; enddata @sum语句用于矩阵 @sum(m(i,j): x(i,j)); !对x的全部元素求和; @sum(m(1,j): x(1,j))<40; !对x的第一行求和; @sum(m(i,3): x(i,3))<40; !对x的第三列求和; @for(r(i): @sum(m(i,j):x(i,j))<50); !对x的每一行求和; @for(c(j):@sum(m(i,j):x(i,j))<50); !对x的每一列求和; @for循环语句可用于矩阵 @for(m(i,j): @gin(x(i,j))); 表示所有的x(i,j)为整数。 示例程序7 sets: r/1..3/: s; c/1..4/: pr, pd; m(r,c): x; !定义一3×4矩阵; endsets data: s = 750 250 400; pr = 2 3 4 5; x = 15 10 6 2 1 6 10 14 5 8 13 9; enddata max=@sum(c(i): pr(i) *pd(i)); @for( r(i): @sum(c(j): x(i,j)*pd(j)/16) <=s(i)); ! @for( r(i): @sum(m(i,j):x(i,j)*pd(j)/16) <=s(i))等价于: x(1,1)*pd(1)/16+x(1,2)*pd(2)/16+x(1,3)*pd(3)/16+x(1,4)*pd(4)/16<s(1); x(2,1)*pd(1)/16+x(2,2)*pd(2)/16+x(2,3)*pd(3)/16+x(2,4)*pd(4)/16<s(2); x(3,1)*pd(1)/16+x(3,2)*pd(2)/16+x(3,3)*pd(3)/16+x(3,4)*pd(4)/16<s(3); x(4,1)*pd(1)/16+x(4,2)*pd(2)/16+x(4,3)*pd(3)/16+x(4,4)*pd(4)/16<s(4); 示例程序8(@bin语句) sets: l/1..4/; m(l,l): a,x; endsets data: a=54 54 51 53 51 57 52 52 50 53 54 56 56 54 55 53; enddata min=@sum( m(i,j): a(i,j)*x(i,j) ); @for(l(i): @sum(l(j): x(i,j))=1;@sum(l(j): x(j,i))=1); ! @sum(l(j):x(i,j))=1,每一行的和为1;@sum(l(j):x(j,i))=1,每一列的和为1; @for( m(i,j): @bin(x(i,j)) ); !x元素取值为0或1; sets: l/1..4/; m(l,l):a,x; endsets data: a=54 54 51 53 51 57 52 52 50 53 54 56 56 54 55 53; enddata min=@sum(m(i,j):a(i,j)*x(i,j)); @for(l(i):@sum(l(j):x(i,j))=1;@sum(l(j):x(j,i))=1); ! @sum(l(j):x(i,j))=1,每一行的和为1;@sum(l(j):x(j,i))=1,每一列的和为1; @for(m(i,j):@bin(x(i,j))); 三、优化问题 Lingo 是较好的最优化建模工具,Lingo模型由两部分组成: (一) 目标(objective): 最优化目标。 (二) 限制条件(constraint)。 1. 我的食谱 由四种食品组成: Ø 果仁巧克力(50 美分/块); Ø 巧克力冰淇淋(20美分/杯); Ø 可乐(30美分/瓶); Ø 奶酪(80美分块)。 我每天的营养最低需求: 500 卡路里,6 盎司巧克力,10 盎司糖,8 盎司脂肪。 四种食品的营养成分如下表: 卡路里 巧克力(盎司) 糖(盎司) 脂肪(盎司) 价格 果仁巧克力(块) 400 3 2 2 50 巧克力冰淇淋(杯) 200 2 2 4 20 可乐(瓶) 150 0 4 1 30 奶酪(块) 500 0 4 5 80 最低需求 500 6 10 8 试列出一份最节俭的食谱 [讲评] 问:选择哪些变量? 答:果仁巧克力x1块,巧克力冰淇淋x2杯,可乐x3瓶,奶酪x4块。 问:该问题的目标是什么? 答:食谱中饮食的成本最低: min 50x1+20x2+30x3+80x4 问:限制条件? 答:满足每天的最低需求。 卡路里: 400x1+200x2+150x3+500x4≥500 巧克力: 3x1+2x2≥6 糖: 2x1+2x2+4x3+4x4≥10 脂肪: 2x1+4x2+x3+5x4≥8 [讨论] 如果巧克力冰淇淋的价格变为原来的两倍,食谱将如何改动? 练习1.1 生产两种糖果 生产两种糖果:软糖和硬糖。糖果仅由糖、坚果和巧克力制成。现有100盎司糖,20盎司坚果,30盎司巧克力。软糖须含有至少20%的坚果;硬糖须含有至少10%的坚果和10%的巧克力。一盎司的软糖售价为25美分,一盎司的硬糖售价为20美分。试安排生产计划。 练习1.2 生产三种产品 某公司生产 A, B, C 三种产品,售价:A为$10,B为$56,C为$100。生产一单位A,需1小时的劳力;生产一单位 B,需2小时的劳力加上2单位的A;生产一单位 C,需3小时的劳力加上1单位的B。现有40小时的劳力,试安排生产计划。 2. 生产一种电子产品 某公司生产一种电子产品。已知明年四季度的需求(须按时交货):第一季度为4000件;第二季度为2000件;第三季度为3000件;第四季度为10000件。公司员工每年有一个季度休假,每个员工年薪为$30,000,每个员工每季度最多可生产500件产品。每个季度末公司须为每件存货付存储费$30。公司现有600件产品,如何安排明年的生产? [讲评] 问:该问题的目标是什么? 答:员工年薪与存储费总和最低。 问:限制条件? 答:每季度初的库存与该季度生产量的和须满足该季度的需求。 问:如何表示员工总数? 答1:各季度上班的员工x(1),x(2),x(3),x(4)的总和 答2:答1的总和是员工总数的3倍,因为每个员工工作3个季度。 问:如何表示存储费? 答:设计每季度末的库存变量。 问:如何表示每季度的产量? 答:设计每季度每个员工的实际产量变量。 [讨论] 若每个季度上班员工数目相同,员工年薪与存储费总和将如何变化? 练习2.1 产品生产任务 某公司须完成如下交货任务:一季度为30件;二季度为20件;三季度为40件。每季度正常上班时间至多可生产27件,单位成本为$40,加班时间的单位生产成本为$60。产品不合格率为20%,每季度剩下的合格产品(在存货时)中有10%被破坏,单位存货费为$15。已知现有20件合格产品,如何安排3个季度的生产? 3. 邮局雇员 某邮局每天需一定数量的全职员工:星期一17名,星期二13名,星期三15名,星期四19名,星期五14名,星期六16名,星期日11名。全职员工连续工作5天后休息2天。 邮局须雇用多少全职员工? [讲评] 问:问题中如何设置变量? 答:该问题跟模型2有点相似,将员工分为7种,分别为星期一开始上班(休假结束),星期二开始上班,...星期日上班,对应人数分别为x(1), x(2), …, x(7),这样星期一来上班的人数为:x(1)+x(4)+x(5)+x(6)+x(7)。 一 二 三 四 五 六 日 x(1) 休息 休息 x(2) 休息 休息 x(3) 休息 休息 x(4) 休息 休息 x(5) 休息 休息 x(6) 休息 休息 x(7) 休息 休息 上班人数 17 13 15 19 14 16 11 [讨论] 假设邮局可要求员工加一天班,已知员工正常工作日薪为$50,加班工作日薪为$62。试定一最省钱的人事安排计划. 练习3.1 银行雇员 Gotham City National Bank 每周一至周五的9:00~17:00营业。银行对信贷员的需求量如下表: 时间段 9-10 10-11 11-12 12-13 13-14 14-15 15-16 16-17 信贷员需求量 4 3 4 6 5 6 8 8 银行雇用两种信贷员:全职信贷员(工作时间:9:00~17:00,除去11:00~12:00或12:00~13:00的中餐时间),时薪为$8(含中餐时间);兼职信贷员,工作时间为连续3小时,时薪为$5。试定一最省钱的信贷员雇用计划。每天兼职信贷员总数不超过5个。 4. 买卖谷子 Alexis Cornby 靠买卖谷子为生。年初,他有50吨谷子和$10000,每月初他可以以下价格买进谷子:一月为$300,二月为$350,三月为$400,四月为$500。每月末他可以以下价格卖出谷子:一月为$350,二月为$450,三月为$350,四月为$550。Alexis 的谷子存放于它的仓库内(仓库容量为100吨)。他买谷子时须付现金。试设计买卖计划。 [讨论] 若买谷子的钱可延期一个月付款,买卖计划将发生何种变化? 5. 最大长方体体积 有一块长为120厘米,宽为90厘米的矩形薄铁皮材料,现要剪一个长方体的展开图,做一个长方体模型。求长方体体积的最大值。 [讲评] 问:设a,b,c分别是长方体的长,宽,高,a,b,c须满足什么条件? a b a a a c c 答1:2a+b<120 及 2a+2c<90 答2:也可以是2a+b<90 及 2a+2c<120。 问:试试看哪种情况体积大? [讨论] 在体积最大的前提下,哪种情况铁皮利用率大? 练习5.1 选点 如图,P, Q到河岸的距离分别为10, 8,试选一点R,使得R到河岸的距离及RP, RQ的和最小。 P R Q 河岸 ←6→ 6. 生产安排 某工厂在计划内拟生产I, II两种产品,已知生产单位产品所需的设备台时及A, B两种原材料的消耗如下表: I II 总量 设备(台时) 3 4 36 原材料A(kg) 0 2 12 原材料B(kg) 1 0 8 该工厂生产一件产品I可获利3百元,生产一件产品II可获利5百元。 应如何安排生产? 若该工厂决定不生产,而将上述资源出租,问总租金应为多少? [讲评] 问:问题(2)是相对于问题(1)的影子价格问题,运行问题(1)的lingo求解后,在solution report 中的 dual cost 栏中显示。我们不妨假设,原材料A的单价为a百元/公斤,原材料B的单价为b百元/公斤,设备费为c百元/台时。因为3台时设备和1公斤原料B可生产一件产品I,等价于可获利3百元,所以,3*c+b>3,同理,4*c+2*a>5。但是作为承租方希望总租金最少:min=36*c+12*a+8*b。 [讨论] 若增加1公斤原材料A,总获利增加多少?若市场上有x公斤的原材料出售,你愿以何种价格收购? 7. 组建混合泳接力队 Doc Councilman 正组建一支400米混合泳(自由泳,仰泳,蝶泳,蛙泳)接力队,有四位泳将,GARY HALL,MARK SPITZ,JIM MONTGOMERY,CHET JASTREMSKI,他们四项游泳项目成绩如下表, Doc Councilman应如何安排四位泳将的接力项目? 单位:秒 自由泳 蛙泳 蝶泳 仰泳 GARY HALL 54 54 51 53 MARK SPITZ 51 57 52 52 JIM MONTGOMERY 50 53 54 56 CHET JASTREMSKI 56 54 55 53 [讲评] 问:问题的目标是什么? 答:接力赛成绩最好 问:限制条件是什么? 答:每人只能参加一项,每项都须有人参加。 问:如何表示这种限制条件? 答:设置一个4×4的选择矩阵(每个元素只能是1或0),矩阵每行每列的和均为1 问:如何表示接力赛成绩? 答:设的矩阵与成绩矩阵点乘(对应元素相乘)后对所有元素求和 8. 工作指派 四项工作指派给五个员工(每项工作只能由一人单独完成),每人完成各项工作耗时如下表,如何指派使得完成四项工作总耗时最少? 工作1 工作2 工作3 工作4 员工1 22 18 30 18 员工2 18 - 27 22 员工3 26 20 28 28 员工4 16 22 - 14 员工5 21 - 25 28 (注: 横线表该员工不宜完成该项工作) [讲评] 问:碰到横线怎么办? 答:设成很大的数 问:5个人4项工作如何表示? 答:每列的和为1(工作须有人做),每行的和小于或等于1(有机会不做) 9. 森林砍伐 已知森林具有6年的生长期,我们把森林中的树木按照高度分为6类: 第1类树木的高度为[ 0, h1 ],它是树木的幼苗,其经济价值为p(1)=0; 第k类树木的高度为[ h(k-1), h(k) ],每一棵经济价值为p(k); 第6类树木的高度为[ h(5), ∞ ],经济价值为p(6)。 设每年对森林砍伐一次,且为了维持每年都有稳定的收获,只能砍伐部分树木,留下的树木和补种的幼苗,经过一年的生长期后,应该与上一次砍伐前的高度状态一致。 再假设在一年的生长期内树木最多只能生长一个高度级,即第k类的树木可能进入k+1类(比例为g(k)),也可能停留在k类中。设 g(1)=0.28, g(2)=0.32, g(3)=0.25, g(4)=0.23, g(5)=0.37 p(2)=50元, p(3)=100元, p(4)=150元, p(5)=200元, p(6)=250元。 求出对其进行最优采伐的策略。 [讲评] 问:如何描述砍伐前后森林高度状态的变化? 答:设森林的总面积为1,6类高度树木分别为x(1), x(2), x(3), x(4), x(5), x(6),被砍掉的面积分别为y(1), y(2), y(3), y(4), y(5), y(6)。 x(1)先变为x(1)-y(1),由于补种树苗的原因,x(1)变为 x(1)-y(1)+(y(1)+y(2)+y(3)+y(4)+y(5)+y(6)) 最后由于树木生长原因,x(1)变为 ( 1-g(1) )×( x(1)-y(1)+( y(1)+y(2)+y(3)+y(4)+y(5)+y(6) ) ) x(2) 先变为x(2)-y(2),后由于树木生长原因x(2)变为 (1-g(2))×( x(2)-y(2) )+ g1×(x(1)-y(1)+(y(1)+y(2)+y(3)+y(4)+y(5)+y(6))) 同理, x(3)=(1-g(3))×(x(3)-y(3))+g2*(x(2)-y(2)) … x(6)=(x(6)-y(6))+g5*(x(5)-y(5)) [讨论] 修改p2, p3, p4, p5, p6, g1, g2, g3, g4, g5的值,看看砍伐策略的变化情况。 10. 公交线路招标 Chicago教育委员会为该城市的四条学生公交线路招标。四家公司做出如下竟标: 线路1 线路2 线路3 线路4 公司1 4000 5000 - - 公司2 - 4000 - 4000 公司3 3000 - 2000 - 公司4 - - 4000 5000 (a) 假设每位竟标者至多可分配到一条线路,问委员会将如何招标? (b) 假设每位竟标者至多可分配到两条线路,问委员会将如何招标? 11. 运输和生产方案 福特在L.A. 和 Detroit生产汽车,在Atlanta有一仓库,供应点为Houston 和 Tampa;城市间每辆汽车运输费用见下表。 L.A.的生产能力为1100辆, Detroit的生产能力为2900辆。Houston汽车需求量为2400辆,Tampa汽车需求量为1500辆。 L.A DETROIT ATLANTA HOUSTON TAMPA L.A.(工厂) 0 140 100 90 225 DETROIT(工厂) 145 0 111 110 119 ATLANTA(仓库) 105 115 0 113 78 HOUSTON(供应点) 89 109 121 0 - TAMPA(供应点) 210 117 82 - 0 如何确定运输和生产方案,才能满足Houston 和 Tempa的需求且费用最低。 [讲评] 问:这个问题是否很简单? 答1:这是一个从L.A. 和 Detroit到Houston 和 Tampa城市间的汽车运输问题,仓库Atlanta完全多余 答2:仓库Atlanta可降低运费,例如,从L.A. 经过Atlanta到达Tampa比从L.A. 直接到达Tampa便宜 问:这是运输问题中的转运问题,任何一个地点都可以输入也可以输出。生产点(L.A. 和 Detroit),仓库(Atlanta),需求点(Houston 和 Tampa)的输入和输出须满足什么条件? 答:生产点:输入减输出等于产量;仓库:输入等于输出;需求点:输出减输入等于需求量。 12. 化肥调拨方案 设有三个化肥厂供应四个地区的农用化肥。假定等量的化肥在这些地区使用效果相同。各化肥厂年产量,各地区年需要量及从各化肥厂到各地区运送单位化肥的运价(万元/万吨)如下表所示。试求出总的运费最省的化肥调拨方案。 需求地区 化肥厂 I II III IV 产量(万吨) A 16 13 22 17 50 B 14 13 19 15 60 C 19 20 23 禁止 50 最低需求(万吨) 30 70 0 10 最高需求(万吨) 50 70 30 不限 [讲评] 问:地区IV最高需求为不限,是不是无限大的意思? 答1:是的 答2:不是,地区IV最多可得到(50+50+60)(总产量)-(70+30)(其它地区最小需求)=60 13. 物资运输 某航运公司承担6个港口城市A, B, C, D, E, F的四条固定航线的物资运输任务。已知各条航线的起点,终点城市及每天航班数见下表: 航线 起点城市 终点城市 每天航班数 1 E D 3 2 B C 2 3 A F 1 4 D B 1 假定各条航线使用相同型号的船只,由各城市间的航程天数见下表: 到 从 A B C D E F A 0 1 2 14 7 7 B 1 0 3 13 8 8 C 2 3 0 15 5 5 D 14 13 15 0 17 20 E 7 8 5 17 0 3 F 7 8 5 20 3 0 又知每条船只每次装卸货物的时间各需1天,则该航运公司至少应配备多少条船,才能满足所有航线的运货要求。 [讲评] 问:若城市x(起点),y(终点)间航程为4天,每条船只每次装卸货物的时间各需1天,空船从空船从y到x只需2天,每天航班数为5,应配备多少条船? 答1:5条 答2:若一天发出5条船,第二天便没船可发,应备5×(4+2)=30条 答3:6天过后,离开x的船还没回来,应备5×(4+2+2)=40条 问:该题中4条航线需多少船? 答1:3×(17+2)+2×(3+2)+(7+2)+(13+2)=91 答2:91条不够,城市E处的船只够19天(51条),E每天需3条空船。同理, A和 B每天均需1条船;而C, D, F处每天分别多出2 , 2, 1条船。 答3:这这正好是一个C, D, F到E, A, B的运输问题。 14. 确定航线和航班 Indianapolis航空公司计划每天从Indianapolis飞6个航班,计划目的地为: New York, Los Angeles, 或 Miami。下表列出各航线的日收益与航班次数的关系。 航班次数 1 2 3 4 5 6 NEW YORK $80 $150 $210 $250 $270 $280 LOS ANGELES $100 $195 $275 $325 $300 $250 MIAMI $90 $180 $265 $310 $350 $320 试帮该公司确定航线和相应的航班次数。 [讲评] 问:如果,NEW YORK飞3个航班,LOS ANGELES飞2个航班,MIAMI只能飞1个航班了,如何用数据表示这种安排(有利于收益的计算,及限制条件的表示)? 答:上述安排对应于下表: 航班次数 1 2 3 4 5 6 NEW YORK 0 0 1 0 0 0 LOS ANGELES 0 1 0 0 0 0 MIAMI 1 0 0 0 0 0 1表示选择,0表示不选。 正好可以设计一个选择矩阵(3行6列)。 15. 安排机器生产 某种机器可在高低两种不同的负荷下进行生产,设机器在高负荷下生产的年产量函数为:y=8x(x为投入生产的机器台数),年完好率为0.7;机器在低负荷下生产的年产量函数为:y=5x(x为投入生产的机器台数),年完好率为0.9。 假定开始生产时完好的机器数量为1000台,试问每年如何安排机器在高、低负荷下的生产,使在五年内生产的产品总产量最高。 [讨论] 如果5年末完好机器数必须为500台,又将如何? 16. 生产与库存 某工厂要对一种产品制定今后四个时期的生产计划,据估计在今后四个时期内,市场对于该产品的需求量如表所示。 假定该厂生产每批产品的固定成本为3(千元),若不生产为0;每单位产品成本为1(千元);每个时期生产能力所允许的最大生产批量为不超过6个单位;每个时期末未售出的产品每单位需存储费0.5(千元)。 还假定在第一个时期的初始储存量为0,第四个时期之末的库存量也为0。 试问如何安排各个时期的生产与库存,才能在满足市场需要的条件下,使总成本最小。 时期 1 2 3 4 需求(单位) 2 3 2 4 [讲评] 问:如何处理生产固定成本? 答:设计一个生产判断变量数组x,若生产则x(i)为1,不生产则x(i)为0 问:如何表示每个时期的产量? 答:设计一个产量数组y,x(i)*y(i) 则为第i时期的产量。 17. 宽带网速 下图为一网络,节点1到节点2的宽带带宽为6兆,节点1到节点3的宽带带宽为2兆,节点2到节点4的宽带带宽为3兆,…,节点4到节点6的宽带带宽为2兆,求节点1到节点6的最大网速。 1 2 3 4 5 6 2 3 1 3 2 7 7 6 [讲评] 问:节点1到节点6的最大网速受什么限制? 答1:受节点1输出宽带带宽的限制。 答2:还受中间节点2,3,4,5输入和输出宽带带宽的限制。 答3:中间节点的输入等于输出。 问:如何表示节点1到节点6的最大网速? 答:节点1的输出或节点6的输入。 [讨论] 若想提高节点1到节点6的最大网速x兆,如何实现? 18. 网络传输费用问题 在网络传输过程中有时得考虑费用问题,下表中的单位成本是指流经该宽带单位流量的费用,考虑从节点1 到节点 5的最小费用最大流。 宽带 ( 1, 2 ) ( 1, 3 ) ( 2, 4 ) ( 2, 5 ) ( 3, 2 ) ( 3, 4 ) ( 4, 5 ) 带宽 10 8 2 7 5 10 4 单位成本 4 1 6 1 2 3 2 19. 工序安排 某项研制新产品的各个工序,工序所需时间及相应费用,工序极限时间及相应费用,以及工序之间的相互关系如表: 工序代号 正常情况 采取措施后 缩短一天工期代价 紧后工序 正常时间(天) 直接费用 极限时间(天) 直接费用 a 60 10000 60 10000 -- b,c,d,e b 45 4500 30 6300 120 l c 10 2800 5 4300 300 f d 20 7000 10 11000 400 g,h e 40 10000 35 12500 500 h f 18 3600 10 5440 230 l g 30 9000 20 12500 350 k h 15 3750 10 5750 400 l k 25 6250 15 9150 290 l l 35 12000 35 12000 -- l 研制过程中每天间接费用为400元。 (1) 试作出流程图,并求出正常情况最早完工时间 [讲评] 问:我们通常用 i j x 来表示工序x。 1 2 3 4 5 8 7 6 c e d b f 0 h g k l a 工序( 3, 6 )是虚拟工序,仅用来表示h须在d结束后才能开始。 我们通常在各节点处摆放一个记时器,定t(1)=0,t(2)为以节点2为起点的工序中最早开始动工的时刻,t(3)为以节点3为起点的工序中最早开始动工的时刻,…,t(8)为完工时间。请问,t(5),t(7)间需满足什么关系? 答:t(5) - t(7)大于工序f所需时间。 问:正常情况最早完工时间怎么表示? 答:就是t(8)的最小值 求最短工期下的最低费用。 求最低费用下的最短工期。 20. 邮递员投递路线 如下图所示,节点间的线段表示某小区的弄堂,线段旁的数字表示弄堂的长度。邮局在其中某个节点,请设计邮递员投递路线。 5 5 9 4 3 4 4 3 4 6 4 2 1 2 3 4 5 6 7 8 9 [讲评] 问:问题的目标是什么? 答:邮递员投递线路最短。 问:邮递员投递线路的长度是否等于所有弄堂的长度和? 答:不是,每条弄堂仅过一遍,未必可行? 问:为什么? 答1:左图中的弄堂,无论邮局在哪个节点,邮递员都得跑两趟。 右图中的每条弄堂,无论邮局在哪个节点,邮递员都只须跑一次。 1 1 2 3 2 问:有没有规律? 答1:问题跟邮局的位置无关,因为邮递员的投递路线是封闭的。 答2:每个节点进出的次数应该相等。 [讨论] 如果邮递员数目是2个或2个以上又将如何? 练习20.1 邮递员投递路线 如下图所示,节点间的线段表示某区的街道,街道都是单行道,线段旁的数字表示街道的长度。邮局在其中某个节点,请设计邮递员投递路线。 2 3 1 4 3 2 5 2 1 4 2 1 2 3 4 5 6 7 问:该问题和问模型20有哪些异同? 答:大同小异,只不过街道是单向的。 21. 航班空姐配备 Braneast 航空公司须为每天飞行于New York 和 Chicago的航班配备空姐。每位空姐住在New York或Chicago。每天每位空姐须飞一班New York-Chicago和一班Chicago-New York,空姐飞两航班的间隙(滞留时间)至少为1小时,Braneast 航空公司想减少空姐们的滞留时间,应如何配备?Braneast 航空公司每天的航班见下表: 航班: 1 2 3 4 5 6 7 飞-CHICAGO: 6 9 12 15 17 19 20 达-NEWYORK: 10 13 16 19 21 23 24 航班: 1 2 3 4 5 6 7 飞-NEWYORK: 7 8 10 12 14 16 18 达-CHICAGO: 9 10 12 14 16
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服