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.

66 1. Pretraživanje<br />

Nastavak pretrage ostvaruje se rekurzivnim pozivom procedure best1 sa ažuriranim redom<br />

kao parametrom. Funkcija best1 poseduje takozvanu završnu (repnu) rekurziju koju Lisp<br />

prevodilac pretvara u eksplicitnu iteraciju čime se dobija na efikasnosti pri <strong>iz</strong>vršavanju.<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) ) ))<br />

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

(define G ‘( (x 3) (y 5) (children (C F H) ) ))<br />

(define H ‘( (x 1) (y 6) (children (D G) ) ))<br />

Procedurama <strong>iz</strong> tačke a) potrebno je dodati definicije funkcija expand, koja real<strong>iz</strong>uje<br />

ekspanziju čvora u stablu pretrage i distance koja računa vrednost heurističke funkcije za<br />

zadati čvor, kao i pomoćne funkcije get i square. Ove funkcije definisane su na isti način<br />

kao u zadatku 16.<br />

(define (get l p)<br />

(cadr (assoc p (eval l))))<br />

(define (distance n1 n2)<br />

(sqrt (+ (square (- (get n1 ‘x) (get n2 ‘x)))<br />

(square (- (get n1 ‘y) (get n2 ‘y))))))<br />

(define (square x)<br />

(* x x))<br />

(define (expand path)<br />

(delq! () (mapcar (lambda (child)<br />

(if (member child (cdr path))<br />

()<br />

(cons child path)))<br />

(get (car path) ‘children))))<br />

Diskusija<br />

Pretraga za problem definisan u tački b) inicira se pozivom (best ‘A ‘H). Program pri<br />

<strong>iz</strong>vršavanju ispisuje:<br />

RED ((A))

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

Saved successfully!

Ooh no, something went wrong!