24.04.2013 Views

Guia d'estudi: Intel·ligència Artificial - La Salle

Guia d'estudi: Intel·ligència Artificial - La Salle

Guia d'estudi: Intel·ligència Artificial - La Salle

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

4. Altrament, esborreu n d’L.<br />

5. Expandiu n, afegint tots els seus fills a L. Cada fill estarà etiquetat amb el camí<br />

recorregut des del node inicial fins a ell.<br />

6. Reorganitzeu L tot ordenant els nodes segons la seva distància a l'objectiu. Al<br />

principi de la llista hi ha d'haver el node que es considera més proper a l'objectiu.<br />

7. Retorneu al pas 2.<br />

Si ara torneu a intentar resoldre el problema del laberint usant l’algorisme best-first<br />

search i usant com a heurística la distància de Manhattan, veureu com sí que trobeu<br />

una solució, i a més a més resulta ser la millor. Tot i així, l’algorisme no sempre<br />

garanteix trobar la millor solució.<br />

[Ginsberg1993]p71<br />

Exercici: best-first search amb LISP (optatiu)<br />

Reprenem el mateix problema de les sessions anteriors:<br />

Implementeu en LISP els algorismes de cerca per trobar un node determinat dins d'un<br />

arbre. Donat un objectiu (número enter) cal trobar un node tal que la seva propietat<br />

COST sigui el més similar possible a l'objectiu. Retorneu una llista on el primer<br />

element sigui el node solució i el segon una subllista amb el camí.<br />

Implementeu l’algorisme següent:<br />

f) Best-first search.<br />

Per exemple, l'arbre de cerca es pot representar de la manera següent:<br />

- Cada node té tres propietats: FILLS, COST i CAMÍ ASSOCIAT.<br />

- <strong>La</strong> propietat fills del node n és una llista amb els noms dels fills d’n.<br />

- <strong>La</strong> propietat COST del node n és un enter.<br />

- <strong>La</strong> propietat CAMÍ ASSOCIAT indica el camí que cal seguir per arribar al node.<br />

Exemple:<br />

(setf (get 'A 'fills) '(B C)<br />

(get 'A 'cost) 1<br />

(get 'B 'fills) '(D E)<br />

(get 'B 'cost) 2<br />

(get 'C 'fills) '(F G)<br />

(get 'C 'cost) 3<br />

62

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

Saved successfully!

Ooh no, something went wrong!