Problemas de Inteligencia Artificial I (Curso 2010–2011) Cuarto curso de … · Problemas de...

21
Problemas de Inteligencia Artificial I (Curso 2010–2011) Cuarto curso de Ingenier´ ıa Inform´ atica, Universidad de Sevilla usqueda en espacios de estados 1. Consideremos un problema de espacio de estados con factor de ramificaci´on constante b y con una ´ unica soluci´on que se encuentra a profundidad d. Calcular, tanto en el mejor como en el peor de los casos, el n´ umero de nodos que se necesitan analizar para encontrar la soluci´on, al aplicar un algoritmo de b´ usqueda en anchura. An´alogamente para la b´ usqueda en profundidad. Calcular, tanto en el mejor como en el peor de los casos, el m´aximo n´ umero de nodos que podr´ ıan estar a la espera de ser analizados en la lista de ABIERTOS, al aplicar el algoritmo de b´ usqueda en anchura. Lo mismo para el algoritmo de b´ usqueda en profundidad iterativa. 2. Especificar, razonando la respuesta, un problema de espacio de estados en el que la lista de cerrados en los algoritmos de b´ usqueda en anchura y en profundidad sea superflua. 3. Consid´ erese un problema de espacio de estados en el que las soluciones, en caso de existir, tienen todas un n´ umero fijo de operadores igual a d. En caso de tener que usar un m´ etodo de b´ usqueda no informada para solucionar el problema ¿qu´ e m´ etodo ser´ ıa el m´as conveniente? Justificar la respuesta. 4. El problema de los misioneros y los can´ ıbales se enuncia de la siguiente manera: “En la orilla izquierda de un r´ ıo se encuentran M misioneros, C can´ ıbales y una barca en la que caben como m´aximo P personas; se trata de determinar c´omo pueden trasladarse los misioneros y los can´ ıbales a la orilla derecha teniendo en cuenta que en la orilla en la que no est´ e la barca no debe haber m´as can´ ıbales que misioneros y que queremos minimizar la suma total de cambios de orilla realizados por cada una de las personas”. Plantear el problema como un problema de espacio de estados e indicar qu´ e algoritmo de b´ usqueda informada (y qu´ e heur´ ıstica) se usar´ ıa para encontrar una soluci´on. 5. Se desea distribuir varios trabajos de c´omputo entre los distintos procesadores de un sistema. Los trabajos que deben hacerse son conocidos a priori, y de cada uno de ellos se sabe con precisi´on el tiempo que requieren para llevarse a cabo en un solo procesador, sin interrupciones, desde el principio hasta su conclusi´on (el tiempo es independiente del procesador utilizado). Cada procesador puede ser usado con la condici´on de que no est´a ocupado con el procesamiento de otro trabajo. El objetivo es minimizar el tiempo completo de procesamiento de los trabajos cuando se considera la asignaci´ on en paralelo entre los procesadores. Para ello: a ) Formalizar el problema como un problema de espacio de estados y obtener una funci´on heur´ ıstica admisible que sirva para minimizar el tiempo completo de procesamiento. b ) ¿Qu´ e algoritmo de b´ usqueda habr´a que emplear? Razone su respuesta. c ) ¿Cual es el m´ etodo m´as adecuado para resolver este problema? Razone su respuesta. 6. Consideremos el siguiente puzle: se dispone de 3 fichas negras (N), 3 fichas blancas (B) y una casilla vac´ ıa, en la siguiente posici´on inicial: NNNBBBV El objetivo del puzle consiste en colocar todas las fichas blancas a la izquierda de las fichas negras, independientemente de la posici´on de la casilla vac´ ıa. Para ello, los movimientos permitidos son los siguientes: 1

Transcript of Problemas de Inteligencia Artificial I (Curso 2010–2011) Cuarto curso de … · Problemas de...

Problemas de Inteligencia Artificial I (Curso 2010–2011)Cuarto curso de Ingenierıa Informatica, Universidad de Sevilla

Busqueda en espacios de estados

1. Consideremos un problema de espacio de estados con factor de ramificacion constante b y con unaunica solucion que se encuentra a profundidad d.

Calcular, tanto en el mejor como en el peor de los casos, el numero de nodos que se necesitananalizar para encontrar la solucion, al aplicar un algoritmo de busqueda en anchura. Analogamentepara la busqueda en profundidad.

Calcular, tanto en el mejor como en el peor de los casos, el maximo numero de nodos que podrıanestar a la espera de ser analizados en la lista de ABIERTOS, al aplicar el algoritmo de busquedaen anchura. Lo mismo para el algoritmo de busqueda en profundidad iterativa.

2. Especificar, razonando la respuesta, un problema de espacio de estados en el que la lista de cerradosen los algoritmos de busqueda en anchura y en profundidad sea superflua.

3. Considerese un problema de espacio de estados en el que las soluciones, en caso de existir, tienentodas un numero fijo de operadores igual a d. En caso de tener que usar un metodo de busqueda noinformada para solucionar el problema ¿que metodo serıa el mas conveniente? Justificar la respuesta.

4. El problema de los misioneros y los canıbales se enuncia de la siguiente manera: “En la orilla izquierdade un rıo se encuentran M misioneros, C canıbales y una barca en la que caben como maximo Ppersonas; se trata de determinar como pueden trasladarse los misioneros y los canıbales a la orilladerecha teniendo en cuenta que en la orilla en la que no este la barca no debe haber mas canıbales quemisioneros y que queremos minimizar la suma total de cambios de orilla realizados por cada una delas personas”. Plantear el problema como un problema de espacio de estados e indicar que algoritmode busqueda informada (y que heurıstica) se usarıa para encontrar una solucion.

5. Se desea distribuir varios trabajos de computo entre los distintos procesadores de un sistema. Lostrabajos que deben hacerse son conocidos a priori, y de cada uno de ellos se sabe con precision eltiempo que requieren para llevarse a cabo en un solo procesador, sin interrupciones, desde el principiohasta su conclusion (el tiempo es independiente del procesador utilizado). Cada procesador puede serusado con la condicion de que no esta ocupado con el procesamiento de otro trabajo.

El objetivo es minimizar el tiempo completo de procesamiento de los trabajos cuando se considera laasignacion en paralelo entre los procesadores. Para ello:

a) Formalizar el problema como un problema de espacio de estados y obtener una funcion heurısticaadmisible que sirva para minimizar el tiempo completo de procesamiento.

b) ¿Que algoritmo de busqueda habra que emplear? Razone su respuesta.

c) ¿Cual es el metodo mas adecuado para resolver este problema? Razone su respuesta.

6. Consideremos el siguiente puzle: se dispone de 3 fichas negras (N), 3 fichas blancas (B) y una casillavacıa, en la siguiente posicion inicial:

N N N B B B V

El objetivo del puzle consiste en colocar todas las fichas blancas a la izquierda de las fichas negras,independientemente de la posicion de la casilla vacıa. Para ello, los movimientos permitidos son lossiguientes:

1

Una ficha puede moverse a una celda adyacente vacıa, con coste 1.

Una ficha puede desplazarse a una celda vacıa saltando dos fichas como maximo, con un costeigual al numero de fichas saltadas.

Se pide:

Definir una funcion heurıstica para este problema, justificando su admisibilidad.

Para resolverlo, ¿utilizarıas el algoritmo de busqueda por primero el mejor o el algoritmo A∗?¿Por que?

7. Explicar esquematicamente (sin entrar en detalles de implementacion) la representacion como espaciode estados del siguiente problema. Especificar la representacion de estados y operadores, el estadoinicial, los estados finales, el conjunto de operadores, como se aplican estos operadores y el coste dedicha aplicacion. Definir tambien una heurıstica, indicando si es admisible y justificando la respuesta.

El problema es el siguiente: dados cuatro numeros naturales n, m, r y T , encontrar una secuenciamınima de operaciones aritmeticas basicas (suma, resta, multiplicacion y division) que usando n y municamente y partiendo de 0, obtenga como resultado T , con la restriccion adicional de que ni n ni mse pueden usar mas de r veces.

Por ejemplo, si n = 2, m = 3, r = 3 y T = 28, una posible solucion (no necesariamente mınima) es((((((0+3)× 3)× 2)− 3)× 2)− 2), ya que el resultado es 28 y ni 2 ni 3 se han usado mas de tres vecescada uno.

8. Considerese el problema del 3-puzle, version reducida del problema del 8-puzle, en el que en un cuadrado2× 2 se disponen tres bloques (y por tanto un hueco) numerados del 1 al 3. Los estados inicial y finalson, respectivamente:

1

23

1 2

3

Estado inicial Estado final

Tomamos como operadores del problema el movimiento del hueco arriba, abajo, a la izquierda y a laderecha (en ese orden) y como coste de aplicar un operador el valor 1. Representar graficamente losarboles correspondientes a los siguientes algoritmos de busqueda.

Busqueda en profundidad.

Busqueda A∗ con la heurıstica h1 que cuenta la distancia Manhattan desde la posicion del huecoa la posicion del hueco en el estado final.

Busqueda por primero el mejor con la heurıstica h2 que cuenta el numero de bloques que no estanen la posicion que deben ocupar en el estado final.

En cada caso, anotar junto a cada nodo el orden en el que se analiza y su heurıstica o coste masheurıstica, cuando sea relevante. A igualdad de valoracion, resolver los conflictos escogiendo el nodoque mas tiempo lleve en la cola de espera. ¿Es h1 admisible? ¿Es h2 admisible? ¿Cual esta masinformada?

2

9. Consideremos un robot movil que se puede desplazar por la malla siguiente, donde los lados de lamalla son de longitud 1 metro.

Cada localizacion L del robot viene dada por las coordenadas (i, j) del nodo en el que se encuentra,junto con su orientacion: Norte, Sur, Este, Oeste. Por ejemplo, la localizacion del robot situado en lamalla anterior es (1,1), orientacion Oeste.

En cada momento, el robot puede:

desplazarse en el sentido de su orientacion actual hasta el siguiente nodo, o

girar sobre sı mismo 90 grados en un sentido u otro, manteniendose en las mismas coordenadas.

Ademas, sabemos que:

tarda 4 s. en realizar un giro sobre sı mismo.

se desplaza a 0.5 m/s por los tramos de trazo grueso.

se desplaza a 1 m/s por los tramos de trazo fino.

Se pide:

(a) Formalizar el problema de trasladar el robot desde una localizacion a otra en el mınimo tiempocomo un problema de busqueda en espacio de estados.

(b) En el caso concreto de trasladar el robot desde la localizacion L1 ((1, 1), orientacion Oeste), hastala localizacion L2 ((2, 2), orientacion Norte):

• Definir una funcion heurıstica admisible, lo mas informada posible, y justificar su admisibi-lidad.

• Aplicar el algoritmo A*, utilizando la funcion heurıstica definida en el apartado anterior,especificando el orden de generacion y el orden de analisis de los nodos. Describir la solucionencontrada y el coste de la misma ¿Es la solucion encontrada la que tiene tiempo de recorridomınimo? Justifica la respuesta. Nota: en caso de empate en la valoracion de los nodos, ordenarsegun la orientacion dada por la lista (E, S, O,N).

10. Dado el conjunto de valores enteros I = {i1, i2, i3, ..., iN}, encontrar un subconjunto no vacıo S ⊂ Icuyos elementos sumen cero.

a) Formaliza este problema como problema de espacio de estados indicando de forma precisa losdistintos elementos que lo componen.

b) Si se pretende encontrar una solucion que minimice la suma de los cuadrados de los elementos de S.¿Que algoritmo garantizarıa la misma? (Completar, con la informacion necesaria, la formalizaciondada segun el algoritmo escogido).

3

11. Problema de las torres de Hanoi: en un templo hindu se encuentran tres varillas de platino. En una deellas, hay 64 anillos de oro de distintos radios, colocados de mayor a menor. El trabajo de los monjesde ese templo consiste en pasarlos todos a la tercera varilla, usando la segunda como varilla auxiliar,con las siguientes condiciones:

En cada paso solo se puede mover un anillo.

Nunca puede haber un anillo de mayor diametro encima de uno de menor diametro.

Se pide:

a) Formalizarlo como un problema de espacio de estados, y obtener una funcion heurıstica admisibleque sirva para obtener una solucion optima (entendiendo que el coste de aplicar un operador essiempre 1).

b) ¿Que algoritmo de busqueda habra que emplear? Razonese la respuesta.

12. El siguiente grafo representa un problema de espacio de estados. Los nodos del grafo son los estados delproblema, las aristas conectan estados con sus sucesores y el valor numerico de cada arista representael coste de pasar de un estado a su sucesor:

El estado inicial del problema es I y el unico estado final es F . Se consideran las funciones heurısticasH1 y H2 dadas por la siguiente tabla:

I

A B

G

C D

FE

6 6

6 5 1

8 5

1

87

Estado H1 H2

I 16 20A 8 8B 10 6C 3 12D 2 2E 9 9F 0 0G 1 1

Resolver los siguientes apartados:

Construir los arboles de busqueda generados por los algoritmos de busqueda en profundidad ybusqueda optima. Indicar, en cada caso, el orden en el que se analizan los nodos y la solucionobtenida junto con su coste.

Analogamente, con el algoritmo de busqueda A∗, usando las dos heurısticas H1 y H2 anteriormentedefinidas ¿Son admisibles? Justificar las respuestas.

Nota: Considerar que distintos sucesores de un mismo nodo se ordenan alfabeticamente.

4

13. El siguiente grafo representa un problema de espacio de estados. Los nodos del grafo son los estadosdel problema, las aristas conectan cada estado con sus sucesores, y el valor numerico de cada aristarepresenta el coste de pasar de un estado al sucesor correspondiente.

El estado inicial del problema es el nodo A, y los estados finales son H e I. Se considera la funcionheurıstica h dada por la siguiente tabla:

2

7

H

I

F

E

A

BC

D

G

4

910

16

1

7

11

6

41

510

Nodo HeurısticaA 7B 7C 2D 7E 4F 9G 1H 0I 0

Resolver los siguientes apartados:

(a) Construir el arbol de busqueda generado por los algoritmos de busqueda por primero el mejor ybusqueda optima.

(b) Para cada uno de ellos decir cual es la solucion obtenida, el numero de nodos que en cada caso hasido necesario expandir, y el coste de cada camino solucion. ¿Es alguna de las soluciones obtenidasoptima? ¿Cual? ¿Por que la otra no lo es?

(c) Construir el arbol de busqueda generado por el algoritmo A∗. Teniendo en cuenta la solucionobtenida responda a la pregunta ¿es h admisible?. Modificar mınimamente la heurıstica para queA∗ encuentre la solucion optima.

Nota: Considerar que los sucesores de un mismo nodo se ordenan alfabeticamente. En caso de empatea la hora de gestionar la cola de abiertos, resolverlo igualmente atendiendo al orden alfabetico.

14. El siguiente grafo representa un problema de busqueda en espacio de estados. Los nodos del grafo sonlos estados del problema. Las aristas son los operadores y conectan los estados con sus sucesores (enambas direcciones). El estado inicial es A, y el unico estado final es I. El coste de aplicar un operadoraparece junto a la arista correspondiente,

Se pide:

a) Encontrar el camino mas corto (en numero de operadores) para ir desde A hasta I, utilizandoalgun algoritmo de busqueda ciega que garantice encontrarlo.

b) Aplicar una busqueda A∗ usando la heurıstica de la tabla siguiente:A B C D E F G H I

h 15 2 10 15 2 5 3 2 0

5

Nota: La evolucion de cada arbol o arboles de busqueda tiene que quedar suficientemente explıcita;el orden de expansion de los nodos; su valoracion; la justificacion de la no inclusion de determinadossucesores, etc. En caso de empate en la valoracion de los nodos, estos se ordenan alfabeticamente.Igualmente a la hora de ordenar los sucesores de un nodo.

15. El siguiente grafo representa explıcitamente un (reducido) espacio de estados. Los nodos del grafo sonlos estados del problema. Las flechas son los operadores y conectan los estados con sus sucesores. Elestado inicial es A, y el unico estado final es L. El coste de aplicar un operador aparece en la flechacorrespondiente.

A

F G

I J K

L

2 5

4 32

1 2

4

2

1

67

B C D

E H

1

3

1

4 1

5

Se pide:

a) Encontrar la solucion mas corta para ir desde A a L. Decidir previamente entre el algoritmode busqueda en profundidad y el de profundidad iterativa, justificando la decision ¿Cual es lasolucion mas corta? ¿Podrıa obtenerse esa solucion mas corta con otros algoritmos de busqueda?

b) Aplicar el algoritmo de busqueda optima.

c) Aplicar una busqueda A∗ usando la heurıstica de la tabla siguiente:A B C D E F G H I J K L

h 10 8 10 6 6 5 3 4 5 3 2 0

6

¿Es la solucion encontrada la solucion de menor coste? ¿Cuantos nodos menos se analizan respectode la busqueda optima? Visto el resultado obtenido por A∗, ¿podemos afirmar que la heurısticaempleada es admisible?

Nota: La evolucion de cada arbol o arboles de busqueda tiene que quedar suficientemente explıcita;el orden de expansion de los nodos; su valoracion; la justificacion de la no inclusion de determinadossucesores, etc. En caso de empate en la valoracion de los nodos, estos se ordenan alfabeticamente.Igualmente a la hora de ordenar los sucesores de un nodo.

16. El siguiente grafo representa un problema de espacio de estados. Los nodos del grafo son los estadosdel problema, las aristas conectan cada estado con sus sucesores, y el valor numerico de cada aristarepresenta el coste de pasar de un estado al sucesor correspondiente. El estado J es el unico estadofinal.

4 3

81

2515

100

2

2

310

4

45

50 35

I J

A

B C

D E F

G H

(a) Utilizando el algoritmo apropiado, generar el arbol de busqueda del camino de coste mınimo desdeA a J . Indicar algoritmo utilizado, orden de expansion de nodos, nodos que se eliminan, costesparciales obtenidos, numero de nodos expandidos, etc... Indicar asimismo el camino encontradoy su coste.

(b) Si A = X1, X2, . . . , Xi, . . . , Xn = J es el camino de coste mınimo desde A a J , ¿cual sera elcamino de coste mınimo desde cualquier nodo intermedio Xi a J? ¿cual sera su coste? Responderrazonadamente a estas preguntas sin volver a generar los correspondientes arboles.

(c) Para cada nodo X del camino optimo obtenido en el apartado 1, decir razonadamente cuantovale h∗(X).

(d) Siguiendo la metodologıa seguida en los apartados (a), (b) y (c), rellenar la siguiente tabla conlos valores h∗, de cada nodo del grafo:

nodo A B C D E F G H I Jh∗

(e) Dar tres ejemplos, h1, h2, y h3, de heurısticas tales que h1 y h2 sean admisibles, h3 no, y h2

“informe mejor” al algoritmo que h1.

(f) En general, y para problemas reales, ¿es esta una tecnica razonable para encontrar heurısticasadmisibles? Razonar la respuesta.

7

Problemas de satisfaccion de restricciones

17. Utilizando el algoritmo de consistencia de arcos, determinar todas las soluciones del siguiente problemade satisfaccion de restricciones:

Variables: A, B, C y D

Dominios: El dominio de las cuatro variables es {1, 2, 3, 4}.Restricciones: R1 : A < B

R2 : D < CR3 : A 6= CR4 : D < AR5 : B 6= C

18. Usar el algoritmo de busqueda AC-3 para encontrar todas las soluciones al problema de colocarcuatro reinas en un tablero de ajedrez 4× 4 sin que se amenacen.

Nota: En el arbol de busqueda, representar los estados mediante un pequeno dibujo del tablero (taly como se ha hecho en clase). En cada nodo de dicho arbol debe aparecer un dibujo que represente lasituacion antes de aplicar AC-3 y otro dibujo que represente la situacion que queda despues de AC-3.

19. Una persona va a celebrar una fiesta y tiene que decidir a cuales de sus cuatro amigos (Pedro, Carlos,Rosa y Teresa) va a invitar. La lista de invitados tiene que estar sujeta a las siguientes restricciones:

• Pedro o Carlos (al menos uno de los dos) debe estar invitado.

• Rosa o Carlos (al menos uno de los dos) debe estar invitado.

• Rosa o Teresa (al menos una de los dos) debe estar invitada.

• No se puede invitar simultaneamente a Rosa y a Pedro.

• No se puede invitar simultaneamente a Teresa y a Carlos.

Obtener una posible lista de invitados planteando el problema como un problema de satisfaccionde restricciones y resolviendolo aplicando el algoritmo de reparacion heurıstica, con la heurıstica demınimos conflictos y comenzando con la asignacion segun la cual no se invita a ninguno de los amigos.

20. Felipe quiere invitar a su boda a cinco amigos: Ana, Bea, Cris, Dani y Edu. Los tiene que sentar enuna mesa circular con cinco sillas, atendiendo a las siguientes restricciones:

Ana no quiere tener a Edu a su derecha, ya que se ha enterado que es zurdo y piensa que puederecibir algun que otro codazo.

Dani no podrıa soportar estar al lado de Bea, una antigua novia. Sin embargo, le gustarıa estaral lado de Cris, con quien ahora intenta conseguir una cita.

Edu, hermano de Cris, no soporta el flirteo de Dani con su hermana, ası que prefiere no estar allado de Dani, pero sı al lado de su hermana.

Bea y Cris quieren compartir vecino en la mesa, ya que ambas quieren contarle a la misma personalas anecdotas de su ultimo viaje.

Plantear como un problema de satisfaccion de restricciones el problema de encontrar una manera desentar a estos amigos en la mesa, de manera que todos esten satisfechos.

8

21. En una fiesta infantil se desea repartir regalos sorpresa entre tres ninos, Marıa, Juan y Ana. Para ello,se dispone de cinco tipos de regalos: libros (li), lapices (la), discos compactos (cd), carpetas (car) ycalculadoras (cal). Ademas, se conocen las preferencias de los ninos, que son las siguientes:

Marıa prefiere libros o lapices a discos compactos, carpetas y calculadoras.

Juan prefiere lapices, carpetas o calculadoras a libros y discos compactos.

Ana prefiera discos compactos o calculadoras a libros, lapices y carpetas.

Se trata de que cada nino quede satisfecho. Es decir, que le guste mas su regalo que el recibido por losdemas. Para este problema de satisfaccion de restricciones, se pide:

Indicar las variables del mismo y el dominio de cada una.

Expresar las restricciones para cada par de variables.

Dibujar el grafo con la red de restricciones del problema.

Resolverlo usando consistencia de arcos. Mostrar mediante una tabla la restriccion considerada ylos valores eliminados en cada paso.

22. Cristina tiene que planificar sus vacaciones de Navidad. Dispone de cinco dıas para organizar en suapartamento una cena para sus amigos, asistir a un almuerzo familiar y viajar a Huelva para unaentrevista de trabajo.

Antes de reunirse con sus familiares tiene que comprar regalos para ellos. Eso mismo le ocurre con susamigos, ha de comprar sus regalos antes del dıa de la cena. Ademas, antes del dıa de la cena tiene queir al mercado a comprar lo necesario para esta, un dıa o dos antes, no mas.

Cristina sabe que el dıa anterior a la cena estara muy ocupada preparandolo todo y que por tanto nopodra ir a Huelva ni tendra tiempo para comprar los regalos familiares. Por supuesto, el dıa que vayaa Huelva no podra hacer nada mas, a no ser, si acaso, comprar los regalos familiares.

Se pregunta a sı misma: si dejo el almuerzo familiar para lo ultimo, y compro todos los regalos elmismo dıa, ¿puedo organizarme adecuadamente? ¿Puedo hacer mas de un plan? ¿Cuales?

Se pide:

Plantear este problema como un problema de satisfaccion de restricciones.

Identificar las variables del problema

Identificar los dominios

Expresar las restricciones (binarias) entre variables

Dibujar un grafo que recoja la informacion anterior, en el que los nodos son las variables y losarcos las restricciones binarias entre variables.

Aplicar el algoritmo de busqueda AC3 para obtener todas las soluciones del mismo.

23. Una empresa quiere saber si puede comprometerse a realizar las tareas T1, T2, T3 y T4. La realizacionde dichas tareas depende de la utilizacion de los recursos a, b y c en el siguiente sentido: T1 necesita elrecurso a o el c, T2 necesita a o b, T3 necesita a, b o c, T4 necesita b. Hay que tener en cuenta que unmismo recurso no puede ser utilizado para dos tareas simultaneamente, que el tiempo de realizacionde cada tarea es de dos unidades de tiempo, y que el comienzo de cada tarea ha de ser como sigue: T2

ha de comenzar en el instante 1, T1 y T4 han de comenzar en el instante 2, y T3 ha de comenzar en elinstante 3.

Nota: Una tarea puede utilizar recursos diferentes en cada unidad de tiempo, durante su realizacion.

Plantearlo como un problema de satisfaccion de restricciones.

9

Encontrar una solucion, utilizando el algoritmo de backtracking (se aconseja usar tambien forwardchecking en cada paso).

¿Tiene solucion? ¿Es unica? ¿Debe comprometerse la empresa a llevar a cabo las tareas en esascondiciones?

24. Un Jefe de Estudios debe planificar algunos examenes de su centro. Debido a los problemas de aulas,tamano de las mismas, numero de alumnos, normativas, etc ..., se encuentra con todo un conjunto derestricciones que anota en la siguiente forma:

a) Todos los examenes tienen que hacerse en una semana (sin el viernes).

b) El examen de CC no puede ser el martes.

c) Los examenes de IA y IA-L tienen que hacerse el mismo dıa.

d) El examen de PD tiene que hacerse antes que ningun otro.

e) Los examenes de IA y BD no pueden hacerse en el mismo dıa.

f ) El examen de IA no puede ser el miercoles.

g) Los examenes de BD y CC no pueden hacerse en el mismo dıa.

h) El examen de CC ha de hacerse antes que el de IA.

Se pide:

a) Plantearlo como un problema de satisfaccion de restricciones, indicando variables, dominios, yrestricciones.

b) Describir brevemente en que consiste la heurıstica MRV para la eleccion de la siguiente variablea asignar (incluyendo desempates).

c) Describir brevemente en que consiste el forward checking.

d) Aplicar el procedimiento de backtracking recursivo, con forward checking, para obtener al menosuna solucion del problema propuesto, pero de tal forma que use la heurıstica MRV para decidir,cada vez que sea necesario, cual sera la siguiente variable a asignar.

10

25. Para una lınea ferroviaria, Renfe dispone de 4 trenes (T1, T2, T3 y T4) y 3 locomotoras (L1, L2 y L3).El horario diario en el que tienen que circular los trenes es:

Tren HorarioT1 8 a 10T2 9 a 13T3 12 a 14T4 11 a 15

Ademas, hay que tener en cuenta lo siguiente:

Cada locomotora solo puede tirar de un tren cada vez.Cada locomotora dispone de tiempo para estar en la estacion preparada para el proximo tren.L3 no tiene potencia para arrastrar a T3.L2 y L3 no tienen potencia para arrastrar a T4.

Se desea saber que distribucion hay que realizar para que puedan circular todos los trenes en susrespectivos horarios. Para ello, se pide:

a) Plantear el problema como un PSR de dos formas diferentes: tomando como variables los trenes ytomando como variables las locomotoras. Analizar que representacion es mas adecuada, razonandola respuesta.

b) Con la representacion elegida, resolver el problema usando busqueda–AC3. ¿Es suficiente AC3?c) Resolver el problema, usando el algoritmo de backtraking con comprobacion hacia delante.

26. Un alumno de 4o tiene que elaborar un pasatiempo para el periodico de la ETSII. El pasatiempoconsiste en un crucigrama de la forma:

X

X

donde:

Las palabras que pueden aparecer estan contenidas en el conjunto siguiente: {ES EL LA SI SOLO LAS LOS SAL SOL OSA OSO SOLA SOLO SALAS SOLOS}.Una palabra puede aparecer una sola vez, en horizontal o en vertical.

Se pide:

Plantearlo como un problema de satisfaccion de restricciones.Reducir los dominios de las variables, utilizando el algoritmo de consistencia de arcos.Encontrar una solucion.

27. Supongamos que estamos preparando una mochila para una excursion y hemos de decidir la comidaque llevaremos. Se han comprado n paquetes de comida. Cada paquete fi tiene un volumen vi, un pesopi y una cantidad de calorıas ci. La mochila puede llevar un peso maximo P y un volumen maximoV . Ademas, para la excursion se van a necesitar un mınimo de C calorıas. Se trata de encontrar unaseleccion de paquetes de comida que te proporcione suficientes calorıas y que quepa en la mochila.Plantearlo como un problema de satisfaccion de restricciones, expresando claramente el significado decada variable y su dominio.

11

28. Tenemos un PSR con variables {A,B, C,D, E}, cada una con dominio {1, 2, 3}, que han de satisfacerlas siguientes condiciones:

(a) A 6= B

(b) B 6= C

(c) D ≥ E

(d) C ≤ E

(e) 2 ·A > E

(f) B ≤ E

Aplicar backtracking con comprobacion hacia delante y consistencia de arcos para resolver este PSR.Para ello, en el algoritmo de backtracking selecciona las variables en orden alfabetico, y los valores enorden creciente. En ambos casos, parar cuando se encuentre la primera solucion.

29. Un visitador medico debe planificar un viaje en tren, por las capitales de cinco provincias, que deno-minaremos A, B, C, D y E. Dispone de cinco dıas y debe visitar una ciudad distinta cada dıa. Cuentacon el plano de la figura, y sabe que solo hay conexion directa de tren entre aquellas capitales cuyasprovincias son limıtrofes (es decir, que comparten frontera).

Le interesa visitar la ciudad D antes que la B, y la E antes que la C. Y no quiere que A sea ni laprimera ni la ultima ciudad en visitar.

******************** * ** * E ** B * *

******** ************ * * ** A ********* C ** * * ********* D ***********

* **********

Se pide:

a) Plantearlo como un problema de satisfaccion de restricciones, indicando variables, dominios, yrestricciones.

b) Dibujar el grafo correspondiente al planteamiento realizado. Etiquetando cada nodo con su va-riable y el dominio correspondiente, y cada arco con su restriccion.

c) Aplicar el procedimiento de busqueda AC3, para obtener todas las soluciones posibles. En casode necesitar partir dominios, elıjase siempre por orden alfabetico el dominio para partir.

Indicacion: Notese que las capitales de dos provincias no limıtrofes no pueden ser visitadas en dıasconsecutivos.

12

30. Consideremos un ”sudoku”de tamano n. Es decir, un cuadrado de tamano n, formado por n cuadradosde tamano n, de forma que:

Cada uno de los cuadrados interiores esta formado por los numeros naturales de 1 a n, sinrepeticiones.

Cada fila (y cada columna) de el cuadrado exterior tambien esta formada por los numeros natu-rales de 1 a n, sin repeticiones.Se pide: describir una representacion del sudoku de tamano n como un PSR, explicitando clara-mente las variables, los dominios y las restricciones que componen dicha representacion.

Como caso particular, resolver el siguiente sudoku de tamano 4 aplicando el algoritmo de busqueda–AC3:

1

3 1

3 4 2 1

31. Dada la restriccion ternaria R : X1 + X2 + X3 = 7, transformarla en tres restricciones binariasequivalentes a R. Para ello, considerar una nueva variable Z, especificar el dominio de dicha variabley establecer las restricciones binarias R(Xi, Z) entre Z y cada una de las variables Xi. Generalizandola tecnica empleada, explicar como transformar una restriccion R sobre las variables X1, . . . , Xk en unconjunto de relaciones binarias equivalentes a R.

32. Dado el puzle de criptoaritmetica,A B

+ A B

C C D

se pide:

Representarlo como un problema de satisfaccion de restricciones (PSR).

Transformar la representacion anterior en una representacion equivalente, en la que todas lasrestricciones sean binarias.

Encontrar una solucion, utilizando el algoritmo de consistencia de arcos para reducir los dominios.¿Tiene solucion unica?.

33. Problema de la anchura de un grafo: consideremos un grafo G = (V, E), donde V es un conjunto finitode nodos y E es un conjunto de arcos. Ordenar el grafo significa asignarle un numero de orden i acada nodo de V . En un grafo ordenado, la anchura de un nodo x es la maxima distancia (segun laordenacion) entre x y todos los nodos adyacentes; y la anchura del grafo es la maxima anchura detodos sus nodos. El problema consiste en, dado un grafo G y un numero k, encontrar una ordenaciondel grafo de forma que su anchura no sea superior a k.

Plantearlo como un problema de satisfaccion de restricciones, especificando de forma clara elsignificado de cada variable, los dominios correspondientes y las restricciones.

Encontrar una solucion para k = 2 y el siguiente grafo, aplicando el algoritmo de back-tracking, con la heurıstica MRV y comprobacion hacia delante: V = {N1, N2, N3, N4}, E ={{N1, N2}, {N1, N3}, {N1, N4}, {N2, N3}}

13

Juegos

34. Dado un juego de estrategia, el arbol siguiente es el arbol de juego completo correspondiente a unestado con turno para MAX. Las cantidades que aparecen junto a cada nodo del arbol son los valoresde la funcion de evaluacion estatica de cada uno de los nodos.

MAX

A B C139

7 18 12 20 15 16 19

188 16 11 18 7 17

15 18 10 20 5 17 6 16 4 19 24

12 4 7 2

16

(a) ¿Que movimiento se decidirıa realizar si se usara el algoritmo minimax con profundidad 2?

(b) Dibujar el arbol que se generarıa si se tomara como metodo de decision el algoritmo minimax conpoda alfa-beta (con cotas iniciales α = −∞ y β = +∞) y hasta profundidad 4. En el dibujo debenaparecer exclusivamente los nodos generados, detallando ademas el orden en el que se analizan.Especificar claramente, como evolucionan en cada nodo los valores de α y β, y donde se producenlas podas. En el dibujo que se realice, sombrear los nodos en los que se haya necesitado el valorde la funcion de evaluacion estatica ¿Que movimiento se elegirıa finalmente? ¿Cuantos nodos delarbol completo se dejan de analizar? ¿Se elegirıa un movimiento distinto si se aplicara minimaxsin poda hasta profundidad 4? ¿Como se explica que el movimiento elegido sea distinto al delapartado anterior?

(c) ¿Que valor podrıamos poner en el ultimo nodo/hoja evaluado para que no se produzca la ultimapoda? ¿Que repercusion tendrıa esto en la decision sobre el mejor movimiento a realizar porMAX?

35. Dado un juego de estrategia, el arbol siguiente es el arbol de juego completo correspondiente al estadoA con turno para MAX. Las cantidades que aparecen junto a cada nodo del arbol son los valores dela funcion de evaluacion estatica de cada uno de los nodos.

14

A

C D

E F G H Q R S

I J O T U V W

K L M N X Y Z

B

P

8 5 9

13 7

6 9 3 4 15

865 7 4 2 12 1

12 5 9 12 6 5 1

9 MAX

¿Que movimiento se decidirıa realizar si se usara el algoritmo minimax con profundidad 1?Dibujar el arbol que se generarıa si se tomara como metodo de decision el algoritmo minimaxcon poda alfa-beta (con cotas iniciales α = +∞ y β = −∞) y hasta profundidad 3. En el dibujodeben aparecer exclusivamente los nodos generados, detallando ademas el orden en el que seanalizan. Especificar claramente donde se producen las podas y de que tipo son ¿Que movimientose elegirıa finalmente? ¿En que nodos se ha necesitado el valor de la funcion de evaluacion estatica?¿Que nodos del arbol completo se dejan de analizar?Si se aplicara el procedimiento de decision minimax al arbol de juego completo ¿que movimiento seelegirıa? ¿es posible afirmar en general que la decision que se tomarıa analizando el arbol completoserıa la misma que si se analiza hasta una determinada profundidad? Justificar la respuesta.

36. Consideremos el juego “tres en raya” y la siguiente situacion de juego en la que le toca jugar a MAX

xxx

Si la maquina juega con las fichas O y esta usando como metodo de juego el algoritmo minimax conpoda alfa-beta hasta profundidad 3 ¿que movimiento realizara?

Usar la funcion de evaluacion estatica vista en clase. Es decir:

Si es un estado final ganador para MAX, +∞.Si es un estado final ganador para MIN, −∞.Si es un estado final en tablas, 0.En cualquier otro caso, la diferencia entre el numero de posibles lıneas que MAX podrıa completarmenos el numero de lıneas que MIN podrıa completar.

Se pide ademas dibujar el arbol que se genera. En el dibujo deben aparecer exclusivamente los nodosgenerados, detallando ademas el orden en el que se analizan. Especificar claramente, como evolucionanen cada nodo los valores de α y β, y donde se producen las podas. Indicar tambien los nodos en losque se haya necesitado el valor de la funcion de evaluacion estatica.

Nota: Para generar los sucesores de un nodo dado, considerar primero las filas de arriba a abajo, ydentro de una fila, de izquierda a derecha.

15

37. Dos jugadores A y B, tienen delante un conjunto de 2 ∗N fichas alineadas. Hay 2 clases de fichas A yB, N fichas de cada jugador, y en la situacion inicial pueden estar en cualquier orden. Ejemplo paraN = 4:

B A B A A B B A

Los dos jugadores juegan por turnos.

– Turno de A: Una ficha A puede “comerse” todas las fichas del tipo B que se encuentren entre dosfichas A, o entre una una ficha A y el extremo del tablero. Los huecos resultantes se eliminan.

– Turno de B: Recıproco del anterior. Las fichas B se “comen” a las fichas A.

Por ejemplo a partir de la situacion inicial, las posibles jugadas para A serıan:

B A B A A B B A

↙ ↓ ↘A B A A B B A B A A A B B A B A B A A A

El juego termina cuando algun jugador se queda sin fichas. Gana el jugador que conserve fichas alterminar el juego, y su ganancia sera el numero de fichas conservadas.

Resolver los siguientes apartados (suponemos que empieza el jugador A).

(a) Desarrollar el arbol del juego hasta la profundidad 2.

(b) Proponer una funcion de evaluacion estatica para las hojas del arbol generado en el punto anterior,y concluir la mejor jugada para A que se obtendrıa con la estrategia minimax. Si A hiciera esajugada ¿tiene garantizado ganar el juego? Explicar la respuesta.

(c) Con la misma funcion de evaluacion estatica, desarrollar el arbol del juego que generarıa laestrategia minimax con la poda alfa-beta. En este caso el arbol debe ser generado hasta losestados finales.(Nota: Solo deben aparecer en el arbol los nodos que necesariamente se hayangenerado) ¿Cual serıa ahora la mejor jugada para A?

(d) Si A se equivoca, y no elige la mejor jugada ¿garantizarıa este error que B ganara el juego?Explicar la respuesta.

Nota: Desarrollar los arboles pedidos de tal forma que los sucesores de un nodo se ordenen entre sı conel siguiente criterio: el hijo mas a la izquierda sera el que corresponda a la eliminacion de las fichasenemigas que esten mas a la izquierda.

38. Supongamos que una maquina juega usando minimax con poda alfa-beta y profundidad 3, se encuentraen una situacion de juego A y puede mover a tres situaciones posibles B, C y D. La tabla siguientemuestra todas los posibles situaciones que se pueden dar hasta finales de partida (nombradas de Ahasta Z), detallando para cada una de ellas si son finales o no, sus sucesores (si hubiera), jugador alque corresponde el turno en esa situacion y evaluacion estatica correspondiente.

Estado Sucesores Turno Ev. estaticaA B,C,D MAX 11B E,F MIN 10C G,H MIN 7D Q,R,S MIN 11

16

Estado Sucesores Turno Ev. estaticaE Final MAX 15F Final MAX 9G I,J MAX 8H O,P MAX 10I K,L MIN 7J M,N MIN 8K Final MAX 14L Final MAX 7M Final MAX 11N Final MAX 14O Final MIN 10P Final MIN 9Q Final MAX 5R T,U MAX 6S V,W MAX 17T X,Y MIN 6U Final MIN 14V Final MIN 14W Z MIN 3Z Final MAX 3

¿Que movimiento se decidira realizar? Justificar la respuesta dibujando el arbol de juego que se genera.En el dibujo deben aparecer exclusivamente los nodos generados, detallando ademas el orden en el quese analizan. Especificar claramente como evolucionan en cada nodo los valores de α y β, y donde seproducen las podas.

Atencion: como orden entre los sucesores de un nodo considerar el siguiente criterio: si son sucesoresde un nodo MAX, orden decreciente de evaluacion estatica. Para nodos MIN, orden creciente deevaluacion estatica.

39. Supongamos que una maquina juega al tres en raya usando como metodo de decision el algoritmominimax con profundidad dos y como funcion de evaluacion estatica la que calcula la diferencia entreel numero de lıneas potencialmente ganadoras de MAX y de MIN, respectivamente. Suponiendo quecomienza el juego la maquina, ¿en que casilla comenzarıa colocando su ficha? Justificar la respuesta,sin generar todo el arbol que el algoritmo generarıa.

40. Dos jugadores A y B, juegan una variante del denominado juego de Hackenbusch, en la que sobreun tablero hay varias columnas de bloques apilados. Hay bloques A y bloques B. Los jugadores A yB juegan por turnos, cada jugador solo con los bloques de su mismo tipo. Un jugador en su turnodebe elegir un bloque y retirarlo. Siempre que se retire un bloque todos los bloques que estanencima de el, sean del tipo que sean, han de ser retirados tambien. Pierde el jugador que sequede sin bloques para retirar.

A1

A2

B3

B2

B1

A3

Supongamos que empieza el juego con la situacion inicial reflejada en la figura, que es el turno deljugador A, y que este utiliza el procedimiento MiniMax con poda alfa-beta para decidir su mejorjugada. Se pide:

17

a) Desarrollar el arbol de juego que se generara e indicar el movimiento que se decidira realizar. Nose pide el arbol completo, solo el que se generara utilizando la poda alfa-beta.Nota 1: Al objeto de unificar la presentacion, etiquetar en cada nivel los arcos con las decisionesposibles en orden creciente de subındices.Nota 2: Utilice como valoracion estatica 1 y -1 para situaciones ganadoras y perdedoras, respec-tivamente, para A.

b) A la vista del arbol obtenido, ¿hay estrategia ganadora para A?. Si es que sı indique cual; esdecir, la secuencia completa que llevara a A a ganar. Si es que no, explique porque; es decir, quehaga lo que haga A ganara B.

41. Supongamos que los estados del juego del NIM los representamos como se ha visto en clase, y quedefinimos la siguiente funcion de evaluacion estatica:

FUNCION F-E-ESTATICA(ESTADO,TURNO)Si TURNO=MAX,

Si ESTADO=0, devolver 1000Si REM(ESTADO,4)=1, devolver (-1)*ESTADOEn caso contrario, devolver ESTADO

Si TURNO=MIN. devolver (-1)*F-E-ESTATICA(ESTADO,MAX)

Se pide:

Calcular el valor de la funcion de evaluacion estatica para los estados 0,1,2,3,4,5,6 y 7, con losturnos MAX y MIN, respectivamente.

Si la maquina se encuentra ante 7 fichas en la mesa y esta usando como metodo de juego elalgoritmo minimax con poda alfa-beta hasta profundidad 3 ¿que movimiento realizara? Dibujarel arbol que se genera. En el dibujo deben aparecer exclusivamente los nodos generados,detallando ademas el orden en el que se analizan. Especificar claramente, como evolucionan encada nodo los valores de α y β, y donde se producen las podas. Para generar los sucesores de unnodo MAX, hacerlo en orden decreciente de funcion de evaluacion estatica; para los sucesores deun nodo MIN, tomar el orden creciente.

42. Supongamos que una maquina juega usando minimax con poda alfa-beta y profundidad 3, se encuentraen una situacion de juego E0 y puede mover a tres situaciones posibles E1, E2 y E3. La tabla de lapagina siguiente muestra todas los posibles situaciones que se pueden dar hasta finales de partida(nombradas de E0 hasta E37), detallando para cada una de ellas si son finales o no, sus sucesores (sihubiera), jugador al que corresponde el turno en esa situacion y evaluacion estatica correspondiente.

18

Estado Sucesores Turno Ev. estaticaE0 E1, E2, E3 MAX 8E1 E7, E8, E37 MIN 7E2 E4, E5, E6 MIN 10E3 E9, E10, E11 MIN 5E4 E16, E17 MAX 12E5 E14, E15 MAX 9E6 E12, E13 MAX 8E7 Final MAX 9E8 E34, E35, E36 MAX 14E9 E21, E22 MAX 11E10 Final MAX 9E11 E19, E20 MAX 7E12 Final MIN 10E13 E23, E24 MIN 6E14 E25, E26 MIN 8E15 Final MIN 11E16 E27 MIN 14E17 E28 MIN 10E18 Final MIN 5E19 E31 MIN 6E20 E29, E30 MIN 7E21 E32, E33 MIN 12E22 Final MIN 1E23 Final MAX 9E24 Final MAX 6E25 Final MAX 14E26 Final MAX 7E27 Final MAX 10E28 Final MAX 12E29 Final MAX 8E30 Final MAX 12E31 Final MAX 7E32 Final MAX 12E33 Final MAX 20E34 Final MIN 7E35 Final MIN 1E36 Final MIN 17E37 E18 MAX 5

¿Que movimiento decidira realizar? Justificar la respuesta dibujando el arbol de juego que se genera.En el dibujo deben aparecer exclusivamente los nodos generados, detallando ademas el orden en elque se analizan. Especificar claramente como evolucionan en cada nodo los valores de α y β, y dondese producen las podas. Para analizar los sucesores de un nodo MAX, hacerlo en orden decrecientede evaluacion estatica. Para los sucesores de un nodo MIN, hacerlo en orden creciente de evaluacionestatica.

19

43. Consideremos el siguiente juego de dos jugadores (mini-mancala):

11

MAX

1 8 0 1

1 0 5 2 MIN

Figura 1: Tablero inicial

El tablero consta de 4 casillas para cada jugador (MAX arriba y MIN abajo) mas una casilla especialllamada “Mancala” (MAX la de la izquierda y MIN la de la derecha). En cada casilla aparece unnumero indicando cuantas semillas (fichas) contiene.Los jugadores juegan por turnos. En cada turno, el jugador correspondiente elige uno de sus huecospequenos que tenga semillas, las saca del mismo y las “siembra”. Esta “siembra” consiste en repartirlasuna a una en los huecos sucesivos, moviendose en sentido contrario a las agujas del reloj, incluyendoel Mancala propio pero saltandose el Mancala del oponente. Este movimiento puede tener dos posiblesefectos:

Si la ultima semilla sembrada cae en un hueco pequeno vacıo de los del lado del jugador, entoncesel jugador lleva esta ultima semilla a su Mancala. Ademas, tambien se lleva todas las semillasque estan en el hueco de enfrente (esas semillas son “capturadas”). El turno pasa al oponente.

En cualquier otro caso, no se captura ninguna semilla y el turno pasa al oponente.

1

MAX

0

MIN

02

2 1 0

9

3

2

Figura 2: Ejemplo de movimiento con captura partiendo del tablero de la Figura 1

El juego acaba cuando uno de los dos jugadores reune 10 o mas semillas en su Mancala, o bien cuandoalgun jugador no tiene semillas en los huecos de su lado; en ese caso, el otro jugador almacena lassemillas de su lado en su Mancala y gana el jugador que mas semillas tiene en su Mancala (empatandosi ambos tienen el mismo numero).

Utilizaremos la siguiente funcion de evaluacion estatica: +999 si es un estado ganador para MAX,−999 si es un estado ganador para MIN, y en otro caso MMAX −MMIN , donde MX es el numero desemillas en el Mancala del jugador X.

Se pide: Construir el arbol de decision minimax con poda alfa-beta con profundidad maxima 4, apartir de la situacion de la Figura 1 (es el turno de MAX). Solo deberan representarse en el arbollos nodos generados, marcando claramente la evolucion de los valores de alfa y beta para cada nodo(empezar con valores −999 y +999). En caso de que se produzca una poda debera indicarse en el arboldiciendo de que tipo es.

Nota: En caso de que se puedan elegir varias casillas, considerar primero la que este mas a la derechapara MAX y primero la de mas a la izquierda para MIN (como marcan las flechas en la Figura 1).

20

44. Consideremos el juego del conecta-4. Tenemos un tablero de 5 columnas y 4 filas, donde los jugadorescolocan sus fichas dejandolas caer en una de las columnas donde queden huecos (dentro de la columna,las fichas “caen” hasta la posicion mas baja no ocupada). Gana el primer jugador que logre conectar4 de sus fichas en lınea (horizontal, vertical o diagonal).

Supongamos que el tablero se encuentra en la siguiente situacion, donde le toca mover a MAX, quejuega con las fichas X.

X X

X X

X

O OO

O

O

O

Se pide: ¿Que movimiento se decidira realizar la maquina, si aplica el algoritmo minimax con podaα-β hasta profundidad maxima 3? Justificar la respuesta dibujando el arbol de juego que genera dichoalgoritmo, de acuerdo con las siguientes indicaciones:

En el dibujo deben aparecer exclusivamente los nodos generados.

Detallar el orden en el que se analizan los nodos.

Especificar claramente como evolucionan en cada nodo los valores de α y β.

Especificar tambien donde se producen las podas, y de que tipo son.

Como orden para analizar los sucesores, considerar las columnas de izquierda a derecha.

La funcion de evaluacion estatica se define como sigue:

• +∞ si es estado ganador para MAX• −∞ si es estado ganador para MIN• 0 si es tablas• diferencia entre numero de 3-en-rayas que tenga MAX menos las que tenga MIN.

21