24.12.2012 Views

Zbirka zadataka iz Ekspertskih sistema

Zbirka zadataka iz Ekspertskih sistema

Zbirka zadataka iz Ekspertskih sistema

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Izabrani algoritmi 275<br />

3.2. Za promenljive <strong>iz</strong>vesti uparivanje putem zamene; kada se naiđe na promenljivu, zameniti<br />

je, kao i sva njena dešavanja u listi odgovarajućim elementima druge liste. Jedino<br />

ograničenje u pogledu uparivanja je da promenljiva ne može biti zamenjena <strong>iz</strong>razom koji<br />

sadrži istu promenljivu (da bi se sprečila beskonačna zamena).<br />

4. Dva predikata su unificirana ako se svi elementi poklapaju posle zamene promenljivih.<br />

Algoritam 13: Nasleđivanje uz prisustvo default vrednosti i ifneeded<br />

procedura (Z- nasleđivanje):<br />

Neka je F zadati čvor, a S zadati pregradak.<br />

1. Formirati red koji sadrži čvor F i sve čvorove povezane IS_A vezom sa čvorom F (čvor<br />

F je ‘rep’ strelice). Čvor F treba da se nalazi na početku reda.<br />

2. Dok se red ne isprazni, ili se nađe vrednost, utvrditi da li prvi element reda poseduje<br />

traženi pregradak S.<br />

2a. Ako čvor poseduje pregradak S i u njemu se nalazi vrednost skok na korak 3.<br />

2b. Ako čvor poseduje pregradak S sa if-needed procedurom P: ako se mogu odrediti<br />

ulazni parametri procedure P (ovo može uključiti rekurzivni poziv procedure<br />

nasleđivanja počev od čvora F) <strong>iz</strong>vršiti proceduru P čiji rezultat predstavlja traženu<br />

vrednost; skok na korak 3.<br />

2c. Ako čvor poseduje pregradak S sa podrazumevanom vrednošću skok na korak 3.<br />

2d. U suprotnom, ukloniti prvi element <strong>iz</strong> reda i na kraj reda dodati njegove sledbenike u<br />

mreži po AKO vezama.<br />

3. Procedura završava rad i vraća ili nađenu vrednost ili indikator da vrednost nije nađena.<br />

Algoritam 14: Zadovoljavanje ograničenja metodom relaksacije<br />

1. Napraviti liste mogućih vrednosti za sve slobodne promenljive (one čije su nam vrednosti<br />

potrebne) u upitu.<br />

2. Obeležiti svaku od promenljivih kao ‘aktivnu’.<br />

3. Ponavljati korake 3.1. do 3.4. sve dok postoji bar jedna aktivna promenljiva.<br />

3.1. Izabrati neku od aktivnih promenljvih A. (Pri <strong>iz</strong>boru se može primeniti neka<br />

heuristika).<br />

3.2. Za svaku od mogućih vrednosti V za A razmatrati svako od ograničenja C u upitu u<br />

kome figuriše promenljiva A<br />

3.2.1. Proveriti da li je ograničenje C zadovoljeno ako A ima vrednost V (pri čemu se<br />

mogu vezati i druge promenljive ako je potrebno).<br />

3.2.2. Ako se C ne može zadovoljiti, <strong>iz</strong>baciti V <strong>iz</strong> liste mogućih vrednosti za A i ne<br />

razmatrati ostala ograničenja. U suprotnom, ne raditi ništa.<br />

3.2.3. Pri razmatranju sledećeg ograničenja zanemariti vezane vrednosti promenljivih<br />

dobijene pri prazmatranju prethodnog ograničenja.

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

Saved successfully!

Ooh no, something went wrong!