Академический Документы
Профессиональный Документы
Культура Документы
Sistema de Información
UTN-FRM
2011
Trabajo Práctico Nº 2.
Problemas de Satisfacción de Restricciones
2) Un grafo de restricciones es aquel en el que los nodos corresponden a variables del problema y
los arcos corresponden a restricciones. Este grafo nos ayuda a visualizar mejor el problema, por
ejemplo para encontrar variables que son independientes.
3)
1 [(TN,AS),(Q,AS),(NGS,AS),(TN,Q),(Q,NGS),(
AS,TN),(AS,Q),(AS,NGS),(Q,TN),(Q,NGS)]
2 [(NGS,AS),(TN,Q),(Q,NGS),(AS,TN),(AS,Q),(
AS,NGS),(Q,TN),(Q,NGS),(Q,TN)]
3 [(TN,Q),(Q,NGS),(AS,TN),(AS,Q),(AS,NGS),(
Q,TN),(Q,NGS),(Q,TN),(NGS,Q),(TN,Q)]
4 [(Q,NGS),(AS,TN),(AS,Q),(AS,NGS),(Q,TN),(
Q,NGS),(Q,TN),(NGS,Q),(TN,Q),(Q,NGS),
(NGS,AS)]
5 [(AS,TN),(AS,Q),(AS,NGS),(Q,TN),(Q,NGS)
,(Q,TN),(NGS,Q),(TN,Q),(Q,NGS),
(NGS,AS)]
6 [(AS,Q),(AS,NGS),(Q,TN),(Q,NGS),
(Q,TN),(NGS,Q),(TN,Q),(Q,NGS)]
8 [(Q,TN),(Q,NGS),
(Q,TN),(NGS,Q),(TN,Q),(Q,NGS)]
9 [(Q,NGS), (Q,TN),(NGS,Q),(TN,Q),(Q,NGS)]
4) El algoritmo AC-3 se puede aplicar tanto antes de realizar la búsqueda o así como también
después de cada asignación durante la búsqueda misma. En pseudocódigo que se muestra, se aplica
al iniciar la búsqueda. El algoritmo AC-3 nos reduce el espacio de dominio solo para aquellos
valores que nos garantizan una solución. Por lo tanto al aplicar este algoritmo, si existe alguna
variable con dominio vacío, el problema no tiene solución.
En la línea 2 se realiza la comprobación de arcos. Si existe alguna variable cuyo dominio de valores
sea vacío entonces el problema no puede resolverse. En caso contrario, la búsqueda se realiza en un
espacio de dominio que garantiza que se encontrará la solución. El pseudocódigo del algoritmo
AC3 se encuentra en la página 165 del libro.
5)
a) VARIABLES: HiCj: habitación i cama j (i=1…n; j=1…n° de camas)
DOMINIO: {F, NF}
RESTRICCIONES: para cada i=1…n, HiCj ≠ HiCk (j,k=1…n° de camas, j≠k)
c) La heurística es indiferente, ya que sea cual sea el valor que tome la variable, el resto de las
variables de la misma habitación, tendrán los mismos valores posibles, específicamente el mismo
valor de aquel que se tomó.
Para minimizar el número de habitaciones, se puede pensar en que no pueden haber variables sin
asignación siempre y cuando el número de F o NF lo permita.
6)
a) VARIABLES: Cij: celda(fila i, columna j). i, j =1…9
DOMINIO: {1,2,…,9}
RESTRICCIONES:
• Cij ≠ Cik para cada i=1…9; j,k=1…9 j≠k, j=<k
• Cij ≠ Ckj para cada j=1…9; i,k=1…9 j≠k, i=<k
• ≠ (C11; C12; C13; C21; C22; C23; C31; C32; C33) y así para el resto de los bloques
b)
HNC HNC … HNC
1 1 1
Las habitaciones son problemas independientes entre sí, entonces se pone el índice N ya que es
indiferente que habitación es.
7)
a) Variables: Q1, Q2, Q3, Q4. Representan a cada reina que va en la columna que indica el número
que acompaña a la letra Q.
Dominio = {1,2,3,4}. Cada uno representa el número de fila.
Restricciones: Qi ≠ Qj (para el jaque horizontal)
|Qi − Qj| ≠ |i – j|
i,j = 1…4
b)
1°
1 2 3 4
El algoritmo de búsqueda con AC3, buscando consistencia en el
1 Q1 X X X problema inicial pero no elimina ningún elemento del dominio, ya que
2 X X L L son todos posibles. Una vez que la búsqueda hacia atrás asigna Q1=1,
entonces el dominio queda configurado como muestra la tabla (la X
3 X L X L representa que está prohibido colocar la reina en esa celda. La letra L
4 X L L X especifica que es un valor asignable).
2°
1 2 3 4
AC3 comenzará, verificando el arco (Q2, Q3) cuyos dominios son {3,4}
1 Q1 X X X y {2,4} respectivamente. Cuando el algoritmo analiza estos valores,
2 X X L L comprueba que el valor 3 de Q2 es incompatible para cualquier valor de
Q3, es decir que encuentra una inconsistencia para esta asignación y
3 X X X L elimina dicho valor del dominio, quedando {4} para Q2.
4 X L L X Cuando verifica el arco (Q4, Q3), elimina el valor 2 del dominio de Q3
ya que si se asigna este valor, el dominio de Q4 es vacío. Queda {4} en
Q3.
3°
1 2 3 4
Cuando verifica el arco (Q3, Q4), elimina el valor 2 del dominio de Q3
1 Q1 X X X ya que si se asigna este valor, el dominio de Q4 es vacío. Queda {4} en
2 X X X L Q3.
3 X X X L
4 X L L X
4°
1 2 3 4 AC3 verifica el arco (Q3, Q2) y encuentra que si Q3 vale 4, es
inconsistente ya que el dominio de Q2 se vuelve vacío, entonces se
1 Q1 X X¡ X elimina ese valor del dominio quedando {}. Por lo tanto se detecta la
2 X X X¡ L inconsistencia de arcos y se vuelve a la búsqueda hacia atrás
3 X X X¡ L
4 X L X¡ X
5°
1 2 3 4 El algoritmo de búsqueda hacia atrás mediante la heurística indicada
asigna a Q1 el valor 2. Los dominios quedan determinados según la letra
1 X X L L L en rojo.
2 Q1 X X X
3 X X L L
4 X L X L
6°
1 2 3 4 El algoritmo AC3 comienza verificando primero el arco (Q2,Q3),
eliminado del dominio de Q3 el valor 3. Posteriormente, se analiza el
1 X X L X dominio de Q4, determinando que no puede tomar ni 4 ni 1, por lo tanto
2 Q1 X X X son eliminados del dominio del mismo.
Ahora el algoritmo ha llegado a comprobar la consistencia de arco, por
3 X X X L lo que devuelve a la búsqueda hacia atrás un problema con un dominio
4 X L X X reducido para que se encuentre una solución.
7°
1 2 3 4
La búsqueda hacia atrás procede a la asignación de las reinas ya que
1 X X Q3 X todos los dominios quedaron de un solo valor, gracias al algoritmo AC3
2 Q1 X X X
3 X X X Q4
4 X Q2 X X
Al aplicar el problema de las 4 reinas con el programa CPSEditor, creamos el grafo de restricciones
siguiendo las variables y las restricciones tomadas anteriormente. Al resolver el problema con
backtracking cronológico nos arroja lo siguiente:
Inicio de la resolución
Algoritmo Simple Backtracking
Entrando Profundidad 0
Asignación Q1= 1
Entrando Profundidad 1
Asignación Q2= 1
Consistencia
Asignación Q2= 2
Consistencia
Asignación Q2= 3
Proceso Finalizado
26 Asignaciones
36 Pruebas de consistencia
4 backtrackings
d)
1°
1 2 3 4 5 Al iniciar, el algoritmo rompe el empate asignando por prioridad a Q2
el valor 3.
1 X X
2 X X X
3 X Q2 X X X
4 X X X
5 X X
2°
1 2 3 4 5 Para la próxima asignación se determina por mínimo valor restante que
las variables Q1, Q3 Y Q4 son candidatas ya que las 3 son las que
1 X X menos valores en el dominio poseen. Por prioridad, se asignará un
valor a Q4, y se evalúa qué valor darle. El valor menos restringido es el
2 X X X
número 2 y 4. Se asigna Q4=2 por prioridad.
3 X Q2 X X X
4 X X X Q4 X
5 X X X X
3°
1 2 3 4 5 Para la siguiente asignación, MVR nos determina que la próxima reina
a asignar es la de la columna tres, es decir Q3, ya que posee solo un
1 X X Q3 X X valor restante Q3 =1 determinado por el gráfico anterior.
2 X X X X
3 X Q2 X X X
4 X X X Q4 X
5 X X X X
4°
1 2 3 4 5 Como existe un empate entre Q1 y Q5, se decide por asignar Q1 = 5
por prioridad y porque es el único valor posible para esta reina.
1 X X Q3 X X Posteriormente, en la próxima evaluación a Q5 se asigna 2.
2 X X X X Q5
3 X Q2 X X X
4 X X X Q4 X
5 Q1 X X X X