- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工作范文]离散最优化模型
离散最优化模型 李 治 hzau_lizhi@mail.hzau.edu.cn 华中农业大学理学院 指派问题 如求6个人做6项工作的最优指派,收益情况如下表。 指派问题 model: title 指派问题; sets: flight/1..6/; assign(flight,flight):c,x; endsets data: c=20 15 16 5 4 7 17 15 33 12 8 6 9 12 18 16 30 13 12 8 11 27 19 14 -99 7 10 21 10 32 -99 -99 -99 6 11 13; enddata 最短路问题与TSP问题 这两个问题是图论中与优化有关的常见问题,即使不专门考察,在竞赛中经常也会以不同形式涉及。 如00年钢管运输与98年灾情巡视 07年“乘公交、看奥运” 哈密尔顿回路问题 这样找从一点出发不重复地走过所有的结点,最后又回到原出发点的路径的问题,在图论中称为“哈密尔顿回路问题” “哈密尔顿回路问题”与“欧拉回路问题”的不同点 “哈密尔顿回路问题”是访问每个结点一次,而“欧拉回路问题”是访问每条边一次。 对图G是否存在“欧拉回路”,欧拉已给出充分必要条件,而对图G是否存在“哈密尔顿回路”至今仍未找到满足该问题的充分必要条件。 欧拉回路问题也称为“中国邮递员问题”。中国数学家管梅谷于1960年首先研究并给出算法。 例7 已知六个城市之间的距离矩阵,求从1出发回到1的TSP路线。 D=0 702 454 842 2396 1196 702 0 324 1093 2136 764 454 324 0 1137 2180 798 842 1093 1137 0 1616 1857 2396 2136 2180 1616 0 2900 1196 764 798 1857 2900 0; 装箱问题的求解——贪婪算法 NF(Next Fit-下次适应)算法:按照物体给定的顺序装箱:把物品wi放到它第一个能放进去的箱子中。Bj是具有最大下标的使用过的箱子,若wi的长度不大于Bj的剩余长度,则把wi放入Bj,否则把wi放入一个新的箱子Bj+1,且Bj在以后的装箱中不再使用。 最后循环 背包问题的求解——分支定界 例12 假定我们有四种物品要装包,限重10,各样东西价值为 c = {1,3,5,9}, 单重为w = {2,3,4,7}。 我们用分支定界法求解背包问题,首先对物品按单位价值从大到小编号 ,使得 动态规划 求下面加权有向图中从A到G的最短路: 最优化原理 一个最优策略具有这样的性质,即不论初始状态与初始策略如何,对于先前决策所造成的状态而言,下余所有决策必构成最优决策。 数模算法的选择 我们碰到一个新问题时,如何去构造它的算法呢? (1)肯定想发现一个新的有效的算法,对所有的输入条件总能得到一个最优解。如果我们怀疑这个问题是NP完全的,那怎么办呢?最好先去证明它是NP完全的。对于指数的算法、或者幂高于n3的多项式算法,我们都是不够满意的。这时,我们试着考虑下面几点: (2)如果一下找不到有效的算法,可以考虑先把问题限制在某些特殊情况或极端情况,在研究了特殊情况的结果后,再逐步推广到一般的结果。我们习惯地把当前的问题归结到一个已知的问题,但这样在处理过程中可能会丢失某些结构。 (3)如果碰到的问题输入规模很大,又很复杂,设法把这些输入分成几个子集合,从而得到几个可以分别求解的子问题,在分别地解决各个子问题后,还可以找到适当的方法把它们合并成原问题的解。这是分而治之的策略。 (4)我们也可以考虑用一些通用的方法来求解这个问题,如分支定界法、动态规划或割平面法等。 (5)启发式算法。最优算法有时是有效的,也有些却十分麻烦,计算量非常大,以至于实际上是不可行的。实际求解问题要考虑经济效果,最优难以达到,次最优已经足够好的了。这就考虑采用启发式算法,直观上看很好,或者有时候还能够得到最优解。通常,我们考察若干个实际情况,先在一些小的数值样本上做试验,形成我们的直觉,并从中构造出一个启发式算法。这个算法在有些情况下取得成功,得到最优解,而在另一些情况下却行不通了。这是可以研究输入数据的特征,考虑在什么样的输入数据范围内才能保证这个启发式算法能够正常地工作,得到最优解;若不能得到最优解的情况,应该建立(相对)误差的上界。分析这个算法的适用范围,以确保误差能够被接受。 按本例所给数值,取j=0时,因就是前述普通贪婪算法,已经得到100的结果;取j=1时,共有8种方案,当用29或23先装入时,可得到54+29+23+1=1
文档评论(0)