Búsqueda en espacio de estados - us

52
Búsqueda en espacio de estados Departamento de Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla

Transcript of Búsqueda en espacio de estados - us

Búsqueda en espacio de estados

Departamento de Ciencias de la Computacióne Inteligencia Artificial

Universidad de Sevilla

Representacióncomo espaciode estados

ProblemaImplementacióndel problema Solución

Búsqueda desolución

AbstracciónLenguaje deprogramación

Algoritmosde búsqueda

Interpretacióndel resultado

Torres de Hanoi:

• Tres varillas verticales.• Discos de distinto tamaño apilados de mayor amenor 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 puedeencontrarse el problema.

• Recopila toda la información relevante e ignora lairrelevante.

Estado de un problema:

• Descripción de una posible situación en que puedeencontrarse el problema.

• Recopila toda la información relevante e ignora lairrelevante.

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 puedeencontrarse el problema.

• Recopila toda la información relevante e ignora lairrelevante.

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 puedeencontrarse el problema.

• Recopila toda la información relevante e ignora lairrelevante.

Información relevante para las Torres de Hanoi:

• Tamaño (relativo) de los discos colocados en cadavarilla.

Estado de un problema:

• Descripción de una posible situación en que puedeencontrarse el problema.

• Recopila toda la información relevante e ignora lairrelevante.

Espacio de estados de un problema: conjunto de todoslos posibles estados en que puede encontrarse elproblema.

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

Acciones para las Torres de Hanoi (con 𝑛 discos):

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 mayorque 𝑖.

• 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 demayor 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 deaplicabilidad asociadas.

• El estado inicial en el que se encuentra.• Los estados finales (enumerados o declarados) enlos 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.

Un problema de espacio de estados viene dado por:

• Su espacio de estados.• Sus acciones, junto con las condiciones deaplicabilidad asociadas.

• El estado inicial en el que se encuentra.• Los estados finales (enumerados o declarados) enlos 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 suestado inicial a un estado final.

Búsqueda de soluciones mediante procedimientosgenerales 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 sepuede aplicar al primero y proporciona el segundo.

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

1 a 2

2 a 1

1 a 3

3 a 1

2 a 3

3 a 2

1 a 3 3 a 1

1 a 2 2 a 1

1 a 2

2 a 1

1 a 3

3 a 1

2 a 3

3 a 2

2 a 3 3 a 2

1 a 2

2 a 1

1 a 3

3 a 1

2 a 3

3 a 2

La búsqueda de una solución se reduce a unaexploración del grafo:

• Comienza a partir del estado inicial.• En cada paso se considera un nuevo estado que seasucesor directo de un estado ya analizado.

• Termina al analizar un estado final (soluciónencontrada) 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ónmenos costosa, etc.

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

1 a 2

2 a 1

1 a 3

3 a 1

2 a 3

3 a 2

1 a 3 3 a 1

1 a 2 2 a 1

1 a 2

2 a 1

1 a 3

3 a 1

2 a 3

3 a 2

2 a 3 3 a 2

1 a 2

2 a 1

1 a 3

3 a 1

2 a 3

3 a 2

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

1 a 2

2 a 1

1 a 3

3 a 1

2 a 3

3 a 2

1 a 3 3 a 1

1 a 2 2 a 1

1 a 2

2 a 1

1 a 3

3 a 1

2 a 3

3 a 2

2 a 3 3 a 2

1 a 2

2 a 1

1 a 3

3 a 1

2 a 3

3 a 2

Problemas con gran cantidad de estados: inviableexpresar el grafo de manera explícita.

• Torres de Hanoi con 𝑛 discos: 3𝑛 estados.

Búsqueda en un grafo implícito, mediante un árbol debúsqueda:

• Construido de manera incremental.• Nodos analizados (explorados o cerrados) y poranalizar (frontera o abiertos).

• Control de la repetición de nodos.

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

1 a 2

2 a 1

1 a 3

3 a 1

2 a 3

3 a 2

1 a 3 3 a 1

1 a 2 2 a 1

1 a 2

2 a 1

1 a 3

3 a 1

2 a 3

3 a 2

2 a 3 3 a 2

1 a 2

2 a 1

1 a 3

3 a 1

2 a 3

3 a 2

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

1 a 2

2 a 1

1 a 3

3 a 1

2 a 3

3 a 2

1 a 3 3 a 1

1 a 2 2 a 1

1 a 2

2 a 1

1 a 3

3 a 1

2 a 3

3 a 2

2 a 3 3 a 2

1 a 2

2 a 1

1 a 3

3 a 1

2 a 3

3 a 2

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

1 a 2

2 a 1

1 a 3

3 a 1

2 a 3

3 a 2

1 a 3 3 a 1

1 a 2 2 a 1

1 a 2

2 a 1

1 a 3

3 a 1

2 a 3

3 a 2

2 a 3 3 a 2

1 a 2

2 a 1

1 a 3

3 a 1

2 a 3

3 a 2

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

1 a 2

2 a 1

1 a 3

3 a 1

2 a 3

3 a 2

1 a 3 3 a 1

1 a 2 2 a 1

1 a 2

2 a 1

1 a 3

3 a 1

2 a 3

3 a 2

2 a 3 3 a 2

1 a 2

2 a 1

1 a 3

3 a 1

2 a 3

3 a 2

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

1 a 2

2 a 1

1 a 3

3 a 1

2 a 3

3 a 2

1 a 3 3 a 1

1 a 2 2 a 1

1 a 2

2 a 1

1 a 3

3 a 1

2 a 3

3 a 2

2 a 3 3 a 2

1 a 2

2 a 1

1 a 3

3 a 1

2 a 3

3 a 2

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

1 a 2

2 a 1

1 a 3

3 a 1

2 a 3

3 a 2

1 a 3 3 a 1

1 a 2 2 a 1

1 a 2

2 a 1

1 a 3

3 a 1

2 a 3

3 a 2

2 a 3 3 a 2

1 a 2

2 a 1

1 a 3

3 a 1

2 a 3

3 a 2

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

1 a 2

2 a 1

1 a 3

3 a 1

2 a 3

3 a 2

1 a 3 3 a 1

1 a 2 2 a 1

1 a 2

2 a 1

1 a 3

3 a 1

2 a 3

3 a 2

2 a 3 3 a 2

1 a 2

2 a 1

1 a 3

3 a 1

2 a 3

3 a 2

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 deacciones que llevan del estado inicial al estado de esenodo.

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óninicializar la frontera con el nodo inicialinicializar los nodos explorados al conjunto vacíorepetir

si la frontera está vacía entoncesdevolver fallo

fin siseleccionar y sacar un nodo de la fronterasi nodo contiene un estado final entonces

devolver secuencia de acciones desde elnodo inicial hasta nodo

fin si

añadir nodo al conjunto de exploradospara cada acción aplicable al estado de nodohacer

si el nodo hijo correspondiente aacción no está ni en frontera nien explorados

entoncesañadir el nodo hijo a frontera

fin sifin para

fin repetirfin función

Estrategia de búsqueda: forma de seleccionar los nodosde la frontera.

• Búsqueda no informada: independiente delproblema.

• 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 enprofundidad reiterada.

• Búsqueda informada: usa información específica delproblema.

• Búsqueda primero el mejor: se selecciona el nodoque se estima mejor candidato.

• Búsqueda 𝐴∗: se selecciona el nodo que se estimamás cerca de una solución óptima.

Búsqueda en anchura:

1

3

7

1514

6

1312

2

5

1110

4

98

Búsqueda en profundidad:

1

9

13

1514

10

1211

2

6

87

3

54

Análisis de las estrategias de búsqueda:

• Complejidad en tiempo: número de nodosgenerados.

• Complejidad en espacio: tamaño máximo de fronteray 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:

Anchura ProfundidadCompleta Sí No en general

Sí con número finito de estadosMinimal Sí NoTiempo Ο(𝑟𝑝+1) Ο(𝑟𝑚+1)Espacio Ο(𝑟𝑝+1) Ο(𝑟𝑚+1)

Análisis de la búsqueda no informada:

Anchura ProfundidadCompleta Sí No en general

Sí con número finito de estadosMinimal Sí NoTiempo Ο(𝑟𝑝+1) Ο(𝑟𝑚+1)Espacio Ο(𝑟𝑝+1) Ο(𝑟𝑚+1)

Para ramificación 10, 106 nodos/seg y 1000 bytes/nodoProf. Tiempo Espacio

6 1 seg 1 GB8 2 min 103 GB

10 3 horas 10 TB

Prof. Tiempo Espacio12 13 días 1 PB14 3.5 años 99 PB16 350 años 10 EB

Análisis de la búsqueda no informada:

Anchura ProfundidadCompleta Sí No en general

Sí con número finito de estadosMinimal Sí NoTiempo Ο(𝑟𝑝+1) Ο(𝑟𝑚+1)Espacio Ο(𝑟𝑝+1) Ο(𝑟𝑚)

Búsqueda en profundidad: para evitar bucles infinitos soloes 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óninicializar la frontera como una pila con el nodo inicialinicializar los nodos explorados al conjunto vacíorepetir

si la frontera está vacía entoncesdevolver fallo

fin siseleccionar y sacar el primer nodo de la fronterasi nodo contiene un estado final entonces

devolver secuencia de acciones desde el nodoinicial hasta nodo

fin siañadir nodo al conjunto de explorados

si profundidad de nodo es menor que cota entoncespara cada acción aplicable al estado de nodohacer

si el nodo hijo correspondiente a acción noestá ni en frontera ni en explorados

entoncesañadir el nodo hijo a frontera

fin sifin para

fin sifin repetir

fin función

función búsqueda-p-iterativa (problema)devuelve solución o fallo

inicio funciónpara cota desde 0 hasta ∞ hacer

resultado ← búsqueda-p-acotada(problema, cota)si resultado no es fallo entonces

devolver resultadofin si

fin parafin función

Heurística de un nodo: valor numérico que puededepender de

• el nodo.• el objetivo.• la información recogida por la búsqueda hastaahora.

• conocimiento específico del problema.

Algoritmo de búsqueda primero el mejor:

• frontera: cola de prioridades ordenada porheurística.

• nodo a explorar se descarta si hay nodo en fronterao explorados con el mismo estado y valor heurísticomenor o igual.

función búsqueda-primero-mejor (problema)devuelve solución o fallo

inicio funcióninicializar la frontera como una cola de prioridadesordenada por heurística con el nodo inicialinicializar los nodos explorados al conjunto vacíorepetir

si la frontera está vacía entoncesdevolver fallo

fin siseleccionar y sacar un nodo de la fronterasi nodo contiene un estado final entonces

devolver secuencia de acciones desde el nodoinicial hasta nodo

fin si

añadir nodo al conjunto de exploradospara cada acción aplicable al estado de nodo hacer

si el nodo hijo correspondiente a acción noestá en frontera ni en explorados con unvalor heurístico menor o igual

entoncesañadir el nodo hijo a frontera

fin sifin para

fin repetirfin 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 costesde las acciones.

• coste constante: soluciones óptimas son lasminimales.

Búsqueda de una solución óptima:

• Heurística de un nodo: coste de la secuencia deacciones usada para llegar desde el estado inicialhasta 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 parallegar desde el estado inicial hasta el estado de esenodo.

• ℎ(𝑛): estimación del coste de una secuencia óptimade acciones desde el estado de ese nodo hasta unestado final.

𝑓(𝑛) estima el coste de una solución óptima que pasapor el nodo 𝑛.

ℎ∗(𝑛): coste exacto de solución óptima desde el estadode 𝑛 hasta un estado final.

Heurística ℎ admisible:

ℎ(𝑛) ≤ ℎ∗(n), para todo nodo 𝑛

Una heurística admisible proporciona una cota inferiordel coste de una solución óptima desde cada nodo.

Teorema

1. La búsqueda 𝐴∗ es completa.2. Si ℎ es una heurística admisible, entonces lasolución devuelta por 𝐴∗ es óptima.

Poda del árbol de búsqueda: ramas que la heurísticaevita 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 𝑛

TeoremaSi ℎ2 es mas informada que ℎ1, entonces todo nodoexplorado 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 delproblema particular y de la heurística empleada.

Relajación de un problema: simplificación obtenidaeliminando restricciones que prohíben o penalizanciertas acciones.

Técnica de construcción de heurísticas: coste exacto deuna 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 encualquier posición de la varilla, no únicamente en lo alto.

El coste exacto en el problema relajado es el número dediscos que no están en la varilla 3. Es una heurísticaadmisible para el problema original.

1 2 3Valor heurístico: 8

1 2 3Valor 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 Strategiesfor 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.