• No se han encontrado resultados

Tema 4: Técnicas heurísticas de

N/A
N/A
Protected

Academic year: 2022

Share "Tema 4: Técnicas heurísticas de"

Copied!
68
0
0

Texto completo

(1)

Introducci´on a la Inteligencia Artificial Curso 2002–2003

Tema 4: T´ ecnicas heur´ısticas de b´ usqueda

Jos´e A. Alonso Jim´enez Francisco J. Mart´ın Mateos

Jos´e L. Ruiz Reina

Dpto. de Ciencias de la Computaci´on e Inteligencia Artificial

Universidad de Sevilla

(2)

Concepto de heur´ıstica

x

Base de la heur´ıstica: aplicar conocimiento al proceso de b´ usqueda para hacerlo m´ as eficiente.

x

Objetivo: podar el espacio de b´ usqueda estimando la “bondad” de los nodos.

x

Funci´ on de evaluaci´ on heur´ıstica:

u Estima la “distancia” al final.

u Valor en los estados finales: 0.

x

Comparaci´ on de los estados mediante valor heur´ıstico.

IIA 2002–2003 CcIa ecnicas heur´ısticas de b´usqueda 4.2

(3)

Problema del paseo

x

Enunciado:

u Una persona puede moverse en l´ınea recta dando cada vez un paso hacia la derecha o hacia la izquierda.

u Representamos su posici´on mediante un n´umero entero.

u La posici´on inicial es 0.

u La posici´on aumenta en 1 por cada paso a la derecha.

u La posici´on decrece en 1 por cada paso a la izquierda.

u El problema consiste en llegar a la posici´on -3.

(4)

Heur´ıstica en el problema del paseo

x

Funci´ on de evaluaci´ on heur´ıstica:

heuristica(estado) = distancia(estado,estado-final)

x

Representaci´ on:

(defun heuristica (estado)

(abs (- estado *estado-final*)))

IIA 2002–2003 CcIa ecnicas heur´ısticas de b´usqueda 4.4

(5)

Grafo de escalada para el problema del paseo

1

0 1

H = 4

-1 2

0

-1

-2 3

-3 4

H = 3

H = 3

H = 2

H = 2

H = 1

H = 0

(6)

Definici´ on de nodo heur´ıstico

x

Nodo heur´ıstico = Estado + Camino + Heuristica

x

Representaci´ on de nodos en Lisp

(defstruct (nodo-h (:constructor crea-nodo-h) (:conc-name nil))

estado camino

heuristica-del-nodo)

IIA 2002–2003 CcIa ecnicas heur´ısticas de b´usqueda 4.6

(7)

Procedimiento de b´ usqueda en escalada

1. Crear la variable local ACTUAL que es el nodo heur´ıstico cuyo estado es el *ESTADO-INICIAL*, cuyo camino es la lista vac´ıa y cuya heur´ıstica es la del *ESTADO-INICIAL*.

2. Repetir mientras que el nodo ACTUAL no sea nulo:

2.1. si el estado del nodo ACTUAL es un estado final, devolver el nodo ACTUAL y terminar;

2.2. en caso contrario, cambiar ACTUAL por su mejor sucesor (es decir, uno de sus sucesores cuya heur´ıstica sea menor que la del nodo ACTUAL y menor o igual que las heur´ısticas de los restantes

sucesores, si existen dichos sucesores y NIL en caso contrario).

(8)

Implementaci´ on de la b´ usqueda en escalada

(defun busqueda-en-escalada ()

(let ((actual (crea-nodo-h :estado *estado-inicial* ; 1 :camino nil

:heuristica-del-nodo

(heuristica *estado-inicial*))))

(loop until (null actual) do ; 2

(cond ((es-estado-final (estado actual)) ; 2.1 (return actual))

(t (setf actual ; 2.2

(mejor (sucesores actual)

(heuristica-del-nodo actual))))))))

IIA 2002–2003 CcIa ecnicas heur´ısticas de b´usqueda 4.8

(9)

Implementaci´ on de la b´ usqueda en escalada

(defun sucesores (nodo) (let ((resultado ()))

(loop for operador in *operadores* do

(let ((siguiente (sucesor nodo operador)))

(when siguiente (push siguiente resultado)))) (nreverse resultado)))

(defun sucesor (nodo operador)

(let ((siguiente-estado (aplica operador (estado nodo)))) (when siguiente-estado

(crea-nodo-h :estado siguiente-estado

:camino (cons operador (camino nodo)) :heuristica-del-nodo

(heuristica siguiente-estado)))))

(10)

Implementaci´ on de la b´ usqueda en escalada

(defun mejor (nodos minima-distancia-al-final) (let ((mejor-nodo nil))

(loop for n in nodos do

(when (< (heuristica-del-nodo n) minima-distancia-al-final) (setf mejor-nodo n

minima-distancia-al-final (heuristica-del-nodo n)))) mejor-nodo))

IIA 2002–2003 CcIa ecnicas heur´ısticas de b´usqueda 4.10

(11)

Soluci´ on del paseo en escalada

> (load "p-paseo.lsp") T

> (load "b-escalada.lsp") T

> (trace es-estado-final) (ES-ESTADO-FINAL)

> (busqueda-en-escalada)

1. Trace: (ES-ESTADO-FINAL ’0) 1. Trace: (ES-ESTADO-FINAL ’-1) 1. Trace: (ES-ESTADO-FINAL ’-2) 1. Trace: (ES-ESTADO-FINAL ’-3)

#S(NODO-H

:ESTADO -3

:CAMINO (MOVER-A-IZQUIERDA MOVER-A-IZQUIERDA MOVER-A-IZQUIERDA) :HEURISTICA-DEL-NODO 0)

(12)

Heur´ıstica en el problema del viaje

x

Mapa:

HU

SE

CO JA

CA

GR

AL MA

IIA 2002–2003 CcIa ecnicas heur´ısticas de b´usqueda 4.12

(13)

Heur´ıstica en el problema del viaje

x

Coordenadas:

Almeria : (409.5 93 ) Granada : (309 127.5) Malaga : (232.5 75 )

Cadiz : ( 63 57 )

Huelva : ( 3 139.5) Sevilla : ( 90 153 ) Cordoba : (198 207 ) Jaen : (295.5 192 )

x

Funci´ on de evaluaci´ on heur´ıstica:

heuristica(estado) = distancia(coordenadas(estado), coordenadas(almeria))

(14)

Lisp: Funciones matem´ aticas y listas de asociaci´ on

x

Funciones matem´ aticas

* (SQRT X)

(sqrt 144) => 12

* (EXPT X Y)

(expt 2 4) => 16

x

Listas de asociaci´ on

* (ASSOC ITEM A-LISTA [:TEST PREDICADO])

(assoc ’b ’((a 1) (b 2) (c 3))) => (B 2)

(assoc ’(b) ’((a 1) ((b) 1) (c d))) => NIL

(assoc ’(b) ’((a 1) ((b) 1) (c d)) :test #’equal) => ((B) 1)

IIA 2002–2003 CcIa ecnicas heur´ısticas de b´usqueda 4.14

(15)

Implementaci´ on del problema de viaje con heur´ıstica

(defun heuristica (estado)

(distancia estado *estado-final*)) (defun distancia (c1 c2)

(sqrt (+ (expt (- (abscisa c1) (abscisa c2)) 2)

(expt (- (ordenada c1) (ordenada c2)) 2)))) (defun abscisa (ciudad)

(first (second (assoc ciudad *ciudades*)))) (defun ordenada (ciudad)

(second (second (assoc ciudad *ciudades*))))

(16)

Implementaci´ on del problema de viaje con heur´ıstica

(defparameter *ciudades*

’((almeria (409.5 93)) (cadiz ( 63 57)) (cordoba (198 207)) (granada (309 127.5)) (huelva ( 3 139.5)) (jaen (295.5 192)) (malaga (232.5 75)) (sevilla ( 90 153))))

IIA 2002–2003 CcIa ecnicas heur´ısticas de b´usqueda 4.16

(17)

Grafo de escalada para el problema del viaje

Cádiz Córdoba Huelva Málaga

Cádiz Córdoba Granada Sevilla

Almería 4 Córdoba Jaén Málaga

3 2

Sevilla 1 H = 325.08

H = 348.37 H = 240.27 H = 409.15 H = 177.91

H = 348.37 H = 240.27 H = 106.26 H = 325.08

H = 240.27 H = 150.99 H = 177.91 H = 0

(18)

Soluci´ on del viaje en escalada

> (load "p-viaje.lsp") T

> (load "b-escalada.lsp") T

> (trace es-estado-final) (ES-ESTADO-FINAL)

> (busqueda-en-escalada)

1. Trace: (ES-ESTADO-FINAL ’SEVILLA) 1. Trace: (ES-ESTADO-FINAL ’MALAGA) 1. Trace: (ES-ESTADO-FINAL ’GRANADA) 1. Trace: (ES-ESTADO-FINAL ’ALMERIA)

#S(NODO-H

:ESTADO ALMERIA

:CAMINO (IR-A-ALMERIA IR-A-GRANADA IR-A-MALAGA) :HEURISTICA-DEL-NODO 0.0)

IIA 2002–2003 CcIa ecnicas heur´ısticas de b´usqueda 4.18

(19)

Primera heur´ıstica en el problema del 8–puzzle

x

Heur´ıstica: N´ umero de piezas descolocadas.

H = 0

7 5

2 8 3

1 6 4 4

1 2 3

5 6 7 8

H = 4

x

Representaci´ on:

(defun heuristica (estado) (loop for i from 1 to 8

counting (not (equal (coordenadas i estado)

(coordenadas i *estado-final*)))))

(20)

8–puzzle p or escalada: 1

a

heur ´ıstica

75

283 164 H = 4

1 2 75

283 14 6 H = 3

5

283 164 7 H = 5

7

283 164 5 H = 5 75

283 41 6 H = 3

75

23 148 6 H = 3

75

283 1 H = 44 675

283 164 H = 4 IIA2002–2003CcI a

T´ecnicasheur´ısticasdeb´usqueda4.20

(21)

Segunda heur´ıstica en el problema del 8–puzzle

x

Heur´ıstica: Suma de las distancias manhattan.

7 5

2 8 3

1 6 4 4

1 2 3

5 6 7 8

H = 0 H = 5

(defun heuristica-2 (estado) (loop for i from 1 to 8

summing (distancia-manhattan (coordenadas i estado)

(coordenadas i *estado-final*)))) (defun distancia-manhattan (c1 c2)

(+ (abs (- (first c1) (first c2)))

(abs (- (second c1) (second c2)))))

(22)

8–puzzle p or escalada: 2

a

heur ´ıstica

5

283 164 7 H = 6

75

283 14 6 H = 4

7

283 164 5 H = 6 75

283 164 H = 5

75

283 14 6 H = 5

75

23 148 6 H = 3

75

283 41 6 H = 5 53 14 7682 H = 2

75

2 14 6

3 8 H = 4

7

283 14 H = 465 53 14

2 8 76 H = 2

75

3 4 6

12 8 H = 0

3 4 5 H = 2

12 78 6

75

23 148 6 H = 3

75

3 6

12 84 H = 1

75

283 164 H = 5 6

5

1 2 3 4 IIA2002–2003CcI a

T´ecnicasheur´ısticasdeb´usqueda4.22

(23)

Comparaci´ on de escalada en el 8–puzzle

Profundidad

iterativa Escalada

Estado Tiempo Espacio Tiempo Espacio inicial (seg.) (bytes) (seg.) (bytes)

7 5

2 8 3

1 6 4

0.06 9.028 0.05 6.516

5 8

4 1

3 2

7 6

15.88 656.020 0.11 14.604

(24)

Propiedades de la b´ usqueda por escalada

x

Complejidad:

u p: profundidad de la soluci´on.

u Complejidad en espacio: O(1).

u Complejidad en tiempo: O(p).

x

No es completa.

x

No es minimal.

x

Problemas:

u M´aximos locales.

u Mesetas.

u Crestas.

IIA 2002–2003 CcIa ecnicas heur´ısticas de b´usqueda 4.24

(25)

Lisp: Ordenaci´ on

* (SORT LISTA PREDICADO [:KEY CLAVE])

(sort ’(3 1 5 2) #’<) => (1 2 3 5)

(sort ’(-3 1 -5 2 7) #’>) => (7 2 1 -3 -5) (sort ’(-3 1 -5 2 7) #’> :key #’abs) => (7 -5 -3 2 1)

(setf l ’(a c b d)) => (A C B D)

(sort l #’string<) => (A B C D)

(26)

Procedimiento de la b´ usqueda por primero el mejor

1. Crear las siguientes variables locales

1.1. ABIERTOS (para almacenar los nodos generados a´un no analizados) con valor la lista formado por el nodo inicial (es decir, el nodo cuyo estado es el estado inicial, cuyo camino es la lista vac´ıa y cuya heur´ıstica es la del estado inicial);

1.2. CERRADOS (para almacenar los nodos analizados) con valor la lista vac´ıa;

1.3. ACTUAL (para almacenar el nodo actual) con valor la lista vac´ıa.

1.4. NUEVOS-SUCESORES (para almacenar la lista de los sucesores del nodo actual) con valor la lista vac´ıa.

IIA 2002–2003 CcIa ecnicas heur´ısticas de b´usqueda 4.26

(27)

Procedimiento de la b´ usqueda por primero el mejor

2. Mientras que ABIERTOS no est´a vac´ıa,

2.1 Hacer ACTUAL el primer nodo de ABIERTOS 2.2 Hacer ABIERTOS el resto de ABIERTOS

2.3 Poner el nodo ACTUAL en CERRADOS.

2.4 Si el nodo ACTUAL es un final,

2.4.1 devolver el nodo ACTUAL y terminar.

2.4.2 en caso contrario, hacer

2.4.2.1 NUEVOS-SUCESORES la lista de sucesores del nodo ACTUAL que no est´an en ABIERTOS ni en CERRADOS y 2.4.2.2 ABIERTOS la lista obtenida a~nadiendo los

NUEVOS-SUCESORES al final de ABIERTOS y ordenando sus nodos por orden creciente de sus heur´ısticas.

3. Si ABIERTOS est´a vac´ıa, devolver NIL.

(28)

Implementaci´ on de la b´ usqueda por primero el mejor

(defun busqueda-por-primero-el-mejor ()

(let ((abiertos (list (crea-nodo-h :estado *estado-inicial*

:camino nil

:heuristica-del-nodo

(heuristica *estado-inicial*)))) ;1.1

(cerrados nil) ;1.2

(actual nil) ;1.3

(nuevos-sucesores nil)) ;1.4

IIA 2002–2003 CcIa ecnicas heur´ısticas de b´usqueda 4.28

(29)

Implementaci´ on de la b´ usqueda por primero el mejor

(loop until (null abiertos) do ;2

(setf actual (first abiertos)) ;2.1

(setf abiertos (rest abiertos)) ;2.2

(setf cerrados (cons actual cerrados)) ;2.3

(cond ((es-estado-final (estado actual)) ;2.4

(return actual)) ;2.4.1

(t (setf nuevos-sucesores ;2.4.2.1

(nuevos-sucesores actual abiertos cerrados))

(setf abiertos ;2.4.2.2

(ordena-por-heuristica

(append abiertos nuevos-sucesores)))))))) (defun ordena-por-heuristica (lista-de-nodos)

(sort lista-de-nodos #’< :key #’heuristica-del-nodo))

(30)

8–puzzle p or primero el mejor: 1

a

heur ´ıstica

1 75

283 164 H = 4 2 5

283 164 7 H = 5

75

283 14 6 H = 3

7

283 164 5 H = 5 5

283 4 761 H = 3

75

23 14 6 H = 38 7

283 1 65

4 H = 4

3 53 4 768 21 H = 3

5

2 4 6 H = 4

83 71 5

3 14 768

2 H = 2

75

2 14 6

3 8 H = 4

4 753 4 6

12 8 H = 0

3 4 5 H = 2

12 78 6

75

3 6

12 84 H = 1

5 6 7 IIA2002–2003CcI a

T´ecnicasheur´ısticasdeb´usqueda4.30

(31)

p or primero-el-mejor: 2

a

heur ´ıstica

1 2 75

23 14 6 H = 38

75

283 164 H = 5 5

283 164 7 H = 6

75

283 14 6 H = 4

7

283 164 5 H = 6 5

283 4 761 H = 5

7

283 1 65

4 H = 5

3 53 14 7682 H = 2

75

2 14 6

3 8 H = 4 753 4 6

12 8 H = 0

3 4 5 H = 2

12 78 6

75

3 6

12 84 H = 1 6

5

4 CcI a

T´ecnicasheur´ısticasdeb´usqueda4.31

(32)

Comparaci´ on de primero el mejor en el 8–puzzle

Profundidad

iterativa Escalada Primero el

mejor

Estado Tiempo Espacio Tiempo Espacio Tiempo Espacio inicial (seg.) (bytes) (seg.) (bytes) (seg.) (bytes)

7 5

2 8 3

1 6 4

0.06 9.028 0.05 6.516 0.05 6.884

5 8

4 1

3 2

7 6

15.88 656.020 0.11 14.604 0.13 15.844

IIA 2002–2003 CcIa ecnicas heur´ısticas de b´usqueda 4.32

(33)

Propiedades de la b´ usqueda por primero el mejor

x

Complejidad:

u r: factor de ramificaci´on.

u p: profundidad de la soluci´on.

u Complejidad en espacio: O(rp).

u Complejidad en tiempo: O(rp).

u En la pr´actica, la complejidad depende de la calidad de la heur´ıstica usada

x

No es completa.

x

No es minimal.

(34)

Coste de aplicar un operador

x

En algunos problemas, existe un coste asociado a la aplicaci´ on de los operadores.

u Asumiremos que es siempre un n´umero positivo.

x

Costes en el problema del viaje

(defun coste-de-aplicar-operador (estado operador) (let ((estado-sucesor (aplica operador estado)))

(when estado-sucesor

(distancia estado estado-sucesor))))

IIA 2002–2003 CcIa ecnicas heur´ısticas de b´usqueda 4.34

(35)

B´ usqueda optimal

x

Los caminos tienen asociado un coste.

x

Objetivo: encontrar las soluciones de menor coste.

x

Seleccionar siempre el nodo de menor coste.

u Ordenando la cola de ABIERTOS en orden creciente de costes.

x

Caso particular: b´ usqueda en anchura.

(36)

Grafo optimal para el viaje

Cádiz Córdoba Huelva Málaga

Sevilla 1

C = 120.75

C = 0

C = 99.72 C = 88.04 C = 162.45

Granada

Almería Almería

Granada Jaén

C = 257.28 C = 219.39

C = 370.38

C = 255.23

C = 361.49 2

3 4 5

6 7

8

9

IIA 2002–2003 CcIa ecnicas heur´ısticas de b´usqueda 4.36

(37)

Definici´ on de nodo de coste

x

Nodo de coste = Estado + Camino + Coste del camino

x

Representaci´ on de nodos en Lisp

(defstruct (nodo-c (:constructor crea-nodo-c) (:conc-name nil))

estado camino

coste-camino)

(38)

Procedimiento de b´ usqueda optimal

1. Crear las siguientes variables locales

1.1. ABIERTOS (para almacenar los nodos de coste generados a´un no

analizados) con valor la lista formado por el nodo inicial (es decir, el nodo cuyo estado es el estado inicial, cuyo camino es la lista vac´ıa y cuyo coste es 0);

1.2. CERRADOS (para almacenar los nodos analizados) con valor la lista vac´ıa;

1.3. ACTUAL (para almacenar el nodo actual) con valor la lista vac´ıa.

1.4. SUCESORES (para almacenar la lista de los sucesores del nodo actual) con valor la lista vac´ıa.

IIA 2002–2003 CcIa ecnicas heur´ısticas de b´usqueda 4.38

(39)

Procedimiento de b´ usqueda optimal

2. Mientras que ABIERTOS no est´a vac´ıa,

2.1 Hacer ACTUAL el primer nodo de ABIERTOS 2.2 Hacer ABIERTOS el resto de ABIERTOS

2.3 Poner el nodo ACTUAL en CERRADOS.

2.4 Si el nodo ACTUAL es un final,

2.4.1 devolver el nodo ACTUAL y terminar.

2.4.2 en caso contrario, hacer

2.4.2.1 SUCESORES la lista de sucesores del nodo ACTUAL para los que no existen en ABIERTOS o CERRADOS un nodo con el mismo estado y menor coste.

2.4.2.2 ABIERTOS la lista obtenida a~nadiendo los NUEVOS-SUCESORES al final de ABIERTOS y ordenando sus nodos por orden

creciente de sus costes.

3. Si ABIERTOS est´a vac´ıa, devolver NIL.

(40)

Implementaci´ on de la b´ usqueda optimal

(defun busqueda-optimal ()

(let ((abiertos (list (crea-nodo-c :estado *estado-inicial* ;1.1 :camino nil

:coste-camino 0)))

(cerrados nil) ;1.2

(actual nil) ;1.3

(sucesores nil)) ;1.4

IIA 2002–2003 CcIa ecnicas heur´ısticas de b´usqueda 4.40

(41)

Implementaci´ on de la b´ usqueda optimal

(loop until (null abiertos) do ;2

(setf actual (first abiertos)) ;2.1

(setf abiertos (rest abiertos)) ;2.2

(setf cerrados (cons actual cerrados)) ;2.3

(cond ((es-estado-final (estado actual)) ;2.4

(return actual)) ;2.4.1

(t (setf sucesores ;2.4.2.1

(nuevos-o-mejores-sucesores actual abiertos cerrados))

(setf abiertos ;2.4.2.2

(ordena-por-coste (append abiertos sucesores))))))))

(42)

Implementaci´ on de la b´ usqueda optimal

(defun nuevos-o-mejores-sucesores (nodo abiertos cerrados) (elimina-peores (sucesores nodo) abiertos cerrados))

(defun sucesores (nodo) (let ((resultado ()))

(loop for operador in *operadores* do

(let ((siguiente (sucesor nodo operador)))

(when siguiente (push siguiente resultado)))) (nreverse resultado)))

IIA 2002–2003 CcIa ecnicas heur´ısticas de b´usqueda 4.42

(43)

Implementaci´ on de la b´ usqueda optimal

(defun sucesor (nodo operador)

(let ((siguiente-estado (aplica operador (estado nodo)))) (when siguiente-estado

(crea-nodo-c :estado siguiente-estado

:camino (cons operador (camino nodo)) :coste-camino

(+ (coste-de-aplicar-operador (estado nodo) operador)

(coste-camino nodo)))))) (defun elimina-peores (nodos abiertos cerrados)

(loop for nodo in nodos

when (and (not (esta-mejor nodo abiertos)) (not (esta-mejor nodo cerrados))) collect nodo))

(44)

Implementaci´ on de la b´ usqueda optimal

(defun esta-mejor (nodo lista-de-nodos) (let ((estado (estado nodo)))

(loop for n in lista-de-nodos

thereis (and (equalp estado (estado n))

(<= (coste-camino n) (coste-camino nodo)))))) (defun ordena-por-coste (lista-de-nodos)

(sort lista-de-nodos #’< :key #’coste-camino))

IIA 2002–2003 CcIa ecnicas heur´ısticas de b´usqueda 4.44

(45)

je median te b ´usqueda optimal

"p-viaje") "b-optimal") Coste:0.00 Coste:99.72 Coste:120.75 Coste:88.04 Coste:162.45 Coste:88.04 Coste:99.72 Coste:120.75 Coste:257.28 Coste:219.39 Coste:162.45 Coste:255.23 Coste:219.39 Coste:370.38 Coste:255.23 Coste:361.49 Coste:257.28 :ESTADOALMERIA :CAMINO(IR-A-ALMERIAIR-A-GRANADA IR-A-MALAGA) :COSTE-CAMINO361.48953) CcI a

T´ecnicasheur´ısticasdeb´usqueda4.45

(46)

Propiedades de la b´ usqueda optimal

x

Complejidad:

u r: factor de ramificaci´on.

u p: profundidad de la soluci´on.

u Complejidad en espacio: O(rp).

u Complejidad en tiempo: O(rp).

x

Es completa.

x

Es optimal.

IIA 2002–2003 CcIa ecnicas heur´ısticas de b´usqueda 4.46

(47)

B´ usqueda A*

x

Objetivo de la b´ usqueda A*:

u conseguir buenas soluciones (minimales en coste, optimales).

u ganar en eficiencia (podando el ´arbol de b´usqueda).

x

Idea: asignar a cada nodo n un valor f (n) = g(n) + h(n),

u g(n): coste del camino hasta n

u h(n): heuristica del nodo, estimaci´on del coste de un camino ´optimo desde n hasta un estado final

u f (n): estimaci´on del coste total de una soluci´on ´optima que pasa por n

x

Seleccionar siempre el nodo con menor valor de f

u ordenando la cola de ABIERTOS en orden creciente respecto a f

(48)

Grafo A* para el viaje

Cádiz Córdoba Huelva Málaga

Sevilla 1

Granada

Almería

C+H = 361.01 C+H = 497.19 C+H = 340.36 C+H = 448.09

C+H = 361.49

C+H = 361.49 C+H = 325.08

Jaén

C+H = 370.38

2 3

4

5

IIA 2002–2003 CcIa ecnicas heur´ısticas de b´usqueda 4.48

(49)

Definici´ on de nodo de coste con heur´ıstica

x

Nodo de coste = Estado + Camino + Coste-camino + Coste-m´ as-heur´ıstica

x

Representaci´ on de nodos en Lisp

(defstruct (nodo-hc (:constructor crea-nodo-hc) (:conc-name nil))

estado camino

coste-camino

coste-mas-heuristica)

(50)

Procedimiento A*

1. Crear las siguientes variables locales

1.1. ABIERTOS (para almacenar los nodos heur´ısticos con costes generados a´un no analizados) con valor la lista formado por el nodo inicial (es decir, el nodo cuyo estado es el estado inicial, cuyo camino es la lista vac´ıa, el coste es 0 y el coste m´as heur´ıstica es la

heur´ıstica del estado inicial);

1.2. CERRADOS (para almacenar los nodos analizados) con valor la lista vac´ıa;

1.3. ACTUAL (para almacenar el nodo actual) con valor la lista vac´ıa.

1.4. SUCESORES (para almacenar la lista de los sucesores del nodo actual) con valor la lista vac´ıa.

IIA 2002–2003 CcIa ecnicas heur´ısticas de b´usqueda 4.50

(51)

Procedimiento A*

2. Mientras que ABIERTOS no est´a vac´ıa,

2.1 Hacer ACTUAL el primer nodo de ABIERTOS 2.2 Hacer ABIERTOS el resto de ABIERTOS

2.3 Poner el nodo ACTUAL en CERRADOS.

2.4 Si el nodo ACTUAL es un final,

2.4.1 devolver el nodo ACTUAL y terminar.

2.4.2 en caso contrario, hacer

2.4.2.1 SUCESORES la lista de sucesores del nodo ACTUAL para los que no existen en ABIERTOS o CERRADOS un nodo con el mismo estado y menor coste.

2.4.2.2 ABIERTOS la lista obtenida a~nadiendo los NUEVOS-SUCESORES al final de ABIERTOS y ordenando sus nodos por orden

creciente de sus sumas de costes y heur´ısticas.

3. Si ABIERTOS est´a vac´ıa, devolver NIL.

(52)

Implementaci´ on de A*

(defun busqueda-a-estrella ()

(let ((abiertos (list (crea-nodo-hc :estado *estado-inicial* ;1.1 :camino nil

:coste-camino 0

:coste-mas-heuristica

(heuristica *estado-inicial*))))

(cerrados nil) ;1.2

(actual nil) ;1.3

(sucesores nil)) ;1.4

IIA 2002–2003 CcIa ecnicas heur´ısticas de b´usqueda 4.52

(53)

Implementaci´ on de A*

(loop until (null abiertos) do ;2

(setf actual (first abiertos)) ;2.1

(setf abiertos (rest abiertos)) ;2.2

(setf cerrados (cons actual cerrados)) ;2.3

(cond ((es-estado-final (estado actual)) ;2.4

(return actual)) ;2.4.1

(t (setf sucesores ;2.4.2.1

(nuevos-o-mejores-sucesores actual abiertos cerrados))

(setf abiertos ;2.4.2.2

(ordena-por-coste-mas-heuristica

(append abiertos sucesores))))))))

(54)

Implementaci´ on de A*

(defun sucesor (nodo operador)

(let ((siguiente-estado (aplica operador (estado nodo)))) (when siguiente-estado

(crea-nodo-hc :estado siguiente-estado

:camino (cons operador (camino nodo)) :coste-camino

(+ (coste-de-aplicar-operador (estado nodo) operador) (coste-camino nodo))

:coste-mas-heuristica

(+ (+ (coste-de-aplicar-operador (estado nodo) operador) (coste-camino nodo))

(heuristica siguiente-estado)))))) (defun ordena-por-coste-mas-heuristica (lista-de-nodos)

(sort lista-de-nodos #’< :key #’coste-mas-heuristica))

IIA 2002–2003 CcIa ecnicas heur´ısticas de b´usqueda 4.54

(55)

je median te A*

"p-viaje") "b-a-estrella-1.lsp") Coste+Heuristica:325.08 Coste+Heuristica:448.09 Coste+Heuristica:361.01 Coste+Heuristica:497.19 Coste+Heuristica:340.36 Coste+Heuristica:340.36 Coste+Heuristica:361.49 Coste+Heuristica:361.01 Coste+Heuristica:370.38 Coste+Heuristica:361.49 Coste+Heuristica:361.49 ALMERIA (IR-A-ALMERIAIR-A-GRANADAIR-A-MALAGA) 361.48953 361.48953)) CcI a

T´ecnicasheur´ısticasdeb´usqueda4.55

(56)

Propiedades de A*

x

Sea h

(n) coste de un camino optimal desde n hasta un estado final

u f(n) = g(n) + h(n) coste total de una soluci´on ´optima que pasa por n

x

En la pr´ actica, no conocemos h

u Usamos una funci´on heur´ıstica h que estima h

x

Posibilidades:

u h = 0, b´usqueda optimal, no hay poda

u h = h, estimaci´on perfecta, no hay b´usqueda

u 0 < h < h, heur´ıstica admisible, soluci´on optimal garantizada

u h > h, no se puede garantizar optimalidad

IIA 2002–2003 CcIa ecnicas heur´ısticas de b´usqueda 4.56

(57)

Propiedades de A*

x

Usando una heur´ıstica admisible:

u Es completa.

u Es optimal.

x

Complejidad:

u r: factor de ramificaci´on.

u p: profundidad de la soluci´on.

u Complejidad en espacio: O(rp).

u Complejidad en tiempo: O(rp).

u En la pr´actica, el coste en tiempo y espacio depende de la calidad de la heur´ıstica usada

(58)

Demostraci´ on de la optimalidad de A*

SupongamosqueelalgoritmoA*usaunaheur´ısticaadmisible,yque pesunnodofinaltalquetalqueg(p)esminimal;estoes,pcorresponde aunasoluci´onoptimal.Supongamostambi´enquemesunnodocorres- pondienteaunasoluci´onsuboptimal;estoes,mesfinalyg(m)>g(p). Bastar´averquemnuncaesseleccionadodelacoladeABIERTOS. N´otesequenecesariamentehadeexistirunnodonenABIERTOSque pertenecealcaminooptimaldep.Comohesadmisibleynypest´anen elmismocaminoalasoluci´on,entonces: f(n)=g(n)+h(n)≤g(n)+h (n)=f (n)=f (p) SielalgoritmoA*seleccionamantesquen,entoncesf(m)≤f(n) yportantof(m)≤f (p). Adem´ascomomypsonfinales,setienequeh(m)=h(p)=h (m)= h (p)=0,luegof(m)=g(m)yf (p)=g(p).Comog(m)>g(p), deducimosquef(m)>f (p),loqueest´aencontradicci´onconloanterior. LuegoelalgoritmoA*nuncaseleccionaabiertosdeunnodocor- respondienteaunasoluci´onsuboptimal.Enotraspalabras,siunnodo finalesseleccionadodelacoladeABIERTOS(yportantodevueltocomo soluci´on)entoncesesunasoluci´onoptimal. IIA2002–2003CcI a

T´ecnicasheur´ısticasdeb´usqueda4.58

(59)

Invenci´ on de heur´ısticas

x

Estimaci´ on del coste restante hasta la soluci´ on optimal

x

Comparaci´ on de heur´ısticas:

u Si 0 ≤ h1 ≤ h2 ≤ h, entonces h2 est´a m´as informada que h1 y mejora la eficiencia

x

T´ ecnicas para encontrar heur´ısticas

u Relajaci´on del problema

u Combinaci´on de heur´ısticas admisibles

u Uso de informaci´on estad´ıstica

x

Evaluaci´ on eficiente de la funci´ on heur´ıstica

(60)

Problema del grafo

x

Enunciado:

u En el siguiente grafo buscar el camino de menor coste desde A hasta E.

A

C

B

D

E

Costes

A B C D E

A 8 1

B 8 2 3 7

C 1 2

D 3 1

E 7 1

Heur´ısticas A B C D E

5 1 10 3 0

IIA 2002–2003 CcIa ecnicas heur´ısticas de b´usqueda 4.60

(61)

taci´ on del problema del grafo

*estado-inicial*’a) es-estado-final(estado) estado’e)) *operadores* ir-a-c ir-a-d ir-a-e)) ir-a-b(estado) (memberestado’(acde)) ’b)) ir-a-c(estado) (memberestado’(ab)) ’c)) ir-a-d(estado) (memberestado’(be)) ’d)) ir-a-e(estado) (memberestado’(bd)) ’e)) CcI a

T´ecnicasheur´ısticasdeb´usqueda4.61

(62)

Represen taci´ on del problema del grafo

(defunaplica(operadorestado) (funcall(symbol-functionoperador)estado)) (defunheuristica(estado) (caseestado (a5) (b1) (c10) (d3) (e0))) (defuncoste-de-aplicar-operador(estadooperador) (caseestado (a(caseoperador (ir-a-b8) (ir-a-c1))) (b(caseoperador (ir-a-c2) (ir-a-d3) (ir-a-e7))) (c2) (d(caseoperador (ir-a-b3) (ir-a-e1))) (e(caseoperador (ir-a-b7) (ir-a-d1))))) IIA2002–2003CcI a

T´ecnicasheur´ısticasdeb´usqueda4.62

(63)

Comparaci´ on de soluciones de los misioneros

Problema con 10 misioneros, 10 can´ıbales y capacidad 6

Procedimiento Coste Segundos Bytes

en-anchura 28 0.69 170,120

en-profundidad 100 0.13 24,712

en-profundidad-iterativa 76 4.95 886,104

optimal 26 0.93 197,476

H=1 en-escalada Sin sol

H=1 por-primero-el-mejor 26 0.21 42,044

H=1 a-estrella 26 2.20 292,316

H=2 en-escalada Sin sol

H=2 por-primero-el-mejor 26 0.21 42,044

H=2 a-estrella 26 0.28 48,432

(64)

Comparaci´ on de soluciones de los misioneros

Problema con 20 misioneros, 20 can´ıbales y capacidad 11

Procedimiento Coste Segundos Bytes

en-anchura 48 9.34 1,499,192

en-profundidad 416 3.28 291,388

en-profundidad-iterativa 114 46.68 4,882,516

optimal 46 13.09 1,832,564

H=1 en-escalada Sin sol

H=1 por-primero-el-mejor 46 1.36 188,804

H=1 a-estrella 46 43.48 3,090,536

H=2 en-escalada Sin sol

H=2 por-primero-el-mejor 46 1.42 188,804

H=2 a-estrella 46 1.90 220,916

IIA 2002–2003 CcIa ecnicas heur´ısticas de b´usqueda 4.64

(65)

Comparaci´ on de soluciones de las N reinas

Problema con 8 reinas

Procedimiento Coste Segundos Bytes

en-anchura 8 18.50 6,605,436

en-profundidad 8 0.10 8,380

en-profundidad-iterativa 8 30.15 329,312

optimal Agotado

en-escalada 8 0.01 1,128

por-primero-el-mejor 8 0.02 2,560

a-estrella 8 0.01 2,656

(66)

Comparaci´ on de soluciones de las N reinas

Problema con 16 reinas

Procedimiento Coste Segundos Bytes

en-anchura Agotado

en-profundidad 16 351.98 687,208

en-profundidad-iterativa Agotado

optimal Agotado

en-escalada Sin sol

por-primero-el-mejor 16 0.51 58,860

a-estrella 16 0.50 59,404

IIA 2002–2003 CcIa ecnicas heur´ısticas de b´usqueda 4.66

(67)

Bibliograf´ıa

x

Borrajo, D. y otros Inteligencia artificial: M´ etodos y t´ ecnicas (Centro de estudios Ram´ on Areces, 1993).

u Cap. 5: “T´ecnicas para restringir la explosi´on combinatoria”.

x

Cort´ es, U., B´ ejar, J. y Moreno, A. Inteligencia artificial (Ediciones UPC, 1994).

u Cap. 4.5: “B´usqueda con informaci´on heur´ıstica”.

u Cap. 4.6: “B´usqueda de la soluci´on ´optima”.

x

Fern´ andez, S.; Gonz´ alez, J. y Mira, J. Problemas resueltos de Inteligen- cia Artificial Aplicada (B´ usqueda y representaci´ on) (Addison–Wesley, 1998).

u Cap. 2 “B´usqueda heur´ıstica”.

(68)

Bibliograf´ıa

x

Mira, J.; Delgado, A.E.; Boticario, J.G. y D´ıez, F.J. Aspectos b´ asicos de la Inteligencia Artificial (Sanz y Torres, 1995)

u Cap. 4: “B´usqueda heur´ıstica”.

x

Rich, E. y Knight, K. Inteligencia artificial (segunda edici´ on) (McGraw–Hill Interamericana, 1994).

u Cap. 3: “T´ecnicas de b´usqueda heur´ıstica”.

x

Russell, S. y Norvig, P. Artificial Intelligence (A Modern Approach) (Prentice–Hall, 1995).

u Cap. 4 “Informed search methods”.

x

Winston, P.R. Inteligencia artificial (3a. ed.) (Add–Wesley, 1994).

u Cap. 4: “Redes y b´usqueda b´asica”.

u Cap. 5: “Redes y b´usqueda ´optima”.

IIA 2002–2003 CcIa ecnicas heur´ısticas de b´usqueda 4.68

Referencias

Documento similar

Las características del trabajo con grupos que se debería llevar a cabo en los Servicios Sociales de Atención Primaria (SSAP), en términos de variabilidad o estabilidad

Dado que el régimen de los poderes de emergencia afecta a la democracia, a los derechos fundamentales y humanos, así como al Estado de derecho, el control de

Primeros ecos de la Revolución griega en España: Alberto Lista y el filohelenismo liberal conservador español 369 Dimitris Miguel Morfakidis Motos.. Palabras de clausura

Un caso particular de nodo de azar es el llamado nodo determinista, que es aquel que representa una variable cuyo valor es una función determinista de sus predecesores. Fi-

truye un grafo sustituyendo de forma iterativa cada nodo en un grafo original por un grafo. Es decir, empezado por un sustrato conexo inicial, cada nodo de este sus- trato

Tras establecer un programa de trabajo (en el que se fijaban pre- visiones para las reuniones que se pretendían celebrar los posteriores 10 de julio —actual papel de los

b) El Tribunal Constitucional se encuadra dentro de una organiza- ción jurídico constitucional que asume la supremacía de los dere- chos fundamentales y que reconoce la separación