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.

68 1. Pretraživanje<br />

(define (shorterp p1 p2)<br />

(< (path-length p1) (path-length p2)))<br />

(define (sort l f)<br />

(sort1 () l f))<br />

shorterp)<br />

finish))))<br />

(define (sort1 s l f)<br />

(if (null? l) s<br />

(sort1 (insert s (car l) f) (cdr l) f)))<br />

(define (insert l e f)<br />

(cond ((null? l) (list e))<br />

((f e (car l)) (cons e l))<br />

(else (cons (car l) (insert (cdr l) e f))))<br />

Funkcija branch-and-bound, čijim pozivom započinje pretraga, ima za parametre startni i<br />

ciljni čvor. Ova funkcija služi samo za inicijal<strong>iz</strong>aciju parametara rekurzivne funkcije<br />

branch-and-bound1 koja vrši pretraživanje.<br />

Red queue, prvi parametar funkcije branch-and-bound1 predstavljen je listom parcijalnih<br />

putanja od korena do otkrivenih a neobiđenih čvorova stabla pretrage na isti način kao u<br />

programu <strong>iz</strong> zadatka 26. Svaka parcijalna putanja je lista čvorova od lista stabla pretrage<br />

prema korenu. Vođenje evidencije o obrađenim parcijalnim putanjama potrebno je radi<br />

<strong>iz</strong>begavanja zatvorenih puteva u grafu pretrage. Inicijalno se red sastoji samo od jedne<br />

putanje koja se opet sastoji samo od korenog čvora.<br />

Funkcija branch-and-bound1 je po svemu ista kao funkcija best1 <strong>iz</strong> zadatka 27 osim u<br />

kriterijumu za sortiranje reda parcijalnih putanja posle ekspandovanja tekućeg čvora stabla<br />

pretrage. U svrhu poređenja parcijalnih putanja pri sortiranju koristi se funkcija (shorterp<br />

p1 p2). U skladu sa definicijom algoritma grananja i ograničavanja, porede se dužine,<br />

odnosno, u opštem slučaju, cene parcijalnih putanja pri čemu se koristi funkcija (pathlength<br />

p) koja određuje dužinu parcijalne putanje p.<br />

b) Zadata mrežu puteva, koja predstavlja graf pretrage predstavljena je na isti način kao u<br />

zadatku 26:<br />

(define A ‘( (x 2) (y 0) (children (B C D E) ) ))<br />

(define B ‘( (x 0) (y 2) (children (A E) ) ))<br />

(define C ‘( (x 4) (y 1) (children (A D G F) ) ))<br />

(define D ‘( (x 3) (y 3) (children (A C F H) ) ))<br />

(define E ‘( (x 1) (y 4) (children (A B) ) ))

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

Saved successfully!

Ooh no, something went wrong!