1 Resolución de problemas mediante búsqueda. 2 Introducción l Agentes basados en el objetivo de...

38
Resolución de problemas mediante búsqueda
  • date post

    21-Dec-2015
  • Category

    Documents

  • view

    221
  • download

    2

Transcript of 1 Resolución de problemas mediante búsqueda. 2 Introducción l Agentes basados en el objetivo de...

Page 1: 1 Resolución de problemas mediante búsqueda. 2 Introducción l Agentes basados en el objetivo de resolución de problemas. »Necesaria una formulación de.

1

Resolución de

problemas

mediante búsqueda

Page 2: 1 Resolución de problemas mediante búsqueda. 2 Introducción l Agentes basados en el objetivo de resolución de problemas. »Necesaria una formulación de.

2

Introducción

Agentes basados en el objetivo de resolución de problemas.» Necesaria una formulación de objetivos.» Estados y posibles acciones.» Ejemplo de mapa de carreteras.» Un agente simple de resolución de

problemas:

La función RECOMMENDATION devuelve la primera acción en la secuencia.

» La función REMAINDER devuelve el resto.

fig03_01.ps

Page 3: 1 Resolución de problemas mediante búsqueda. 2 Introducción l Agentes basados en el objetivo de resolución de problemas. »Necesaria una formulación de.

3

Formulación de problemas, I

Problema de aspiradora:» 8 posibles estados» Los estados están contenidos en esta

figura:

Dos tipos de problemas: » Problemas de estados únicos.

– Aparecen en entornos accesibles (la percepción determina completamente el estado) y deterministas.

» Problemas de estados múltiples.– Aparecen por ejemplo en entornos no accesibles

o no deterministas.– Ejemplo (sin sensores; determinista, pero no

accesible):

fig03_06.ps

fig03_07.ps

Page 4: 1 Resolución de problemas mediante búsqueda. 2 Introducción l Agentes basados en el objetivo de resolución de problemas. »Necesaria una formulación de.

4

Formulación de problemas, II

Si el entorno es no determinista (por ejemplo, “La absorción deposita algunas veces suciedad, pero sólo cuando previamente no hay suciedad”):» Si el entorno es accesible, para cada

estado inicial, hay una secuencia fija de operadores que llevan al objetivo.

» Si el entorno es semiaccesible (por ejemplo, si tenemos un sensor de posición y un sensor local del estado de suciedad):

– entonces, no hay una secuencia fija que garantice una solución a partir de cualquier estado:

Estados (A=aspiradora, S=suciedad): » (1, AS, S), (2, S, AS), (3, AS, )» (4, S, A), (5, A, S), (6, , AS)» (7, A, ), (8, , A)

Page 5: 1 Resolución de problemas mediante búsqueda. 2 Introducción l Agentes basados en el objetivo de resolución de problemas. »Necesaria una formulación de.

5

Formulación de problemas, III

{1,3} --(absorción)-->{5,7}--(derecha)--> {6,8}--(absorción)-->{6,8}

» La solución sería: absorción, derecha, absorción, “absorción si sucio”. Es un árbol de posibles acciones (problema con contingencias).

Posibles operadores para el estado inicial {1,3}:

{1,3}

{5,7}

{2,4}

{6,8} {5,1,7,3}

S

L

SR

L

RSL

R L

R S{.........}

Page 6: 1 Resolución de problemas mediante búsqueda. 2 Introducción l Agentes basados en el objetivo de resolución de problemas. »Necesaria una formulación de.

6

Problemas bien definidos

Consideramos los problemas más sencillos (problema de estado único): » Estado inicial» Espacio de estados.» Posibles acciones (operadores) sobre cada

estado. – Cada operador obtiene un estado a partir de otro

estado.

» Función objetivo (estados objetivo). » Función de coste de aplicación de los

operadores.

Un problema de estados múltiples es un caso particular del caso de un problema de estado único, en donde cada estado es un multiestado:» Estado inicial: multiestado » Cada operador obtiene un multiestado a

partir de otro multiestado.

Page 7: 1 Resolución de problemas mediante búsqueda. 2 Introducción l Agentes basados en el objetivo de resolución de problemas. »Necesaria una formulación de.

7

Ejemplos, I

Los objetivos de la resolución de un problema mediante búsqueda son:» Encontrar una solución» La solución debe tener coste total mínimo:

– Coste de búsqueda: Tiempo y memoria necesarios.

– Coste del camino solución.

Ejemplos: » Problema del 8-puzle.

– Coste operadores: 1

» Problema de las 8 reinas (en general de las N reinas/damas):

– Coste operadores: 1 (el camino solución siempre tiene coste 8).

– Posible representación (1): estado: n reinas en el tablero operadores: añadir una reina a una posición

vacía.

Page 8: 1 Resolución de problemas mediante búsqueda. 2 Introducción l Agentes basados en el objetivo de resolución de problemas. »Necesaria una formulación de.

8

Ejemplos, II– Posible representación (2):

estado: n reinas en el tablero (no atacándose).

Operadores: añadir una reina en la columna vacía más a la izquierda tal que no sea atacada por ninguna de las ya existentes.

Menos operadores que en la representación 1.

» Criptoaritmética.

– Estados: algunas letras sustituidas por dígitos.– Operadores: sustituir una letra por un dígito que

no aparece ya dentro del estado.– La solución se encuentra a profundidad

conocida.

FORTY+ TEN TEN ------ SIXTY

29786+ 850 850 ------ 31486

Page 9: 1 Resolución de problemas mediante búsqueda. 2 Introducción l Agentes basados en el objetivo de resolución de problemas. »Necesaria una formulación de.

9

Ejemplos, III

» Ejemplo de aspiradora.– Entorno accesible y determinista.

Estados: 8. Operadores: L, R, S Estados objetivo: 7, 8 Coste: 1

– Agente sin sensores (entorno no accesible, pero determinista)

Estados: subconjuntos de los 8 Coste: 1 Estados objetivo: estados formados por una

combinación de 7,8.

fig03_06.ps

fig03_07.ps

Page 10: 1 Resolución de problemas mediante búsqueda. 2 Introducción l Agentes basados en el objetivo de resolución de problemas. »Necesaria una formulación de.

10

Ejemplos, IV

» Misioneros y caníbales. – Hay 3 misioneros y 3 caníbales en la orilla

izquierda de un río. Un bote puede transportar a 1 o 2 personas de una orilla a otra. Objetivo: pasar a todos a la otra orilla.

Condición: “No puede ocurrir nunca que si en una orilla hay algún misionero, haya a la vez un número mayor de caníbales (se los comerían).”

– Estados: Parámetros: número misioneros lado

izquierdo, número caníbales lado izquierdo, posición bote (izquierda o derecha).

Se debe verificar la Condición.– Operadores:

Transportar 1 misionero. Transportar 1 canibal. Transportar 2 misioneros. Transportar 2 caníbales. Transportar 1 misionero y 1 caníbal.

– Coste operador: 1.

Page 11: 1 Resolución de problemas mediante búsqueda. 2 Introducción l Agentes basados en el objetivo de resolución de problemas. »Necesaria una formulación de.

11

Ejemplos, V

Otros ejemplos (más reales):» Problema de mapa de carreteras.

– Viajar de una ciudad a otra recorriendo la menor distancia posible.

» Problema del viajante de comercio.– Un viajante debe viajar recorriendo un conjunto

de ciudades. Debe partir de una ciudad inicial y, tras recorrer todas las ciudades, volver a la ciudad de inicio.

Problema clásico: debe visitar exactamente 1 vez todas las ciudades (excepto la de inicio que la visita 2 veces).

» Diseño de circuitos.» Navegación de robots. » Montaje mecánico de robots.» Planificación de toma de imágenes

(telescopio Hubble).

Page 12: 1 Resolución de problemas mediante búsqueda. 2 Introducción l Agentes basados en el objetivo de resolución de problemas. »Necesaria una formulación de.

12

Algoritmo general de búsqueda, I

Problema del mapa de carreteras:» Espacio de estados (finito).» Árbol de nodos (infinito), generable.

Un nodo: » Un estado (del espacio de estados).» Su nodo padre.» Operador que lo generó. » Profundidad en el árbol de búsqueda.» Coste desde nodo inicial.

Page 13: 1 Resolución de problemas mediante búsqueda. 2 Introducción l Agentes basados en el objetivo de resolución de problemas. »Necesaria una formulación de.

13

Algoritmo general de búsqueda, II

Algoritmo general de búsqueda (pseudo-C): funcion búsqueda-general

(problema, estrategia)

returns una solución o fallo {

“inicializa árbol de búsqueda con

estado inicial”

loop {

if “no es posible expandir ninguna hoja”,

return fallo

“elige un nodo hoja a expandir,

según la estrategia”

if “el nodo es objetivo”,

return “la solución”

else “expande nodo y añade los nodos

resultantes al árbol de búsqueda”

}

}

Con más detalle: fig03_10.ps

Page 14: 1 Resolución de problemas mediante búsqueda. 2 Introducción l Agentes basados en el objetivo de resolución de problemas. »Necesaria una formulación de.

14

Estrategias de búsqueda ciega, I

Búsqueda ciega: sin información. Criterios:

» Completitud (¿encuentra la solución)» Optimalidad (¿encuentra la mejor solución)» Complejidad espacial (memoria necesaria)» Complejidad temporal (tiempo necesario)

Estrategias de búsqueda:» Hipótesis:

– Todos los operadores tienen el mismo coste (por ejemplo 1). El factor de ramificación es siempre finito.

– m=profundidad máxima del árbol de búsqueda– d=profundidad de la mejor solución– b=factor de ramificación

Page 15: 1 Resolución de problemas mediante búsqueda. 2 Introducción l Agentes basados en el objetivo de resolución de problemas. »Necesaria una formulación de.

15

Estrategias de búsqueda ciega, II

Estrategias: » Búsqueda en anchura:

– Completo y óptimo– Complejidad espacial = – Complejidad temporal =

número de nodos expandidos =

– Para b=10, 1000 nodos/segundo, 100 bytes/nodo:

prof. 2, 111 nodos, 0.1 seg., 11 Kb prof. 6, 1.000.000 nodos, 18 minutos, 111

Mb prof. 12, nodos, 35 años, 111 Tb

)( dbO

)(1

1...1

12 d

dd bO

b

bbbb

1210

Page 16: 1 Resolución de problemas mediante búsqueda. 2 Introducción l Agentes basados en el objetivo de resolución de problemas. »Necesaria una formulación de.

16

Estrategias de búsqueda ciega, III

» Búsqueda en profundidad: – No es óptimo

Puede encontrar un camino peor– No es completo

Puede no acabar– Complejidad temporal = – Complejidad espacial =

número de nodos necesarios = un camino hasta una hoja y los hermanos de cada nodo del camino =

)( mbO

)(bmO

Page 17: 1 Resolución de problemas mediante búsqueda. 2 Introducción l Agentes basados en el objetivo de resolución de problemas. »Necesaria una formulación de.

17

Estrategias de búsqueda ciega, IV

» Búsqueda limitada en profundidad: – Se utiliza un límite de profundidad (l)– No es óptimo

Puede encontrar un camino peor– No es completo, en general, aunque:

sí es completo cuando

– Complejidad temporal =

– Complejidad espacial =

número de nodos necesarios = un camino hasta una hoja y los hermanos de cada nodo del camino =

dl

)( lbO

)(blO

Page 18: 1 Resolución de problemas mediante búsqueda. 2 Introducción l Agentes basados en el objetivo de resolución de problemas. »Necesaria una formulación de.

18

Estrategias de búsqueda ciega,V

» Búsqueda iterativa en profundidad: – Son búsquedas en profundidad con límites: 0, 1,

2, 3, 4, ...– Es óptimo y completo.– Complejidad espacial = como en la búsqueda en

profundidad:

– Complejidad temporal = número total de expansiones (los nodos con profundidad de la mejor solución se expanden 1 vez; los siguientes 2 veces, los siguientes 3 veces, ....) =

– Método preferido cuando no se conoce la profundidad de la solución.

)(

1)1()1(

....3212

21

d

ddd

bO

ddbbd

bbb

)(bdO

Page 19: 1 Resolución de problemas mediante búsqueda. 2 Introducción l Agentes basados en el objetivo de resolución de problemas. »Necesaria una formulación de.

19

Estrategias de búsqueda ciega,VI

» Búsqueda bidireccional:– Buscar simultáneamente desde estado inicial

hasta objetivo y viceversa hasta que ambas búsquedas “se encuentren”.

– Optimo y completo. – Complejidad espacial y temporal:

– Problemas: Cálculo de predecesores. Varios estados objetivo. “Encontrar las búsquedas”. Determinación del tipo de búsqueda en cada

dirección.

)( 2dbO

Page 20: 1 Resolución de problemas mediante búsqueda. 2 Introducción l Agentes basados en el objetivo de resolución de problemas. »Necesaria una formulación de.

20

Estrategias de búsqueda ciega,VII

Los resultados anteriores pueden no verificarse cuando los costes de los arcos son variables.

Búsqueda de coste uniforme: » Costes variables para los arcos pero:

» Para un nodo n, se define g(n)=coste desde nodo inicial.

» Se expande el nodo con menor valor de g.» Completo y óptimo. » Si todos los arcos tienen el mismo coste, se

tiene búsqueda en anchura.– Si todos los arcos tienen el mismo coste 1,

g(n)=profundidad(n)

» Complejidad espacial y temporal =

,0)(cos kte

tesvalorminimo

soluciónmejordetedbO d

cos

cos),(~~

Page 21: 1 Resolución de problemas mediante búsqueda. 2 Introducción l Agentes basados en el objetivo de resolución de problemas. »Necesaria una formulación de.

21

Estrategias de búsqueda ciega,VIII

Un resumen se puede ver en:

fig03_18.ps

Page 22: 1 Resolución de problemas mediante búsqueda. 2 Introducción l Agentes basados en el objetivo de resolución de problemas. »Necesaria una formulación de.

22

Eliminación de estados repetidos, I

En ejemplos como para los m+1 estados:

su árbol de búsqueda contendría ramas.

A

B

C........ m2

Page 23: 1 Resolución de problemas mediante búsqueda. 2 Introducción l Agentes basados en el objetivo de resolución de problemas. »Necesaria una formulación de.

23

Eliminación de estados repetidos, II

Para evitar que se repitan estados, se podrían considerar tres métodos: » 1) No generar un nodo hijo de un nodo si

los dos pertenecen al mismo estado. » 2) Evitar ramas con ciclos (en un camino

desde el nodo inicial, hay dos nodos que pertenecen el mismo estado).

– El método 2) incluye al 1)

» 3) Si al generar un nodo, su estado asociado, ya ha sido generado por otro nodo, eliminar el nodo peor (y sus descendientes) del árbol de búsqueda

– El método 3) incluye al 2) y, por tanto, al 1)– Este método es el más caro (hay que mantener

todos los nodos en memoria).

........

Page 24: 1 Resolución de problemas mediante búsqueda. 2 Introducción l Agentes basados en el objetivo de resolución de problemas. »Necesaria una formulación de.

24

Problemas de satisfacción de restriciones, I

Variables. Posibles valores en dominios (conjuntos finitos o infinitos).

Restricciones » Eecuaciones (condiciones) entre las

variables.

Ejemplos: » Problema 8 damas.» Criptoaritmética.

Page 25: 1 Resolución de problemas mediante búsqueda. 2 Introducción l Agentes basados en el objetivo de resolución de problemas. »Necesaria una formulación de.

25

Problemas de satisfacción de restriciones, II

Los problemas discretos (el dominio es finito) se pueden resolver utilizando búsqueda: » Estado inicial: todas las variables sin

asignar. » Profundidad máxima=número de

variables=profundidad de todas las soluciones.

– Se puede utilizar, por tanto, búsqueda en profundidad.

» Cardinal espacio búsqueda=producto de cardinales de los dominios de las variables.

» Se pueden hacer: – Eliminación de ramas en donde alguna

restricción no se satisface (y se hace “backtracking”)

– Propagación de restricciones, para reducir los posibles valores de las variables por asignar.

Page 26: 1 Resolución de problemas mediante búsqueda. 2 Introducción l Agentes basados en el objetivo de resolución de problemas. »Necesaria una formulación de.

26

Ejemplo, I

El problema del 8-puzle se podría representar en LISP.

;;; EJEMPLO DE REPRESENTACION DE UN PROBLEMA (sin variables)

(setf *estado0* '((0 1) (1 2) (2 3)

(3 4) (4 NIL) (5 5)

(6 6) (7 7) (8 8)))

(setf *problema-8-puzle*

'(:8-puzle

(:estado-inicial *estado0*)

(:operadores

(:mueve-arriba

(:accion #'mueve-arriba))

(:mueve-abajo

(:accion #'mueve-abajo))

(:mueve-izquierda

(:accion #'mueve-izquierda))

(:mueve-derecha

(:accion #'mueve-derecha)))

(:estados-objetivo #'reconoce)))

Page 27: 1 Resolución de problemas mediante búsqueda. 2 Introducción l Agentes basados en el objetivo de resolución de problemas. »Necesaria una formulación de.

27

Ejemplo, II(defun reconoce (estado)

(equal estado '((0 1) (1 2) (2 3)

(3 4) (4 8) (5 5)

(6 6) (7 7) (8 NIL))))

(defun posible-mover-arriba-p (estado)

(let ((posicion (posicion NIL estado)))

(not (member posicion '(0 1 2)))))

(defun posible-mover-abajo-p (estado)

(let ((posicion (posicion NIL estado)))

(not (member posicion '(6 7 8)))))

(defun posible-mover-izquierda-p (estado)

(let ((posicion (posicion NIL estado)))

(not (member posicion '(0 3 6)))))

(defun posible-mover-derecha-p (estado)

(let ((posicion (posicion NIL estado)))

(not (member posicion '(2 5 8)))))

Page 28: 1 Resolución de problemas mediante búsqueda. 2 Introducción l Agentes basados en el objetivo de resolución de problemas. »Necesaria una formulación de.

28

Ejemplo, III(defun mueve-arriba (estado)

(if (posible-mover-arriba-p estado)

(let* ((nuevo-estado

(copy-tree estado))

(posicion-vacia

(posicion NIL

nuevo-estado))

(posicion-arriba

(- posicion-vacia 3))

(ficha-arriba

(ficha posicion-arriba

nuevo-estado)))

(coloca posicion-arriba NIL

nuevo-estado)

(coloca posicion-vacia

ficha-arriba

nuevo-estado)

nuevo-estado)))

;;; Análogos mueve-abajo, mueve-izquierda

;;; y mueve-derecha

Page 29: 1 Resolución de problemas mediante búsqueda. 2 Introducción l Agentes basados en el objetivo de resolución de problemas. »Necesaria una formulación de.

29

Ejemplo, IV(defun posicion (ficha estado)

(first (first

(member ficha estado

:test

#'(lambda (x y)

(eql x

(second y)))))))

(defun coloca (posicion ficha estado)

(setf (second (nth posicion estado))

ficha))

(defun ficha (posicion estado)

(second (nth posicion estado)))

Page 30: 1 Resolución de problemas mediante búsqueda. 2 Introducción l Agentes basados en el objetivo de resolución de problemas. »Necesaria una formulación de.

30

Ejemplo, V;;; EJEMPLO DE REPRESENTACION DE UN

;;; PROBLEMA (con variables)

(setf *estado0* '((0 1) (1 2) (2 3)

(3 4) (4 NIL) (5 5)

(6 6) (7 7) (8 8)))

(setf *problema-8-puzle*

'(:8-puzle

(:estado-inicial *estado0*)

(:operadores

(:mueve

(:variables

(direccion

'(arriba abajo derecha izquierda)))

(:accion #'mueve)))

(:estados-objetivo #'reconoce)))

Page 31: 1 Resolución de problemas mediante búsqueda. 2 Introducción l Agentes basados en el objetivo de resolución de problemas. »Necesaria una formulación de.

31

Ejemplo, VI(defun reconoce (estado)

(equal estado '((0 1) (1 2) (2 3)

(3 4) (4 8) (5 5)

(6 6) (7 7) (8 NIL))))

(defun posible-mover-p (direccion estado)

(cond ((eql direccion 'arriba)

(posible-mover-arriba-p estado))

((eql direccion 'abajo)

(posible-mover-abajo-p estado))

((eql direccion 'izquierda)

(posible-mover-izquierda-p

estado))

((eql direccion 'derecha)

(posible-mover-derecha-p

estado))))

(defun posible-mover-arriba-p (estado)

(let ((posicion (posicion NIL estado)))

(not (member posicion '(0 1 2)))))

;;; Análogo para posible-mover-abajo-p,

;;; posible-mover-izquierda-p y posible-mover-derecha-p

Page 32: 1 Resolución de problemas mediante búsqueda. 2 Introducción l Agentes basados en el objetivo de resolución de problemas. »Necesaria una formulación de.

32

Ejemplo, VII(defun mueve (direccion estado)

(if (posible-mover-p direccion estado)

(let* ((nuevo-estado

(copy-tree estado))

(posicion-vacia

(posicion NIL

nuevo-estado))

(posicion-nueva

(nueva-posicion

direccion

posicion-vacia))

(ficha-nueva

(ficha posicion-nueva

nuevo-estado)))

(coloca posicion-nueva NIL

nuevo-estado)

(coloca posicion-vacia ficha-nueva

nuevo-estado)

nuevo-estado)))

Page 33: 1 Resolución de problemas mediante búsqueda. 2 Introducción l Agentes basados en el objetivo de resolución de problemas. »Necesaria una formulación de.

33

Ejemplo, VIII(defun nueva-posicion (direccion

posicion-vacia)

(cond ((eql direccion 'arriba)

(- posicion-vacia 3))

((eql direccion 'abajo)

(+ posicion-vacia 3))

((eql direccion 'izquierda)

(- posicion-vacia 1))

((eql direccion 'derecha)

(+ posicion-vacia 1))))

(defun posicion (ficha estado)

(first (first

(member ficha estado

:test

#'(lambda (x y)

(eql x

(second y)))))))

Page 34: 1 Resolución de problemas mediante búsqueda. 2 Introducción l Agentes basados en el objetivo de resolución de problemas. »Necesaria una formulación de.

34

Ejemplo, IX(defun coloca (posicion ficha estado)

(setf (second (nth posicion estado))

ficha))

(defun ficha (posicion estado)

(second (nth posicion estado)))

;;; REPRESENTACION CON ESTRUCTURAS DE LISP

(defstruct problema

nombre

estado-inicial

operadores

test-objetivo)

(defstruct operador

nombre

accion

(variables nil))

Page 35: 1 Resolución de problemas mediante búsqueda. 2 Introducción l Agentes basados en el objetivo de resolución de problemas. »Necesaria una formulación de.

35

Ejemplo, X(setf *operadores*

(list

(make-operador

:nombre 'mueve-arriba

:accion #'mueve-arriba)

(make-operador

:nombre 'mueve-abajo

:accion #'mueve-abajo)

(make-operador

:nombre 'mueve-derecha

:accion #'mueve-derecha)

(make-operador

:nombre 'mueve-izquierda

:accion #'mueve-izquierda)))

(setf *problema-8-puzle*

(make-problema

:nombre '8-puzle

:estado-inicial *estado0*

:operadores *operadores*

:estados-objetivo #'reconoce))

Page 36: 1 Resolución de problemas mediante búsqueda. 2 Introducción l Agentes basados en el objetivo de resolución de problemas. »Necesaria una formulación de.

36

Ejemplo, I

Realizar búsqueda en anchura (suponemos costes=1):

Estado inicial: A; estados objetivo = {G}

A

B

D

C F

GE

Page 37: 1 Resolución de problemas mediante búsqueda. 2 Introducción l Agentes basados en el objetivo de resolución de problemas. »Necesaria una formulación de.

37

Ejemplo, II

Solución (eliminando estados repetidos)

Estado inicial: A; estados objetivo = {G}

A

B

D

C F

GE

43

65 7

2

1

Page 38: 1 Resolución de problemas mediante búsqueda. 2 Introducción l Agentes basados en el objetivo de resolución de problemas. »Necesaria una formulación de.

38

Otros ejemplos

Problema del viajante de comercio. Análisis sintáctico. Otros de la hoja 3 de problemas:

» Localización de una moneda falsa.» Reconocimiento de cadenas de caracteres

para una expresión regular.» etc