数学建模Lingo求解动态规划二_第1页
数学建模Lingo求解动态规划二_第2页
数学建模Lingo求解动态规划二_第3页
数学建模Lingo求解动态规划二_第4页
数学建模Lingo求解动态规划二_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验二、lingo求解优化问题_目的1. 使学生掌握运用lingo求解最短路问题的方法;2. 使学生掌握运用lingo求解运输问题的方法;3. 使学生掌握运用lingo求解分配问题的方法;4使学生掌握运用lingo求解动态规划问题的方 法;二内容与步骤1.集操作函数lingo提供了几个函数帮助处理集(1) in(set_name? primitivendex_lprimitive_index_2 )a i i i i(/i i如果元素在指定集中,返回1;否则返回0。例:全集为i, b是i的一个子集,c是b的一个补集。b(i)/x2/;c (i) | #not#in(b,&l):;(i)

2、来标记一个成员资格过滤器的开始endset s&i可看作派生集的第i个原始父集的索引,它取(2) index(set_name,primitive_index_element)该函数返回在集中原始集成员 primitive_index_element的索引。如果被忽略,贝!jlingo 将返回与 primitive_index_element 匹配的第一 个原始集成员的索引。如果找木到,则产生一个错 误。例:如何确定集成员但,y)属于派生集s3.sets:sl/a b c/;s2/x y z/;s3(sl,s2)/a x ,a z,b y,c x/;endsetsx=in (s3, &

3、#169;index (si, b), ©index (s2, y);看下面的例子,表明有时为index指定集是必要 的!例:sets:girls/debble, sue, alice/;boys/bob, joe, sue, fred/;endsets11= index (sue);12= index (boyssue);注:il的值是2, 12的值是3。建议在使用index函数 时最好指定集。(3) wrap(indexjimit)该函数返回j =index-k*limit5其中k是一个整数,取适当值保证j落在区间1, limit内。该函数相当于index模再加1。该函数在循环、

4、多阶段计划编制中特别有用。(4) size(set_name)该函数返回集set_name成员个数。在模型中明确给 出集大小时最好使用该函数。它的使用使模型更加数 据中立,集大小改变时也更易维护。用动态规划方法求解。=jj=0这是一个函数方程,用lingo可以方便的解决。编制程序如下:定义/()是由p点出发至终点pn的最短路程,由最优化 原理可得f/(0 = minc“ +于(力,心1, 2,n -1fwmodel:sets:p/1. 6/: f;r(p, p)/l,2 1, 3 2, 3 2, 4 3, 4 3, 5 4, 5 4,6 5, 6/: d;endsetsdata:d=7 917

5、66276;enddataf (©size(p)=0;for (p(i) | i#lt# (size(p):f (i)=min(r (i, j) :d(i, j)+f (j); end若左边的运算符严格小于右边的运算符3. lingo函数求解运输问题一一般运输问题使用lingo软件编制程序基于产大于销或产销平衡的 模型:tnn即:匸辽bj.则运输问题的数学模型为:上1>1jn nmin工2>內m i=1 冃> bj, j = l,.,zzi=l工护二hm>1勺、oj = 1,,加j = 1,屮例2计算6个发点8个收点的最小费用运输问题。产销单 位运价如下表。b

6、】b2b3b4b5b6b7b8产量a】6267425960人24953858255总人35219743351& a47673927143a52395726541%5522814352销量3537223241324338使用lingo软件,编制程序如下: model:! 6发点8收点运输问题;!集合部分;sets:warehouses/wh 1 wh6/: capacity;vendors/v1 v8/: demand:links(warehouses, vendors): cost, volume;endsets!目标函数;min= sum (links:cost*volume);!需

7、求约束;for (vendors (j) : sum(wareho uses (i) : volume (i r j) ) =demand(j);!产量约束;for(warehouses(i): sum (ven dors(j):volume(irj)<=capac ity(i);!这里是数据;data :capacity=60 55 51 43 41 52; demand=35 37 22 32 41 32 43 38;cost=626742954953858252197433767392712395726555228143;enddataend11 4. lingo函数求解分配问题给

8、n个人分配n项工作以获得某个最高总效果的问题 第i个人完成第j项工作需要平均时间为%数学模型:min m列z=1/=1s.t.m丫 列二 1, j =z=1mxjj 二 1, i =j=1x:j =0或1,i = hmj = h皿例3现有7项工作a、b、c、d、e、f、g,需要分配给甲、使用lingo软件,编制程序如下: model:! 7个工人,7项工作的分配问题;!集合部分;sets:worker s/w 1 w7/;jobs/jl. j7/;links(workers, jobs): cost, volume;endsets!目标函数;min=sum (links:cost*volume

9、);!每个工人只能有1份工作;for(workers(i):sum (jobs(j ):volume (i, j) =1);!每份工作只能有一个人;for (jobs (j) : sum (workers (i):volume (i r j) ) =1);!这里是数据;data:cost=6 26742 54 9 5 3 85 85 2 19 74 37 6 7 3 92 72 3 9 5 72 65 5 2 2 811 49 2 3 12 4 5 10;enddataend 4. lingo函数求解动态规划模型方法:将动态规划模型转化为静态规划模型求解 例4某公司有资金10万元,若投资于项目(i=l,2,3)的投 资额为络时,其收益分别为&1(兀1)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论