Subido por Dina Melina Ramos

tema-02 Busqueda en espacio de estados

Anuncio
Búsqueda en espacio de estados
Departamento de Ciencias de la Computación
e Inteligencia Artificial
Universidad de Sevilla
Representación
como espacio
de estados
Abstracción
Problema
Lenguaje de
programación
Implementación
del problema
Algoritmos
de búsqueda
Búsqueda de
solución
Solución
Interpretación
del resultado
Torres de Hanoi:
• Tres varillas verticales.
• Discos de distinto tamaño apilados de mayor a
menor en una de las varillas.
1
2
3
Objetivo: pasar los discos de la varilla 1 a la 3.
Reglas:
1. Se desplaza un disco cada vez.
2. Solo se desplazan los discos de arriba de las varillas.
3. No se coloca un disco sobre otro más pequeño.
Estado de un problema:
• Descripción de una posible situación en que puede
encontrarse el problema.
• Recopila toda la información relevante e ignora la
irrelevante.
Estado de un problema:
• Descripción de una posible situación en que puede
encontrarse el problema.
• Recopila toda la información relevante e ignora la
irrelevante.
Información irrelevante para las Torres de Hanoi:
• Material de las varillas y los discos.
• Color de cada disco.
• Etcétera.
Estado de un problema:
• Descripción de una posible situación en que puede
encontrarse el problema.
• Recopila toda la información relevante e ignora la
irrelevante.
Información relevante para las Torres de Hanoi:
• Qué discos están colocados en cada varilla.
• En qué orden están colocados esos discos.
Estado de un problema:
• Descripción de una posible situación en que puede
encontrarse el problema.
• Recopila toda la información relevante e ignora la
irrelevante.
Información relevante para las Torres de Hanoi:
• Tamaño (relativo) de los discos colocados en cada
varilla.
Estado de un problema:
• Descripción de una posible situación en que puede
encontrarse el problema.
• Recopila toda la información relevante e ignora la
irrelevante.
Espacio de estados de un problema: conjunto de todos
los posibles estados en que puede encontrarse el
problema.
Espacio de estados de las Torres de Hanoi con 2 discos:
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
Acción para un problema:
•
•
•
•
Transforma estados del problema en otros estados.
Conjunto de posibles acciones fijo y finito.
El número de acciones debería ser lo menor posible.
Puede no ser posible aplicar una acción a un estado
(aplicabilidad de las acciones).
Acción para un problema:
•
•
•
•
Transforma estados del problema en otros estados.
Conjunto de posibles acciones fijo y finito.
El número de acciones debería ser lo menor posible.
Puede no ser posible aplicar una acción a un estado
(aplicabilidad de las acciones).
Acciones para las Torres de Hanoi (con 𝑛 discos):
• Mover el disco de tamaño 𝑖 a la varilla 𝑗.
• Condiciones de aplicabilidad:
• disco 𝑖 en lo alto de una varilla distinta de 𝑗.
• varilla 𝑗 sin discos o tiene en lo alto un disco mayor
que 𝑖.
• Número de acciones: 3𝑛 acciones.
Acción para un problema:
•
•
•
•
Transforma estados del problema en otros estados.
Conjunto de posibles acciones fijo y finito.
El número de acciones debería ser lo menor posible.
Puede no ser posible aplicar una acción a un estado
(aplicabilidad de las acciones).
Acciones para las Torres de Hanoi (con 𝑛 discos):
• Mover un disco de la varilla 𝑖 a la varilla 𝑗.
• Condiciones de aplicabilidad:
• varilla 𝑖 con al menos un disco.
• varilla 𝑗 sin discos o el disco en lo alto de ella de
mayor tamaño que el disco en lo alto de la varilla 𝑖.
• Número de acciones: 6 acciones.
Un problema de espacio de estados viene dado por:
• Su espacio de estados.
• Sus acciones, junto con las condiciones de
aplicabilidad asociadas.
• El estado inicial en el que se encuentra.
• Los estados finales (enumerados o declarados) en
los que deseamos que se encuentre.
Un problema de espacio de estados viene dado por:
• Su espacio de estados.
• Sus acciones, junto con las condiciones de
aplicabilidad asociadas.
• El estado inicial en el que se encuentra.
• Los estados finales (enumerados o declarados) en
los que deseamos que se encuentre.
Torres de Hanoi con 2 discos:
• Estado inicial:
1
2
3
• Estados finales:
• Descripción enumerativa:
1
2
3
• Descripción declarativa: los dos discos en la varilla 3.
Solución de un problema de espacio de estados:
secuencia de acciones que llevan el problema de su
estado inicial a un estado final.
Búsqueda de soluciones mediante procedimientos
generales que son independientes del problema.
Grafo de un problema de espacio de estados:
• Vértices: los estados del problema.
• Arco de un estado a otro: hay una acción que se
puede aplicar al primero y proporciona el segundo.
1a3
1a2
1
2
3
2a3
1
2a1
2
3
3a2
1
2
3
3a1
1a2
2a1
1a3
1a2
2a3
1a3
1
2
3
2a1
3a1
1
2
3
3a2
1
2
3
1
2
3
3a1
2a3
3a2
1a3
1a2
1
2
3
2a1
2a3
1
2
3a1
3
3a2
La búsqueda de una solución se reduce a una
exploración del grafo:
• Comienza a partir del estado inicial.
• En cada paso se considera un nuevo estado que sea
sucesor directo de un estado ya analizado.
• Termina al analizar un estado final (solución
encontrada) o al explorar el grafo al completo
(solución no encontrada).
Tipos de soluciones a buscar: una solución cualquiera,
todas las soluciones, la solución más corta, la solución
menos costosa, etc.
1a3
1a2
1
2
3
2a3
1
2a1
2
3
3a2
1
2
3
3a1
1a2
2a1
1a3
1a2
2a3
1a3
1
2
3
2a1
3a1
1
2
3
3a2
1
2
3
1
2
3
3a1
2a3
3a2
1a3
1a2
1
2
3
2a1
2a3
1
2
3a1
3
3a2
1a3
1a2
1
2
3
2a3
1
2a1
2
3
3a2
1
2
3
3a1
1a2
2a1
1a3
1a2
2a3
1a3
1
2
3
2a1
3a1
1
2
3
3a2
1
2
3
1
2
3
3a1
2a3
3a2
1a3
1a2
1
2
3
2a1
2a3
1
2
3a1
3
3a2
Problemas con gran cantidad de estados: inviable
expresar el grafo de manera explícita.
• Torres de Hanoi con 𝑛 discos: 3𝑛 estados.
Búsqueda en un grafo implícito, mediante un árbol de
búsqueda:
• Construido de manera incremental.
• Nodos analizados (explorados o cerrados) y por
analizar (frontera o abiertos).
• Control de la repetición de nodos.
1a3
1a2
1
2
3
2a3
1
2a1
2
3
3a2
1
2
3
3a1
1a2
2a1
1a3
1a2
2a3
1a3
1
2
3
2a1
3a1
1
2
3
3a2
1
2
3
1
2
3
3a1
2a3
3a2
1a3
1a2
1
2
3
2a1
2a3
1
2
3a1
3
3a2
1a3
1a2
1
2
3
2a3
1
2a1
2
3
3a2
1
2
3
3a1
1a2
2a1
1a3
1a2
2a3
1a3
1
2
3
2a1
3a1
1
2
3
3a2
1
2
3
1
2
3
3a1
2a3
3a2
1a3
1a2
1
2
3
2a1
2a3
1
2
3a1
3
3a2
1a3
1a2
1
2
3
2a3
1
2a1
2
3
3a2
1
2
3
3a1
1a2
2a1
1a3
1a2
2a3
1a3
1
2
3
2a1
3a1
1
2
3
3a2
1
2
3
1
2
3
3a1
2a3
3a2
1a3
1a2
1
2
3
2a1
2a3
1
2
3a1
3
3a2
1a3
1a2
1
2
3
2a3
1
2a1
2
3
3a2
1
2
3
3a1
1a2
2a1
1a3
1a2
2a3
1a3
1
2
3
2a1
3a1
1
2
3
3a2
1
2
3
1
2
3
3a1
2a3
3a2
1a3
1a2
1
2
3
2a1
2a3
1
2
3a1
3
3a2
1a3
1a2
1
2
3
2a3
1
2a1
2
3
3a2
1
2
3
3a1
1a2
2a1
1a3
1a2
2a3
1a3
1
2
3
2a1
3a1
1
2
3
3a2
1
2
3
1
2
3
3a1
2a3
3a2
1a3
1a2
1
2
3
2a1
2a3
1
2
3a1
3
3a2
1a3
1a2
1
2
3
2a3
1
2a1
2
3
3a2
1
2
3
3a1
1a2
2a1
1a3
1a2
2a3
1a3
1
2
3
2a1
3a1
1
2
3
3a2
1
2
3
1
2
3
3a1
2a3
3a2
1a3
1a2
1
2
3
2a1
2a3
1
2
3a1
3
3a2
1a3
1a2
1
2
3
2a3
1
2a1
2
3
3a2
1
2
3
3a1
1a2
2a1
1a3
1a2
2a3
1a3
1
2
3
2a1
3a1
1
2
3
3a2
1
2
3
1
2
3
3a1
2a3
3a2
1a3
1a2
1
2
3
2a1
2a3
1
2
3a1
3
3a2
Nodo de un árbol de búsqueda:
• Estado.
• Nodo padre (ninguno para el nodo inicial).
• Acción (ninguna para el nodo inicial).
Para cada nodo se puede obtener la secuencia de
acciones que llevan del estado inicial al estado de ese
nodo.
Expansión de un nodo 𝑛 con estado 𝑠:
• Sucesores de 𝑛: para cada acción 𝑎 aplicable a 𝑠,
nodo con estado 𝑎(𝑠), nodo padre 𝑛 y acción 𝑎.
función búsqueda-general (problema)
devuelve solución o fallo
inicio función
inicializar la frontera con el nodo inicial
inicializar los nodos explorados al conjunto vacío
repetir
si la frontera está vacía entonces
devolver fallo
fin si
seleccionar y sacar un nodo de la frontera
si nodo contiene un estado final entonces
devolver secuencia de acciones desde el
nodo inicial hasta nodo
fin si
añadir nodo al conjunto de explorados
para cada acción aplicable al estado de nodo
hacer
si el nodo hijo correspondiente a
acción no está ni en frontera ni
en explorados
entonces
añadir el nodo hijo a frontera
fin si
fin para
fin repetir
fin función
Estrategia de búsqueda: forma de seleccionar los nodos
de la frontera.
• Búsqueda no informada: independiente del
problema.
• Búsqueda en anchura: frontera es una cola FIFO.
• Búsqueda en profundidad: frontera es una pila LIFO.
• Búsqueda en profundidad iterativa: búsqueda en
profundidad reiterada.
• Búsqueda informada: usa información específica del
problema.
• Búsqueda primero el mejor: se selecciona el nodo
que se estima mejor candidato.
• Búsqueda 𝐴∗ : se selecciona el nodo que se estima
más cerca de una solución óptima.
Búsqueda en anchura:
1
3
2
8
9
10
7
6
5
4
11
12
13
14
15
Búsqueda en profundidad:
1
9
2
4
5
7
13
10
6
3
8
11
12
14
15
Análisis de las estrategias de búsqueda:
• Complejidad en tiempo: número de nodos
generados.
• Complejidad en espacio: tamaño máximo de frontera
y explorados.
Parámetros de complejidad:
• 𝑟: factor de ramificación.
• 𝑝: profundidad mínima de una solución.
• 𝑚: profundidad del árbol de búsqueda.
Notación Ο: complejidad del peor caso.
Análisis de la búsqueda no informada:
Completa
Minimal
Tiempo
Espacio
Anchura
Sí
Sí
Ο(𝑟𝑝+1 )
Ο(𝑟𝑝+1 )
Profundidad
No en general
Sí con número finito de estados
No
Ο(𝑟𝑚+1 )
Ο(𝑟𝑚+1 )
Análisis de la búsqueda no informada:
Completa
Minimal
Tiempo
Espacio
Anchura
Sí
Sí
Ο(𝑟𝑝+1 )
Ο(𝑟𝑝+1 )
Profundidad
No en general
Sí con número finito de estados
No
Ο(𝑟𝑚+1 )
Ο(𝑟𝑚+1 )
Para ramificación 10, 106 nodos/seg y 1000 bytes/nodo
Prof.
6
8
10
Tiempo
1 seg
2 min
3 horas
Espacio
1 GB
103 GB
10 TB
Prof.
12
14
16
Tiempo Espacio
13 días
1 PB
3.5 años 99 PB
350 años 10 EB
Análisis de la búsqueda no informada:
Completa
Minimal
Tiempo
Espacio
Anchura
Sí
Sí
Ο(𝑟𝑝+1 )
Ο(𝑟𝑝+1 )
Profundidad
No en general
Sí con número finito de estados
No
Ο(𝑟𝑚+1 )
Ο(𝑟𝑚)
Búsqueda en profundidad: para evitar bucles infinitos solo
es necesario guardar los nodos de la rama que se está
explorando.
función búsqueda-p-acotada (problema, cota)
devuelve solución o fallo
inicio función
inicializar la frontera como una pila con el nodo inicial
inicializar los nodos explorados al conjunto vacío
repetir
si la frontera está vacía entonces
devolver fallo
fin si
seleccionar y sacar el primer nodo de la frontera
si nodo contiene un estado final entonces
devolver secuencia de acciones desde el nodo
inicial hasta nodo
fin si
añadir nodo al conjunto de explorados
si profundidad de nodo es menor que cota entonces
para cada acción aplicable al estado de nodo
hacer
si el nodo hijo correspondiente a acción no
está ni en frontera ni en explorados
entonces
añadir el nodo hijo a frontera
fin si
fin para
fin si
fin repetir
fin función
función búsqueda-p-iterativa (problema)
devuelve solución o fallo
inicio función
para cota desde 0 hasta ∞ hacer
resultado ← búsqueda-p-acotada(problema, cota)
si resultado no es fallo entonces
devolver resultado
fin si
fin para
fin función
Heurística de un nodo: valor numérico que puede
depender de
• el nodo.
• el objetivo.
• la información recogida por la búsqueda hasta
ahora.
• conocimiento específico del problema.
Algoritmo de búsqueda primero el mejor:
• frontera: cola de prioridades ordenada por
heurística.
• nodo a explorar se descarta si hay nodo en frontera
o explorados con el mismo estado y valor heurístico
menor o igual.
función búsqueda-primero-mejor (problema)
devuelve solución o fallo
inicio función
inicializar la frontera como una cola de prioridades
ordenada por heurística con el nodo inicial
inicializar los nodos explorados al conjunto vacío
repetir
si la frontera está vacía entonces
devolver fallo
fin si
seleccionar y sacar un nodo de la frontera
si nodo contiene un estado final entonces
devolver secuencia de acciones desde el nodo
inicial hasta nodo
fin si
añadir nodo al conjunto de explorados
para cada acción aplicable al estado de nodo hacer
si el nodo hijo correspondiente a acción no
está en frontera ni en explorados con un
valor heurístico menor o igual
entonces
añadir el nodo hijo a frontera
fin si
fin para
fin repetir
fin función
Solución óptima: solución con el menor coste posible.
• necesario conocer el coste de obtener 𝑎(𝑠).
• coste de una secuencia de acciones: suma de costes
de las acciones.
• coste constante: soluciones óptimas son las
minimales.
Búsqueda de una solución óptima:
• Heurística de un nodo: coste de la secuencia de
acciones usada para llegar desde el estado inicial
hasta el estado de ese nodo.
• Completa, si el coste de cada acción excede ε > 0.
• Complejidad exponencial en tiempo y espacio.
Búsqueda 𝐴∗ : heurística de un nodo 𝑛 es
𝑓 (𝑛) = 𝑔(𝑛) + ℎ(𝑛)
donde
• 𝑔(𝑛): coste de la secuencia de acciones usada para
llegar desde el estado inicial hasta el estado de ese
nodo.
• ℎ(𝑛): estimación del coste de una secuencia óptima
de acciones desde el estado de ese nodo hasta un
estado final.
𝑓 (𝑛) estima el coste de una solución óptima que pasa
por el nodo 𝑛.
ℎ∗ (𝑛): coste exacto de solución óptima desde el estado
de 𝑛 hasta un estado final.
Heurística ℎ admisible:
ℎ(𝑛) ≤ ℎ∗ (n), para todo nodo 𝑛
Una heurística admisible proporciona una cota inferior
del coste de una solución óptima desde cada nodo.
Teorema
1. La búsqueda 𝐴∗ es completa.
2. Si ℎ es una heurística admisible, entonces la
solución devuelta por 𝐴∗ es óptima.
Poda del árbol de búsqueda: ramas que la heurística
evita explorar.
Casos extremos:
• ℎ(𝑛) = ℎ∗ (𝑛): máxima poda posible.
• ℎ(𝑛) = 0: mínima poda posible (búsqueda óptima).
ℎ2 más informada que ℎ1 : ambas son admisibles y
ℎ2 (𝑛) ≥ ℎ1 (𝑛), para todo nodo 𝑛
Teorema
Si ℎ2 es mas informada que ℎ1 , entonces todo nodo
explorado por 𝐴∗ usando ℎ2 también es explorado por
𝐴∗ usando ℎ1 .
Complejidad en tiempo y espacio de la búsqueda 𝐴∗ :
• En el peor de los casos es exponencial.
• En la práctica, depende en gran medida del
problema particular y de la heurística empleada.
Relajación de un problema: simplificación obtenida
eliminando restricciones que prohíben o penalizan
ciertas acciones.
Técnica de construcción de heurísticas: coste exacto de
una solución óptima en un problema relajado.
Otras técnicas:
• Combinación de heurísticas admisibles.
• Uso de información estadística.
Heurística para las Torres de Hanoi:
Relajación del problema: los discos se pueden colocar en
cualquier posición de la varilla, no únicamente en lo alto.
El coste exacto en el problema relajado es el número de
discos que no están en la varilla 3. Es una heurística
admisible para el problema original.
1
2
3
1
2
3
Valor heurístico: 8
Valor heurístico: 4
Para saber más
Stefan Edelkamp y Stefan Schroedl. Heuristic Search.
Theory and Applications. Elsevier, 2011. isbn:
978-01-237251-2-7.
Judea Pearl. Heuristics. Intelligent Search Strategies
for Computer Problem Solving. Addison-Wesley,
1985. isbn: 0-201-05594-5.
Stuart J. Russell y Peter Norvig. Artificial Intelligence:
A Modern Approach. 3a ed. Pearson, 2009. isbn:
978-0-13-604259-4.
Descargar