Inteligencia Arti cial - UC3Mocw.uc3m.es/.../material-de-clase-2/busqueda-ocw.pdf · Universidad...
Transcript of Inteligencia Arti cial - UC3Mocw.uc3m.es/.../material-de-clase-2/busqueda-ocw.pdf · Universidad...
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Inteligencia Artificial
Grupo PLG
Universidad Carlos III de Madrid
IA. 2008
Inteligencia Artificial 1
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Indice1 Introduccion2 Busqueda sin informacion
Busqueda en AmplitudBusqueda en profundidadBusqueda hacia atrasBusqueda bidireccionalBusqueda con costes no uniformesOtros algoritmos de busquedaAnalisis de complejidad
3 Busqueda heurısticaHeurısticaTecnica de escaladaTecnicas de mejor-primeroOtros algoritmos
4 Busqueda con multiples agentesAlgoritmo MinimaxPoda Alfa-beta
Inteligencia Artificial 2
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Indice1 Introduccion2 Busqueda sin informacion
Busqueda en AmplitudBusqueda en profundidadBusqueda hacia atrasBusqueda bidireccionalBusqueda con costes no uniformesOtros algoritmos de busquedaAnalisis de complejidad
3 Busqueda heurısticaHeurısticaTecnica de escaladaTecnicas de mejor-primeroOtros algoritmos
4 Busqueda con multiples agentesAlgoritmo MinimaxPoda Alfa-beta
Inteligencia Artificial 3
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Indice1 Introduccion2 Busqueda sin informacion
Busqueda en AmplitudBusqueda en profundidadBusqueda hacia atrasBusqueda bidireccionalBusqueda con costes no uniformesOtros algoritmos de busquedaAnalisis de complejidad
3 Busqueda heurısticaHeurısticaTecnica de escaladaTecnicas de mejor-primeroOtros algoritmos
4 Busqueda con multiples agentesAlgoritmo MinimaxPoda Alfa-beta
Inteligencia Artificial 4
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Indice1 Introduccion2 Busqueda sin informacion
Busqueda en AmplitudBusqueda en profundidadBusqueda hacia atrasBusqueda bidireccionalBusqueda con costes no uniformesOtros algoritmos de busquedaAnalisis de complejidad
3 Busqueda heurısticaHeurısticaTecnica de escaladaTecnicas de mejor-primeroOtros algoritmos
4 Busqueda con multiples agentesAlgoritmo MinimaxPoda Alfa-beta
Inteligencia Artificial 5
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Indice1 Introduccion2 Busqueda sin informacion
Busqueda en AmplitudBusqueda en profundidadBusqueda hacia atrasBusqueda bidireccionalBusqueda con costes no uniformesOtros algoritmos de busquedaAnalisis de complejidad
3 Busqueda heurısticaHeurısticaTecnica de escaladaTecnicas de mejor-primeroOtros algoritmos
4 Busqueda con multiples agentesAlgoritmo MinimaxPoda Alfa-beta
Inteligencia Artificial 6
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Introduccion
Espacio de problemas
Conjunto de estadosConjunto de operadoresEstado(s) inicial(es)Meta(s)
Representable por un grafo
Resolucion de problemas = busqueda en el grafo
Normalmente, la busqueda genera un arbol
Parametros importantes
Factor de ramificacionProfundidad del arbol de busqueda
Diferencia con OR: el grafo en OR es explıcito. En muchosproblemas es imposible
Inteligencia Artificial 7
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Introduccion
Espacio de problemas
Conjunto de estadosConjunto de operadoresEstado(s) inicial(es)Meta(s)
Representable por un grafo
Resolucion de problemas = busqueda en el grafo
Normalmente, la busqueda genera un arbol
Parametros importantes
Factor de ramificacionProfundidad del arbol de busqueda
Diferencia con OR: el grafo en OR es explıcito. En muchosproblemas es imposible
Inteligencia Artificial 8
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Introduccion
Espacio de problemas
Conjunto de estadosConjunto de operadoresEstado(s) inicial(es)Meta(s)
Representable por un grafo
Resolucion de problemas = busqueda en el grafo
Normalmente, la busqueda genera un arbol
Parametros importantes
Factor de ramificacionProfundidad del arbol de busqueda
Diferencia con OR: el grafo en OR es explıcito. En muchosproblemas es imposible
Inteligencia Artificial 9
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Introduccion
Espacio de problemas
Conjunto de estadosConjunto de operadoresEstado(s) inicial(es)Meta(s)
Representable por un grafo
Resolucion de problemas = busqueda en el grafo
Normalmente, la busqueda genera un arbol
Parametros importantes
Factor de ramificacionProfundidad del arbol de busqueda
Diferencia con OR: el grafo en OR es explıcito. En muchosproblemas es imposible
Inteligencia Artificial 10
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Introduccion
Espacio de problemas
Conjunto de estadosConjunto de operadoresEstado(s) inicial(es)Meta(s)
Representable por un grafo
Resolucion de problemas = busqueda en el grafo
Normalmente, la busqueda genera un arbol
Parametros importantes
Factor de ramificacionProfundidad del arbol de busqueda
Diferencia con OR: el grafo en OR es explıcito. En muchosproblemas es imposible
Inteligencia Artificial 11
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Ejemplo: 8-Puzzle
1 2 3
5 6
4 7 8
1 2 3
6
4 7 8
5
1 2 3
5 6
7 8
4
2 3
5 6
4 7 8
1
3
5 6
4 7 8
1
2
1 2 3
5 6
8
4
7
Estados
Operadores
Inteligencia Artificial 12
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Ejemplo: Las torres de Hanoi (3,2)
Inteligencia Artificial 13
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Ejemplo: Las torres de Hanoi (3,2)
El factor deramificacion(fr = 8
3 ) es unapropiedad del grafode estados
Inteligencia Artificial 14
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Ejemplo: Las torres de Hanoi (3,2)
La profundidad(p = 3) es unapropiedad delproblema a resolver
Inteligencia Artificial 15
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Ejemplo: Las jarras
Se tienen dos jarras de agua: una de cinco litros de capacidad yotra de tres. Ninguna de ellas tiene marcas de medicion. Se tieneuna bomba que permite llenar las jarras de agua, vaciarlas, ytraspasar contenido de una jarra a otra.¿Como se puede tener exactamente cuatro litros de agua en lajarra de cinco litros de capacidad?
Inteligencia Artificial 16
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Ejemplo: Las jarras
Espacio de Estados:
conjunto de pares ordenados de enteros (x , y), de forma quex = 0, . . . , 5, y = 0, . . . , 3x representa el numero de litros de agua que hay en la jarra de5 litros de capacidady representa el numero de litros de agua que hay en la jarra de3 litros de capacidad
Estado inicial: (0, 0)
Estado meta:
Descripcion implıcita: (4, n), donde n = 0, . . . , 3Descripcion explıcita: (4, 0), (4, 1), (4, 2), (4, 3)
Inteligencia Artificial 17
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Ejemplo: Las jarras
Operadores
Llenar jarra grande : Si (x < 5)→(5, y)Llenar jarra pequena : Si (y < 3)→(x , 3)Vaciar jarra grande : Si (x > 0)→(0, y)Vaciar jarra pequena : Si (y > 0)→(x , 0)Verter en grande : Si (y > 0)→(x + mın{5− x , y}, y − mın{5− x , y})Verter en pequena : Si (x > 0)→(x − mın{x , 3− y}, y + mın{x , 3− y})
Inteligencia Artificial 18
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Explosion combinatoria
Dominio Numero de estados Tiempo (107 nodos/s)
8-puzzle“
N2!2
”˛N=3
= 181,440 0.01 segundos
15-puzzle“
N2!2
”˛N=4
= 1013 11,5 dıas
24-puzzle“
N2!2
”˛N=5
= 1025 31, 7× 109 anos
Hanoi (3,2) (3n)|n=2 = 9 9× 10−7 segundos
Hanoi (3,4) (3n)|n=4 = 81 8, 1× 10−6 segundos
Hanoi (3,8) (3n)|n=8 = 6561 6, 5× 10−4 segundos
Hanoi (3,16) (3n)|n=16 = 4, 3× 107 4,3 segundos
Hanoi (3,24) (3n)|n=24 = 2, 824× 1011 0,32 dıas
Cubo de Rubik 2× 2× 2 106 0,1 segundos
Cubo de Rubik 3× 3× 3 4, 32× 1019 31.000 anos
Inteligencia Artificial 19
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Indice1 Introduccion2 Busqueda sin informacion
Busqueda en AmplitudBusqueda en profundidadBusqueda hacia atrasBusqueda bidireccionalBusqueda con costes no uniformesOtros algoritmos de busquedaAnalisis de complejidad
3 Busqueda heurısticaHeurısticaTecnica de escaladaTecnicas de mejor-primeroOtros algoritmos
4 Busqueda con multiples agentesAlgoritmo MinimaxPoda Alfa-beta
Inteligencia Artificial 20
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Busqueda en Amplitud
8-Puzzle – Amplitud
1 2 35 6
4 7 8
1 2 35 67 8
42 35 6
4 7 81
1 2 36
4 7 85
4
1
2 3
Inteligencia Artificial 21
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Busqueda en Amplitud
8-Puzzle – Amplitud
1 2 35 6
4 7 8
1 2 35 67 8
42 35 6
4 7 81
1 2 36
4 7 85
1 2 35 67 84
1 2 35 6
847
5 6
4
1
2 3
x
Inteligencia Artificial 22
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Busqueda en Amplitud
8-Puzzle – Amplitud
1 2 35 6
4 7 8
1 2 35 67 8
42 35 6
4 7 81
1 2 36
4 7 85
35 6
4 7 8121 2 3
5 67 84
1 2 35 6
847
2 35 6
4 7 8
1
5 6 7 8
4
1
2 3
xx
Inteligencia Artificial 23
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Busqueda en Amplitud
8-Puzzle – Amplitud
1 2 35 6
4 7 8
1 2 35 67 8
42 35 6
4 7 81
1 2 36
4 7 85
1 2 36
4 85 7
35 6
4 7 8121 2 3
5 67 84
1 2 35 6
847
1 36
4 7 85 2
1 2 3
4 7 85 6
2 35 6
4 7 8
1 1 2 36
4 7 85
5 6 7 8 10 11 12
4
1
2
9
3
x x x
Inteligencia Artificial 24
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Busqueda en Amplitud
8-Puzzle – Amplitud
1 2 35 6
4 7 8
1 2 35 67 8
42 35 6
4 7 81
1 2 36
4 7 85
1 2 36
4 85 7
35 6
4 7 8121 2 3
5 67 84
1 2 35 6
847
1 36
4 7 85 2
1 2 3
4 7 85 6
2 35 6
4 7 8
1
1 2 368
47 5
1 2 36
4 7 85
1 2 35 64
7 8
1 2 35 67 8
4
5 6 7 8 10 11 12
4
1
2
13 14
9
3
15
x x x
x
Inteligencia Artificial 25
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Busqueda en Amplitud
Busqueda en amplitud
Procedimiento Amplitud (Estado-inicial Estado-Final)
1 Crear lista ABIERTA con el nodo inicial, I, (estado-inicial)
2 EXITO=Falso
3 Hasta que ABIERTA este vacıa O EXITO
Quitar de ABIERTA el primer nodo, NSi N tiene sucesoresEntonces Generar los sucesores de N
Crear punteros desde los sucesores hacia NSi algun sucesor es nodo metaEntonces EXITO=VerdaderoSi no Anadir los sucesores al final de ABIERTA
4 Si EXITOEntonces Solucion=camino desde I a N por los punterosSi no, Solucion=fracaso
Inteligencia Artificial 26
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Busqueda en Amplitud
Caracterısticas
Completo: encuentra solucion si existe y el factor deramificacion es finito en cada nodo
Optimalidad: si todos los operadores tienen el mismo coste,encontrara la solucion optima
Eficiencia: buena si las metas estan cercanas
Problema: consume memoria exponencial
Inteligencia Artificial 27
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Busqueda en profundidad
8-Puzzle – Profundidad
1 2 35 6
4 7 8
1 2 35 67 8
42 35 6
4 7 81
1 2 36
4 7 85
4
1
2 3
Inteligencia Artificial 28
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Busqueda en profundidad
8-Puzzle – Profundidad
1 2 35 6
4 7 8
1 2 35 67 8
42 35 6
4 7 81
1 2 36
4 7 85
1 2 35 67 84
1 2 35 6
847
5 6
4
1
2 3
x
Inteligencia Artificial 29
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Busqueda en profundidad
8-Puzzle – Profundidad
1 2 35 6
4 7 8
1 2 35 67 8
42 35 6
4 7 81
1 2 36
4 7 85
1 2 35 67 84
1 2 35 6
847
1 2 368
47 5
1 2 35 64
7 8
1 2 35 67 8
4
5 6
4
1
2 3
7 8 9
x
x
Inteligencia Artificial 30
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Busqueda en profundidad
Busqueda en profundidad
Procedimiento Profundidad (Estado-inicial,Estado-Final,Profundidad-maxima)
1 Crear lista ABIERTA con el nodo inicial, I, y su profundidad=0
2 EXITO=Falso
3 Hasta que ABIERTA este vacıa O EXITO
Quitar de ABIERTA el primer nodo.Lo llamaremos N y a su profundidad PSi P < Profundidad-maxima Y N tiene sucesoresEntonces Generar los sucesores de N
Crear punteros desde los sucesores hacia NSi algun sucesor es el Estado-FinalEntonces EXITO=VerdaderoSi no, Anadir los sucesores al principio de ABIERTA
Asignarles profundidad P+1
4 Si EXITOEntonces Solucion=camino desde I a N por los punterosSi no, Solucion=fracaso
Inteligencia Artificial 31
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Busqueda en profundidad
Caracterısticas
Requiere tecnica de retroceso (“backtracking”)
Razones para retroceso:
Se ha llegado al lımite de profundidadSe han estudiado todos los sucesores de un nodo y no se hallegado a la solucionSe sabe que el estado no conduce a la solucionSe genera un estado repetido
Completitud: no asegura encontrar la solucion
Optimalidad: no asegura encontrar la solucion optima
Eficiencia: bueno cuando metas alejadas de estado inicial, oproblemas de memoria
No es bueno cuando hay ciclos
Inteligencia Artificial 32
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Busqueda en profundidad
Caracterısticas
Requiere tecnica de retroceso (“backtracking”)
Razones para retroceso:
Se ha llegado al lımite de profundidadSe han estudiado todos los sucesores de un nodo y no se hallegado a la solucionSe sabe que el estado no conduce a la solucionSe genera un estado repetido
Completitud: no asegura encontrar la solucion
Optimalidad: no asegura encontrar la solucion optima
Eficiencia: bueno cuando metas alejadas de estado inicial, oproblemas de memoria
No es bueno cuando hay ciclos
Inteligencia Artificial 33
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Busqueda en profundidad
Caracterısticas
Requiere tecnica de retroceso (“backtracking”)
Razones para retroceso:
Se ha llegado al lımite de profundidadSe han estudiado todos los sucesores de un nodo y no se hallegado a la solucionSe sabe que el estado no conduce a la solucionSe genera un estado repetido
Completitud: no asegura encontrar la solucion
Optimalidad: no asegura encontrar la solucion optima
Eficiencia: bueno cuando metas alejadas de estado inicial, oproblemas de memoria
No es bueno cuando hay ciclos
Inteligencia Artificial 34
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Busqueda con costes no uniformes
Busqueda no informada con costes
Dijkstra: amplitud, pero eligiendo aquel nodo que tengamenor coste desde el nodo raız
Branch and bound, B&B
busqueda (normalmente en profundidad)cuando encuentra una solucion, su coste se convierte en unlımite (superior o inferior) para los siguientes nodossi un nodo posterior tiene un coste desde el nodo raızmayor/menor (o igual) que el lımite, se termina la busquedapor elsi se tiene un lımite inicial, se puede utilizar la misma idea paraamplitud/Dijkstra
Inteligencia Artificial 35
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Analisis de complejidad
Analisis de complejidad
Si se dispone de:
factor de ramificacion medio frprofundidad del arbol de busqueda p
¿Cual serıa, en el peor de los casos, el numero de nodos queexaminarıa cada tecnica?
Unidireccional
Pista:
supongase que fr=3, y vaya incrementandose la pcalcular de forma inductiva el numero de nodos
Inteligencia Artificial 36
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Analisis de complejidad
Analisis de complejidad
Tecnica de Busqueda Numero maximo de nodos
Unidireccional∑p
i=0 fr i
Inteligencia Artificial 37
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Analisis de complejidad
Analisis de complejidad
ComplejidadTecnica de Busqueda Temporal Espacial
Amplitud O(frp) O(frp)Profundidad O(frp) O(p)
Cuando complejidad en tiempo es igual a la de espacio, seagota la memoria antes que el tiempo
Inteligencia Artificial 38
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Indice1 Introduccion2 Busqueda sin informacion
Busqueda en AmplitudBusqueda en profundidadBusqueda hacia atrasBusqueda bidireccionalBusqueda con costes no uniformesOtros algoritmos de busquedaAnalisis de complejidad
3 Busqueda heurısticaHeurısticaTecnica de escaladaTecnicas de mejor-primeroOtros algoritmos
4 Busqueda con multiples agentesAlgoritmo MinimaxPoda Alfa-beta
Inteligencia Artificial 39
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Heurıstica
Heurıstica
Si se tiene conocimiento perfecto −→ algoritmo exacto
Si no se tiene conocimiento −→ busqueda sin informacion
En la mayor parte de los problemas que resuelven loshumanos, se esta en posiciones intermedias
Heurıstica: (del griego “heurisko” (ευρισκω): “yoencuentro”) conocimiento parcial sobre un problema/dominioque permite resolver problemas eficientemente en eseproblema/dominio
Representacion de las heurısticas
funciones h(n)metareglas
Las funciones heurısticas se descubren resolviendo modelossimplificados del problema real
Inteligencia Artificial 40
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Heurıstica
Heurıstica
Si se tiene conocimiento perfecto −→ algoritmo exacto
Si no se tiene conocimiento −→ busqueda sin informacion
En la mayor parte de los problemas que resuelven loshumanos, se esta en posiciones intermedias
Heurıstica: (del griego “heurisko” (ευρισκω): “yoencuentro”) conocimiento parcial sobre un problema/dominioque permite resolver problemas eficientemente en eseproblema/dominio
Representacion de las heurısticas
funciones h(n)metareglas
Las funciones heurısticas se descubren resolviendo modelossimplificados del problema real
Inteligencia Artificial 41
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Heurıstica
Heurıstica
Si se tiene conocimiento perfecto −→ algoritmo exacto
Si no se tiene conocimiento −→ busqueda sin informacion
En la mayor parte de los problemas que resuelven loshumanos, se esta en posiciones intermedias
Heurıstica: (del griego “heurisko” (ευρισκω): “yoencuentro”) conocimiento parcial sobre un problema/dominioque permite resolver problemas eficientemente en eseproblema/dominio
Representacion de las heurısticas
funciones h(n)metareglas
Las funciones heurısticas se descubren resolviendo modelossimplificados del problema real
Inteligencia Artificial 42
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Heurıstica
Heurıstica
Si se tiene conocimiento perfecto −→ algoritmo exacto
Si no se tiene conocimiento −→ busqueda sin informacion
En la mayor parte de los problemas que resuelven loshumanos, se esta en posiciones intermedias
Heurıstica: (del griego “heurisko” (ευρισκω): “yoencuentro”) conocimiento parcial sobre un problema/dominioque permite resolver problemas eficientemente en eseproblema/dominio
Representacion de las heurısticas
funciones h(n)metareglas
Las funciones heurısticas se descubren resolviendo modelossimplificados del problema real
Inteligencia Artificial 43
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Heurıstica
Problemas relajados. 8-puzzle
Restricciones:
solo se puede mover el blancoel movimiento solo se puede hacer a casillas adyacenteshorizontal o verticalen cada paso, se intercambian los contenidos de dos casillas
Relajaciones:
si quitamos las dos primeras restricciones, generamos laheurıstica de numero de casillas mal colocadassi quitamos la primera restriccion, generamos la heurıstica dela distancia de Manhattan
Inteligencia Artificial 44
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Heurıstica
Problemas relajados. 8-puzzle
Restricciones:
solo se puede mover el blancoel movimiento solo se puede hacer a casillas adyacenteshorizontal o verticalen cada paso, se intercambian los contenidos de dos casillas
Relajaciones:
si quitamos las dos primeras restricciones, generamos laheurıstica de numero de casillas mal colocadassi quitamos la primera restriccion, generamos la heurıstica dela distancia de Manhattan
Inteligencia Artificial 45
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Tecnica de escalada
Algoritmo de escalada
Procedimiento escalada (Estado-inicial Estado-final)
N=Estado-inicial; EXITO=FalsoHasta que Camino-Sin-Salida(N) O EXITO
Generar los sucesores de NSI algun sucesor es Estado-finalENTONCES EXITO=VerdaderoSI NO, Evaluar cada nodo con la funcion de evaluacion, f (n)
N=mejor sucesorSi EXITOEntonces Solucion=camino desde nodo del Estado-inicial
al nodo N por los punterosSi no, Solucion=fracaso
Inteligencia Artificial 46
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Tecnica de escalada
8-Puzzle – Busqueda en escalada
1 2 35 67 8
41 2 3
64 7 85
1 2 35 6
4 7 8
2 35 6
4 7 81
1
2 43
Inteligencia Artificial 47
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Tecnica de escalada
8-Puzzle – Busqueda en escalada
1 2 35 67 8
41 2 3
64 7 85
1 2 35 6
4 7 8
2 35 6
4 7 81
1
2 43
5
6 4 4
Inteligencia Artificial 48
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Tecnica de escalada
8-Puzzle – Busqueda en escalada
1 2 35 67 84
1 2 35 67 8
41 2 3
64 7 85
1 2 35 6
847
1 2 35 6
4 7 8
2 35 6
4 7 81
1
2 43
5 6
5
6 4 4
7
x
Inteligencia Artificial 49
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Tecnica de escalada
8-Puzzle – Busqueda en escalada
1 2 35 6
84
7
1 2 35 64
7 8
1 2 347
685
1 2 35 67 84
1 2 35 67 8
41 2 3
64 7 85
1 2 35 6
847
1 2 35 6
4 7 8
2 35 6
4 7 81
1
2 43
5 6
7 8 9
5
6 4 4
7
6 9 6
x
Inteligencia Artificial 50
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Tecnica de escalada
Caracterısticas
Problemas de los metodos avariciosos
Maximos (o mınimos) locales: pico que es mas alto quecada uno de sus estados vecinos, pero mas bajo que el maximoglobalMesetas: zona del espacio de estados con funcion deevaluacion planaCrestas: zona del espacio de estados con varios maximos(mınimos) locales
Funci
ón O
bje
tivo
Estados
Unidimensional
Terraza
MesetaCrestas
Máximo Local
Máximo global
Espacio de
Inteligencia Artificial 51
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Tecnica de escalada
Caracterısticas
Soluciones
RetrocesoDar mas de un pasoReinicio aleatorio
Metodo local
Completitud: no tiene porque encontrar la solucionAdmisibilidad: no siendo completo, aun menos sera admisibleEficiencia: rapido y util si la funcion es monotona(de)creciente
Inteligencia Artificial 52
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Tecnicas de mejor-primero
Tecnicas de mejor primero
Procedimiento Mejor-primero (Estado-inicial Estado-final)
Crear grafo de busqueda G , con el nodo inicial, I (Estado-inicial)ABIERTA=I , CERRADA=Vacıo, EXITO=FalsoHasta que ABIERTA este vacıa O EXITO
Quitar el primer nodo de ABIERTA, N y meterlo en CERRADASI N es Estado-final ENTONCES EXITO=VerdaderoSI NO Expandir N, generando el conjunto S de sucesores de N,
que no son antecesores de N en el grafoGenerar un nodo en G por cada s de SEstablecer un puntero a N desde aquellos s de S que no estuvieran ya en GAnadirlos a ABIERTAPara cada s de S que estuviera ya en ABIERTA o CERRADA
decidir si redirigir o no sus punteros hacia NPara cada s de S que estuviera ya en CERRADA
decidir si redirigir o no los punteros de los nodos en sus subarbolesReordenar ABIERTA segun f (n)
Si EXITO Entonces Solucion=camino desde I a N a traves de los punteros de GSi no Solucion=Fracaso
Inteligencia Artificial 53
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Tecnicas de mejor-primero
A∗ (Hart, Nilsson y Rafael, 1968)
Funcion de ordenacion de nodos: f (n) = g(n) + h(n)
f (n): funcion de evaluaciong(n): funcion de coste de ir desde el nodo inicial al nodo nh(n): funcion heurıstica que mide la distancia estimada desden a algun nodo meta
g(n) se calcula como la suma de los costes de los arcosrecorridos, k(ni , nj)
Los valores reales solo se pueden conocer al final de labusqueda
f ∗(n): coste real para ir desde el nodo inicial a algun nodometa a traves de ng∗(n): coste real para ir desde el nodo inicial al nodo nh∗(n): coste real para ir desde el nodo n a algun nodo meta
Inteligencia Artificial 54
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Tecnicas de mejor-primero
Definicion de terminos
4
5
2 6
1
k(1,2)=200
g(2)=200 g(6)=200+40=240k(2,6)=40
k(1,4)=40
h(2)=30
h(4)=35
h(6)=40
g(4)=40
Inteligencia Artificial 55
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Tecnicas de mejor-primero
Ejemplo A∗
4
31
5
2 6
10
35
3040
0200
40
50
2005
200150
40
60
30
Inteligencia Artificial 56
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Tecnicas de mejor-primero
Ejemplo A∗
2 43
1
200
4060
200
30230 70 10
60
3575
40
Inteligencia Artificial 57
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Tecnicas de mejor-primero
Ejemplo A∗
2 43
1
5
200
4060
200
150
30230 70 10
60
3575
40
260 0
260
200
Inteligencia Artificial 58
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Tecnicas de mejor-primero
Ejemplo A∗
3
1
5
2 4
4060
200
150
30 10 3575
40
200
0
200
5
225
240240
45
55
195
Inteligencia Artificial 59
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Tecnicas de mejor-primero
Ejemplo A∗
3
1
5
4
6
2
4060
200
150
30 10 3575
40
200
0
200
5
225
45
55
195
40
225
30
40275225
235
Inteligencia Artificial 60
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Tecnicas de mejor-primero
Caracterısticas
Completitud: si existe solucion, la encuentra
Admisibilidad: si hay una solucion optima, la encuentra si
el numero de sucesores es finito para cada nodo,k(ni , nj) > ε > 0 en cada arco, yLa funcion h(n) es admisible: h(n) ≤ h∗(n) ∀n
Inteligencia Artificial 61
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Tecnicas de mejor-primero
Consideraciones sobre la heurıstica
Si h1(n) <= h2(n)∀n, h2(n) esta mas informada que h1(n) yservira para expandir menos nodos
Ejemplo: distancia de Manhattan esta mas informada quenumero de casillas mal colocadas (problema de Manhattan esmenos relajado que el del numero de casillas)
Extremos
h(n) = 0 para cada nodo: no se tiene informacion (Dijkstra)h(n) = h∗(n) para cada nodo: se tiene informacion perfecta
No tiene sentido dedicar mas coste computacional a calcularuna buena h(n) que a realizar la busqueda equivalente:equilibrio
Inteligencia Artificial 62
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Tecnicas de mejor-primero
Tecnicas mejor-primero
No informadas:
Busqueda en amplitud: f (n) = profundidad(n)Dijkstra: f (n) = g(n)
Informadas (heurısticas):
A, A∗, IDA∗, . . . : f (n) = g(n) + h(n)Ponderadas: f (n) = g(n) + ωh(n), ω > 1
Es completo, pero no es admisibleLa solucion optima tiene un coste menor o igual que (1 + ω)veces la generada
Inteligencia Artificial 63
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Tecnicas de mejor-primero
IDA∗ (Korf, 1985)
Procedimiento IDA∗ (Estado-inicial Estado-final)
EXITO=Falsoη = h(s)Mientras que EXITO=Falso
EXITO=Profundidad (Estado-inicial,η)η = mın
i=1,n{f (i)} = mın
i=1,n{g(i) + h(i)}
Solucion=camino desde nodo del Estado-inicialal Estado-final por los punteros
Profundidad (Estado-inicial,η)Expande todos los nodos cuyo coste f (n) no excede η
Inteligencia Artificial 64
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Tecnicas de mejor-primero
Caracterısticas
Completitud: es completo
Admisibilidad: es admisible
Eficiencia: la complejidad de tiempo es exponencial, pero lacomplejidad de espacio es lineal en la profundidad del arbol debusqueda
Aunque pudiera parecer lo contrario, el numero dere-expansiones es solo mayor en un pequeno factor que elnumero de expansiones de los algoritmos de el mejor primero
Fue el primer algoritmo que resolvio optimamente 100 casosgenerados aleatoriamente en el 15–Puzzle
Inteligencia Artificial 65
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Indice1 Introduccion2 Busqueda sin informacion
Busqueda en AmplitudBusqueda en profundidadBusqueda hacia atrasBusqueda bidireccionalBusqueda con costes no uniformesOtros algoritmos de busquedaAnalisis de complejidad
3 Busqueda heurısticaHeurısticaTecnica de escaladaTecnicas de mejor-primeroOtros algoritmos
4 Busqueda con multiples agentesAlgoritmo MinimaxPoda Alfa-beta
Inteligencia Artificial 66
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Algoritmo Minimax
Caracterısticas de los problemas
Suma nula: lo que gana uno, lo pierde el otro
Dos agentes (se puede generalizar, Maxn)
Informacion completa: se conoce en cada momento elestado completo del juego
Deterministas o de informacion perfecta: no entra en juegoel azar (se puede generalizar)
Alternados: las decisiones de cada agente se toman de formaalternada
Inteligencia Artificial 67
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Algoritmo Minimax
Algoritmo Minimax
Funcion de evaluacion perfecta
2 7 8f*(n)=
Problema: no se conoce dicha funcion
Inteligencia Artificial 68
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Algoritmo Minimax
Algoritmo Minimax
Funcion de evaluacion perfecta
2 7 8f*(n)=
Problema: no se conoce dicha funcion
Inteligencia Artificial 69
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Algoritmo Minimax
Algoritmo Minimax
Busqueda completa
0 m M
Nodos hojas: ganamos (M=∞), perdemos (m=−∞) oempatamos (0)
Problema: es intratable; no se puede realizar en un tiemporazonable
Inteligencia Artificial 70
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Algoritmo Minimax
Algoritmo Minimax
Busqueda completa
0 m M
Nodos hojas: ganamos (M=∞), perdemos (m=−∞) oempatamos (0)
Problema: es intratable; no se puede realizar en un tiemporazonable
Inteligencia Artificial 71
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Algoritmo Minimax
Algoritmo Minimax
Mp =3
max
10 12 3m43f(n)= -3 5 20 -4 -2
4 10 12 -3 20 -2MAX
4 -3 -2MIN
4
Inteligencia Artificial 72
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Algoritmo Minimax
Algoritmo Minimax
Mp =3
max10 12 3m43f(n)= -3 5 20 -4 -2
4 10 12 -3 20 -2MAX
4 -3 -2MIN
4
Inteligencia Artificial 73
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Algoritmo Minimax
Algoritmo Minimax
Mp =3
max10 12 3m43f(n)= -3 5 20 -4 -2
4 10 12 -3 20 -2MAX
4 -3 -2MIN
4
Inteligencia Artificial 74
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Algoritmo Minimax
Algoritmo Minimax
Mp =3
max10 12 3m43f(n)= -3 5 20 -4 -2
4 10 12 -3 20 -2MAX
4 -3 -2MIN
4
Inteligencia Artificial 75
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Algoritmo Minimax
Algoritmo Minimax
Mp =3
max10 12 3m43f(n)= -3 5 20 -4 -2
4 10 12 -3 20 -2MAX
4 -3 -2MIN
4
Inteligencia Artificial 76
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Algoritmo Minimax
Procedimiento Minimax
Procedimiento Minimax (Situacion Profundidad)SI Profundidad = pmax
ENTONCES devolver evaluacion (Situacion)SI NO SI ganadora (Situacion)
ENTONCES devolver + ∞SI NO SI perdedora (Situacion)
ENTONCES devolver - ∞SI NO SI empate (Situacion)
ENTONCES devolver 0SI NO
S = sucesores (Situacion)L = lista de llamadas al MINIMAX (Si ∈ S, Profundidad + 1)SI nivel-max (Profundidad)ENTONCES devolver max (L)SI NO devolver min (L)
Inteligencia Artificial 77
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Algoritmo Minimax
Calculo del valor de cada nodo
f (n) =
8>>>>>><>>>>>>:
+∞ si n es una situacion ganadora para computadora−∞ si n es una situacion perdedora para computadora0 si n es una situacion de empatefev(n) si p = Profundidad maximamaxSi∈S(n) f (Si ) si n es nodo max y p < pmax
mınSi∈S(n) f (Si ) si n es nodo min y p < pmax
Negamax
f (n) =
fev(n) si d = 0max(−f (S1), ...,−f (Sd)) si d > 0
Inteligencia Artificial 78
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Algoritmo Minimax
Ejemplo en el tic-tac-toe
X
XX XX
XX
XX
XX
XX
XX
XX
XX
4−2=2 4−2=2 4−2=2 3−2=1 5−2=3 3−2=1
1
Inteligencia Artificial 79
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Algoritmo Minimax
Ejemplo en el tic-tac-toe
XX
X
XX XX
XX XX XX XX XX XX
1 0
4−3=1 4−3=1 4−3=1 3−3=0 4−3=1 3−3=0
Inteligencia Artificial 80
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Algoritmo Minimax
Ejemplo en el tic-tac-toe
X
XX
XX XX
XX
XX
XX
XX
XX
XX
1 0 1
4−2=2 4−2=2 4−2=2 3−2=14−2=2 4−2=2
Inteligencia Artificial 81
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Poda Alfa-beta
Poda Alfa-beta
Nodos max: se utiliza el parametro α para guardar el valormaximo de los sucesores encontrado hasta el momento.α0 = −∞Nodos min: se utiliza el parametro β para guardar el valormınimo de los sucesores encontrado hasta el momento.β0 = +∞Poda en los nodos MAX:
αp ≥ βp−1
Poda en los nodos MIN:
βp ≤ αp−1
Inteligencia Artificial 82
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Poda Alfa-beta
Poda en los nodos MIN
MIN 6
4α=MAX
MAX
β=
3
/ 3 padreαhijo <=β
<=3
max{4,<=3}=4α=
Inteligencia Artificial 83
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Poda Alfa-beta
Poda en los nodos MIN
MIN 6
4α=MAX
MAX
β=
3
/ 3 padreαhijo <=β
<=3
max{4,<=3}=4α=
Inteligencia Artificial 84
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Poda Alfa-beta
Poda en los nodos MIN
MIN 6
4α=MAX
MAX
β=
3
/ 3 padreαhijo <=β
<=3
max{4,<=3}=4α=
Inteligencia Artificial 85
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Poda Alfa-beta
Poda en los nodos MIN
MIN 6
4α=MAX
MAX
β=
3
/ 3 padreαhijo <=β
<=3
max{4,<=3}=4α=
Inteligencia Artificial 86
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Poda Alfa-beta
Poda en los nodos MIN
MIN 6
4α=MAX
MAX
β=
3
/ 3 padreαhijo <=β
<=3
max{4,<=3}=4α=
Inteligencia Artificial 87
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Poda Alfa-beta
Poda en los nodos MIN
MIN 6
4α=MAX
MAX
β=
3
/ 3 padreαhijo <=β
<=3
max{4,<=3}=4α=
Inteligencia Artificial 88
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Poda Alfa-beta
Algoritmo Alfa-beta
Procedimiento Alfa-Beta (Situacion Alfa Beta Profundidad)SI Situacion esta considerada como empate, Devolver 0SI Situacion es ganadora, Devolver mayor-numeroSI Situacion es perdedora, Devolver menor-numeroSI Profundidad = Profundidad-maxima, Devolver evaluacion (Situacion)SI nivel-max-p
para todo si sucesor de Situacion y Alfa < BetaAlfa-beta = ALFA-BETA(si ,Alfa,Beta,Profundidad+1)Alfa = max(Alfa,Alfa-beta)
Devolver AlfaSI NO
para todo si sucesor de Situacion y Beta > AlfaAlfa-beta = ALFA-BETA(si ,Alfa,Beta,Profundidad+1)Beta = min(Beta,Alfa-beta)
Devolver Beta
Inteligencia Artificial 89
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Poda Alfa-beta
Ejemplo del alfa-beta
3 5 4 6 9 6 7 4 20 1 −3 10 8 5 10 1 −5
1
2 3 4
5 7 8 9 10 11
12 14 15 16 17 19 20 21 22 23 24 25 26 28
6
13 18 27
Inteligencia Artificial 90
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Poda Alfa-beta
Ejemplo del alfa-beta
a=b=
m5
a=b=
a=b=
a=b=
mM
a=b=M
m / 3 / 5a=b=
mM
a=b=
mM
a=b=
mM / 5
a=b=
a=b=
a=b=
mM
a=b=1
2 3 4
5
13 Podaa >= b6
15141253 4 6
MM
3 5
6
6m5
m / 6
m / 5M
4
5
5
6
23 5
5
Inteligencia Artificial 91
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Poda Alfa-beta
Ejemplo del alfa-beta
7 8a=b=
57
a=b=
a=b=M
5
a=b=M
5 a=b=
a=b=
57
a=b=
a=b=M
5
a=b=
mM
a=b=M
m / 51
2 3
1
2 3 44
1918
b <= a3 1Poda
5 / 6 / 7M
6 7
17
6 7M6
4
4
5
M / 7 / 55
5 5
7
Inteligencia Artificial 92
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Poda Alfa-beta
Ejemplo del alfa-beta
10 11
a=b=M
5
a=b=M
5 a=b=
a=b=
a=b=
58
a=b=
58
a=b=
a=b=M
5 a=b=
a=b=a=
b=mM
1
2 3
1
2 3 44
1
2 3 4
24 25 26
8
8
5 / 8M
8M
5 10a >= b11 4
10
5 / 108
8
85M / 8
m / 5 / 8M
5
5
10
5
Inteligencia Artificial 93
Introduccion Busqueda sin informacion Busqueda heurıstica Busqueda con multiples agentes
Poda Alfa-beta
Estado de la cuestion en juegos de dos jugadores
Ajedrez: HiTech, Deep Thought-Blue, Fritz
Backgammon: NeuroGammon
Damas: Chinook
Othello: Logistello
Juegos resueltos: Tic-Tac-Toe, Cuatro en Raya, Qubic,Go-Moku, Damas (oficialmente desde 2007), . . .
IA en juegos actuales: estrategia
Inteligencia Artificial 94