Professional Documents
Culture Documents
Coding BFS Matlab
Coding BFS Matlab
data _sementara =[ ] ;
% queue = [1 ; - 1 ] , maksud 1 = node ke -1, -1 = tanda ganti level queue [ 1 ; -1] ;
%node awal
Pohon .nama_orang_tua=0;
Pohon.nama=1 ;
Pohon.data=[x y] ;
Pohon.rule=’ ‘ ;
while selesai==0
%jika ditemukan tanda ganti level
If queue( 1 ) == -1
If length (data_setiap_level ) ==0
Break
End
%check data_setiap_level , ada goal atau tidak
For I =1 : length (data_setiap_level ) ;
J=data_setiap_level ( I );
X=pohon ( j ).data ( 1 ) ;
y=pohon ( j ).data ( 2 ) ;
%jika sudah ditemukan Goal
I f x==a & y==b
%tampung nama node sebagai goal
Goal =[ goal ; pohon [ j ] .nama ] ;
Selesai =1;
%jika sudah ditemukaan Goal
Level =counter_level ;
end
end
%karena diganti level , node diperbarui
queue (1 ) = [ ] ;
%pemberitahuan tanda ganti level berikutnya
queue = [ queue ; - 1 ] ;
%data setiap level dihapus
data_setiap_level = [ ] ;
%counter level bertambah
Counter_level =counter_level +1 ;
I f counter_level ==level=1
Selesai =1 ;
End
End
Nama _orang _tua=queue ( 1);
%queue teratas telah diambil , maka dikosngkan
Queue (1)= [ ]
X=nama_orang_tua ) .data ( 1 ) ;
y=nama_orang_tua ) .data ( 2 ) ;
%aturan-aturan
I f y<3
%R1 = ‘ gelas B diisi penuh ‘ ;
X1 =x ;y 1 =3 ; %data node anak
I f tanda (x1+ 1, y1 =1 )
Tanda (x1 + 1 , y 1 + 1 ) ==0
Data = [ x1 y1 ] ;
%nama anak
Nama =nam +1 ;
Rule = ‘ gelas B diisi penuh
I f x<4
%R2= ‘geals A diisi penuh ‘ ;
X1= 4; y 1 %data node anak
If tanda ( x1= 1, y1 = 1 ) ==0
Tanda (x1= 1,y1 =1 ) =1 ;
Data = [x1 y1 ] ;
% nama anak
Nama=nama=1+;
Rule=’gelas A diisi penuh
Pohon (nama)=
Struct ( ‘ nama_ orang_tua ‘ ,nama’,nama,’data’,data,’r
Queue=[queue;nama];
Data_setiap_level=[data_setiap_level; nama ] ;
End
End
I f x>0
%R3=kosongkan isi gelas A’ ;
If tanda (x1= 1,y1 +1 )==0
tanda ( x1= 1,y1 +1 )==1;
data= [x1 y1 ];
nama=nama +1;
rule=’kosong isi gelas A
pohon (nama)=
Struct (‘ nama_orang_tua’,nama_orang_tua, ‘nama’, nama, ‘data’ , data, ‘r ule ‘rule ) ;
Queue=[queue ; nama ];
Data_setiap_level=[data_setiap_level; nama ] ;
End
End
Nama=nama_orang_tua ;
End
Clc
Disp ( ‘keadan awal : ‘ ) ; data ( 1 , : )