第二十三章 商人与随从的经典建模问题

看着教室里的两人,刘向平教授微微愣了下,笑着问道:“只有两个人吗?我听说还有一个。”

“……我打个电话问一下她。”王晓东表情尴尬,拿着电话去了外面。

那老师也不着急,拧开保温杯,抿了口热水,慢悠悠地走到了陆舟旁边,笑着问:“你们队伍的配置是什么情况?”

陆舟放下手机,笑着回答道:“我负责建模,王晓东负责编程,林雨湘负责撰写论文和答辩。”

“建模、编程、写作,标准配置啊,”刘老师笑了笑,继续说,“说起来,你就是一三届的那个陆舟吧,你的那篇论文我看了,确实是篇好文章啊。”

陆舟眼睛一亮:“老师您也是搞数学的?”

“算是吧,不过我的研究方向偏向物理,数学论文倒是很少发了。”刘老师眯了眯眼睛,看了眼教室门口,笑着继续说,“你们这位女同志,似乎不怎么靠得住啊。”

陆舟尴尬而不失礼貌地笑了笑。

刘老师也笑了笑,没在这个问题上多说什么,停顿了片刻,便继续说:“关于你们组队的配置,我建议你们可以稍微调整。建模和论文由同一个人负责,其余的两个人负责编程。这样的好处是,负责建模的人对整个题目在全局上有着较强的把握,行文思路更加流畅。然而坏处当然也有,那就是你的担子会很重。比赛时间总共只有三天,这就意味着你在完成建模之后,必须立刻开始论文写作。”

陆舟若有所思:“……两个人负责编程吗?”

刘老师抿了口茶,慢悠悠地说道:“没错。”

陆舟笑了笑,没有立刻给出答复:“我再考虑考虑吧,毕竟这事儿也得和队友商量下。”

这时候,走廊外传来小跑的脚步声,最后一位队友总算是姗姗来迟。

“不好意思啊,我稍微起晚了点,真的真的很对不起!”和王小东一起走进教室,林雨湘一脸抱歉地向老师低下头认错。

“没事儿,既然人到齐了,咱就赶快开始吧。”刘向平老师随和地笑了笑,也没责怪她迟到的问题,转身走到了讲台上,将U盘插进了电脑,并打开了投影仪,放出了他的PPT。

“在开始讲课之前,我希望你们先来看一道例题。这道题本身没什么难度,不过却可以作为一道数学建模的案例。我希望通过这套案例,能让你们先明白数学建模究竟是什么?”

说着,他按下鼠标,将ppt翻到了下一页。

“三名商人各带一个随从乘船过河,一只小船只能容纳二人,随从们秘约,在河的任一岸,一旦随从的人数比商人多,就杀人越货,但是如何乘船渡河的大权掌握在商人们手中,问:商人们怎样才能安全渡河呢?”

确实,这道题没有任何难度。

即便不凭借系统的力量,陆舟也很快想出了答案,回答道。

“第一轮,两个随从过去,一个随从回来。”

“第二轮,再两个随从过去,一个随从回来。”

“第三轮,两个商人过去,一个随从和一个商人回来。”

“第四轮,两个商人过去,一个随从回来。”

“第五轮,两个随从过去,一个随从回来。”

“第六轮,最后两个随从过去,成功渡河!”

“啪啪啪!”林雨湘拍着小手小声鼓起掌,脸上满是崇拜。

王晓东脸上的表情不为所动,一副世外高人的模样。

在他看来这道题确实没什么难度,虽然没动脑去算,可他相信自己的智商,顶多稍微花点时间同样解得出来。

“完全正确。”刘老师笑了笑,继续说,“即便不用到任何数学知识,单纯通过逻辑分析也能解决这个问题。可如果将问题推广到N个商人呢?”

这个问题确实有些难度,不过难却不是难在数学方面,而是难在如何将这道题目抽象成数学问题进行解决。

陆舟认真思索了一会儿,脑子里已经有了一条大致的思路。

“我可以用下黑板吗?”

“当然可以,”刘向平教授笑着做了个请的手势。

陆舟走上前去,拿起粉笔开始在黑板上板书。

【①记第k次渡河前此岸的商人数为Xk。随从数为Yk,k=1,2,……,Xk,Yk=0,1,2,3。将二维向量Sk=(Xk,Yk)定义为状态,安全渡河条件下的状态集合为允许状态集合,记做S。

可得S={(X,Y)|X=0,Y=0,1,2,3;X=3,Y=0,1,2,3;X=Y=1,2}

②记第k次渡船上的商人数为Uk,随从数为Vk。将二维向量Dk=(Uk,Vk)定义为决策。允许决策集合记做D,由小船容量可知:D={(U,V)|1≤U+V≤V,U,V=0,1,2}

③综合以上结论,状态Sk随Dk的变化规律是:S(k+1)=Sk+(-1)^k*Dk

“好厉害……”一脸茫然的看着黑板上的板书,林雨湘微微张着嘴,看着从讲台上走下来的陆舟,惊讶地小声问,“你都不需要打草稿的吗?”

“在心里打好了。”陆舟笑了笑说道。

王晓东同样一如既往很沉默,没有说话。

不过从他的表情来看,这位高傲的学霸对于陆舟的数学能力,算是彻底服气了。

看了眼黑板上的过程,刘向平教授笑着点了点头:“完全正确!不过从数学建模的角度来看,这项工作只能算完成了一半。在完成了建模之后,我们还需要一个程序,将这个模型进行实现。当然了,这个模型很简单,我相信以咱们王同学的能力,这种级别的程序肯定是信手拈来,就不在这里浪费宝贵的时间了。”

王晓东推了推眼镜,脸上的表情依旧一脸淡漠,一副那是当然的样子。

虽然没机会现场展现他的编程技术,让他有些小遗憾就是了。

停顿了片刻,刘老师继续说道,“数据建模实际上就是将一个实际的问题简化为一个可以用数据和很简短的语言能表示出来的问题,然后通过数学工具解决这个问题的过程。”

“因此,关键是你们队要面临的实际问题是什么?”

“建模既不是考察团队的编程能力,也不是考察数学能力,而是考察将实际问题转化成数据语言和求解的能力,这一点你们一定要记住。”

“关于建模本身的话,我并没有太多建议,这个除了多练和拓宽知识面之外没有更多的捷径。至于编程这方面,我倒是可以说两句。”

“常用的软件主要四种,Matlab、Mathematica、lingo和SAS,不需要你全部掌握,至少能掌握其中一种就行了,关键是能够运用适合自己的软件来解决实际问题。”说这话的时候,刘向平教授在看着王晓东。

因为这句话,主要就是说给他听的。

王晓东推了推眼镜,点头道:“Matlab和SAS我用过,问题不大。”

刘教授点了点头:“会这两个软件基本够了。这些东西都需要你们自学,我能做的也就是在你们不懂的时候提供指导。”

“最后是关于参考书,我推荐你们可以看一些数学建模案例等书,比如《数学模型》、《数学建模算法与应用》以及《数学建模基础教程》这三本。”

“我这里还有一些学校内部的讲义和资料,你们可以拷贝回去看,但记住不得外传,更不能上传到网上。明白?”

“明白!”三个人异口同声道。

刘教授笑了笑,说:“行了,那今天就到这里,我也没别的什么可说的,主要还是靠你们自己。需要资料的来我这下载,下完了就赶紧回去复习英语吧。”