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.

74 1. Pretraživanje<br />

potrebno pamtiti ranije obiđenja stanja; zbog acikličnosti grafa pretrage nije moguće da<br />

pretraga upadne u mrtvu petlju. Ekspanziju stanja real<strong>iz</strong>uje predikat<br />

primeni_op(Tek_stanje,Op,Novo_stanje)<br />

Predikatska pravila za predikat primeni_op definišu sledeći režim primene operatora:<br />

• Određuje se JEDAN operator koji je moguće primeniti. Prvo se pokušava sa operatorom<br />

op1, pa zatim op2, pa zatim op3. Kod <strong>iz</strong>bora projektila real<strong>iz</strong>ovanog predikatom<br />

uzmi_projektil(Lista_projektila,Projektil,<br />

Nova_lista_projektila)<br />

liste se razmatraju sa leva na desno i to prvo lista X, pa lista Y (ako treba). Ako je<br />

potrebno <strong>iz</strong>abrati par projektila <strong>iz</strong> liste, što je opisano predikatom<br />

uzmi_dva_projektila(Lista_projektila,Projektil,<br />

Nova_lista_projektila)<br />

probaju se redom 1. i 2. <strong>iz</strong> liste, pa 1 i 3. , 1 i 4. i tako dalje, zatim 2. i 3., 2. i 4. i tako<br />

dalje. Za svaki par proverava se da li u drugoj listi postoji odgovarajući projektil, pa ako<br />

postoji, obustavljamo dalje traženje.<br />

• Primenjuje se <strong>iz</strong>abrani operator na tekuće stanje S. Izabrani operator se pamti na početku<br />

liste koja predstavlja rešenje problema. Ako naknadno pri pretrazi dođe do povratka na<br />

stanje S, povratni (backtracking) mehan<strong>iz</strong>am PROLOG-a obezbeđuje <strong>iz</strong>bor sledećeg<br />

operatora koga je moguće primeniti na stanje S prema definisanom redosledu primene<br />

operatora.<br />

Upit u odeljku goal koji inicira pretragu završava se klauzulom fail koja nalaže da se<br />

<strong>iz</strong>vršavanje programa ne završi sa nađenim prvim rešenjem, već da se ispišu sva moguća<br />

različita rešenja kojih ima ukupno čak 1056. Prvih nekoliko rešenja koje program ispisuje su:<br />

X = [op1(4),op1(5),op1(7),op2(9,11,20),op2(9,3,12),op3(2,16,18)]<br />

X = [op1(4),op1(5),op1(7),op2(9,11,20),op3(2,16,18),op2(9,3,12)]<br />

X = [op1(4),op1(5),op1(7),op2(9,3,12),op2(11,9,20),op3(2,16,18)]<br />

X = [op1(4),op1(5),op1(7),op2(9,3,12),op3(2,16,18),op2(11,9,20)]<br />

X = [op1(4),op1(5),op1(7),op2(11,9,20),op2(9,3,12),op3(2,16,18)]

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

Saved successfully!

Ooh no, something went wrong!