2、),(1,0),(0,3),(0,2),(0,1),(0,0)}要安全过河,需保证彼岸此岸都安全,及随从数不能大于商人数,所以安全的情况有10利即S={(3,3),(3,2),(3,1),(3,0),(2,2),(1,1),(0,3),(0,2),(0,1),(0,0)}②二、决策变量设dk=(uk,vk)(0={(2,0),(1,1),(0,2),(1,0),(0,1)}与状态变量相结合,安全的情况有三种,即"{((1,1),(0,2),(0,1)}③
3、三、状态转移方程奇数次(此案到彼岸)S如=Sk-dk偶数次(彼岸到此案)Sg=SZk即SM=Sk^{-)kdk①数学建模:由①确定的转移方程下,经过n次决策,将初始状态转移到最终状态S〃=(0,0)・每次的决策取口③式,每次到达的状态在②屮.图解法:①从右上角移到左下角,每次最多移两步;②奇数次渡河往左下方,偶数次渡河往右下方。建立平面直角处标系如图:So=(3,3)oaofS”=(0,0)过河方案:从A点、So=(3,3)出发到D点S“=(0,0)结束①小船一次最多能载两人,所以每次最多移动两个格了②由此岸即彼岸时人员减少
4、,即奇数遍时向左下方行走;有彼岸及此岸时人员增加,即偶数遍吋向右上方行走。第一步:从A点S。=(3,3)到C点Sc=(3,1),即小船载着两个随从去彼岸;第二步:从C点Sc=(3,1)到B点Sb=(3,2),即一个随从划船回到此岸;第三步:从B点Sb=(3,2)到D点Sd=(3,0),即小船载着两个随从去彼岸;第四步:从D点Sd=(3,0)到C点Sc=(3,1),即一个随从划船回到此岸;第五步:从C点Sc=(3,1)到F点爭=(1,1),即小船载着两个商人去彼岸;第六步:从F点Sf=(1,1)到E点Sf=(2,2),即小船载着一
5、个随从一个商人回到此岸;第七步:从E点Se=(2,2)到I点Si=(0,2),即小船载着两个商人去彼岸;笫八步:从丨点Si=(0,2)到H点Sh=(0,3),即小船载着一个商人回到此岸;第九步:从H点Sh=(0,3)到G点Sh=(0,1),即小船载着两个商人到彼岸;第十步:从G点Sh=(0,1)至ijl点Si=(0,2),即小船载着一个商人到此岸;第十一•步:从I点Si=(0,2)到0点Si=(0,0),即所有人都到了彼岸。编程:#includevoidshow(ints){printf(H{m:%d,s:%d
6、}%s{m:%d,s:%d}蔦(s>>4)&3,(s»l)&3,(s&1?“~!”:”!~”),(s>>10)&3,(s»7)&3);}intsearchfint*ss,intes){constintm[]={0x7E,0xFC,0x3F0,0x7E0,0x46E};staticcharf[0x40);ints,c,t,i;if(*ss==es)return1;f[*ss&0x3F]=1;for(i=0;i7、((t&0x1248)!=0x1248)continue;t
8、=((s»4&3)?0:0x30)I((s»10&3)?0:OxCOO);if(((t-((t&0x186)«3))&0x1248)!=0x1248)continue;if(f[s&Ox3F])continue;ss[l]=s;c=search(ss+1,es);if(c>0){f[*ss&Ox3F]=0;returnc+1;}}f[*ss&0x3F]=0;return0;}intmain(){intss[16]={0xl27E}zes=0xlFC9,czi;c=se
9、archlss,es);for(i=0;i