基于商人过河游戏的数学建模-最新教育文档

合集下载

人猫鸡米渡河问题的数学模型

人猫鸡米渡河问题的数学模型

人猫鸡米渡河问题的数学模型

摘要:人带着猫、鸡、米过河,从左岸到右岸,船除了需要人划之外(船除了要载人外),只能载猫、鸡、米三者之一,而当人不在场时猫要吃鸡、鸡要吃米。本文将设计一个安全过河方案,使渡河次数尽量地少。模仿“商人过河”的模型设计出新的数学模型。

关键字:穷举法,Matlab运算求解。

一、问题的提出

课本P19.T5:模仿“商人过河”模型,做下面游戏:人带着猫、鸡、米过河,船除需要人划之外,至多能载猫、鸡、米三者之一,而当人不在场时猫要吃鸡、鸡要吃米。设计一个过河方案,建立数学模型,并使渡河次数尽量地少。

二、问题的分析

因为这是个简单问题,研究对象少,所以可以用穷举法,简单运算即可解题。

此问题是从状态向量A(1,1,1,1)经过奇数次运算向量B变为状态向量A(0,0,0,0)的状态。转移过程为什么是奇数次?我们注意到过河有两种,奇数次的为从左岸到右岸,而偶数的为右岸回到左岸,因此得到下述转移过程,所以最后应该是过河完成时状态转移数为奇数次。

三、问题的假设

1.1:假设船除了载人之外,至多只能载猫、鸡、米三者之一。

1.2:当人不在场时,猫一定会吃鸡、鸡一定会吃米。

四、定义符号说明:

我们将人,猫,鸡,米依次用四维向量中的分量表示,当一物在左岸时,相应的分量

记为1,在右岸时记为0.如向量(1,0,1,0)表示人和鸡在左岸,猫和米在右岸,并将这些向量称为状态向量。例如(1,1,1,1)表示它们都在左岸,(0,1,1,0)表示猫,鸡在左岸,人,米在右岸;由于问题中的限制条件,有些状态是允许的,有些状态是不允许的。凡问题可以允许存在的状态称为可取状态。A 向量定义为状态变量。比如()11,0,1,0A 是一个可取状态向量,但()20,0,1,1A 是一个不可取状态向量。此外,B 向量定义为运载变量。把每运载一次也用一个四维向量来表示。如()11,1,0,0B 表示人和猫在船上,而鸡和米不在船上,这自然是可取的运载,因为船可载两物,而()21,0,1,1B 则是不可取运载,依此规律类推。

北京工业大学工程数学-实验1-数学建模入门

北京工业大学工程数学-实验1-数学建模入门
d1100101010011000过河的方式有两种过河次数为奇数时船从此岸划向彼岸过河次数为偶数时船从彼岸划向此岸所以则状态ks随决策kd变化的规律为??kdkksks11????因此设计安全过河方案归结为求决策序列21ddddn??使状态ssk?按状态转移律由初始状态??11111?s经n步达到??00001??ns
山顶到山下的总路程为S。
由条件可知: A(8)=0,A(17)= S
B(8)= S,B(17)=0
令 :C(t)= A(t)- B(t);
则:C(8)=-S,C(17)= S;
因为C(t)为连续函数,由零点定理推出结论:在t=[8,17]之间,至少存在一点 t 使C(t)= A(t)- B(t)=0;即A(t)= B(t),因此可以证明这人必在两天中的同一时刻经过路径中的同一地点。
凌晨某地发生一起凶杀案,警方于早晨6时到达现场,测得尸温26OC,室温10OC。早晨8时又测得尸温18OC。若近似认为室温不变,估计凶杀案的发生时间。
解答:
根据Newton冷却定律,得出微分方程
dT/dt =k(T−T0)
其中k为散热系数,T0为环境温度,
则t时刻物体的温度T(t)=T0+Cekt,C为常数
(1,1,0,0)
(1,0,1,0)
(1,0,0,1)
(1,0,0,0)
(1,0,1,0)

2012-03-21-数学建模b实验题目人猫鸡米

2012-03-21-数学建模b实验题目人猫鸡米

人、猫、鸡、米安全过河问题

摘要

研究目的:本文主要对数学建模基础模型跟“商人过河”类似简单问题:人带着猫、鸡、米过河,船除需要人划之外,至多能载猫、鸡、米三者之一,而当人不在场时猫要吃鸡、鸡要吃米。试设计一个过河方案,建立数学模型,并使渡河次数尽量地少?模仿“商人过河”的模型设计出新的数学模型。

方法:用穷举法算出,用图形表述出过程及结果。

一、问题的提出

模仿”商人过河”模型,做下面游戏:人带着猫、鸡、米过河,船除需要人划之外,至多能载猫、鸡、米三者之一,而当人不在场时猫要吃鸡、鸡要吃米。设计一个过河方案,建立数学模型,并使渡河次数尽量地少。

二、问题的分析

因为这是个简单问题,研究对象少所以可以用穷举法,简单运算和图论即可解题。从状态(1,1,1,1)经过奇数次运算变为状态(0,0,0,0)的状态转移过程为什么是奇数次?我们注意到过河有两种,奇数次的为从南岸到北岸,而偶数次的为北岸回到南岸,因此得到下述转移方程,所以最后应该是事件结束时状态转移数为奇数次。

三、基本假设:

3,1假设船,划船的人外至多能载猫、鸡、米三者之一。

3,2当人不在场时,猫一定会吃鸡、鸡一定会吃米。

四、定义符号说明:

我们将人,狗,鸡,米依次用四维向量中的分量表示,当一物在此岸时,相应分量记为1,在彼岸时记为0.如向量(1,0,1,0)表示人和鸡在此案,狗和米在彼岸,并将这些向量称为状态向量。

五、模型的建立:

我们将人,狗,鸡,米依次用四维向量中的分量表示,!即(人,狗,鸡,米)。

5.1 状态向量:各分量取1表示南岸的状态,例如(1,1,1,1)表示它们都在南岸,(0,1,1,0)表示狗,鸡在南岸,人,米在北岸;由于问题中的限制条件,有些状态是允许的,有些状态是不允许的。凡问题可以允许存在的状态称为可取状态。对本问题来说,可取状态向量可以用穷举法列出来:

基于商人过河游戏的数学建模-最新教育文档

基于商人过河游戏的数学建模-最新教育文档

基于商人过河游戏的数学建模

1提出问题

文献[1]给出一个智力游戏:“三名商人各带一个随从渡河,一只小船只能容纳二人,由他们自己划行。随从们密约,在河的任一岸,一旦随从的人数比商人多,就杀人越货。但是如何乘船的大权掌握在商人们手中。商人怎样才能安全渡河呢?”此类智力问题当然可以通过一番思考,拼凑出一个可行的方案来。文献[1]中通过图解法给出了解答,但是当商人数与随从数发生变化,船能容纳的人数不是二人时,图解法就会变得复杂而难以解决问题。

因此,将上述游戏改为n名商人各带一个随从过河,船每次至多运p个人,至少要有一个人划船,由他们自己划行。随从们密约,在河的任一岸,一旦随从的人数比商人多,就杀人越货。

但是如何乘船的大权掌握在商人们手中。商人怎样才能安全渡河的问题。

除此之外,考虑了随着船载人数的增多,以及商人与仆人的对数增多到多少时,会影响商人的安全渡河的问题。

2问题分析

由于这个虚拟的游戏已经理想化了,所以不必再作假设。我们希望能找出这类问题的规律性,建立数学模型,并通过计算机编程进行求解。安全渡河游戏可以看做是一个多步决策过程,分步优化,船由此岸驶向彼岸或由彼岸驶回此岸的每一步,都要对船上的商人和随从做出决策,在保证商人安全的前提下,在有限步内使全部人员过河。用状态表示某一岸的人员状况,决策表示船上的人员情况,可以找出状态随决策变化的规律。问题转化为在状态的允许范围内,确定每一步的决策,最后获取一个全局最优方案的决策方案,达到渡河的目标。

除此以外,我们还要找出,随着船载人数的增加,商人与仆人对数达到多少时,会影响到商人不能安全过河。这里要对船载人数进行限制,因为船载人数过多时,此智力游戏会变得相当复杂,就会失去作为游戏的本来意义。

多对商人过河数学建模

多对商人过河数学建模

多对商仆过河问题

12对商人过河

——(算法中多少对可以改变,此为N=12的时候,稍加修改便可以

成为你需要的对数解决方案)

摘要

本文针对商人安全渡河的问题,采用多步决策的过程建立数学模型,求解得到了在随从没有杀人越货的情况下的渡河方案。

对于本题而言,在12名商人、12名随从、船的最大容量为2的情况下,首先定义了渡河前此岸的状态,并设安全渡河条件下的状态集定义为允许状态集合,接着得到渡河方案的允许决策集合,然后得到状态随渡河方案变化的规律,最后利用 dijkstra算法,并利用Microsoft Visual C++ 6.0软件,编译运行程序得到了一种商人安全渡河的方案。

但是,本文不仅仅是为了拼凑出一个可行方案,而是希望能找到求解这类问题的规律性,并建立数学模型,用以解决更为广泛的问题。基于此目的,利用了dijkstra算法,得到最短路径的最优解。但同时由于该算法遍历计算的节点很多,所以效率低,而且当有多个最短距离时,不能够将所有符合条件的情况逐一列出。我们通过对程序的改善,使可以运行比较多的将符合条件的情况列出来。

1 问题重述

十二名商人各带一个随从乘船渡河,一只小船只能容纳二人,由他们自己划行。在河的任意一岸,一旦随从的人数比商人多,商人就有危险.但是如何乘船渡河的大权掌握在商人们手中。商人们怎样才能安全渡河呢?同时,推广到M名商人带M名随从又如何?

2 问题分析

安全渡河问题可以看成一个多步决策过程。每一步,即船由此岸驶向彼岸或从彼岸驶回此岸,都要对船上的人员(商人随从各几人)作出决策,在保证安全的前提下(两岸的商人数都不比随从数少),在有限步内使人员全部过河。用状态(变量)表示某一岸的人员状况,决策(变量)表示船上的人员状况,可以找出状态随决策变化的规律。问题转化为在状态的允许变化范围内(即安全渡河条件),确定每一步的决策,达到渡河的目的。

商人过河模型问题的求解

商人过河模型问题的求解

《数学建模实验》课程考试试题

----商人安全过河数学建模与求解

一.问题提出: 4名商人带4名随从乘一条小船过河,小船每次自能承载至多两人。随从们密约, 在河的任一岸, 一旦随从的人数比商人多, 就杀人越货.乘船渡河的方案由商人决定,商人们如何才能安全渡河呢

二.模型假设:

商人和随从都会划船,天气很好,无大风大浪,且船的质量很好,可以保证很多次安全的运载商人和随从。

三.问题分析:

商随过河问题可以视为一个多步决策过程,通过多次优化,最后获取一个全局最优的决策方案。对于每一步,即船由此岸驶向彼岸或由彼岸驶向此岸,都要对船上的人员作出决策,在保证两岸的商人数不少于随从数的前提下,在有限步内使全部人员过河。用状态变量表示某一岸的人员状况,决策变量表示船上的人员状况,可以找出状态随决策变化的规律,问题转化为在状态的允许变化范围内(即安全渡河条件),确定每一步的决策,达到安全渡河的目标。

四.模型构成:

k x ~第k 次渡河前此岸的商人数,k y ~第k 次渡河前此岸的随从数

@

k x , k y =0,1,2,3,4; k =1,2,… …

k S =(k x , k y )~过程的状态,

S ~ 允许状态集合,S={(x , y )| x =0, y =0,1,2,3,4; x =4 ,y =0,1,2,3,4; x =y =1,2,3} k u ~第k 次渡船上的商人数

k v ~第k 次渡船上的随从数

k d =(k u , k v )~决策,D={(u , v )| 21≤+≤v u ,k u , k v =0,1,2} ~允许决策集合 k =1,2,… …

数学建模飞机加油和商人过河问题

数学建模飞机加油和商人过河问题

假设飞机转向和加油都是瞬间的。

如图,共需要六架飞机,六架飞机的编号分别为 ①、②、③、④、⑤、⑥ , 每架飞机油箱都都能装V L 油,V L 油能供其绕地球飞半圈。先让①、②飞机同步逆时针飞行,飞至B 处时,②飞机给①飞机V/3 L 油,然后②飞机返回,此时③、④飞机沿顺时针方向开始飞行,飞至D 点时④飞机给③飞机V/3 L 油,然后④飞机掉头返回,④飞机恰能返回;①、③飞机同时到达C 点,此时③号掉头,③给①V/3 L 油,而③也恰好剩 V/3 L 油,与①飞机一起逆时针飞行;与此同时⑤、⑥飞机从A 出发顺时针飞行,飞至D 点时与①、③相遇,然后⑤、⑥掉头,⑤、⑥分别给①、③ V/3 L 油,与①、③一起恰能飞回A 点,①飞机完成绕地球一周。

600

600

600

A

B ① ②

C ① ③

D ③ ④

⑤ ⑥

① ③

商人过河问题

问题分析

商人过河问题可以看成一个多布决策的过程。每一步决策都必须满足两岸的随从数不比商人多,经有限步使全体人员过河。用允许状态量表示某一岸的人员状况,决策变量表示船上的人员情况,可以找出状态随决策变化的规律。问题就转换为在状态的允许变化范围内(即安全渡河条件),确定每一步的决策,达到安全渡河的目标。

模型构成

记第k次渡河前此岸的商人数为x k,,随从数位y k,k=1,2,3,4……,x k,y k=0,1,2,3,4.将二维向量s k=( x k,y k)定义为状态.安全渡河条件下的状态集合称为允许状态集合,记为S

S={(x , y) | x=0, y=0,1,2,3,4; x=4, y=0,1,2,3,4; x=y=1,2,3}

数学建模教学大纲

数学建模教学大纲

数学建模教学大纲

【课程编码】 JSZB0240

【适用专业】 信息与计算科学

【课 时】 78

【学 分】 4

【课程性质、目标和要求】

数学建模是信息与计算科学专业的一专业课。它是研究如何将数学方法和计算机知识结合起来用于解决实际问题的一门边缘交叉学科,是集经典数学、现代数学和实际问题为一体的一门新型课程,是应用数学解决实际问题的重要手段和途径。本课程主要介绍数学建模的概述、初等模型、简单优化模型、微分方程模型、差分方程模型、概率统计模型、图论模型、线性规划模型等模型的基本建模方法及求解方法.

数学建模是继本科生高等数学、工程数学之后为了进一步提高运用数学知

识解决实际问题的基本技能,培育和训练综合能力所开设的一门新学科。通过具体实例的引入使学生掌握数学建模基本思想、基本方法、基本类型,学会进行科学研究的一般过程,并能进入一个实际操作的状态。通过数学模型有关概念、特征的学习和数学模型应用实例的介绍,培养学生数学推导计算和简化分析能力,熟练运用计算机能力;培养学生联想、洞察能力,综合分析能力;培养学生应用数学方法解决实际问题的能力。

【教学时间安排】

本课程计4学分,78学时(理论学时54,实验学时24) 学时分配如下:

序号课程内容课时备注(教学形式)

1建立数学模型4课堂讲授 作业 辅导

2初等模型4课堂讲授 作业 辅导

3简单的优化模型4课堂讲授 作业 辅导

4数学规划模型8课堂讲授 作业 辅导

5微分方程模型6课堂讲授 作业 辅导

6差分方程模型4课堂讲授 作业

辅导

7离散模型6课堂讲授 作业 辅导

8概率统计模型8课堂讲授 作业 辅导

数学建模:研究商人过河问题

数学建模:研究商人过河问题

数学建模实验一报告

实验题目:研究商人过河问题

一、实验目的:编写一个程序(可以是C,C++或Mathlab )实现商人安全过河

问题。

二、实验环境:Turbo c 2.0、Microsoft Visual C++ 6.0、Matlab 6.0以上 三、实验要求:要求该程序不仅能找出一组安全过河的可行方案,还可以得

到所有的安全过河可行方案。并且该程序具有一定的可扩展性,即不仅可以实现3个商人,3个随从的过河问题。还应能实现 n 个商人,n 个随从的过河问题以及n 个不同对象且每个对象有m 个元素问题(说明:对于3个商人,3个随从问题分别对应于n=2,m=3)的过河问题。从而给出课后习题5(n=4,m=1)的全部安全过河方案。

四、实验步骤:

第一步:问题分析。这是一个多步决策过程,涉及到每一次船上的人员以及

要考虑此岸和彼岸上剩余的商人数和随从数,在安全的条件下(两岸的随从数不比商人多),经有限步使全体人员过河。 第二步:分析模型的构成。记第k 次渡河前此岸的商人数为k x ,随从数为k y ,

2,1=k ,n y x k k 2,1,=,

(具有可扩展性),将)(k k y x ,定义为状态,状态集合成为允许状态集合(S )。S={2,1;3,2,1,0,3;3,2,1,0,0|,======y x y x y x y x )(}记第k 次渡船的商人数为k u ,随从数为k v ,决策为),(k k v u ,安全渡河条件下,决策的集合为允许决策集合。允许决策集合记作D ,所以D={2,1,0,,21|,=<+

数学建模商人过河__讲解学习

数学建模商人过河__讲解学习

数学建模商人过河__

论文

组长:王鹏道 110714

组员:任利伟110713、孙祎110706

小组成员负责情况:

王鹏道:选择论文题目、设计论文版面字体、分配成员任务、总结任利伟:一、问题提出、关键、分析。二、模型假设、三、模型建立

孙祎:四、模型求解、五、模型的检验、拓展及延伸

2014年11月24日

摘要

为了求解3个商人和3个随从的过河问题,用数学分析方法,建立数学模型,并且加以求解,展示动态规划思想的应用步骤。最后利用计算机蝙程进行求解,获得过河问题的完整求解过程;有效地求解类似多步决策问题的作用。

关键词:多步决策计算机求解状态转移律图解法

一、问题的提出

随从们密约, 在河的任一岸, 一旦随从的人数比商人多, 就杀人越货,但是乘船渡河的方案由商人决定.商人们怎样才能安全过河?

二、问题的关键

解决的关键集中在商人和随从的数量上,以及小船的容量上,该问题就是考虑过河步骤的安排和数量上。各个步骤对应的状态及决策的表示法也是关键。

三、问题的分析

在安全的前提下(两岸的随从数不比商人多),经有限步使全体人员过河。由于船上人数限制,这需要多步决策过程,必须考虑每一步船上的人员。动态规划法正是求解多步决策的有效方法。它要求把解的问题一层一层地分解成一级一级、规模逐步缩小的子问题。直到可以直接求出其解的子问题为止。分解成所有子问题按层次关系构成一棵子问题树.树根是原问题。原问题的解依赖于子问题树中所有子问题的解。

四、模型假设

记第k次过河前A岸的商人数为X K,

随从数为Y K k=1,2,⋯

X K ,Y

K

=0,1,2,3,将二维向量S

人猫鸡米渡河问题地数学模型

人猫鸡米渡河问题地数学模型

人猫鸡米渡河问题的数学模型

摘要:人带着猫、鸡、米过河,从左岸到右岸,船除了需要人划之外(船除了要载人外),只能载猫、鸡、米三者之一,而当人不在场时猫要吃鸡、鸡要吃米。本文将设计一个安全过河方案,使渡河次数尽量地少。模仿“商人过河”的模型设计出新的数学模型。

关键字:穷举法,Matlab运算求解。

一、问题的提出

课本P19.T5:模仿“商人过河”模型,做下面游戏:人带着猫、鸡、米过河,船除需要人划之外,至多能载猫、鸡、米三者之一,而当人不在场时猫要吃鸡、鸡要吃米。设计一个过河方案,建立数学模型,并使渡河次数尽量地少。

二、问题的分析

因为这是个简单问题,研究对象少,所以可以用穷举法,简单运算即可解题。

此问题是从状态向量A(1,1,1,1)经过奇数次运算向量B变为状态向量A(0,0,0,0)的状态。转移过程为什么是奇数次?我们注意到过河有两种,奇数次的为从左岸到右岸,而偶数的为右岸回到左岸,因此得到下述转移过程,所以最后应该是过河完成时状态转移数为奇数次。

三、问题的假设

1.1:假设船除了载人之外,至多只能载猫、鸡、米三者之一。

1.2:当人不在场时,猫一定会吃鸡、鸡一定会吃米。

四、定义符号说明:

我们将人,猫,鸡,米依次用四维向量中的分量表示,当一物在左岸时,相应的分量

记为1,在右岸时记为0.如向量(1,0,1,0)表示人和鸡在左岸,猫和米在右岸,并将这些向量称为状态向量。例如(1,1,1,1)表示它们都在左岸,(0,1,1,0)表示猫,鸡在左岸,人,米在右岸;由于问题中的限制条件,有些状态是允许的,有些状态是不允许的。凡问题可以允许存在的状态称为可取状态。A 向量定义为状态变量。比如()11,0,1,0A 是一个可取状态向量,但()20,0,1,1A 是一个不可取状态向量。此外,B 向量定义为运载变量。把每运载一次也用一个四维向量来表示。如()11,1,0,0B 表示人和猫在船上,而鸡和米不在船上,这自然是可取的运载,因为船可载两物,而()21,0,1,1B 则是不可取运载,依此规律类推。

商人过河问题

商人过河问题

商人过河问题

摘要:

为了求解3个商人和3个随从的过河问题,用数学分析方法,建立

数学模型,并且加以求解,展示动态规划思想的应用步骤。最后利用计算机编程进行求解,获得过河问题的完整求解过程;有效地求解类似多步决策问题的作用。

关键词:

多步决策计算机求解状态转移律图解法 MATLAB程序

一.问题提出

S个商人各带一个随从乘船过河,一只小船只能容纳K人,由他们自己划船。商人们窃听到随从们密谋,在河的任意一岸上,只要随从的人数比商人多,就杀掉商人。但是如何乘船渡河的决策权在商人手中,商人们如何安排渡河计划确保自身安全?

二.问题的关键

解决的关键集中在商人和随从的数量上,以及小船的容量上,该问题就是考虑过河步骤的安排和数量上。各个步骤对应的状态及决策的表示法也是关键。

三.问题的分析

在安全的前提下(两岸的随从数不比商人多),经有限步使全体人员过河。由于船上人数限制,这需要多步决策过程,必须考虑每一步船上的人员。动态规划法正是求解多步决策的有效方法。它要求把解的问题一层一层地分解成一级一级、规模逐步缩小的子问题。直到可以直接求出其解的子问题为止。分解成所有子问题按层次关系构成一棵子问题树.树根是原问题。原问题的解依赖于子问题树中所有子问题的解。

四.模型假设

记第k次过河前A岸的商人数为XK,随从数为YK k=1,2,⋯ XK ,YK=0,1,2,3,将二维向量SK=(XK,YK)定义为状态.把满足安全渡河条件下的状态集合称作为允许状态集合。记作S。

则 S={(XK ,YK)|(XK =0,YK =0,1,2,3),(XK =3,YK =0,1,2,3),(XK =YK =1)(XK =YK =2)}

11对商仆过河问题数学建模.

11对商仆过河问题数学建模.

数学建模论文

商仆过河问题

摘要

本文针对商人安全渡河的问题,采用多步决策的过程建立数学模型,求解得到了在随从没有杀人越货的情况下的渡河方案。

对于本题而言,在11名商人、11名随从、船的最大容量为6人的情况下,首先定义了渡河前此岸的状态,并设安全渡河条件下的状态集定义为允许状态集合,接着得到渡河方案的允许决策集合,然后得到状态随渡河方案变化的规律,利用matlab 7.0,win 7软件,编译运行程序得到了一种商人安全渡河的方案,并输出了允许的状态向量和允许的决策向量。

但是,本文不仅仅是为了拼凑出一个可行方案,而是希望能找到求解这类问

题的规律性,并建立数学模型,用以解决更为广泛的问题。

一 .问题的提出

当今社会每个人都想当王者,谁都想成为富翁,所以就在这个问题中仆人们也想成为商人。仆人们密约,在河的任何一边,只要仆人的数量超过商人的数量,仆人就会联合起来将商人杀死并抢夺其财物,十一名商人各带一个随从乘船渡河,一只小船只能容纳六人,由他们自己划行。在河的任意一岸,一旦随从的人数比商人多,商人就有危险.但是如何乘船渡河的大权掌握在商人们手中。商人们怎样才能安全渡河呢?同时,推广到M名商人带M名随从又如何?

二. 模型假设

3 模型假设

(1)每个商人和随从都会划船;

(2)只有一条船,且每条船上最多只能乘坐六个人;

(3)所有商人与随从之间没有矛盾,不会出现有人不愿意同坐一条船的现象;

(4)船在渡河的过程中不受外界环境的影响。

三.问题符号说明

3符号说明

A初始状态下,商人和随从所在的一岸;

B初始状态下,商人和随从欲到达的一岸;

《数学建模》习题及参考答案 第一章 建立数学模型

《数学建模》习题及参考答案 第一章 建立数学模型

第一章

部分习题

3(5). 决定十字路口黄灯亮的时间长度.

4. 在1.3节“椅子能在不平的地面上放稳吗”的假设条件中,将四角的连线呈正方形改为长方形,其余不变,试构造模型并求解.

5. 模仿1.4节商人过河问题中的状态转移模型,作下面这个众所周知的智力游戏:人带着猫、鸡、米过河,船除希望要人计划之外,至多能载猫、鸡、米三者之一,而当人不在场时猫要吃鸡、鸡要吃米,设计一个安全过河方案,并使渡河次数尽量地少.

6. 利用1.5节表1和表3给出的1790-2000年的美国实际人口资料建立下列模型: (1) 分段的指数增长模型. 将时间分为若干段,分别确定增长率r. (2) 阻滞增长模型. 换一种方法确定固有增长率r 和最大容量x m .

7. 说明1.5节中Logistic 模型(9)可以表示为()()

01t t r m

e

x t x --+=

,其中t 0是人口增长出现拐点的时刻,并说明t 0与r ,x m 的关系.

8. 假定人口的增长服从这样的规律:时刻t 的人口为x (t),t 到t +△t 时间内人口的增量与x m -x (t)成正比(其中为x m 最大容量). 试建立模型并求解. 作出解的图形并与指数增长模型、阻滞增长模型的结果进行比较.

9(3). 甲乙两站之间有电车相通,每隔10分钟甲乙两站相互发一趟车,但发车时刻不一定相同。甲乙之间一中间站丙,某人每天在随机的时刻到达丙站,并搭乘最先经过丙站的那趟车,结果发现100天中约有90天到达甲站,约有10天到达乙站。问开往甲乙两站的电车经过丙站的时刻表是如何安排的。

数学建模商人过河__论文

数学建模商人过河__论文

组长:王鹏道110714

组员:任利伟110713、孙祎110706

小组成员负责情况:

王鹏道:选择论文题目、设计论文版面字体、分配成员任务、总结

任利伟:一、问题提出、关键、分析。二、模型假设、三、模型建立孙祎:四、模型求解、五、模型的检验、拓展及延伸

2014年11月24日

摘要

为了求解3个商人与3个随从的过河问题,用数学分析方法,建立数学模型,并且加以求解,展示动态规划思想的应用步骤。最后利用计算机蝙程进行求解,获得过河问题的完整求解过程;有效地求解类似多步决策问题的作用。

关键词:多步决策计算机求解状态转移律图解法

一、问题的提出

随从们密约, 在河的任一岸, 一旦随从的人数比商人多, 就杀人越货,但就是乘船渡河的方案由商人决定、商人们怎样才能安全过河?

二、问题的关键

解决的关键集中在商人与随从的数量上,以及小船的容量上,该问题就就是考虑过河步骤的安排与数量上。各个步骤对应的状态及决策的表示法也就是关键。

三、问题的分析

在安全的前提下(两岸的随从数不比商人多),经有限步使全体人员过河。由于船上人数限制,这需要多步决策过程,必须考虑每一步船上的人员。动态规划法正就是求解多步决策的有效方法。它要求把解的问题一层一层地分解成一级一级、规模逐步缩小的子问题。直到可以直接求出其解的子问题为止。分解成所有子问题按层次关系构成一棵子问题树.树根就是原问题。原问题的解依赖于子问题树中所有子问题的解。

四、模型假设

记第k 次过河前A 岸的商人数为X K ,

随从数为Y K k=1,2,⋯

X K ,Y K =0,1,2,3,将二维向量S K =(X K ,Y K )定义为状态.把满足安全渡河条件下的状态集合称为允许状态集合。记作S 。则

商人过河四商四仆

商人过河四商四仆

承诺书

我们仔细阅读了中国大学生数学建模竞赛的竞赛规则.

我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。

我们知道,抄袭别人的成果是违反竞赛规则的, 如果引用别人的成果或其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。

我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性。如有违反竞赛规则的行为,我们将受到严肃处理。

我们参赛选择的题号是(从A/B/C/D中选择一项填写): A

我们的参赛报名号为(如果赛区设置报名号的话):J2202

所属学校(请填写完整的全名):江西环境工程职业学院

参赛队员(打印并签名) :1. 杨松泉

2. 付琪

3. 付建华

指导教师或指导教师组负责人(打印并签名):教导组

日期: 2012 年 8月 9 日赛区评阅编号(由赛区组委会评阅前进行编号):

编号专用页

赛区评阅编号(由赛区组委会评阅前进行编号):

全国统一编号(由赛区组委会送交全国前编号):全国评阅编号(由全国组委会评阅前进行编号):

摘要

本文研究的是四个商人和四个仆人从河岸的一边过到河的另一边的问题,过河的工具只有一搜小船,只能同时载两个人过河,包括划船的人,由他们自己划行。针对商人安全渡河的问题,采用多步决策的过程,根据各量的空间几何关系,经过严格的数学公式推导。

分别建立两个模型:模型一采用穷举法,对各种过河的方案一一列举,然后根据商人们要安全过河为前提对各种进行了列举,经过层层筛选,最终求出商人安全的方案。模型二采用图解法,利用图示表示说明该题的解法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于商人过河游戏的数学建模

1提出问题

文献[1]给出一个智力游戏:“三名商人各带一个随从渡河,一只小船只能容纳二人,由他们自己划行。随从们密约,在河的任一岸,一旦随从的人数比商人多,就杀人越货。但是如何乘船的大权掌握在商人们手中。商人怎样才能安全渡河呢?”此类智力问题当然可以通过一番思考,拼凑出一个可行的方案来。文献[1]中通过图解法给出了解答,但是当商人数与随从数发生变化,船能容纳的人数不是二人时,图解法就会变得繁复而难以解决问题。

因此,将上述游戏改为n名商人各带一个随从过河,船每次至多运p个人,至少要有一个人划船,由他们自己划行。随从们密约,在河的任一岸,一旦随从的人数比商人多,就杀人越货。

但是如何乘船的大权掌握在商人们手中。商人怎样才能安全渡河的问题。

除此之外,考虑了随着船载人数的增多,以及商人与仆人的对数增多到多少时,会影响商人的安全渡河的问题。

2问题分析

由于这个虚拟的游戏已经理想化了,所以不必再作假设。我们希望能找出这类问题的规律性,建立数学模型,并通过计算机编程进行求解。安全渡河游戏可以看做是一个多步决策过程,分步优化,船由此岸驶向彼岸或由彼岸驶回此岸的每一步,都要对船上的商人和随从做出决策,在保证商人安全的前提下,在无限步内使全部人员过河。用状态表示某一岸的人员状况,决策表示船上的人员情况,可以找出状态随决策变化的规律。问题转化为在状态的允许范围内,确定每一步的决策,最后获取一个全局最优方案的决策方案,达到渡河的目标。

除此以外,我们还要找出,随着船载人数的增加,商人与仆人对数达到多少时,会影响到商人不能安全过河。这里要对船载人数进行限制,因为船载人数过多时,此智力游戏会变得相当繁复,就会失去作为游戏的本来意义。

3模型构成

记第k次渡河前此岸的商人数为,随从数为,,,。

将二维向量定义为过程的状态。

安全渡河条件下的状态集合称为允许状态集合,记作S。

当时,;当时,。

记第k次渡船上的商人数为uk,随从数为vk,将二维向量定义为决策。允许决策集合记为D,由小船容量知。

因为k为奇数时,船从此岸驶向彼岸,k为偶数时,船从彼岸驶向此岸,所以状态sk随决策dk变化的规律是,此式为状态转移率。制订安全渡河方案归结为如下的多步决策模型:求,使状态按照状态转移率,由初始状态经无限步r 到达状态。

4模型求解

用C语言编写一段程序,利用计算机求解上述多步决策问题,程序代码见附件。其算法主要是根据所输入的商人数m,随从数n,小船能载人数p,从s1出发去构造下一个状态s2,再以s2为出发点构造下一个状态,构造过程中避开已构造过的点,如此下去,直到。若中途受阻不能达到点,就原路退回,去寻找最近被构造的点的其它可行的临近点,如此以往,如果问题有解,算法会在无限步骤内结束,并给出全部路径,否则,算法给出不能安全渡河的结果。

当船载人数为2时,商人与仆人对数增加至4,可得如下两种方案。

方案一:(4,4)-(3,3)-(4,3)-(4,1)-(4,2)-(2,2)-(3,3),接下?砘嶂馗吹诙?步,导致无限循环,商人无法安全过河。

方案二:(4,4)-(4,2)-(4,3)-(4,2),接下来会重复方案一中的第五步,导致无限循环,商人无法安全过河。

在船载人数为2保持不变时,商人与仆人对数的大于3时,在渡河过程中总会出现循环,均无法安全渡河。

通过计算机程序求解,当船载人数为3时,商人与仆人对数的大于5时,在渡河过程中总会出现循环,均无法安全渡河。

5模型的评价

该多步决策模型简单,切合实际,易于理解,建立了科学合理的状态转移模型,结合实际情况对模型进行求解,使得模型具有很好的通用性和推广性。多步决策不会出现遗漏可能的过河方法,使解题过程更加清撤明了。

由于该算法遍历计算的节点很多,所以求解程序繁复琐碎,效率比较低。

随着船载人数的增多,要想安全过河,能容纳的商人人数也增多,但是这在智力游戏中就会显得相当琐碎,失去了本来的意义,所以我们在这里就不予以讨论了。

6附件

用C程序进行游戏编程,源代码如下:

#include

int a[800][2],z;

int m,n,p;

int ifok1(int x1,int y1,int x2,int y2)

{

if(x1>=y1 && x2>=y2)return 1;

else if(x2==0)return 1;

else if(x1==0)return 1;

return 0;

}

int ifok2(int n,int x,int y)

{

if(n%2==0)for(int i=0;i=1;i--)for(j=0;j=1),船上可坐人数(p>=2):”);scanf(“%d,%d”,&n,&p);

m=n;

printf(“\n”);

fun(m,n,0,0,0);

if(z==0)

printf(“不能安全xx\n”);

}

相关文档
最新文档