資源簡介
商人過河MATLAB.rar

代碼片段和文件信息
function?s=businessman
n=input(‘輸入商人數目:‘);
nn=input(‘輸入仆人數目:‘);
nnn=input(‘輸入船的最大容量:‘);
if?nn>n
????n=input(‘輸入商人數目:‘);
????nn=input(‘輸入仆人數目:‘);
????nnn=input(‘輸入船的最大容量:‘);
end
k=1;
for?i=0:nnn?%產生出所有的可能過河的決策
????for?j=0:nnn
????????if?(i+j<=nnn)?&(i+j>0)
????????????d(k1:3)=[ij1];???????%1表示從此岸到彼岸
????????????d(k+11:3)=[-i-j-1];??%-1表示從彼岸到此岸
????????????k=k+2;
????????end
????end
end
k=1;
for?i=n:-1:0????????????%產生安全隊列
????for?j=nn:-1:0
????????if?((i>=j)?&?((n-i)>=(nn-j)))?|?((i==0)|(i==n))
????????????A(k1:3)=[ij1];???????%1表示此岸安全????
????????????k=k+1;
????????end
????end
end
%隊列數據結構,第一列表示商人數,第二列表示仆人數,第三列用于記錄該結點的上一個結點,第四列表示船的運動方向(1表示此岸往彼岸運動,-1表示從彼岸往此岸運動)
sq(11)=n;sq(12)=nn;sq(13)=0;sq(14)=1;????????%初始狀態
front=1;rear=1;?%隊列的頭尾指針
while(front<=rear)
????x=sq(front1);
????y=sq(front2);
????flag=0;
????if?(sq(front4)==1)
????????for?v=2:2:size(d1)
????????????i=x+d(v1);
????????????j=y+d(v2);
????????????if?(is_save(Aij)==1)
????????????????rear=rear+1;
????????????????sq(rear1)=i;
????????????????sq(rear2)=j;
????????????????sq(rear3)=front;
????????????????sq(rear4)=-1;
????????????end
????????????if?(i==0?&&?j==0)
????????????????flag=1;
????????????end
????????end
????end
????if?(flag==1)
????????break;
????end
????flag=0;
????if?(sq(front4)==-1)
????????for?v=1:2:size(d1)
????????????i=x+d(v1);
????????????j=y+d(v2);
????????????if?(is_save(Aij)==1)?&?(sq(sq(front3)1)~=i?|?sq(sq(front3)2)~=j)
????????????????rear=rear+1;
????????????????sq(rear1)=i;
????????????????sq(rear2)=j;
????????????????sq(rear3)=front;
????????????????sq(rear4)=1;
????????????end
????????????if?(i==0?&&?j==0)
????????????????flag=1;
????????????end
????????end
????end
????if?(flag==1)
????????break;
????end
????front=front+1;
end
%打印路徑
i=sq(rear3);
k=2;
s(11)=0;s(12)=0;
while(i>0)
????s(k1)=sq(i1);
????s(k2)=sq(i2);
????i=sq(i3);
????k=k+1;
end
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2082??2010-08-30?15:40??商人過河MATLAB\businessman.m
?????文件????????149??2010-08-30?07:05??商人過河MATLAB\is_save.m
?????目錄??????????0??2010-08-30?15:45??商人過河MATLAB
-----------?---------??----------?-----??----
?????????????????2231????????????????????3
- 上一篇:adapt.m
- 下一篇:PSO-RBF的MATLAB程序實現
評論
共有 條評論