La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Eduardo Morales/L. Enrique Sucar

Presentaciones similares


Presentación del tema: "Eduardo Morales/L. Enrique Sucar"— Transcripción de la presentación:

1 Eduardo Morales/L. Enrique Sucar
Fundamentos de Inteligencia Artificial Búsqueda Eduardo Morales/L. Enrique Sucar Sesión 02

2 Solución de Problemas Identificación y definición del problema
Identificación del criterio de evaluación Generación de alternativas Búsqueda de una solución y evaluación Selección de opción y recomendación Implementación Solución de muchos problemas en IA: principalmente búsqueda y evaluación

3 Heurísticas La búsqueda es necesaria en muchos problemas e involucra introducir heurísticas Criterios, métodos, principios para decidir entre alternativas Representan un compromiso entre: (i) simplicidad y (ii) poder discriminativo No garantizan la mejor acción Ayudan a reducir el número de evaluaciones

4 Representación del espacio de estados
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

5 Representación de espacio de estados
En este contexto: El proceso de solución de problemas = encontrar una secuencia de operaciones que transformen al estado inicial en uno final Se requiere una estrategia de búsqueda

6 Q Q Q Ejemplo: problema de las 8 reinas B C A A=8 B=9 C=10 Tablero de
Reinas (Q) Q Q Q Tablero de Ajedrez B C A A= B= C=10

7 Ejemplo: problema de las 8 reinas
Posibles candidatos de heurísticas: Preferir colocar reinas que dejes el mayor número de celdas son atacar (mostrados en la figura) Ver cuál es el menor número de celdas no atacadas en cada renglón y escoger la que su número menor sea mayor. En el ejemplo: heu(A)=1, heu(B)=1, heu(C)=2

8 Para el problema de las 8 reinas podemos tener diferentes opciones:
Solución incremental: acercarse a la meta haciendo decisiones locales Sistemática: no repetir y no excluir

9 Medios (espacio de estados):
Transformar posibles soluciones globales hasta encontrar la meta vs. Construir poco a poco una solución global

10 El problema del 8-puzzle

11 El problema del 8-puzzle
Búsqueda exhaustica es impráctico Se puede estimar qué tan cerca se está de la solución Posibles heurísticas: Contar el número de cuadros que no corresponden a la meta Distancias Manhattan de los cuadros que no corresponden a su lugar Distancia del espacio al primer cuadro fuera de su lugar

12 Otras ideas Usar información extra (v.g., estimar distancias con base en coordenadas) Usar subestimaciones (e.g., TSP vs. árbol de expansión mínimo) Contruir una estrategia (e.g., detectar moneda falsa. Con 12 monedas y pesando 3 veces) Grafos AND/OR Identificar meta crítica (e.g., Torres de Hanoi)

13 Cómo encontramos una buena heurística?
Factores a considerar: Calidad de la solución (a veces puede no importar) Diferencia en complejidad entre una solución y la solución óptima En general, se busca encontrar la solución más barata

14 Qué necesitamos: Estructura simbólica que represente subconjuntos de soluciones potenciales (agenda) Operaciones/reglas que modifiquen símbolos de la agenda y produzcan conjuntos de soluciones potenciales más refinadas Estrategia de búsqueda que decida qué operación aplicar a la agenda

15 Representación La representación normalmente juega un papel fundamental. E.g., juego de seleccionar digitos de forma alternada tal que la suma de 3 de ellos sumen 15

16 Terminología: nodo, árbol, hoja, nodo-raíz, nodo-terminal, branching factor (factor de arborescencia), ramas, padres, hijos, árbol uniforme, ...

17 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

18 Nodos terminales/hojas
Nodo raíz Ramas Padre Hijos Profundidad Nodos terminales/hojas

19 Nodo expandido (closed)
Nodos generados No explorados (open) Nodo no generado Nodo explorado No expandido

20 Propiedades 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)

21 Propiedades de algoritmos de búsqueda (heurísticas):
1. Completo: si encuentra una solución cuando ésta existe 2. Admisible: si garantiza regresar una solución óptima cuando ésta existe

22 Propiedades de algoritmos de búsqueda (heurísticas):
3. Dominante: un algoritmo A1 se dice que domina a A2 si todo nodo expandido por A1 es también expandido por A2 (“más eficiente que”) 4. Óptimo: un algoritmo es óptimo sobre una clase de algoritmos si domina a todos los miembros de la clase

23 Procedimientos de Búsqueda
Algún camino: Sin información: depth-first (en profundo) breadth-first (a lo ancho) Con información: hill climbing beam search best first

24 El mejor camino: British museum branch and bound A* Juegos minimax alpha-beta SSS* SCOUT

25 GRAFO 4 4 C A B 3 5 5 I M 4 3 D E F 2 4

26 ÁRBOL DE BÚSQUEDA I A D B D A E F C E E B B D F B F C E A C M M C M F
11 D F B F C E A C M 14 17 15 15 13 M C M F 19 19 17 M 25

27 Algoritmo Genérico de Búsqueda sin información
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

28 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

29 DEPTH-FIRST SEARCH (I) (A D) (B D D) (C E D D) C (E D D) (D F D D)
11 (E D D) D F B F C E A C M 14 17 15 15 13 M C M F (D F D D) 19 19 17 M (F D D) 25 (M D D)

30 Problemas: árboles con caminos de profundidad muy grande
Variantes: Backtracking: genera un solo sucesor a la vez Depth-bound (casi todos): limitar la búsqueda hasta cierto límite de profundidad Interative-deepening: explorar a profundidad progresivamente Con algo de información: ordena los nodos expandidos

31 Breadth first Problemas: árboles con arborescencia muy grande
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 Variantes: búsqueda de costo uniforme

32 ÁRBOL DE BÚSQUEDA I A D B D A E F C E E B B D F B F C E A C M M C M F
11 D F B F C E A C M 14 17 15 15 13 M C M F 19 19 17 M 25

33 BREADTH-FIRST SEARCH (I) 4 (D F B F C E A C M) 1 (A D)
(I) 4 (D F B F C E A C M) 1 (A D) (F B F C E A C M) (D B D) 2 (B D A E) (B F C E A C M M) (D A E C E) (F C E A C M M C) (A E C E E) (E C E E B) (C E A C M M C M) BREADTH-FIRST SEARCH 3 (C E E B B F) (E A C M M C M) (E E B B F) (A C M M C M F) (E B B F D F) (B B F D F B F) (C M M C M F) (B F D F B F C E) 5 (M M C M F) ( F D F B F C E A C)

34 Breadth-first (búsqueda a lo ancho)
Es completo (encuentra una solución si existe) y óptimo (encuentra la más corta) si el costo del camino no decrece con la profundidad del nodo Problemas: Requiere mucha memoria y tiene problemas con árboles con arborescencia muy grande Variantes: búsqueda de costo uniforme

35 Profund. Nodos Tiempo Memoria 10 2 4 6 8 12 14 1 1 miliseg. 100 bytes
12 14 1 1 miliseg. 100 bytes 111 .1 seg. 11,111 terabytes 11 kilobytes 1 megabyte 111 megabytes 11 gigabytes 1 terabyte 111 terabytes 11,111 11 seg. 18 min. 31 hr. 128 días 35 años 3500 años Requerimientos de tiempo y memoria para breadth-first. Factor de arborecencia = 10; 1,000 nodos/sec; 100 bytes/nodo

36 Búsqueda Bidireccional
Se explora al mismo tiempo del estado inicial a la meta y de la meta al estado inicial Si el factor de arborecencia es igual en ambos sentidos se pueden hacer grandes ahorros Se requieren operadores reversibles Pueden existir muchas metas Se requiere una estrategia eficiente para revisar si un nodo aparece en la otra mitad de la búsqueda

37 Complejidad Comparación en nodos buscados:
Si n = profundidad del árbol b = braching factor d = profundidad de un nodo meta

38   - - - =  depth-first: mejor caso: d nodos buscados peor caso: n n
n+1- d n+1 - i - i b b = b n b b b-1 i= 0 i= 0

39   -   - breadth-first: mejor caso: i= 0 b i d 1 = b 1 d 1
peor caso: i= 0 b i d = b 1 - 1 d+1

40 si si no no si si si si si no si Criterio Breadth Costo Depth Depth
Iterative Bidireccional first uniforme first limited deepening b d b d b m b l b d d/2 Tiempo b b d b d Espacio d/2 b X m b X l b X d b Optimo si si no no si si si si si(si l ≥d) si Completo no si Comparación de estrategias. b = factor de arborecencia; d = profundidad solución; m = máxima profundidad árbol; l = límite de profundidad.

41 Algoritmo Genérico de Búsqueda con información
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, añade sus sucesores a la agenda ordena todos los elementos de la agenda

42 Algoritmos con Información
Hill-Climbing 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

43 (I) (A D) (D B) (E C) BÚSQUEDA HILL-CLIMBING Hill climbing
Heurística: ve a la ciudad más cercana (I) (A D) (D B) (E C) I A D B D A E C E E B B F 11 D F B F C E A C M 14 17 15 15 13 M C M F 19 19 17 M 25

44 Hill Climbing Problemas obvios: máximos/mínimos locales, valles y riscos Para evitarlos a veces se empieza la búsqueda desde diferentes puntos aleatorios (random-restart hill-climbing) Dado su bajo costo computacional es una de las estratgias más utilizadas en optimización y en aprendizaje computacional

45 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

46 1 2 BEST FIRST Heurística:Distancia acumulada más corta I A 3 D 4 I A
7 D 8

47 3 I A D B D A E 7 8 9 6

48 I 4 A D B D A E E 9 7 8 B F 11 10

49 I 5 A D B D A E E B 8 9 B F C E 11 10 11 12

50 I 6 A D B D A E E B D 9 B F C E E 11 10 11 12 10

51 I 7 A D B D A E C E E E B B F 11 12 13 11 10 B F 15 14

52 I 8 A D B D A E C E E E B B F 11 12 13 11 B F F M 15 14 13

53 Usando costo estimado Usar costo acumulado no necesariamente guía la búsqueda hacia la meta En general se utiliza una estimación del costo del camino hacia la meta Debido a que se guardan todos los nodos en memoria su complejidad en espacio es igual a la del tiempo

54 Híbidos Usar BF hasta agotar memoria seguido de BT Usar BT hasta cierta profundidad seguido de BF Tener un BF local con un BT global

55 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)

56 Beam search Beam=2 1 I A D 3 4 I 2 A D 4 B D 7 8 X

57 3 I A D B A E 6 9 7 X

58 4 I A D B E E 7 B F 10 11 X

59 5 I A D B E E B F 10 C E 11 12 X

60 6 I A D B E E B F C M

61 Espacio Usado breadth-first: b hill-climbing: 1
depth-first:(b-1)*n + 1 breadth-first: b hill-climbing: 1 best-first: entre b y b beam-seach: beam d n

62 Mejor Solución Cuando importa el costo de encontrar una solución Si g(P) es el costo de camino o solución parcial, la solución óptima es aquella con g(P) mínima. Una forma segura: búsqueda exhaustiva y seleccionar el de menor costo (Brittish Museum)

63 Best-first no es admisible, pero con una pequeña variante ya lo es.
Branch and Bound trabaja como best-first pero en cuanto se encuentra una solución, sigue expandiendo los nodos de costos menores al encontrado

64 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

65 1 Búsqueda Branch and Bound X I A D B D A E 11 C E 12 E E 13 B B 11 F
15 F F 14 M 13

66 2 I A D B D A E 11 C E E E B B F 12 13 B F F A C M 13 15 15 15 14

67 I 3 A D B D A E C E E 11 B B F 13 D F F F A C B M 14 15 15 16 15 14 13

68 Dynamic Programming Idea: no explorar caminos a los que ya llegamos por caminos más cortos/baratos El algoritmo es igual sólo hay que añadir la condición: elimina todos los caminos que lleguen al mismo nodo excepto el de menor costo

69 Dynamic programming I 1 3 A D 4 I 2 A D 4 B 7 D 8 X

70 3 I A D 4 3 B A E 7 9 6 X

71 I 4 A 3 4 D 6 B E E 7 B 13 F 10 X

72 I 5 A 4 3 D 6 7 B E E F 10 C 11 E 12 X

73 I 6 3 A 4 D 6 7 B E E F 10 11 C M

74 costo(camino recorrido) + estim(camino que falta)
A*: utiliza dos medidas Idea: usar estimaciones de los costos/distancias que faltan junto con los costos/distancias acumuladas estim(total) = costo(camino recorrido) + estim(camino que falta) Las estimaciones no son perfectas, por lo que se usan sub-estimaciones

75 costo(camino recorrido)
+ subestim(total) = subestim(camino que falta) De nuevo expande hasta que los demás tengan sub-estimaciones más grandes (v.g., subestimaciones de distancias entre ciudades pueden ser líneas rectas) Es admisible si nunca sobrestima

76 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

77 A* 1 I A D 13.4 12.9 I 2 13.4 A D A E 19.4 12.9

78 I 3 13.4 A D A E E 19.4 17.7 B F 13.0

79 I 4 D 13.4 A 19.4 A E E B F 17.7 13.0 M

80 Costo de búsqueda Arborescencia efectiva d IDS A*(h ) A*(h ) IDS
1 2 1 2 2 10 6 6 2.45 1.79 1.79 4 112 13 12 2.87 1.48 1.45 6 680 20 18 2.73 1.34 1.30 8 6384 39 25 2.80 1.33 1.24 10 47127 93 39 2.79 1.38 1.22 12 364404 227 73 2.78 1.42 1.24 14 539 113 2.83 1.44 1.23 16 - 1301 211 - 1.45 1.25 18 - 3056 363 - 1.46 1.26 20 - 7276 676 - 1.47 1.27 22 - 18094 1219 - 1.48 1.28 24 - 39135 1641 - 1.48 1.26 Comparación Interactive Deepening (IDS) con A* con dos heurísticas (h1 y h2). Resultados promedios de 100 instancias del 8-puzzle.

81 Variantes de A* Pesar la combinación de g y h:
f(n) = (1-w)g(n) + w h(n) Interactive deepening A*: IDA* Aceptar un margen de error: A* Con memoria limitada: MA* Mejoras dinámicas: actualizar dinámicamente la subestimación

82 ¿Cuándo usamos cada una?
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

83 Todas estas estrategias tienen su equivalente para árboles AND-OR
Para hacer un depth first en un árbol del tipo AND - OR IF alguno de los nodos AND falla, realiza backtracking hasta el ultimo nodo OR IF alguno de los nodos OR falla realiza backtracking al nodo inmediato anterior

84 En general se usan 2 funciones de estimación:
f1: evalúa sobre los nodos (como antes) f2: evalúa sobre árboles

85 Para etiquetar Solución (S) / no-solución (N):
IF nodo terminal es meta: S Else: N IF nodo no-terminal es AND: S si todos son S N si alguno es N IF nodo no-terminal es OR: S si alguno es S N si todos son N Similarmente para A* existe un correspondiente AO*

86 Búsqueda en árbol And/Or

87 Búsqueda en grafos And/Or

88 Búsqueda en grafos And/Or

89 Búsqueda en grafos And/Or

90 Búsqueda en grafos And/Or

91 Búsqueda en grafos And/Or

92 ¿Cómo encontrar heurísticas?
analizando modelos simplificados soluciones por descomposición: si cada submeta se puede solucionar independientemente de las otras soluciones parcialmente ordenadas usar probabilidades

93 Búsqueda en Prolog busca(NodoI,NodoF) :- busca_aux([NodoI],NodoF).
busca_aux([NodoF | __],NodoF). busca_aux(Agenda,NodoF) :- nva_agenda(Agenda,NAgenda), busca_aux(NAgenda,NodoF).

94 % depth-first nva_agenda([N1 Agenda],NAgenda) :- expande(N1,Nodos), append(Nodos,Agenda,NAgenda). % breadth-first append(Agenda,Nodos,NAgenda).

95 % best first nva_agenda([N1 Agenda],NAgenda) :- expande(N1,Nodos), append(Nodos,Agenda,AgendaInt), sort(AgendaInt,NAgenda). % hill-climbing nva_agenda([N1 Agenda],[Mejor]) :- expande(N1,Nodos), append(Nodos,Agenda,AgendaInt), sort(AgendaInt,[Mejor __]).

96 % beam-search nva_agenda(Beam,[N1 Agenda],NAgenda) :- expande(N1,Nodos), append(Nodos,Agenda,AgendaInt), sort(AgendaInt,AgendaOrd), nthelems(Beam,AgendaOrd,NAgenda).

97 Búsqueda en Lisp (defun busca (nodoI, nodoF)
(busca2 (list nodoI) nodoF)) (defun busca2 (agenda nodoF) (cond ((null agenda) nil) ((equal (car agenda) nodoF)) (t (busca2 (nva_agenda (car agenda) (cdr agenda)) nodoF))))

98 ; breath-first (defun nva_agenda (nodo agenda) (append (expande nodo) agenda)) ; depth search (append agenda (expande nodo))) ; best-first search (sort (append (expande nodo) agenda)))

99 ; hill-climbing (defun nva_agenda (nodo agenda) (list (car (sort (append (expande nodo) agenda))))) ; beam search (defun nva_agenda (beam nodo agenda) (nthelems beam (sort (append (expande nodo) agenda))))

100 TAREA Partiendo del siguiente estado inicial del 8-puzzle y con el siguiente estado final realiza las siguientes estrategias de búsqueda: Breadth-first Beast-first Hill-climbing


Descargar ppt "Eduardo Morales/L. Enrique Sucar"

Presentaciones similares


Anuncios Google