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 33<br />

Drugim rečima, za neki drugi raspored terminala upotrebljena heuristička funkcija ne<br />

garantuje optimalnost dobijenog rešenja.<br />

Zadatak 15: Igra pomeranja blokova<br />

Posmatrajmo igru pomeranja blokova. Neka je početna konfiguracija:<br />

C C B B P<br />

pri čemu je C -- oznaka za crni blok, B -- oznaka za beli blok, a P -- oznaka za praznu ćeliju.<br />

Pravila igre su sledeća:<br />

• Blok se može pomeriti u susednu praznu ćeliju po jediničnoj ceni.<br />

• Blok može da preskoči jedan blok da bi bio premešten u praznu ćeliju, po ceni 2.<br />

Cilj igre je da se svi beli blokovi smeste levo od svih crnih blokova (bez obzira na poziciju<br />

prazne ćelije).<br />

Naći heurističku funkciju h i dati rešenje problema primenom algoritma A*. Da li <strong>iz</strong>abrana<br />

heuristička funkcija h zadovoljava monotonu restrikciju h(n i) ≤ h(n j) + c(n i, n j), za svaki par<br />

pozicija n i i n j gde n j predstavlja sledbenika n i? U prethodnoj formuli c(n i, n j) predstavlja cenu<br />

poteza koji <strong>iz</strong> n i vodi u n j.<br />

Rešenje<br />

Definišimo heurističku funkciju h na sledeći način:<br />

• za svaki od belih blokova odredimo broj crnih blokova cb i koji se nalaze levo od njega u<br />

tekućem stanju.<br />

• heuristička funkcija h je zbir brojeva određenih u prethodnoj tački pomnožen sa 2:<br />

2<br />

∑<br />

h = cbi 2<br />

i = 1<br />

Na primer, u početnom stanju za oba bela bloka važi da se levo od njih nalaze po dva crna<br />

bloka pa je h = 2 * (2+2) = 8.<br />

Koristeći funkciju h i inkrementalne cene operatora date u postavci, moguće je primeniti<br />

algoritam A*. Na slici 37 dato je stablo pretrage pri rešavanju ovoga problema. Zaokruženi<br />

brojevi označavaju redosled ekspanzije čvorova. Funkcija procene f navedena je u obliku<br />

zbira heurističke funkcije h (prvi sabirak) i cene parcijalne putanje c (drugi sabirak). U<br />

slučaju jednakih funkcija procene za dva čvora, pri pretrazi se najpre ekspanduje onaj sa<br />

manjom vrednošću heurističke funkcije h.<br />

Zadovoljenost uslova monotone restrikcije za pro<strong>iz</strong>voljnu heurističku funkciju h obezbeđuje<br />

da ova funkcija uvek potcenjuje udaljenost do cilja, pa samim tim garantuje optimalnost<br />

dobijenog rešenja. Heuristička funkcija h koju smo definisali za ovaj problem zadovoljava<br />

monotonu restrikciju u šta nas uverava sledeće rezonovanje:<br />

Neka n i označava pro<strong>iz</strong>voljnu poziciju do koje je stigla pretraga, a H vrednost heurističke<br />

funkcije h(n i) za ovu poziciju. Mogući potezi koji dovode u novu poziciju n j mogu se podeliti<br />

u sledeće klase:

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

Saved successfully!

Ooh no, something went wrong!