Examen - 11 - Enero - 2019 - Enunciado - Soluciones
Examen - 11 - Enero - 2019 - Enunciado - Soluciones
NOMBRE: DNI:
1.- Se trata de resolver, mediante búsqueda en espacios de estados, con A* por supuesto,
una variante del problema del 8-puzzle en la que en lugar de tener 8 fichas distintas
(1,2,3,4,5,6,7,8), tenemos 8 fichas tales que son iguales dos a dos (1,1,2,2,3,3,4,4). El estado
inicial puede ser cualquier distribución de las fichas en el tablero, por ejemplo:
3 3 4
[4 1]
2 1 2
Y se trata de llegar a una configuración en la que la fichas estén ordenadas de la forma
siguiente:
1 2 3
[4 4]
3 2 1
Los movimientos permitidos son los mismos que en el 8-puzzle normal, es decir se puede
mover una ficha de su posición a la posición vacía si las dos posiciones son adyacentes
ortogonalmente. El objetivo es también calcular la secuencia mínima de movimientos para
llegar de la configuración inicial al objetivo.
Lo que se pide en este ejercicio es modelar el espacio de búsqueda y definir buenos
heurísticos, concretamente se pide responder de forma razonada a las siguientes
cuestiones:
a) [0,5 puntos] ¿Cómo son los estados, las reglas y sus costes? Dibujar la parte del estado de
búsqueda correspondiente al estado inicial anterior y sus sucesores.
Solución: Esto es como en el 8-puzzle convencional: Los estados son configuraciones válidas
del tablero, por lo tanto, se pueden representar mediante permutaciones de las 8 fichas y un
0 para representar a la posición vacía. Por ejemplo, los estados anteriores estarían
representados por las permutaciones (3 3 4 4 0 1 2 1 2) y (1 2 3 4 0 1 2 3 4) respectivamente.
Las reglas aplicables a un estado vienen dadas por todas las posibilidades de mover una ficha
a la posición vacía, si esta posición es adyacente ortogonalmente a la de la ficha; y los costes
de todas las reglas son 1 dado que lo que se pretende en minimizar el número de
movimientos.
Con todo esto, los sucesores del estado inicial anterior son los siguientes
3 3 4
[4 1]
2 1 2
3 4 3 3 4 3 3 4 3 3 4
[4 3 1] [ 4 1] [4 1 ] [4 1 1]
2 1 2 2 1 2 2 1 2 2 2
b) [0,25 puntos] Dar una cota superior, lo más ajustada posible, del número de estados del
espacio de búsqueda.
c) [1,25 puntos] Consideremos el heurístico ha(n) definido de forma que calcula para cada
ficha la distancia ortogonal desde la posición de la ficha en el estado n a la posición más
cercana en la que podría estar esa ficha en el objetivo, y luego suma todas estas distancias.
Indicar el valor de este heurístico para todos los nodos dibujados en a). ¿Está h a bien
definido? ¿Es ha admisible? ¿Es ha monótono?
Solución: El valor del heurístico ha para los 5 nodos de la figura anterior es (recorriendo las
fichas por filas y los nodos sucesores de izquierda a derecha):
ha(inicial) = 2+1+1+0+1+1+1+1 = 8.
ha(n1) = 2+2+1+0+1+1+1+1 = 9.
ha(n2) = 2+1+1+1+1+1+1+1 = 9.
ha(n3) = 2+1+1+0+2+1+1+1 = 9.
ha(n4) = 2+1+1+0+1+1+2+1 = 9.
El heurístico ha(.) está bien definido ya que ha(n)≥0 para todo nodo n, y ha(objetivo) = 0.
También es claro que es admisible, es decir ha(n) h*(n) para todo nodo n, dado que para
llevar una ficha a su posición en el objetivo como mínimo hay que moverla tantas veces
como su distancia ortogonal a la posición más cercana a la posición actual que puede ocupar
esa ficha en el objetivo.
Para demostrar que es monótono (o consistente que es equivalente), es decir que h a(n1)
ha(n2) + c(n1,n2) para todo par de nodos n1,n2, basta con tener en cuenta que el cambio en el
valor del heurístico al pasar de un estado a un sucesor es +1, 0 ó -1, y que c(n1,n2) es 1 si n2
es sucesor de n1 e en otro caso.
Solución: Si eliminamos la restricción de que en una casilla solamente puede haber una
ficha, entonces para resolver de forma óptima el problema podríamos mover las fichas
siguiendo un camino ortogonal desde su posición actual hasta una de las posiciones que
cada ficha puede ocupar en el objetivo. Pero para cada par de fichas iguales, tenemos que
tener en cuenta que no pueden ir las dos a la misma posición, por eso hay que considerar
para cada par de fichas dos opciones y quedarnos con la que produzca un menor coste. El
coste de resolver este problema relajado para un nodo n (y por lo tanto el valor del
heurístico hb) se puede calcular con ayuda de las funciones anteriores como:
4
ℎ𝑏 (𝑛) = ∑ 𝑚𝑖𝑛(𝐷11 (𝑛, 𝑖) + 𝐷22 (𝑛, 𝑖), 𝐷12 (𝑛, 𝑖) + 𝐷21 (𝑛, 𝑖))
𝑖=1
El valor de este heurístico para los estados anteriores es (considerando el orden de las fichas
1, 2, 3, 4):
hb(inicial) = min(1+3, 3+1) + min(1+3, 3+1) + min(2+1, 2+3 ) + min(1+0, 3+2) = 12. h b(n1) =
min(1+3, 3+1) + min(1+3, 3+1) + min(2+2, 2+2 ) + min(1+0, 3+2) = 13.
hb(n2) = min(1+3, 3+1) + min(1+3, 3+1) + min(2+1, 2+3 ) + min(1+1, 3+1) = 13.
hb(n3) = min(2+1, 3+2) + min(1+3, 3+1) + min(2+1, 2+3 ) + min(1+0, 3+2) = 11.
hb(n4) = min(2+1, 3+2) + min(1+3, 3+1) + min(2+1, 2+3 ) + min(1+0, 3+2) = 11.
e) [0,5 puntos] ¿Es hb consistente? ¿Se puede afirmar que hb domina ampliamente a ha?
3.- [1.25 punto] Se desea implementar un sistema de reglas (un bot) para resolver un
pequeño laberinto, el cual cuenta con distintas habitaciones comunicadas mediante puertas.
No obstante, algunas puertas tienen cerrojo y requieren una llave para poder abrirse. El
dibujo muestra un posible laberinto.
(deftemplate puerta
(slot origen) ; Habitación origen
(slot destino) ; Habitación destino
(slot abierta (allowed-symbols no si)) ; Indica si la puerta está abierta o requiere llave
)
(deftemplate jugador
(slot habitacion) ; Habitación actual
(slot tieneLlave (allowed-symbols no si)) ; Indica si tiene la llave o no
(slot ultimaHab) ; Última habitación en la que ha estado
)
(deftemplate llave
(slot habitacion) ; habitación donde se encuentra la llave
)
Solución:
(defrule cruzar-cerrada
?j <- (jugador (habitacion ?h) (tieneLlave si) (ultimaHab ?u))
?p <- (puerta (origen ?h) (destino ?d & ~?u) (abierta no))
=>
(assert (jugador (habitacion ?d) (tieneLlave si) (ultimaHab ?h)))
(assert (puerta (origen ?h) (destino ?d) (abierta si)))
(retract ?j)
(retract ?p))
(defrule cruzar-abierta
(declare (salience -1))
?j <- (jugador (habitacion ?h) (tieneLlave ?ll) (ultimaHab ?u))
(puerta (origen ?h) (destino ?d & ~?u) (abierta si))
=>
(assert (jugador (habitacion ?d) (tieneLlave ?ll) (ultimaHab ?h)))
(retract ?j))
(defrule coger-llave
?j <- (jugador (habitacion ?h) (tieneLlave no) (ultimaHab ?u))
?ll <- (llave (habitacion ?h))
=>
(assert (jugador (habitacion ?h) (tieneLlave si) (ultimaHab ?u)))
(retract ?j)
(retract ?ll))
(defrule ganar
?j <- (jugador (habitacion salida))
=>
(printout t "Has ganado" crlf)
(retract ?j))
4.- Dada la siguiente red bayesiana, responder razonadamente a las siguientes preguntas:
P(D, A, ¬B, ¬E, F) = P(D, A, ¬B, ¬E, F, C) + P(D, A, ¬B, ¬E, F, ¬C)
P(¬D, A, ¬B, ¬E, F) = P(¬D, A, ¬B, ¬E, F, C) + P(¬D, A, ¬B, ¬E, F, ¬C)
P(D, A, ¬B, ¬E, F, ¬C) = P(D|¬B, ¬C) · P(A) · P(¬B) · P(¬E|¬B, ¬C) · P(F|¬E) · P(¬C|A)
= 0.7 · 0.6 · 0.8 · 0.75 · 0.15 · 0.6 = 0.02268
0.006912 + 0.02268
P(D|A, ¬B, ¬E, F) = = 𝟎. 𝟕𝟐𝟏
0.006912 + 0.02268 + 0.001728 + 0.00972
5.- [0,25 puntos] Explica en que consiste la validación cruzada y sus ventajas y/o
desventajas.
6.- [0,75 puntos] Describe el concepto de sobreajuste y con qué factores de los datos de
entrenamiento está relacionado. Explica cómo se puede mitigar en árboles de decisión y
SVM.
Solución: La métrica GrainRatio se define como la relación entre InfoGain de la clase y una
variable predictora dividido por el SplitInfo de esta variable, que es otro nombre para la
entropía de la variable. Con esto, la métrica GR consigue paliar el sesgo de IG hacia variables
con muchos valores y que conduciría a modelos con sobreajuste.
8.- [1 punto] Considera una red neuronal con función de activación lineal. Tiene dos
entradas (a, b), una neurona oculta (c) y una unidad de salida (d). Habrá un total de cinco
pesos (𝑤𝑐𝑎 , 𝑤𝑐𝑏 , 𝑤𝑐0 , 𝑤𝑑𝑐 , 𝑤𝑑0) que vamos a inicializar todos a 0.1 y con una tasa de
aprendizaje 𝜂 = 0.3. Calcula el valor de los pesos utilizando el algoritmo de propagación
hacía atrás para la siguiente instancia:
a b d
1 1 0
Recuerda que en este caso: 𝛿𝑘 = (𝑦𝑘 − 𝑜𝑘 ) y 𝛿ℎ = ∑𝑘 𝛿𝑘 𝑤𝑘ℎ
X1 4 5 9 7 2 4 9 2
X2 5 6 4 9 1 4 8 0
Y 1 -1 -1 -1 1 1 -1 1
α 1 1 0 0 0 0 0 0
Solución:
3 4 𝑇 3 5 𝑇 3
𝑔 (( )) = ∑ 𝛼𝑖 𝑦𝑖 𝐾(𝒙𝑖 , 𝒙) + 𝑏 = 1 · 1 · ( ) · ( ) + 1 · (−1) · ( ) · ( ) + 10
8 5 8 6 8
𝑖∈𝑉𝑆
= 52 − 63 + 10 = −1
Alternativa, calculando 𝒘:
𝒘 = ∑ 𝛼𝑖 𝑦𝑖 𝒙𝒊 = 1 · 1 · (4) + 1 · (−1) · (5) = (−1)
𝑖∈𝑉𝑆
5 6 −1
𝑇
3 −1 3
𝑔 (( )) = 𝒘𝒙 + 𝑏 = ( ) · ( ) + 10 = −1
8 −1 8
1 1 2
𝐸(𝒘) = 2 ∑ ∑(𝑦𝑘𝑑 − 𝑜𝑘𝑑 )2 𝑏= ∑ 𝑦𝑖 − 𝒘𝒙𝒊 𝑑=
𝑑 𝑘
|𝑉𝑆| ‖𝒘‖
𝑖∈𝑉𝑆
−‖𝒙−𝒚‖2 /(2𝜎 2 )
𝐾(𝒙, 𝒚) = 𝑒 𝐻(𝑋|𝑌) = ∑ 𝑝(𝑦)𝐻(𝑋|𝑌 = 𝑦)
𝑘 𝑦∈𝑌
1
𝑔(𝑥) =
1 − 𝑒 −𝑥
𝑦(𝒙) = 𝒘 ∙ 𝒙 + 𝑏
𝑔(𝒙) = 𝒘𝒙 + 𝑏