Introduccion a la Inteligencia Artificial Curso 2005{2006

24
Introducci ´ on a la Inteligencia Artificial Curso 2005–2006 Tema 7: B´ usqueda con informaci´ on Miguel A. Guti´ errez Naranjo Dpto. de Ciencias de la Computaci´ on e Inteligencia Artificial Universidad de Sevilla IIA 2005–06 usqueda con informaci´ on 1

Transcript of Introduccion a la Inteligencia Artificial Curso 2005{2006

Page 1: Introduccion a la Inteligencia Artificial Curso 2005{2006

Introduccion a la Inteligencia Artificial Curso 2005–2006

Tema 7: Busqueda con informacion

Miguel A. Gutierrez Naranjo

Dpto. de Ciencias de la Computacion e Inteligencia Artificial

Universidad de Sevilla

IIA 2005–06 Busqueda con informacion 1

Page 2: Introduccion a la Inteligencia Artificial Curso 2005{2006

Busqueda en el arbol

frontier

explored nodes

unexplored nodes

startnode

IIA 2005–06 Busqueda con informacion 2

Page 3: Introduccion a la Inteligencia Artificial Curso 2005{2006

Un algoritmo de busqueda (informal)

B Selecciono un nodo de la frontera (al principio, la frontera solocontiene al nodo inicial).

B Si el nodo seleccionado es el que busco, entonces se termina labusquda.

B Si no es el objetivo, entonces considero los nodos siguientes alnodo seleccionado.

B Anado estos nuevos nodos a la frontera

B Vuelvo al principio

B Las estrategias se definen por el orden de expansion de los nodos.

IIA 2005–06 Busqueda con informacion 3

Page 4: Introduccion a la Inteligencia Artificial Curso 2005{2006

Concepto de heurıstica

B Heurıstica:

Del griego heuriskein, descubrir: ¡Eureka!

Segun el DRAE: Tecnica de la indagacion y del descubri-miento.

Otro signicado: metodo para resolver problemas que nogarantiza la solucion, pero que en general funciona bien.

En nuestro caso, una heurıstica sera una funcion numericasobre los estados.

IIA 2005–06 Busqueda con informacion 4

Page 5: Introduccion a la Inteligencia Artificial Curso 2005{2006

Concepto de heurıstica

B Funcion de evaluacion heurıstica, heurstica(estado):

Estima la distancia al objetivo.

Siempre mayor o igual que 0.

Valor en los estados finales: 0.

Admitimos valor ∞.

IIA 2005–06 Busqueda con informacion 5

Page 6: Introduccion a la Inteligencia Artificial Curso 2005{2006

Ejemplos de heurıstica

B Problema del paseante:

Consideremos que damos un paseo por la recta real em-pezando por un entero. Nuestros pasos miden una unidady podemos ir a la izquierda y a la derecha.

B Implementacion:

sucesor(X,Y) :- Y is X - 1. estado_inicial(0).

sucesor(X,Y) :- Y is X + 1. estado_final(8).

B Heurıstica:heuristica(estado) = | estado - estado final |

IIA 2005–06 Busqueda con informacion 6

Page 7: Introduccion a la Inteligencia Artificial Curso 2005{2006

Ejemplos de heurıstica

B Problema del paseante:

Consideremos que damos un paseo por la recta real em-pezando por un entero. Nuestros pasos miden una unidady podemos ir a la izquierda y a la derecha.

B Implementacion:

sucesor(X,Y) :- Y is X - 1. estado_inicial(0).

sucesor(X,Y) :- Y is X + 1. estado_final(8).

B Heurıstica:heuristica(estado) = | estado - estado final |

IIA 2005–06 Busqueda con informacion 7

Page 8: Introduccion a la Inteligencia Artificial Curso 2005{2006

Ejemplos de heurıstica

B Viaje por Andalucıa

HU

SE

JACO

CA

GR

ALMA

B Coordenadas: Almerıa: (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)

B Funcion de evaluacion heurıstica (distancia en lınea recta):heuristica(estado) =

distancia(coordenadas(estado),coordenadas(almeria))

IIA 2005–06 Busqueda con informacion 8

Page 9: Introduccion a la Inteligencia Artificial Curso 2005{2006

Ejemplos de heurıstica

B Viaje por Andalucıa

HU

SE

JACO

CA

GR

ALMA

B Coordenadas: Almerıa: (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)

B Funcion de evaluacion heurıstica (distancia en lınea recta):heuristica(estado) =

distancia(coordenadas(estado),coordenadas(almeria))

IIA 2005–06 Busqueda con informacion 9

Page 10: Introduccion a la Inteligencia Artificial Curso 2005{2006

Ejemplos de heurıstica

B Problema del 8-puzzle:

B Primera heurıstica: Numero de piezas descolocadas respecto suposicion en el estado final.

B Ejemplo:

H = 0

7 5

2 8 3

1 6 4 4

1 2 3

567

8

H = 4

IIA 2005–06 Busqueda con informacion 10

Page 11: Introduccion a la Inteligencia Artificial Curso 2005{2006

Ejemplos de heurıstica

B Problema del 8-puzzle:

B Segunda heurıstica: Suma de las distancias Manhattan de cadapieza a donde deberıa estar en el estado final.

B Ejemplo:

7 5

2 8 3

1 6 4 4

1 2 3

567

8

H = 0H = 5

IIA 2005–06 Busqueda con informacion 11

Page 12: Introduccion a la Inteligencia Artificial Curso 2005{2006

Busqueda voraz greedy

B Expandir los nodos con heurıstica mas baja preferentemente.

B Ordenar la frontera por heurıstica, de menor a mayor.

B Siempre elige expandir lo que estima que esta mas cerca delobjetivo.

B Su rendimiento dependera de la bondad de la heurıstica usada.

IIA 2005–06 Busqueda con informacion 12

Page 13: Introduccion a la Inteligencia Artificial Curso 2005{2006

Busqueda voraz para el problema del paseante

B Ejemplo con estado final(-3).

1

0 1

H = 4

2−1

−2 3

−3 4

H = 3

H = 2

H = 1

H = 0

IIA 2005–06 Busqueda con informacion 13

Page 14: Introduccion a la Inteligencia Artificial Curso 2005{2006

Busqueda voraz para el problema del viaje

Cádiz Córdoba Huelva Málaga 2

1SevillaH = 325.08

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

Granada

Almería Jaén4

3

H = 106.26

H = 150.99H = 0

IIA 2005–06 Busqueda con informacion 14

Page 15: Introduccion a la Inteligencia Artificial Curso 2005{2006

Bu

squ

eda

vora

zde

l8-

puzz

le(p

rim

era

heu

rıst

ica)

1

7 5

2 8 3

1 6 4

H = 4

2

5

2 8 3

1 6 4

7

H = 5

7 5

2 8 3

1 4

6

H = 3

7

2 8 3

1 6 4

5

H = 5

5

2 8 3

4

7 6

1

H = 3

7 5

2 3

1 4

6

H = 3

8

7

2 8 3

1

6 5

4

H = 4

3

5

3

4

7 6

8

2 1

H = 3

5

2

4

6

H = 4

8 3

7 1

5

3

1 4

7 6

8

2

H = 2

7 5

2

1 4

6

3

8

H = 4

4

7 5

3

4

6

1 2

8

H = 0

3

4

5

H = 2

1 2

7 8

6

7 5

3

6

1 2

8 4

H = 1

5

6

7

IIA

2005–06

Busq

ueda

con

info

rmacio

n15

Page 16: Introduccion a la Inteligencia Artificial Curso 2005{2006

Bu

squ

eda

vora

zde

l8-

puzz

le(s

egu

nda

heu

rıst

ica)

1

2

7 5

2 3

1 4

6

H = 3

8

7 5

2 8 3

1 6 4

H = 5

5

2 8 3

1 6 4

7

H = 6

7 5

2 8 3

1 4

6

H = 4

7

2 8 3

1 6 4

5

H = 6

5

2 8 3

4

7 6

1

H = 5

7

2 8 3

1

6 5

4

H = 5

3

5

3

1 4

7 6

8

2

H = 2

7 5

2

1 4

6

3

8

H = 4

7 5

3

4

6

1 2

8

H = 0

3

4

5

H = 2

1 2

7 8

6

7 5

3

6

1 2

8 4

H = 1

6

5

4

IIA

2005–06

Busq

ueda

con

info

rmacio

n16

Page 17: Introduccion a la Inteligencia Artificial Curso 2005{2006

Implementacion

busqueda_voraz(Camino):-

estado_inicial(E),

heuristica(E,H),

aux_heuristica([H-[E]],Camino).

aux_heuristica(F,C) :-

write(’Frontera: ’), write(F), nl,

selecciona(_-[N|Caux],F,_),

estado_final(N),

reverse([N|Caux],C),

nl,

write(’Estado final encontrado: ’), write(N), nl,

write(’Camino encontrado: ’), write(C).

IIA 2005–06 Busqueda con informacion 17

Page 18: Introduccion a la Inteligencia Artificial Curso 2005{2006

Implementacion

aux_heuristica(F,C) :-

selecciona(N,F,F1),

sucesores_4(N,NN),

nueva_frontera(NN,F1,F2),

aux_heuristica(F2,C).

sucesores_4(_-[N|C],M):-

findall(H-[Nuevo_nodo,N|C],

((sucesor(N,Nuevo_nodo),

not(member(Nuevo_nodo,[N|C])),

heuristica(Nuevo_nodo,H))), M).

nueva_frontera(NN,F1,F3):- !, append(NN,F1,F2), sort(F2,F3).

selecciona(N,[N|F],F).

IIA 2005–06 Busqueda con informacion 18

Page 19: Introduccion a la Inteligencia Artificial Curso 2005{2006

Busqueda A∗

B Objetivo de la busqueda A∗: Conseguir buenas soluciones (opti-mas).

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

g(n): coste del camino hasta n.

h(n): heurıstica del nodo, estimacion del coste de un caminooptimo desde n hasta un estado final.

f(n): estimacion del coste total de una solucion optima quepasa por n.

B Seleccionar siempre el nodo con menor valor de f .

B Ordenar la cola frontera en orden creciente respecto a f .

IIA 2005–06 Busqueda con informacion 19

Page 20: Introduccion a la Inteligencia Artificial Curso 2005{2006

Busqueda A∗ para el problema del viaje

Cádiz Córdoba Huelva Málaga

1Sevilla

Granada

Almería

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

C+H = 361.49

C+H = 361.49

C+H = 325.08

JaénC+H = 370.38

23

4

5

IIA 2005–06 Busqueda con informacion 20

Page 21: Introduccion a la Inteligencia Artificial Curso 2005{2006

Propiedades de A∗

B Sea h∗ el coste de un camino optimo desde n hasta un estadofinalu f ∗(n) = g(n) + h∗(n) coste total de una solucion optima que pasa por n.

B En la practica no conocemos h∗ y usamos una funcion heurısticah que estima h∗.

B Posibilidades:

h = 0, no hay reduccion del arbol de busqueda

h = h∗, estima cion perfecta, no hay busqueda

0 ≤ h ≤ h∗, heurıstica admisible.

B Usando una heurıstica admisible la busqueda es completa y en-cuentra siempre una solucion optima.

IIA 2005–06 Busqueda con informacion 21

Page 22: Introduccion a la Inteligencia Artificial Curso 2005{2006

Implementacion

B Los valores se guardan como v(F,H,C) donde C es el coste delcamino recorrido, H es el valor de la heurıstica y F la suma deesos dos valoresa_estrella(Camino):-

estado_inicial(E),

heuristica(E,H),

aux_a_estrella([v(H,H,0)-[E]],Camino).

aux_a_estrella(F,C) :-

write(’Frontera: ’), write(F), nl,

selecciona(v(_,_,Coste)-[N|Caux],F,_),

estado_final(N), reverse([N|Caux],C), nl,

write(’Estado final encontrado: ’), write(N), nl,

write(’Camino encontrado: ’), write(C), nl,

write(’Coste: ’), write(Coste).

IIA 2005–06 Busqueda con informacion 22

Page 23: Introduccion a la Inteligencia Artificial Curso 2005{2006

Implementacion

aux_a_estrella(F,C) :- selecciona(N,F,F1),

sucesores_5(N,NN),

nueva_frontera(NN,F1,F2),

aux_a_estrella(F2,C).

sucesores_5(v(_,_,Coste1)-[N|C],M):-

findall(v(F,H,Nuevo_coste)-[Nuevo_nodo,N|C],

((sucesor(N,Nuevo_nodo,Coste_suc),

not(member(Nuevo_nodo,[N|C])),

heuristica(Nuevo_nodo,H),

Nuevo_coste is Coste_suc + Coste1,

F is Nuevo_coste + H)), M).

nueva_frontera(NN,F1,F3):- !, append(NN,F1,F2), sort(F2,F3).

selecciona(N,[N|F],F).

IIA 2005–06 Busqueda con informacion 23

Page 24: Introduccion a la Inteligencia Artificial Curso 2005{2006

Bibliografıa

B Borrajo, D. y otros. Inteligencia artificial: Metodos y tecnicas(Centro de estudios Ramon Areces, 1993).

B Cortes, U., Bejar, J. y Moreno, A. Inteligencia articial(Ediciones UPC, 1994).

B Fernandez, S.; Gonzalez, J. y Mira, J. Problemas resueltos deInteligencia Articial Aplicada (Busqueda y representacion)(Addison Wesley, 1998).

IIA 2005–06 Busqueda con informacion 24