Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1/53
Información de Contacto
2/53
Tabla de Contenidos
Formulación de Problemas
Datos Personales Medición del rendimiento
Introducción Búsqueda de Soluciones
3/53
Introducción
4/53
¿Por qué definir objetivos?
5/53
Agente de Solución de Problemas
6/53
Agente de Solución de Problemas
7/53
Agente de Solución de Problemas
Formulación del Problema
• El segundo paso en el diseño de un agente de solución de problemas es
la formulación del problema.
• Formulación del problema: Proceso de decidir que acciones y estados
considerar.
• Acciones: Causan transiciones entre estados del mundo. El agente debe
elegir realizar acciones que conduzcan a un estado objetivo.
• Búsqueda: El proceso de examinar diferentes posibles secuencias de
acciones que conducen a estados de valor conocido, y luego elegir el
mejor.
• Algoritmo de búsqueda: Toma un problema y retorna una solución
(secuencia se acciones). 8/53
Agente de Solución de Problemas
Ejecución
• El tercer paso en el diseño de un agente de solución de problemas es la
ejecución.
• Ejecución: Llevar a cabo las acciones recomendadas.
• En resumen, el diseño de un agente conlleva tres fases.
• Formulación del problema y del objetivo.
• Búsqueda de una secuencia de estados que lleven al objetivo.
• Ejecución llevar a cabo las acciones.
9/53
Ejemplo: Agente de Solución de Problemas
Problema
• Hay 2 baldes, uno de 5lts. y el otro de 3lts.
• El problema es dejar 4 lts. de agua en el de 5lts.
• ¿Cómo dejo 4 lts. de agua en el balde de 5, si no tienen escala de medición los
baldes, y tampoco tengo nada con que medir?
• Nota: Se tiene una llave la cual me facilita toda el agua que necesite.
10/53
Un Agente de Solución de Problema Simple
11/53
Formulación de Problemas
• Agente de estado único (tiene acceso total al mundo): Si el estado inicial es 5, entonces sabe que la
secuencia (Right, Suck) lo conduce al estado objetivo.
• Agente de estados múltiples (tiene acceso limitado al estado del mundo): Estado inicial cualquiera de los 8.
La acción Right lo conduce al set de estados {2, 4, 6, 8}. La secuencia (Right, Suck, Left, Suck) lo conduce al
estado objetivo 7.
13/53
Problemas bien definidos
• Problema: Colección de información que el agente utiliza para decidir
que hacer.
• Información necesaria para definir un problema de estado único:
1. Estado Inicial.
2. Conjunto de posible acciones disponibles al agente. Usualmente se
utiliza un operador S(x), el cual retorna el conjunto de estados
alcanzables desde el estado x por una acción.
3. Condición objetivo. Condición que el agente puede aplicar a un estado
para determinar si está en un estado objetivo.
4. Función de costo de un camino. Función que asigna un costo a un
camino. Se denota por g.
14/53
Problemas bien definidos
• El estado inicial y conjunto de posibles acciones (operadores) definen el
espacio de estados del problema, es decir, el conjunto de todos los
estados alcanzables desde el estado inicial por cualquier secuencia de
acciones.
Camino: Cualquier secuencia de acciones que conducen desde un
estado a otro.
• Es decir, podemos definir un tipo de dato.
1 Datatype PROBLEM
2 Components: INITIAL-STATE, OPERATORS, GOAL-TEST, PATH-
COST-FUNCTION
15/53
Medición del rendimiento de un agente de solución de
problemas
16/53
Problema: Conducir desde Arad a Bucharest, usando los
caminos del mapa
17/53
Problema: Conducir desde Arad a Bucharest, usando los
caminos del mapa
18/53
Elección de estados y acciones
Problema: ”Conducir desde Arad a Bucharest, usando los caminos del mapa”
Estado Inicial: ”En Arad”.
Condición Objetivo: ”¿Estamos en Bucharest?”.
Una solución: Arad → Sibiu → Rimnicu → Pitesti → Bucharest.
Otra solución Arad → Timisoara → Lugoj → Mehadia → Dobreta → Craiova
→ Pitesti → Bucharest.
¿Cuál solución es mejor? Necesitamos una función de costo.
Función de costo: Número de pasos (arcos) en el camino.
Mejor solución: Arad → Sibiu → Fagaras → Bucharest,
costo = 3.
19/53
Ejemplos de Problemas
20/53
Problemas Ejemplo: Puzzle-8
22/53
Agente Aspirador: Estados Múltiples. (Agente no tiene
sensores)
En este caso, el agente no tiene sensores, pero aún debe limpiar toda la
suciedad.
23/53
Agente Aspirador: Estados Múltiples. (Agente no tiene
sensores)
24/53
Búsqueda por Soluciones
• El encontrar una solución es realizado por una búsqueda a través del
espacio de soluciones.
• La idea es mantener y extender un conjunto de secuencias de
soluciones parciales.
• La aplicación de los operadores al estado actual genera un conjunto de
nuevos estados.
• La esencia de una búsqueda es elegir una opción a expandir y poner el
resto a un lado para consideración posterior, en el caso de que la
primera elección no conduzca a una solución.
• La elección de que estado expandir es determinado por la estrategia de
búsqueda.
25/53
Ejemplo: Árbol de Búsqueda para el problema de
encontrar la búsqueda
a) Estado Inicial
26/53
Ejemplo: Árbol de Búsqueda para el problema de
encontrar la búsqueda
27/53
Ejemplo: Árbol de Búsqueda para el problema de
encontrar la búsqueda
28/53
Algoritmo general de búsqueda
1 Datatype node
2 Components: STATE, PARENT-NODE, OPERATOR, DEPTH, PATH-COST
30/53
Algoritmo general de búsqueda (usando una cola)
31/53
Criterios de Evaluación de Estrategias de Búsqueda
32/53
Clasificación de Estrategias de Búsqueda (I)
33/53
Clasificación de Estrategias de Búsqueda (II)
34/53
Breadth-first search (BFS)
35/53
Breadth-first search (BFS)
36/53
Breadth-first search (BFS)
A A A A
B C B C B C B C
D E F G D E F G D E F G D E F G
37/53
Breadth-first search (BFS)
• BFS es completa: si existe una solución, la encontrará.
• BFS es óptima: si hay varias soluciones, siempre encontrará primero el
estado objetivo más superficial.
• Si consideramos que cada estado se expande en b nuevos estados
(factor de expansión), y si la solución al problema tiene una longitud del
camino de d, entonces el número máximo de nodos expandidos antes
de encontrar la solución es: 1 + b + b2 + b3 + ... + bd . Ejemplo: b=10,
1000 nodos/seg, 100 bytes/nodo.
Profundidad (d) Nodos Tiempo Memoria
4 11.111 11 seg 1 MB
8 104 31 horas 11 GB
12 1012 35 años 111 TB
38/53
Búsqueda de Costo Uniforme
39/53
Búsqueda de Costo Uniforme
40/53
Depth-first Search (DFS)
• Siempre expande uno de los nodos en el nivel más profundo del árbol.
Solo cuando llega a un extremo muerto (nodo no objetivo sin
expansión) la búsqueda retrocede y expande nodos en niveles más
superficiales.
• Implementación: con una cola, que siempre pone los estados más
recientes generados al frente de la cola (o una función recursiva
invocada sobre cada hijo a la vez).
41/53
Depth-first Search (DFS)
42/53
Depth-first Search (DFS)
A A A
B C B C B C
D E F G D E F G D E F G
H I J K L M N O H I J K L M N O H I J K L M N O
A A A
B C B C B C
D E F G D E F G D E F G
H I J K L M N O H I J K L M N O H I J K L M N O
A A A
B C B C B C
D E F G D E F G D E F G
H I J K L M N O H I J K L M N O H I J K L M N O
A A A
B C B C B C
D E F G D E F G D E F G
H I J K L M N O H I J K L M N O H I J K L M N O
43/53
Depth-first Search (DFS)
Espacio si el factor de expansión es b y la profundidad máxima es m,
entonces DFS requiere almacenar b · m nodos (si m=12, b=10,
requerirá solo 12KB de espacio).
Tiempo O(bm ) en el peor caso.
No es óptima Puede fallar en encontrar la solución óptima.
No es completa Puede fallar en encontrar una solución cuando existe una
(puede caer en un loop infinito o nunca retornar una solución).
44/53
Búsqueda de Profundidad Limitada (DLS)
• Evita los problemas de los DFS imponiendo un punto de corte sobre la
máxima profundidad del camino.
• Por ejemplo, para le caso del mapa de ciudades de Rumania, hay 20
ciudades, así que una solución debe ser de longitud 19 a lo más.
• En este caso, el operador sería: ”Si en la ciudad A ha viajado un camino
de largo menor a 19 entonces generar un nuevo estado en la ciudad B”.
• Este operador garantiza encontrar una solución si existe pero no
garantiza encontrar la solución más corta (Optimalidad).
• Tiempo. O(bl ), donde l es la profundidad límite.
• Espacio. O(b · l), donde l es la profundidad límite.
45/53
Búsqueda de Profundidad Iterativa (IDS)
• Puede ser difícil elegir un buen límite.
• En el ejemplo del mapa de ciudades de Rumania, quizás el paso por 19
ciudades no es el mejor límite. Quizás sea mejor 9 (diámetro del grafo:
mayor a la distancia entre cualquier par de estados). Esto significa, que
dada cualquier ciudad esta puede ser alcanzada desde otra en a lo más
9 pasos.
46/53
Búsqueda de Profundidad Iterativa (IDS)
47/53
Búsqueda de Profundidad Iterativa (IDS)
48/53
Búsqueda Bidireccional
• Idea: Buscar simultáneamente hacia adelante desde el estado inicial y
hacia atrás desde el estado objetivo.
• La búsqueda se detiene cuando ambas búsquedas se reúnen en el
medio (estado común)
49/53
Búsqueda Bidireccional
• Si existe una solución a profundidad d, entonces la solución será
d 1
encontrada en O(2b 2 ) = O(b 2 ).
• Definición: Predecesores(n) = todos los nodos m talque sucesor(m)=n.
• Calcular los predecesores de un estado puede ser difícil.
d
• Tiempo. O(b 2 )
d
• Espacio. O(b 2 )
• Factores adicionales a considerar:
• ¿Múltiples estados objetivos?.
• Forma eficiente de verificar si un nuevo estado está en la otra mitad.
• El tipo de búsqueda a realizar en cada mitad.
50/53
Comparación de estrategias de búsqueda
51/53
Evitando estados repetidos
• Problema: La posibilidad de expandir estados que ya han sido encontrados y
expandidos antes sobre algún otro camino.
• Estados repetidos: En algunos problemas son inevitables debido a la presencia de
operadores reversibles (Por ejemplo, el problema de encontrar una ruta).
• Formas de tratar con estados repetidos:
• No retornar al estado desde el cual justo se viene - rechazar la generación
de cualquier sucesor que es el mismo que el estado del nodo padre.
• No crear caminos con ciclos en ellos - rechazar la generación de cualquier
sucesor de un nodo que es el mismo que cualquier de sus antecesores.
• No generar cualquier estado que ya fue generado antes.
• Verificar por estados repetidos puede ser costoso en tiempo. Se sugiere usar una
tabla de hash (almacena todos los nodos generados).
52/53
¿Preguntas?
53/53