我该用什么样的数学模型?
1、你积累了多少数学模型?要解决一个问题,有很多模型可供选用。很多模型也并无优劣之分;“不管白猫黑猫,能抓住老鼠就是好猫”。
问题在于,你积累了多少数学模型。
或者说,更重要的问题是,你建模的能力,训练得如何了?That dominates。
2、选模型,要慎重模型的优劣,直接决定你的成绩。(至少,是直接决定你成绩的大部分,因为模型占到最终成绩的 40%。)
1、不要头脑发热
如 2009 CUMCM B 题。很多队伍上来就直接假设每天病人到来的数量服从泊松分布。对的,一般来说,在排队系统中顾客到来都服从泊松分布,但是这个题目给了你数据,你实际拟合一下,真的能够拟合成泊松分布吗?何况,这个题目不仅要考虑每天的到来数量,还要考虑服务时间、间隔时间等等,很多队伍一上来就应用成了错误的排队模型。
做题的时候,不要想当然,也不要陷入那种思维的定势,顾客到来不一定就是泊松啊!
2、考虑问题要细致
还是拿 2009 CUMCM B 题举例。这个题目难就难在,我们要提出一个比 FCFS(First come, first serve,先到先服务)更好的排队方法。因为,从题目给的数据我们看到了,FCFS 实在不是一个很好的排队方案。
而何谓“更好”?那就要提出自己的评价模型。很多人考虑到了评价的最重要标准,也即题目提到的提高床位利用和周转效率。然而,部分队伍可能就忽略了第二点:不能让某一个人等待太长太长的时间。如果整体的周转率上来了,可是有某些病人因为优先级低,永远都排不到他,那这不是一个好的排队模型。
能够这样想一遍出来,那么你的思路跟出题人的思路就能很好地切合了。题目的 5 个小问,就是按照这样的思路提出来的。
那么,你的模型就可以提出来了。第一小问,先提出评价模型,那么基础指标就至少有这么三个:床位利用率,病床周转效率,以及病人最长等待时间。第二小问,排队模型,用优先级的方法,每天对等待队列中的每个病人计算优先级,然后按照优先级重拍,安排队首病人入院。
思路已经清晰了。恭喜恭喜。:)
3、注意模型适用性要广
2009 CUMCM B 题有一个很好玩的地方,它前四问是连在一起的,你的模型要一直用四问。所以,做第一第二小问时,你就要考虑这样的模型在第三第四小问中是不是仍旧好用。
选模型还有很多很多的注意点想说。但是一篇文章,实在说不完。只想再次提示大家:
模型很重要,模型决定了你的论文的评级。所以,一定要重视模型。千万不要出现这样的情况:有些队伍的论文,洋洋洒洒二三十页,乍一看好像也把问题漂漂亮亮地解决了,然而再稍仔细看一下,就发现了一个致命的问题:
你的模型在哪里?你用了什么模型?
数学建模数学建模,你都没有模型,你写个毛论文啊!
但是记着,一定要——
3、用你熟悉的模型很多队伍喜欢用“很炫”的模型,模拟退火,遗传算法,神经网络,等等等等。
这些算法都是很好的算法。特别对于困难问题,这些算法能够用较低的时间耗费得到一个不错的可行解,有可能还会是最优的。(额外说一句,很多建模问题不太可能得到一个最优解,你也很难证明自己的解最优;一般情况下,得到一个可行解,并且说明你的可行解实际上比较优秀就可以了。)
如果你喜欢此类算法,我一定要先给你泼一次冷水:你真的理解这些算法吗?
实际上,用这些算法的队伍,除了很牛的队伍,一般就是很水的队伍。有些队伍对 2009 CUMCM B 题采用神经网络求解,可是忘了很重要的一点:原题中就给了你 300 多个数据,你拿什么去训练你的 ANN?—— 不理解神经网络,你用神经网络干什么呢?还有,你们队伍能不能编程实现这个神经网络呢?
阅卷老师对于这类高级算法,一般是比较反感的(我自己的感觉,不一定确实是这样)。很多问题用较初等的模型就可解,为什么非要用高等模型?你真的懂吗?
能用初等模型解的,就不要用高等模型。能用简单方法解的,就不要用复杂方法。
比如 2009 CUMCM B 题,是眼科病床的合理安排模型。你搞一个神经网络出来,是明显的不考虑实际应用环境。哪家医院会专门雇个人去给你搞神经网络去?
记着,我们的目的,不是向阅卷老师炫我知道多少多少高等模型,而是要告诉阅卷老师:我把这个建模问题漂漂亮亮地解决了,我给出了一个简单易行的方法,得到了一个令人满意的解。(当然,若你是大牛能把这些高级算法用得得心应手,那就准备拿国特吧,嘿嘿。)
做任何事情,都是这样。我们是来解决问题的,不是来耍大刀的。
《数学建模——走过就是收获》写了三篇了。基本上,关于模型和论文的东西,都已经说得差不多了。其实这些东西,你去好好参加一次,拿了奖回来也能洋洋洒洒写这么多。“走过就是收获”的含义,也在于此。
下面的第四篇文章,就讲队友之间的分工与合作吧。
Related posts:
来源网址