您的位置:首页 > 编程语言 > C语言/C++

商人过河数学模型求源程序

2004-07-28 13:40 260 查看
题目:三名商人各带一个随从乘船渡河,一只小船只能容纳二人,由他们自己滑行。随从们密约,在河的任一岸,一旦随从的人数比商人多,就杀人越货。但是如何乘船渡船的大权掌握在商人手中,商人们怎么样才能安全渡河?
求解:
数学模型:记第k次渡河前此岸的商人人数为Xk,随从人数为Yk,k=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}     {1}
记第k次渡船上的商人人数为Uk,随从人数为Vk。将二维向量dk=(Uk,Vk)定义为决策。允许决策集合记做D,由小船的容量可知
D={(u,v)|u+v=1,2}   {2}
因为k为奇数时船从此岸驶向彼岸,k为偶数时船由彼岸驶回此岸,所以状态sk随决策dk变化的规律是:
S(k+1)=Sk+(-1)^k*dk    {3}
{3}式称为状态转移律。所以,制定安全渡河方案归结为如下的多步决策问题:
求决策dk属于D(k=1,2,3,...,n),使状态sk属于S按照转移律{3},由初始状态s1=(3,3)经有限步n到达状态s(n+1)=(0,0)
要求设计一程序,按照上面思路求解,代码最好为c++  (完)  
 录入:逸天 qq:12872678 e-mail:nutting@163.com  2004.07.27
摘自:数学模型(第二版) 姜启源 编 高等教育出版社 isbn 7-04-004502-2

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ 出版 教育 qq