% Ovaj program resava prblem 8 kraljica metodom lokalne pretrage. % Program uvek nalazi sledece stanje tako da trazi stanje sa najmanjim % brojem napada. % U sledecem koraku broj napada ne mora da bude manji od broja napada u % prethodnom koraku. clear clc A=zeros(8); r=randperm(8); for i=1:8 A(r(i),i)=1; end show_the_solution(A) clear i [u v]=find(A); num_att=100*A; q=find_attacks(A); clear u v r current_num_att=q; while q~=0 for i=1:8 temp1=1:8; f=find(A(:,i)~=0); temp1(f)=[]; for j=1:7 temp2=temp1(j); AA=A; AA(f,i)=0; AA(temp2,i)=1; num_att(temp2,i)=find_attacks(AA); end end [x y z]=find_minimums(num_att); s=numel(x); s=randperm(s); s=s(1); x=x(s); y=y(s); p=find(A(:,y)==1); A(p,y)=0; A(x,y)=1; show_the_solution(A) pause(0.1) [u v]=find(A); q=find_attacks(A); current_num_att=[current_num_att z]; end