ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 海底眼

[原创] [规划求解] 入门问题,供初学者锻炼之用

[复制链接]

TA的精华主题

TA的得分主题

发表于 2005-4-23 23:47 | 显示全部楼层
本帖已被收录到知识树中,索引项:假设分析

这么好的东东,我再顶一下,期待海大侠周一来讲课.

我把32楼的例子汉化了一下,这样有助于学习.

2OmQShwO.rar (132.45 KB, 下载次数: 382)
[此贴子已经被作者于2005-4-23 23:48:22编辑过]

TA的精华主题

TA的得分主题

发表于 2005-4-23 23:56 | 显示全部楼层
呵呵,之前还可以猜猜,被你汉化了猜都猜不出了。。。

TA的精华主题

TA的得分主题

发表于 2005-4-24 00:37 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

呵呵,不错的一个问题.

TA的精华主题

TA的得分主题

发表于 2005-4-24 09:22 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

[讨论]怎样能求出所有符合条件的方案?

海底眼楼主好:

想破脑子只求出了一种方案,好像该题还有好几种方案都能达到目标值,怎样能求出所有的方案?期待你的答复!

[em02]

TA的精华主题

TA的得分主题

发表于 2005-4-24 09:28 | 显示全部楼层

[灌水]忘传附件了!

EH7777gg.rar (2.75 KB, 下载次数: 98) 另:如论坛有E文高手能将规划求解的翻译下来多好啊!还有建议学一点运筹学,很有帮助的!

TA的精华主题

TA的得分主题

发表于 2005-4-24 18:21 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

TO:45楼

你的问题只要选择约束条件不就可以了吗?

[此贴子已经被作者于2005-4-24 18:21:55编辑过]

eL1w64JE.rar

15.62 KB, 下载次数: 80

TA的精华主题

TA的得分主题

发表于 2005-4-24 21:25 | 显示全部楼层

?

如果有二解...那規劃求解怎麼求第二解??

(瓶子水那題???)

弄都弄不出來~~???

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-4-25 16:28 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

很高兴看到大家对此感兴趣,由于本人水平与时间都有限,很难一一回答诸位朋友的问题,在此非常感谢楼上帮忙解答问题,介绍知识的大侠

此外,附上一些 规划求解,最优化问题 的资料,供大家自行研究

其实由于有了出色的计算机软件( Excel,Lindo/Lingo,Matlab......)

做这类问题不需要什么高数知识的,除非你打算自己写求解的程序 :-(

Lindo/Lingo 软件,比 Excel 强大得多,也难学得多,可以在 http://www.lindo.com/ 下载永远免费的学生版,功能有限制(但已经比 Excel 强大了!),还可以找破解呢

Lingdo/Lingo 的学习,其软件本身有很详细的帮助,不过是全英文,而且要求读者有一些计算机编程经验

我本人不大推荐初学者去摆弄这个软件,毕竟是全英文的一个计算机编程语言.先在全中文容易操作的 Excel 学会最优化的 问题归纳,数值表达,公式设置,条件设置等等,再去学 Lindo/Lingo 也不迟

Lindo/Lingo 作为比较有名的软件,在网络搜索可以找到一大堆教程

这里附上一个几乎是最简单的入门教学

Cz2Imz0w.rar (46.75 KB, 下载次数: 209)

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-4-25 16:54 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

关于37楼, 38楼的疑惑 : "Excel 在问题有少许改变的时候,需要重新设置条件,很麻烦"

我个人的解决方法是这样的:

Excel 的规划求解模块,可以保存和装入一个解题方案, 保存位置是在一些你指定的普通的单元格上,所以用 VBA 直接改变这些单元格的内容,就可以改变规划求解的方案了

这等于是把 规划求解作为一个被调用的子模块,而自己的VBA语句作为预处理界面

有时候还可以借助宏和Excel本身就有的大量函数来随机应变

关于 求出一个问题的所有可行解 的问题

我的答案是:

1 实际应用上,你不需要求出所有可行解,比方说,在楼顶的装水问题中,水缸容积=125,所以所有能够装出125的方案,都是毫无区别的,找到一个就够了,如果认为某些125方案比其他的好,那么其实就是加入了一个新的条件了,你必须把 判断哪些125方案更好 的判断方法,写进新的规划求解约束条件里面

比方说,我们还希望尽可能少打开瓶子(或者说,优先打开大瓶子),这样就必须做 一个跟打开瓶子的数量有关的函数,比方说 =countif(状态 = 打开 的瓶子), 然后在约束条件加入 这个函数的单元格 <= 8 (希望可以找到只用8个瓶子就能完成 125完美装水)

2 比较大型的问题,如 100000个瓶子装入 1000 个容积各不相同的缸,这时候,瓶子-水缸 的组合方案是一个天文数字,用上全世界所有的计算机,都不可能在可接受的时间内把每一个解都找出来

这类大型问题的方法,目前还是世界性难题,谁能完全解决估计就能拿菲尔兹奖了. ^_^

幸好,实际生活也没有这么巨大的问题,或者可以把巨大的问题分割为许多小规模问题,逐一处理.

3 最后,如果一定要找出几个不同的 125解决方案 玩儿

可以试试增加约束条件 (比方说,一定不用某个已有方案选择了的瓶子,或者相反,一定选择某个没有被选择过的瓶子)

不过这类问题最让人头疼的是,对于大型问题:

1 不一定有解,而且在真正求解之前,无法确定这一点

2 有解也不一定能找到,可能一个解都找不到(大型问题)

对于初学者解决简单问题,经常头疼的是,除非你知道一定有解,否则在计算机给出无解的答案时,很难判断究竟是真的无解,还是自己的方案有错误. kakaka......

TA的精华主题

TA的得分主题

发表于 2005-5-6 19:56 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
近段时间,我花了比较多的时间学习运筹学和lindo的软件,可惜当初对线形代数学得不太好,只是有一些懂了,这里我非常感谢,提出lindo/lingo软件的楼主,不然,我并不知道什么软件有这样的功能,我相信通过学习一定能了解的。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-22 01:12 , Processed in 0.036372 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表