Métodos deInteligencia Artificial
L. Enrique Sucar (INAOE)[email protected]
ccc.inaoep.mx/esucarTecnologías de Información
UPAEP
Búsqueda
• Representación• Tipos búsquedas:
– Sin información– Con información– Óptimas
• Análisis de complejidad
• Identificación y definición del problema • Identificación del criterio de evaluación • Generación de alternativas
Solución de Problemas Asociado a la inteligencia
Solución de muchos problemas en IA:básicamente búsqueda y evaluación
• define un espacio de estados (explícito / implícito)• especifica los estados iniciales• especifica los estados finales (metas)• especifica las reglas que definen las acciones disponibles para moverse de un estado a otro
Representación del espacio de estados
En este contexto:
Representación de espacio de estados
El proceso de solución de problemas =encontrar una secuencia de operacionesque transformen al estado inicial en unofinal
Se requiere una estrategia de búsqueda
Reinas (Q)
Tablerode
Ajedrez
A=8 B=9 C=10
Q
A B C
Ejemplo: problema de las 8 reinas
Para el problema de las 8 reinas podemostener diferentes opciones:
• solución incremental: acercarse ala meta haciendo decisiones locales
• sistemática: no repetir y no excluir
• transformar (hasta encontrar la meta) vs.• construir (poco a poco)
Medios (espacio de estados):
Posible heurística: poner una reina porrenglón en un lugar que deje el mayornúmero de lugares sin atacar
• calidad de la solución (a veces puede noimportar)
• diferencia en complejidad entre unasolución solución óptima
• en general, se busca encontrar la soluciónmás barata
Cómo encontramos una buena heurística?
Factores a considerar:
1. Estructura simbólica que representesubconjuntos de solucionespotenciales (agenda)
2. Operaciones/reglas que modifiquensímbolos de la agenda y produzcanconjuntos de soluciones potencialesmás refinadas
3. Estrategia de búsqueda que decida quéoperación aplicar a la agenda
Qué necesitamos:
Terminología:
nodo, árbol, hoja, nodo-raíz, nodo-terminal,branching factor (factor de arborescencia),ramas, padres, hijos, árbol uniforme, ...
Nodo raíz
Padre
Hijos
Ramas
Nodos terminales/hojas
Profundidad
• nodos expandidos (closed): todos los sucesores• nodos explorados pero no expandidos : sólo algunos sucesores• nodos generados pero no explorados (open)• nodos no generados
Paso computacional primordial: expansión de nodos
Nodo expandido (closed)
Nodos generadosNo explorados (open)
Nodo no generadoNodo exploradoNo expandido
La estrategia de control es sistemática si:
1. no deja un sólo camino sin explorar (completo)
2. no explora un mismo camino más de una vez (eficiencia)
Propiedades
1. Completo: si encuentra una solución cuando ésta existe
2. Admisible: si garantiza regresar una solución óptima cuando ésta existe
Propiedades de algoritmos debúsqueda (heurísticas):
3. Dominante: un algoritmo A1 se dice quedomina a A2 si todo nodo expandido porA1 es también expandido por A2(“más eficiente que”)
4. Óptimo: un algoritmo es óptimo sobreuna clase de algoritmos si domina a todoslos miembros de la clase
Propiedades de algoritmos debúsqueda (heurísticas):
• Sin información: depth-first (en profundo) breadth-first (a lo ancho) • Con información: hill climbing beam search best first
Procedimientos de Búsqueda
Algún camino:
El mejor camino (óptimo):
British museum branch and bound A*
A B C
I
D E F
M
3
34
4 4
42
5 5
GRAFO
I
A D
B D A E
EC E B B F
D F B F C E A C M
M MC FM
11
14
19 19 17
17
25
15 15 13
ÁRBOL DE BÚSQUEDA
Depth first - backtracking (LIFO)
Crea una agenda de un elemento (el nodo raíz) hasta que la agenda este vacía o se alcance la meta si el primer elemento es la meta entonces acaba si no elimina el primer elemento y añade sus sucesores al frente de la agenda
DEPTH-FIRST SEARCH
(I)
(A D)
(B D D)
(C E D D)
(E D D)
(D F D D)
(F D D)
(M D D)
IA D
B D A E
EC E B B F
D F B F C A C M
M MC F
M
11
14
19 19 17
17
25
15 15 13E
• depth-bound (casi todos): limitar labúsqueda hasta cierto límite deprofundidad
• interative-deepening: explorar aprofundidad progresivamente
• con algo de información: ordena losnodos expandidos
árboles con caminos de profundidad muygrande
Problemas:
Variaciones:
Crea una agenda de un elemento (el nodo raíz) hasta que la agenda este vacía o se alcance la meta si el primer elemento es la meta entonces acaba si no elimina el primer elemento y añade sus sucesores al final de la agenda
Problemas: árboles con arborescencia muy grande
Breadth first
I
A D
B D A E
EC E B B F
D F B F C E A C M
M MC FM
11
14
19 19 17
17
25
15 15 13
ÁRBOL DE BÚSQUEDA
BR
EAD
TH-F
IRST
SEA
RC
H(I)(A D)
(D B D)
(B D A E)
(D A E C E)
(A E C E E)
(E C E E B)
(C E E B B F)
1
2
3
0
(E E B B F)
(E B B F D F)
(B B F D F B F)
(B F D F B F C E)
( F D F B F C E A C)
(D F B F C E A C M)4
(F B F C E A C M)
(B F C E A C M M)
(F C E A C M M C)
(C E A C M M C M)
(E A C M M C M)
(A C M M C M F)
(C M M C M F)
(M M C M F)5
Requerimientos de tiempo y memoria para breadth-first.Factor de arborecencia = 10; 1,000 nodos/sec; 100 bytes/nodo
Profund. Nodos Tiempo
Memoria
10
2
4
68
0
1214
1 1 miliseg. 100 bytes111 .1 seg.
11,111 terabytes
11 kilobytes1 megabyte
111 megabytes
11 gigabytes
1 terabyte111 terabytes
11,111
10 6
10 8
10 10
10 12
10 14
11 seg.
18 min.
31 hr.128 días35 años3500 años
Comparación en nodos buscados:Si n = profundidad del árbol b = braching factor d = profundidad de un nodo meta
Complejidad
depth-first:• mejor caso: d nodos buscados• peor caso:
-Σn
i= 0
b i-Σi= 0
b in d
= bn+1- bn+1- d
b-1≈ bn
• mejor caso:
-Σi= 0
bid 1=
b 1-- 1bd
≈ bd 1-
breadth-first:
• peor caso:
Σi= 0
bid=
b 1-- 1b d+1≈ bd
Comparación de estrategias. b = factor de arborecencia; d = profundidad solución; m = máxima profundidad árbol; l = límite de profundidad.
Criterio Breadth Costo Depth Depth Iterative Bidireccionalfirst uniforme first limited deepening
Tiempo
Espacio
Completo
Optimo
bd
bd
bd
bd
si
si si
si
bm
bl
bd
bd/2
b X m b X l b X d bd/2
no
si
no si si
sisisi(si l ≥d)
Crea una agenda de un elemento (el nodo raíz) hasta que la agenda este vacía o se alcance la meta si el primer elemento es la meta entonces acaba si no elimina el primer elemento y añade sus sucesores a la agenda ordena todos los elementos de la agenda selecciona el mejor y elimina el resto
Algoritmos con Información
Hill-Climbing
Hill climbing Heurística: ve a la ciudad más cercana
(I)
(A D)
(D B)
(E C)
IA D
B D A E
EC E B B F
D F B F C A C M
M MC F
M
11
14
19 19 17
17
25
15 15 13E
BÚSQUEDA HILL-CLIMBING
Best-first
Crea una agenda de un elemento (el nodo raíz) hasta que la agenda este vacía o se alcance la meta si el primer elemento es la meta entonces acaba si no elimina el primer elemento y añade sus sucesores a la agenda ordena todos los elementos de la agenda
EJEMPLO BÚSQUEDA BEST-FIRST
BEST FIRSTHeurística:Distancia acumulada más corta
I
A D
I
A D
B D
3 4
7 8
4
1
2
I
A D
B D A E7 8 9 6
3
I
A D
B D A E
7 8 9
E
B F
11 10
4
I
A D
B D A E8 9
E
B F11 10
5
B
C E1211
I
A D
B D A E9
E
B F11 10
6
B
C E1211
D
E10
I
A D
B D A E
F B B E E C E
F B
11 12
15 14
13 11 10
7
I
A D
B D A E
F B B E E C E
F
11 12
15 14
13 11
F B M
13
8
Beam search
Crea una agenda de un elemento (el nodo raíz) hasta que la agenda este vacía o se alcance la meta si el primer elemento es la meta entonces acaba si no elimina el primer elemento y añade sus sucesores a la agenda ordena todos los elementos de la agenda y selecciona los N mejores (los demás eliminalos)
EJEMPLO DE BÚSQUEDABEAM SEARCH
Beam search Beam=2
I
A D
I
A D
B D
3 4
7 8
4
X
1
2
I
A D
B A E7 9 6
X
3
I
A D
B E7
E
B F11 10
X
4
I
A D
B EE
F 10
B
C E 1211X
5
I
A D
B EE
F
B
C
M
6
Espacio Usado
• depth-first:(b-1)*n + 1 • breadth-first: b• hill-climbing: 1 • best-first: entre b y b• beam-seach: beam
d
dn
Mejor Solución
Cuando importa el costo de encontrar unasolución
Si g(P) es el costo de camino o soluciónparcial, la solución óptima es aquella cong(P) mínima.
Una forma segura: búsqueda exhaustiva yseleccionar el de menor costo (BrittishMuseum)
Best-first no es óptimo, pero con unapequeña variante ya lo es.
Branch and Bound trabaja como best-firstpero en cuanto se encuentra una solución,sigue expandiendo los nodos de costosmenores al encontrado
Branch and Bound
Crea una agenda de un elemento (el nodo raíz) hasta que la agenda este vacía o se alcance la meta y los demás nodos sean de costos mayores o iguales a la meta si el primer elemento es la meta y los demás nodos son de menor o igual costo a la meta entonces acaba si no elimina el primer elemento y añade sus sucesores a la agenda ordena todos los elementos de la agenda
EJEMPLO DE BÚSQUEDABRANCH AND BOUND
I
A D
B D A E
F B B E E C E
F
11 12
15 14
13 11
F M 13
X
Búsqueda Branch and Bound
B
1
I
A D
B D A E
F B B E E C E
F
11
12
15 14
13
F B M 13 A C
15 15
2
I
A D
B D A E
F B B E C E
F
11
15 14
13
F B M
13
A C
15 15
D F
14 16
3
Idea: no explorar caminos a los que yallegamos por caminos más cortos/baratos
El algoritmo es igual sólo hay que añadir lacondición:
elimina todos los caminos que lleguen almismo nodo excepto el de menor costo
Dynamic Programming
EJEMPLO CON DYNAMIC PROGRAMMING
I
A D3 4
Dynamic programming
I
A D
B D7 8
X
4
1
2
I
A D
B A E7 9 6
X
43
3
I
A D
B E7 E
B F13 10
3 4
6
X
4
I
A D
B E7 E
E11 10
3 4
6
X
F12C
5
I
A D
B E7 E
11 10
3 4
6
FC
M
6
A*: utiliza dos medidas
Idea: usar estimaciones de los costos/distanciasque faltan junto con los costos/distanciasacumuladas
estim(camino que falta)+costo(camino recorrido)estim(total) =
Las estimaciones no son perfectas, por lo que seusan sub-estimaciones
subestim(total) =subestim(camino que falta)
+
De nuevo expande hasta que los demás tengan sub-estimaciones más grandes (v.g., subestimacionesde distancias entre ciudades pueden ser líneasrectas)
costo(camino recorrido)
Crea una agenda de un elemento (el nodo raíz) hasta que la agenda este vacía o se alcance la meta y los demás nodos sean de costos mayores o iguales a la meta si el primer elemento es la meta y los demás nodos son de menor o igual costo a la meta entonces acaba si no elimina el primer elemento y añade sus sucesores a la agenda ordena todos los elementos de la agenda de acuerdo al costo acumulado más las subestimaciones de los que falta
EJEMPLO DE BÚSQUEDA A*
I
A D13.4 12.9
I
A D
A E
13.4
19.4 12.9
A*1
2
I
A D
EE
F 13.0
13.4
B17.7
A19.4
3
I
A D
EE
F
13.0
13.4
B17.7
A19.4
M
4
Comparación Interactive Deepening (IDS) con A* con dos heurísticas (h1 yh2). Resultados promedios de 100 instancias del 8-puzzle.
Costo de búsqueda Arborescencia
d
24
81012141618202224
6
IDS
10112680
638447127
3644043473941
-----
A*(h )1 A*(h )2 IDS
613203993
227539130130567276
1809439135
61218253973
113211363676
12191641
2.452.872.732.802.792.782.83-----
1.791.481.341.331.381.421.441.451.461.471.481.48
A*(h )1 A*(h )21.791.45 1.301.241.221.241.231.251.261.271.281.26
efectiva
• si el tamaño de búsqueda es pequeño (rara vez), podemos hacer búsqueda exhaustiva• sin información depth-first con progressive- deepening• branch and bound en general está bien• dynamic programming cuando existen muchos posibles caminos con cruces• A* cuando podemos tener una buena subestimación
¿Cuándo usamos cada una?
Tarea
• Leer Capítulo 3 de Russell• Plantear el problema la Torres de Hanoi como un
problema de búsqueda:– Especificar la representación de los estados, y el estado
inicial y meta– Especificar los operadores para generar estados– Mostrar el árbol para el caso de 3 discos– Se te ocurre alguna heurística para hacer más eficiente
la búsqueda?