Universidad Rey Juan Carlos Curso 2011–2012 Inteligencia Artificial Ingenier´ıa Inform´

Anuncio
Universidad Rey Juan Carlos
Inteligencia Artificial
Ingenierı́a Informática
Hoja de Problemas 3 - Solución
Búsqueda Heurı́stica (I)
Curso 2011–2012
1. Contesta a las siguientes preguntas:
(a) ¿Cuál es el objetivo de una función heurı́stica aplicada a la búsqueda en el
espacio de estados?
Solución:
Estimar la adecuación de un nodo para ser expandido.
(b) ¿Cuál es la definición de heurı́stica consistente?
Solución:
Una heurı́stica es consistente si para todo nodo ni y todo sucesor nj de ni se
cumple que
h∗ (ni ) − h∗ (nj ) ≤ c(ni , nj )
o sea, si h∗ subestima el coste de todos los operadores.
(c) ¿Cuál es la definición de heurı́stica optimista?
Solución:
Una heurı́stica es optimista si
h∗ (n) ≤ h(n)
donde h(n) mide el coste real desde el nodo n hasta el nodo meta más cercano.
(d) ¿Una función heurı́stica consistente es también optimista?
Solución:
Si. Una heurı́stica consistente subestima el coste de todos los operadores, por lo
tanto, también subestima el coste total hacia la meta.
(e) ¿Qué condiciones garantizan que el algoritmo A∗ sea óptimo?
Solución:
El algoritmo A∗ es ptimo si la función heurı́stica h∗ es optimista.
2. Dado el siguiente problema de búsqueda:
Por un genérico nodo (u, v), ¿cuáles de las siguientes funciones heurı́sticas son optimistas?
Página 1 de 10
Hoja de Problemas 3 - Solución
Búsqueda Heurı́stica (I)
Figura 1: Red 2D regular e infinita, Estado inicial (0, 0), Estado final: (x, y) x, y ∈ Z,
Movimiento entre estados directamente conectados a coste 1
Solución:
(a) h∗ ((u, v)) = |u − x| + |v − y|
h∗ ((u, v)) = |u − x| + |v − y| ≤ h((u, v)) = |u − x| + |v − y|
(b) h∗ ((u, v)) = |u − x| ∗ |v − y|
(x, y) = (1, 1)
h∗ ((4, 4)) = |4 − 1| ∗ |4 − 1| = 9 ≥ h((4, 4)) = |4 − 1| + |4 − 1| = 6
(c) h∗ ((u, v)) = 2 ∗ min(|u − x|, |v − y|)
supongamos que |u − x| ≤ |v − y|, entonces
h∗ ((u, v)) = 2 ∗ min(|u − x|, |v − y|) = 2 ∗ |u − x|
2 ∗ |u − x| ≤ |u − x| + |v − y| ⇒ |u − x| ≤ |v − y|
que concuerda con nuestra suposición inicial.
(d) h∗ ((u, v)) = |u| + |x| + |v| + |y|
(x, y) = (−1, −1)
h∗ ((−2, −2)) = |−2|+|−1|+|−2|+|−1| = 6 ≥ h((−2, −2)) = |−2+1|+|−2+1| =
2
(e) h∗ ((u, v)) =
p
(|u − x|2 + |v − y|2 )
p
h∗ ((u, v)) = (|u − x|2 + |v − y|2 ) ≤ h((u, v)) = |u − x| + |v − y| ⇒
|u − x|2 + |v − y|2 ≤ (|u − x| + |v − y|)2 = |u − x|2 + |v − y|2 + 2 ∗ |u − x| ∗ |v − y|
Página 2 de 10
Hoja de Problemas 3 - Solución
Búsqueda Heurı́stica (I)
3. El juego de los “cuadrados latinos 3 x 3” consiste en lo siguiente:
Tenemos un tablero 3 x 3 que inicialmente está vacı́o
En cada posición colocamos un número del 1 al 9, ninguno de los cuales puede
repetirse
El objetivo es tener un número en cada posición del tablero, tal que la suma de
las diferentes filas, columnas y diagonales de siempre el mismo valor: 15
Suponga la configuración descrita en la figura, donde tenemos seis posiciones ocupadas, 3 libres y sólo una fila y una columna cumplen que la suma de sus números es
15
2
7
9
5 3
1
De acuerdo con las reglas del juego, se puede poner un número de los que faltan
(4, 6, 8) en cualquiera de los huecos libres.
(a) Modelice el juego de los “cuadrados latinos 3 x 3” como un espacio de estados,
indicando el conjunto de posibles estados, estado inicial y final, ası́ como la
función expandir que representa los operadores aplicables en cada estado (el
orden en el que se añaden los números es irrelevante). Suponga que cada operador
tiene coste uno.
Solución:
Sea C = {1, ..., 9, }. Cada estado s ∈ S es una matriz 3x3 sobre C, en la que
cada elemento de C aparece como mucho una vez. El estado inicial es la matriz
cuyos elementos son únicamente “ ”. El estado final es una matriz 3x3 sobre C,
en la que cada elemento de C aparece como mucho una vez, y cuyos horizontales,
verticales y diagonales sumen todos 15. Sea s ∈ S una matriz 3x3 que representa
un estado, N ⊆ C el conjunto de los elementos de C que no están contenidos en
s, y n∗ el elemento mı́nimo de N . Entonces expandir(s) es el conjunto de todas
las matrices 3x3 en los que se puede sustituir un valor “ ” de s por n∗
(b) Suponga la siguiente función heurı́stica:
h∗ (n) = número de filas en n que no suman 15 +
número de columnas en n que no suman 15 +
número de diagonales en n que no suman 15.
Desarrolle el árbol de búsqueda generado por el algoritmo A∗ con esta función
heurı́stica suponiendo que el estado inicial es el que muestra la figura. Señale
claramente los valores de g, h∗ y f ∗ de cada nodo del árbol, e indique el orden
de expansión. Asimismo, exponga el estado de la lista abierta en cada paso del
algoritmo.
Solución:
Página 3 de 10
Hoja de Problemas 3 - Solución
Búsqueda Heurı́stica (I)
(c) ¿La función heurı́stica h∗ es optimista y/o consistente?
Solución:
La función h∗ no es optimista. Por ejemplo, f ∗ (a) = 6 sobreestima el coste
real para llegar desde (a) a un estado meta que es 3. Por lo tanto, tampoco es
consistente.
4. Las recientes lluvias han provocado daños en la infraestructura de un municipio que
deben ser reparados con urgencia. Concretamente, hay N obras por realizar y se ha
pedido presupuesto a M empresas constructoras para cada una de las obras. El coste
de encargar cada obra a cada empresa viene dado por una tabla como la siguiente,
donde Ci,j indica el coste de encargar a la empresa Ei la obra Oj
EmpresaE1
EmpresaE2
...
EmpresaEM
Obra O1
C1,1
C2,1
Obra O2
C1,2
C2,2
CM,1
CM,2
... Obra ON
C1,N
C2,N
CM,N
El Ayuntamiento ha decidido asignar una sola obra por empresa. El problema consiste
en decidir qué obra se asignará a cada empresa, de modo que se minimice el coste
total. Los técnicos deciden utilizar el algoritmo A∗ para resolver el problema.
(a) Defina una representación “eficiente” del problema, especificando el conjunto de
posibles estados, estado inicial, estados finales, ası́ como operador(es) y su coste.
Solución:
Se puede utilizar una lista de empresas para representar un estado en el espacio
de búsqueda: la primera empresa de la lista es adjudicataria de la obra O1 , la
segunda de la obra O2 , etc. Por ejemplo, la lista [E3 , E1 ] representa un estado
en el que la obra O1 está adjudicada a la empresa E3 , la obra O2 a la empresa
E1 , y las obras O3 hasta ON están todavı́a sin adjudicar.
Estado inicial: []
Página 4 de 10
Hoja de Problemas 3 - Solución
Búsqueda Heurı́stica (I)
Estados meta: cualquier lista de longitud N que no contenga elementos
(empresas) repetidos
Operador: añadir un elemento (una empresa nueva) al vector, i.e. adjudicar
la siguiente obra a una empresa nueva
Coste de un operador: el coste de dicha adjudicación
(b) Defina una “buena” función heurı́stica h∗ optimista para el problema general.
¿Es su función h∗ también consistente?
Solución:
Para un estado s, la función heurı́stica h∗ devuelve la suma de los costes mı́nimos
de todas las obras no asignadas, considerando para ello únicamente las empresas
sin adjudicación en s. Formalmente, si consideramos ob(s) el conjunto de obras
asignadas en s, y emp(s) el conjunto de empresas adjudicatarias en s:
X
h∗ (s) =
minEi ∈emp(s)
{Ci,j }
(1)
/
Oj ∈ob(s)
/
Para cada obra no adjudicada en s, el coste real de su adjudicación siempre es
mayor o igual que el coste mı́nimo contabilizado por h∗ . Se sigue que h∗ subestima
el coste real de cada operador por lo que es consistente, en consecuencia, también
optimista.
(c) Considere el siguiente caso particular (los costes se expresan en millones de
Euros)
EmpresaE1
EmpresaE2
EmpresaE3
EmpresaE4
Obra O1
2
5
6
10
Obra O2
3
5
5
8
Obra O3
2
4
4
6
Obra O4
4
5
3
6
Desarrolle el árbol de búsqueda que genera el algoritmo A∗ (puede suponer el
“mejor caso”). Indique el orden en el que se expanden los nodos, los valores
de g, h∗ y f ∗ para cada nodo del árbol de búsqueda, y la evolución de la lista
abierta.
Solución:
Página 5 de 10
Hoja de Problemas 3 - Solución
Búsqueda Heurı́stica (I)
Página 6 de 10
Hoja de Problemas 3 - Solución
Búsqueda Heurı́stica (I)
5. El grafo que se muestra en la figura describe un problema de búsqueda. Suponga que
A es el estado inicial y que F y E son estados meta. Los arcos están etiquetados con
el coste real de los operadores.
h∗ es una función heurı́stica, cuyos valores son
h∗
A 8
B 6
C 6
D 5
E 0
F 0
(a) Desarrolle el árbol de búsqueda que genera el algoritmo A∗ . Indique el orden en
que se expanden los nodos. ¿Cuál de los nodos meta se encuentra primero?
Solución:
En el primer paso, se expanden los dos estados B y C
En el segundo paso, se expande el estado C, que tiene un valor de la función
heurı́stica f ∗ menor del valor de B
Página 7 de 10
Hoja de Problemas 3 - Solución
Búsqueda Heurı́stica (I)
En el tercer paso, se expande el estado B, que tiene un valor de la función
heurı́stica f ∗ menor del valor de D, y se llega al estado meta F
El estado meta que se encuentra primero es el estado F , cuyo coste es 11. El
coste del estado meta E es de 10, por lo tanto en este caso A∗ no es óptimo.
(b) ¿La función heurı́stica es consistente y/o optimista? Argumente su respuesta.
Solución:
La función heurı́stica h∗ no es consistente, porque no subestima el coste real del
operador que lleva del estado D al estado E:
h∗ (D) − h∗ (E) = 5 − 0 = 5 > c(D, E) = 3
(2)
Además no es optimista porque no subestima el coste real para llegar desde el
estado D al estado meta E:
h∗ (D) = 5 > h(D) = 3
(3)
6. Considere el problema de búsqueda del ejercicio precedente. Suponga que A es el
estado inicial y que F y E son estados meta.
Página 8 de 10
Hoja de Problemas 3 - Solución
Búsqueda Heurı́stica (I)
(a) Asigne los valores del coste real de los operadores y de la función heurı́stica h∗ ,
de modo que ésta resulte ser optimista y no consistente
(b) Desarrolle el árbol de búsqueda que genera el algoritmo A∗ . ¿Es el algoritmo A∗
óptimo en este caso?
7. Considera el siguiente juego. En un tablero de hielo 9x6 (9 casillas de ancho, 6 casillas
de alto), hay un pingüino, unos bloques de hielo, unos obstáculos, y un agujero. El
pingüino y los bloques de hielo se pueden mover, mientras que los obstáculos y el
agujero son fijos. En cada movimiento el pingüino o un bloque de hielo se deslizarán
en la dirección del movimiento hasta o bien encontrar un obstáculo o bien llegar al
fin del tablero (figura 2). Por lo tanto, el pingüino o un bloque de hielo pasará por
encima del agujero (sin caer dentro), si justo detrás del agujero no hay nada que lo
pare (un obstáculo, otro bloque de hielo, el pingüino mismo, como en figura 2). El
objetivo del juego es enviar el pingüino dentro del agujero con el mı́nimo nÃo mero de
movimientos posible. Para ello se pueden mover (en las 4 direcciones) tanto el propio
pingüino, como los bloques de hielo.
(a) Modelar el problema como un problema de búsqueda, formalizando el estado, las
acciones con sus precondiciones y efectos, la función de coste y el estado meta.
(b) Resolver el problema, a partir del estado inicial en figura 3, utilizando el algoritmo A∗ y filtrando todos los estados repetidos. Indica el orden de expansión de los
nodos, ası́ como los valores de f ∗ para cada nodo. Utiliza como función heurı́stica h∗ la distancia de Manhattan del pingüino respecto al agujero + la distancia
de Manhattan de cada bloque respecto al agujero (si el pingüino está dentro del
agujero, entonces h∗ = 0). Es la solución encontrada por el algoritmo óptima?
Es la heurı́stica h∗ optimista?
Página 9 de 10
Hoja de Problemas 3 - Solución
Búsqueda Heurı́stica (I)
Figura 2:
Figura 3:
Solución:
(a) El estado se puede representar mediante una matriz 9x6 de enteros, donde para
cada casilla de coordenadas x,y puede haber:
nil: si la casilla está vacı́a
0: si en la casilla está el agujero
1: si en la casilla está el pingüino
2: si en la casilla está un bloque de hielo.
3: sin el casilla está un obstáculo.
Sólo puede haber un 0 y un 1 en el estado, mientras que puede haber varios 2s
y 3s. Por ejemplo, el estado inicial se puede representar ası́
El estado final es aquel estado donde no hay un 1 en el tablero, lo cual significa
que el pingüino ha entrado en el agujero.
Supongamos que exista una función c(x, y) que para una pareja de coordenadas
devuelve el valor de la casilla (nil, 0, 1, 2, 3), mientras que para c(x, −1), c(x, 6),
c(−1, y) y c(9, y) devuelve -1. Las acciones son:
Página 10 de 10
Hoja de Problemas 3 - Solución
Búsqueda Heurı́stica (I)
Figura 4:
moverPinguinoArriba(x,y)
pre: c(x,y)=1, y-1 >= 0, c(x,y-1)=nil ∨ c(x,y-1)=0
post:
c(x,y)=nil,
Y = max secuencia (y-2, y-3,..., 0,-1) tal que c(x,Y)=2 o c(x,Y) = 3 o
c(x,Y) = -1 si c(x,Y+1) = nil → c(x,Y+1) = 1, mientras que si c(x,Y+1)
= 0, c(x,Y+1) = 0
moverPinguinoAbajo(x,y)
pre: c(x,y)=1, y+1 <= 5, c(x,y+1)=nil ∨ c(x,y+1)=0
post:
c(x,y)=nil,
Y = min secuencia (y+2, y+3, ..., 5,6) tal que c(x,Y)=2 o c(x,Y) = 3 o
c(x,Y) = -1 ... si c(x,Y-1) = nil → c(x,Y-1) = 1, mientras que si c(x,Y-1) =
0, c(x,Y-1) = 0
moverPinguinoIzquierda(x,y)
pre: c(x,y)=1, x-1 >= 0, c(x-1,y)=nil ∨ c(x-1,y)=0
post:
c(x,y)=nil,
X = max secuencia (x-2, x-3, ..., 0,-1) tal que c(X,y)=2 o c(X,y) = 3 o
c(X,y) = -1 ... si c(X+1,y) = nil → c(X+1,y) = 1, mientras que si c(X+1,y)
= 0, c(X+1,y) = 0
moverPinguinoDerecha(x,y)
pre: c(x,y)=1, x+1 <= 8, c(x+1,y)=nil ∨ c(x+1,y)=0
post:
c(x,y)=nil,
X = min secuencia (x+2, x+3, ..., 8,9) tal que c(X,y)=2 o c(X,y) = 3 o
c(X,y) = -1 ... si c(X-1,y) = nil → c(X-1,y) = 1, mientras que si c(X-1,y) =
0, c(X-1,y) = 0
Página 11 de 10
Hoja de Problemas 3 - Solución
Búsqueda Heurı́stica (I)
moverBloqueArriba(x,y)
pre: c(x,y)=2, y-1 >= 0, c(x,y-1)=nil ∨ c(x,y-1)=0
post:
c(x,y)=nil,
Y = max secuencia (y-2, y-3, ..., 0,-1) tal que c(x,Y)=1 o c(x,Y)=2 o c(x,Y)
= 3 o c(x,Y) = -1 ... si c(x,Y+1) = nil → c(x,Y+1) = 2, mientras que si
c(x,Y+1) = 0, c(x,Y+1) = 0
moverBloqueAbajo(x,y)
pre: c(x,y)=2, y+1 <= 5, c(x,y+1)=nil ∨ c(x,y+1)=0
post:
c(x,y)=nil,
Y = min secuencia (y+2, y+3, ..., 5,6) tal que c(x,Y)=1 o c(x,Y)=2 o
c(x,Y) = 3 o c(x,Y) = -1 ... si c(x,Y-1) = nil → c(x,Y-1) = 2, mientras que
si c(x,Y-1) = 0, c(x,Y-1) = 0
moverBloqueIzquierda(x,y)
pre: c(x,y)=2, x-1 >= 0, c(x-1,y)=nil ∨ c(x-1,y)=0
post:
c(x,y)=nil,
X = max secuencia (x-2, x-3, ..., 0,-1) tal que c(X,y)=1 o c(X,y)=2 o c(X,y)
= 3 o c(X,y) = -1 ... si c(X+1,y) = nil → c(X+1,y) = 2, mientras que si
c(X+1,y) = 0, c(X+1,y) = 0
moverBloqueDerecha(x,y)
pre: c(x,y)=2, x+1 <= 8, c(x+1,y)=nil ∨ c(x+1,y)=0
post:
c(x,y)=nil,
X = min secuencia (x+2, x+3, ..., 8,9) tal que c(X,y)=1 o c(X,y)=2 o c(X,y)
= 3 o c(X,y) = -1 ... si c(X-1,y) = nil → c(X-1,y) = 2, mientras que si c(X1,y) = 0, c(X-1,y) = 0
(b) La solución encontrada es la solución óptima. La heurı́stica no es optimista ya
que, por ejemplo, en el estado anterior al estado meta en la solución encontrada
tenemos que h∗ = 4 cuando en realidad h = 1.
Página 12 de 10
Hoja de Problemas 3 - Solución
Página 13 de 10
Búsqueda Heurı́stica (I)
Descargar