24.12.2012 Views

Zbirka zadataka iz Ekspertskih sistema

Zbirka zadataka iz Ekspertskih sistema

Zbirka zadataka iz Ekspertskih sistema

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

1.2. Algoritmi pretraživanja 51<br />

igrača. Na taj način će igra uvek biti završena u sledećem potezu prvog igrača, jer on mora da<br />

uzme novčić koji je ostao na steku.<br />

Zadatak 20: Problem šest kraljica<br />

Na šahovsku tablu dimenzije 6 x 6 potrebno je smestiti šest kraljica tako da nijedna od njih ne<br />

napada bilo koju drugu. Rešiti problem primenom neke od metoda pretraživanja po <strong>iz</strong>boru.<br />

Anal<strong>iz</strong>a problema<br />

Formulišimo najpre ovaj problem kao problem pretraživanja: startno stanje je prazna<br />

šahovska tabla. U svakom potezu smeštamo jednu kraljicu na tablu, tako da nije napadnuta od<br />

prethodno smeštenih kraljica. Problem je rešen kada sa na tablu smeste svih šest kraljica.<br />

Ovako definisan problem pretraživanja je komutativan, što znači da u rešenju predstavljeno<br />

n<strong>iz</strong>om operatora možemo bez ograničenja permutovati redosled operatora.<br />

Očigledno je da u istoj vrsti table ne mogu biti smeštene dve kraljice. Da bismo smanjili<br />

faktor grananja u stablu pretrage, usvojićemo sledeću taktiku: prvu kraljicu smeštamo u prvu<br />

vrstu table, drugu kraljicu u drugu vrstu, i tako dalje.. Na ovaj način, u svakom potezu treba<br />

se odlučiti za poziciju u okviru jedne vrste.<br />

Heurističku funkciju moguće je definisati na sledeći način:<br />

• Neka diag(i,j) označava dužinu najduže dijagonale koja prolazi kroz ćeliju tabele u vrsti i<br />

i koloni j (i,j ∈ {1,2,3,4,5,6}). Vrednost heurističke funkcije za smeštanje kraljice u vrstu i<br />

i kolonu j je:<br />

h(i,j) = 6* diag(i,j) + j<br />

Drugim rečima, prednost dajemo pozicijama za manjom vrednošću diag. U slučaju kada u<br />

vrsti postoje dve pozicije sa istom vrednošću za diag, prednost ćemo dati levoj ćeliji. Treba<br />

primetiti da na vrednost heurističke funkcije ima uticaja jedino položaj poslednje postavljene<br />

kraljice. Drugim rečima, ova funkcija ne ocenjuje poziciju u globalu već samo lokalno među<br />

sledbenicima tekućeg čvora pretrage. Zbog toga će za pretragu biti primenjen metod<br />

planinarenja.<br />

Rešenje<br />

Pošto su definisani svi elementi potrebne za vršenje pretrage, moguće je primeniti algoritam<br />

planinarenja. Stablo pretrage prikazano je na slici 56. U toku procesa rešavanja obiđeno je<br />

ukupno 15 stanja u stablu pretrage i tri puta vršeno vraćanje unazad (backtracking) <strong>iz</strong> stanja<br />

koja nemaju naslednika, to jest, u kojima nije bilo moguće postaviti novu kraljicu tako da ne<br />

napada nijednu od već postavljenih kraljica.<br />

Pored nađenog rešenja postoji još simetričnih rešenja problema koja se dobijaju na osnovu<br />

nađenog rešenja rotiranjem cele šahovske table:<br />

x x x<br />

x x x<br />

x x x<br />

x x x<br />

x x x<br />

x x x

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!