Vous êtes sur la page 1sur 18

RETE algoritam

Marin Prcela

Zagreb, 10. studeni 2008.


Literatura
 U ovom su predavanju koriteni primjeri i slike iz:
 Robert B. Doorenbos, Production Matching for Large Learning
Systems, 1995. (Chapter 2)
 Bojana Dalbelo-Bai: Sustavi temeljeni na pravilima, slajdovi
sa predavanja, 2007.
Pravila
 Primjer pravila:
 Ako je prisutna bol u prsima tada je potrebno obaviti
ehokardiogram.
 Ako je se dogodi akutno pogoranje, tada pacijenta valja
zadrati u bolnici.
 Ako je LVEF nizak, tada se radi o sistolikom zatajenju srca.
 Takvo znanje nalazi se u dugotrajnoj memoriji eksperta
 Trenutna situacija dolazi pacijent sa konkretnim
problemom opis situacije se pohranjuje u kratkotrajnu
memoriju eksperta
 Spoznajni proces ekspert pronalazi pravila koja
odgovaraju opisanoj situaciji i djeluje po njima
Radna memorija
 Opisuje se trenutni problem (kratkotrajna memorija
eksperta)
 Opis se sastoji od skupa injenica
 Primjer opisa problema:
w1: (B1 na B2) w6: (B2 boja plava)
w2: (B1 na B3) w7: (B3 lijevo-od B4)
w3: (B1 boja crvena) w8: (B3 na stol)
w4: (B2 na stol) w9: (B3 boja crvena)
w5: (B2 lijevo-od B3)
Sintaksa pravila
 jedno pravilo ima opi oblik
ako je ispunjen uvjet tada izvri akciju
 sintaksa:

 primjer: pravilo koje pronalazi stog od dva bloka koji se


nalazi sa lijeve strane crvenog bloka
Pattern matching
 Vano je primjetiti:
 Izvravanje akcije (desna strana) je trivijalno
 Pronalaenje injenica koje odgovaraju pravilima (lijeva
strana) je teak problem

 Naivni pristup:
 r pravila
 f injenica
 p premisa
p
 Ukupno (r * f ) usporedbi u svakom ciklusu
4
 Realan primjer: 150*20 = 24,000,000 usporedbi
 Nije dobro!

 Kljuna ideja: ukloniti redundanciju strukturom!


Rete
 Charles R. Forgy, 1974
 pattern matching koji omoguava efikasno pronalaenje
injenica koje zadovoljavaju produkcijske uvjete
 vrlo fleksibilan - efikasno reagira na promjene
 u skupu pravila
 u skupu injenica
 black box
Rete komponente
 radna memorija (WM - Working Memory)
 sadri injenice (WME - WM Element)
 injenica je u obliku subjekt-predikat-objekt
 alfa mrea
 sparuje sve mogue uvjete iz pravila sa svim WME koji ih
mogu zadovoljiti
 izlazi su elementi alfa memorije
 beta mrea
 kombinira uvjete u produkcijama i elemente alfa memorije da
se konstruiraju produkcije
Alfa mrea
 za sve postojee uvjete u skupu pravila alfa mrea
pridjeljuje injenice koje ih zadovoljavaju
Alfa mrea
 iz svih pravila se izvlae uvjeti da se dobije skup uvjeta
(C1-C10)
 svaka injenica iz skupa injenica se propagira po strukturi
od vrha prema listovima
 na taj nain svaki element alfa memorije unaprijed zna koje
ga injenice uope mogu zadovoljiti
 npr. AM za C1 sadri sve injenice iz radne memorije koje
imaju predikat "on"
 pri stvaranju novih injenica (WME) one se samo dodaju u
ve postojeu alfa strukturu
 pri stvaranju novih pravila (i novih uvjeta) alfa mrea se
preoblikuje (trivijalno)

 drugi nain implementacije: HASH liste na grananjima


stabla
Beta mrea za jedno pravilo
(beta network)
Beta mrea za jedno pravilo
 sa desne strane su elementi alfa memorije koje smo
sagradili konstrukcijom alfa mree
 prvo (ali ne dummy) spajanje se vri za vrijdnost varijable
<y>
 kombiniraju se dva skupa {w1,w2,w4,w8} i {w5,w7}
 trae se parovi koji e imati istu vrijednost za <y>
 od ukupno 8 mogunosti samo dvije su takve:
 w1^w5
 w2^w7
 zatim se vri spajanje na varijablu <z>
 kombinira se dobiveni skup sa skupom {w3,w9}
 od ukupno 4 mogunosti samo je jedna uspjena
 w1^w5^w9
 Za vjebu: to se dogaa u beta mrei ako nastane nova
injenica:
 w10: (B4 ^color red)
Beta mrea za vie pravila
Rete mrea za vie pravila
 jedna mrea kombinira sva pravila u sustavu odjednom
 ovisno o redoslijedu uvjeta mogue je sagraditi vie
razliitih mrea koje vre istu funkciju
 to je optimalno?
 ako postoji presjek uvjeta tada se on rjeava jednim
vorom:
 npr. presjek P1 i P2 je {C1, C2}
 to se moe uzeti u obzir pri izgradnji mree
 Meutim:
 beta mrea gradi se iterativno
 dozvoljeno je naknadno dodavanje pravila
 struktura nije uvijek optimalna
Uporaba negacije
 Neki uvjeti u uvjetima mogu biti negirani:
(<x> na <y>) // C1
(<y> lijevo-od <z>) // C2
- (<z> boja crvena) // not C3
 Interpretacija:
 lijevo od y mora biti neto to nije crvene boje - NE
 lijevo od y ne smije biti nita crvene boje - DA
 Za negaciju se uvodi nova vrsta vora: negirani vor
 Negirani vor vri spajanja isto kao i obini, ali:
 ne prosljeuje rezultat spajanja nego zanemaruje elemente sa
alfa strane
 alje element samo ako niti jedno spajanje za taj element nije
uspjelo!
Beta mrea sa negacijom
Spajanje u negiranom voru
 U negiranom voru se vri spajanje {w1^w5, w2^w7} sa
{w3, w9}
 Prvo se razmatra element w1^w5
 Spajanje sa w3: ne uspijeva
 Spajanje sa w9: uspijeva
 Kako je barem jedno spajanje uspjelo, w1^w5 se ne alje
dalje kroz mreu
 Zatim se razmatra element w2^w7
 Spajanje sa w3: ne uspijeva
 Spajanje sa w9: ne uspijeva
 Kako nijedno nije uspjelo, w2^w7 se alje dalje kroz mreu

 Ostale vrste vorova: vei, manji, i sl. realizacija na slian


nain kao negirani vor
Saetak
 RETE algoritam
 Pronalazi uzorke injenica koje odgovarajusvim pravilima
odjednom
 Struktura se izgradi i prije samog procesa zakljuivanja
 Struktura vrijedi neovisno o skupu injenica
 Pri nastanku novih injenica nema redundantnih provjera
 Vrlo efikasan

 Danas
 Gotovo redovita uporaba u sustavima s pravilima
 Postoji i verzija RETE II koja je komercijalna (neznamo kako
radi)

Vous aimerez peut-être aussi