Вы находитесь на странице: 1из 10

Asignatura de Inteligencia Artificial

Sistema de Información
UTN-FRM
2011

Trabajo Práctico Nº 2.
Problemas de Satisfacción de Restricciones

Alumno: Pablo Ocaña


Inteligencia Artificial 2011 - http://ai.frm.utn.edu.ar/catedra Alumno: Pablo Ocaña

1) Un problema de satisfacción de restricciones es aquel en el que se busca una solución


asignando valores a un conjunto de variables (X1,X2…XN) que cumpla con las restricciones
(C1,C2…CN) que plantea un problema. Cada restricción representa un algún subconjunto de
variables y especifica las combinaciones aceptables de valores de ese subconjunto. Las variables Xi
pueden tomar ciertos valores posibles dentro de un dominio no vació Di. Un estado del problema
está dado por una asignación de estos valores posibles a una o todas las variables (Xi = vi). Una
asignación que no viola las restricciones es una asignación consistente. En algunos problemas de
CSP, se busca también buscar una solución que maximice una función objetivo.
El algoritmo de la búsqueda hacia atrás consiste en asignar valores de a una variable a la vez, y
volviendo atrás cuando la variable que vamos a expandir no tenga valores válidos o permitidos para
asignar.
La consistencia de arco se refiere a un arco dirigido (X,Y) en el grafo de restricciones desde un
nodo dado. Dicho arco es consiste si para toda asignación X=x, existe asignación Y=y consistente
con X=x. Este método proporciona un método rápido de propagación de restricciones y es
considerablemente más potente que la comprobación hacia delante.
Con la heurística de valor menos restringido para decidir el orden para examinar los valores de
una variable, se trata de que al asignar un valor para la variable, se flexibilice lo más posible la
asignación del resto. Es decir que se asigna un valor a la variable que menos restringe el valor de las
variables restantes.

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.

Práctico 2 (TP2) Problemas de Satisfacción de Restricciones 1


Inteligencia Artificial 2011 - http://ai.frm.utn.edu.ar/catedra Alumno: Pablo Ocaña

3)

Iteración Estado de la Cola

1 [(TN,AS),(Q,AS),(NGS,AS),(TN,Q),(Q,NGS),(
AS,TN),(AS,Q),(AS,NGS),(Q,TN),(Q,NGS)]

Comprueba arco (TN,AS), eliminando del dominio [(Q,AS),(NGS,AS),(TN,Q),(Q,NGS)


de TN el color verde, ya que es el único valor del ,(AS,TN),(AS,Q),(AS,NGS),(Q,TN),(Q,NGS),(
dominio de AS Q,TN)]

2 [(NGS,AS),(TN,Q),(Q,NGS),(AS,TN),(AS,Q),(
AS,NGS),(Q,TN),(Q,NGS),(Q,TN)]

Comprueba arco (Q,AS) eliminando del dominio de [(NGS,AS),(TN,Q),(Q,NGS),(Q,TN),(NGS,Q),


Q el color verde e inserta en la cola los que se (TN,Q)]
relacionan con Q

3 [(TN,Q),(Q,NGS),(AS,TN),(AS,Q),(AS,NGS),(
Q,TN),(Q,NGS),(Q,TN),(NGS,Q),(TN,Q)]

Comprueba arco (NGS,AS) eliminando el color [(TN,Q),(Q,NGS),(AS,TN),(AS,Q),(AS,NGS),(


verde de NGS. Inserta en la cola los arcos que Q,TN),(Q,NGS),(Q,TN),(NGS,Q),(TN,Q),(Q,N
llegan al mismo. GS), (NGS,AS)]

4 [(Q,NGS),(AS,TN),(AS,Q),(AS,NGS),(Q,TN),(
Q,NGS),(Q,TN),(NGS,Q),(TN,Q),(Q,NGS),
(NGS,AS)]

Comprueba (TN, Q) y no elimina nada, ya que la [(Q,NGS),(AS,TN),(AS,Q),(AS,NGS),(Q,TN),(


asignación (Azul, Rojo) es válida. 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)]

Comprueba (Q,NGS) y elimina Rojo de Q, ya que [(AS,TN),(AS,Q),(AS,NGS),(Q,TN),(Q,NGS),


no NGS posee solo este valor y la prueba no se (Q,TN),(NGS,Q),(TN,Q),(Q,NGS)]
cumple. Agrega los arcos relacionados con Q (ya
están en la cola y no se muestran)

6 [(AS,Q),(AS,NGS),(Q,TN),(Q,NGS),
(Q,TN),(NGS,Q),(TN,Q),(Q,NGS)]

Evalúa (AS,TN) no se realizan cambios ya que la [(AS,Q),(AS,NGS),(Q,TN),(Q,NGS),


asignación AS=verde y TN = Azul es válida (Q,TN),(NGS,Q),(TN,Q),(Q,NGS)]

Práctico 2 (TP2) Problemas de Satisfacción de Restricciones 2


Inteligencia Artificial 2011 - http://ai.frm.utn.edu.ar/catedra Alumno: Pablo Ocaña

Evalúa (AS,Q) no se realizan cambios ya que [(AS,NGS),(Q,TN),(Q,NGS),


(verde,azul) es válido (Q,TN),(NGS,Q),(TN,Q),(Q,NGS)]

8 [(Q,TN),(Q,NGS),
(Q,TN),(NGS,Q),(TN,Q),(Q,NGS)]

Evalúa (AS,NGS) y no realiza cambios ya que [(Q,TN),(Q,NGS),


(verde,rojo) es válido (Q,TN),(NGS,Q),(TN,Q),(Q,NGS)]

9 [(Q,NGS), (Q,TN),(NGS,Q),(TN,Q),(Q,NGS)]

Evalúa (Q,TN) y elimina Azul de Q, ya que no se


cumple no es valor consistente. COMO EL
DOMINIO DE Q ES VACÍO EL ALGORITMO
DETERMINA LA INCONSISTENCIA DE ARCO,
Y NO ES POSIBLE RESOLVER EL PSR

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.

1• funcion BUSQUEDA-CON-VUELTA-ATRÁS-Y-AC3(psr) devuelve solucion o fallo


2• psr = AC3(psr)
3• Para cada VARIABLES[psr] = var
4• Si DOMINIO[var] = vacio entonces
5• devolver "PSR no arco consistente, no puede resolverse"
6• sino
7• devolver VUELTA-ATRAS-RECURSIVA({},psr)
8•
9• funcion VUELTA-TRAS-RECURSIVA(asignacion,psr) devuelve solucion o fallo
10• si asignacion es completa entonces devolver asignacion
11• var = SELECCIONA-VARIABLE-NOASIGNADA(VARIABLES[psr],asignacion,psr)
12• para cada valor en ORDEN-VALORES-DOMINIO(var,asignacion,psr) hacer
13• si valor es consistente con asignacion de acuerdo con RESTRICCIONES[psr] ent
14• añadir {var=valor} a asignacion
15• resultado = VUELTA-ATRAS-RECURSIVA(asignacion,psr)
16• si resultado != fallo entonces
17• devolver resultado
18• borrar {var = valor} de asignacion
19• devolver fallo

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

Práctico 2 (TP2) Problemas de Satisfacción de Restricciones 3


Inteligencia Artificial 2011 - http://ai.frm.utn.edu.ar/catedra Alumno: Pablo Ocaña

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)

b) Supongamos que seleccionamos la primera habitación de una habitación dada y asignamos F o


NF. El turno ahora será de cualquiera de las otras camas, ya que el valor de asignación de la misma
está forzada a si en la primera se asignó F o NF, es decir todas se encuentra los mismos valores
legales posibles.
En el caso del grado heurístico, que ayuda a decidir con qué variable comenzar, es indiferente, ya
que es lo mismo sea cual la cama y la habitación con la que se comience.

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

Práctico 2 (TP2) Problemas de Satisfacción de Restricciones 4


Inteligencia Artificial 2011 - http://ai.frm.utn.edu.ar/catedra Alumno: Pablo Ocaña

b)

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).


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.


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


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


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

Práctico 2 (TP2) Problemas de Satisfacción de Restricciones 5


Inteligencia Artificial 2011 - http://ai.frm.utn.edu.ar/catedra Alumno: Pablo Ocaña


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.


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

c) El algoritmo de backtracking cronológico consiste en que cuando una asignación no es válida, se


vuelve hacia atrás al punto de decisión más reciente, y se decide por otra asignación. La búsqueda
hacia atrás aplica este concepto, asignando una variable por vez, y volviendo hacia atrás cuando la
asignación realizada trae problemas con las restricciones. Utiliza una función recursiva, llamada
VUELTA-ATRÁS-RECURSIVA, que va probando la consistencia de los distintos valores del
dominio de una variable, y si se cumple esa consistencia, asigna el valor y sigue con la próxima
variable, aplicando una recursividad. Una vez que la asignación es completa, se devuelve el
resultado.

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

Práctico 2 (TP2) Problemas de Satisfacción de Restricciones 6


Inteligencia Artificial 2011 - http://ai.frm.utn.edu.ar/catedra Alumno: Pablo Ocaña
Consistencia
Entrando Profundidad 2
Asignación Q3= 1
Consistencia
Asignación Q3= 2
Consistencia
Consistencia
Asignación Q3= 3
Consistencia
Asignación Q3= 4
Consistencia
Consistencia
Backtracking Profundidad 2
Asignación Q2= 4
Consistencia
Entrando Profundidad 2
Asignación Q3= 1
Consistencia
Asignación Q3= 2
Consistencia
Consistencia
Entrando Profundidad 3
Asignación Q4= 1
Consistencia
Asignación Q4= 2
Consistencia
Consistencia
Asignación Q4= 3
Consistencia
Consistencia
Consistencia
Asignación Q4= 4
Consistencia
Backtracking Profundidad 3
Asignación Q3= 3
Consistencia
Asignación Q3= 4
Consistencia
Consistencia
Backtracking Profundidad 2
Backtracking Profundidad 1
Asignación Q1= 2
Entrando Profundidad 1
Asignación Q2= 1
Consistencia
Asignación Q2= 2
Consistencia
Asignación Q2= 3
Consistencia
Asignación Q2= 4
Consistencia
Entrando Profundidad 2
Asignación Q3= 1
Consistencia
Consistencia
Entrando Profundidad 3
Asignación Q4= 1
Consistencia
Consistencia
Consistencia
Asignación Q4= 2
Consistencia
Asignación Q4= 3
Consistencia
Consistencia
Consistencia
Entrando Profundidad 4
Solución 1
Q1 : 2
Q2 : 4
Q3 : 1
Q4 : 3

Proceso Finalizado
26 Asignaciones
36 Pruebas de consistencia
4 backtrackings

Práctico 2 (TP2) Problemas de Satisfacción de Restricciones 7


Inteligencia Artificial 2011 - http://ai.frm.utn.edu.ar/catedra Alumno: Pablo Ocaña

El algoritmo realizó en total 26 asignaciones, realizando 4 backtrackings cuando fue necesario. La


primera asignación que realiza es dándole a Q1 el primer valor posible del dominio y así ir
probando con las siguiente reina. En caso de inconsistencia, se volvía hacia atrás. Estas vueltas las
realiza todas al irse por la rama cuando Q1 = 1, ya para este valor, el problema no tenía solución.
La solución final es la misma que se encuentra con AC3 y búsqueda hacia atrás. La solución
encontrada es Q1=2, Q2=4, Q3=1, Q4=3.

d)

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


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


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

Práctico 2 (TP2) Problemas de Satisfacción de Restricciones 8


Inteligencia Artificial 2011 - http://ai.frm.utn.edu.ar/catedra Alumno: Pablo Ocaña


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

Práctico 2 (TP2) Problemas de Satisfacción de Restricciones 9

Вам также может понравиться

  • Suficiencia Métodos
    Suficiencia Métodos
    Документ1 страница
    Suficiencia Métodos
    Diana j
    Оценок пока нет
  • Algoritmo 13
    Algoritmo 13
    Документ7 страниц
    Algoritmo 13
    Joselyn Rojas
    Оценок пока нет
  • Ejercicios Aritmetica Binaria
    Ejercicios Aritmetica Binaria
    Документ2 страницы
    Ejercicios Aritmetica Binaria
    Ihomara
    100% (1)
  • Romero Adriel Grafos
    Romero Adriel Grafos
    Документ8 страниц
    Romero Adriel Grafos
    Ricardo Romero
    Оценок пока нет
  • Portafolio U1y U2
    Portafolio U1y U2
    Документ20 страниц
    Portafolio U1y U2
    Javier Reyes
    Оценок пока нет
  • Actividad 1
    Actividad 1
    Документ5 страниц
    Actividad 1
    eder Rala
    Оценок пока нет
  • Clase 6 - Longitud Media de Un Codigo y Primer Teorema de Shannon
    Clase 6 - Longitud Media de Un Codigo y Primer Teorema de Shannon
    Документ11 страниц
    Clase 6 - Longitud Media de Un Codigo y Primer Teorema de Shannon
    Rodrigo X
    Оценок пока нет
  • Problema Del Cartero Chino
    Problema Del Cartero Chino
    Документ28 страниц
    Problema Del Cartero Chino
    Lisbeth Meneses
    Оценок пока нет
  • Analisis de Algoritmos Metaheuristicos
    Analisis de Algoritmos Metaheuristicos
    Документ38 страниц
    Analisis de Algoritmos Metaheuristicos
    CHRISTIAN ANTHONY MORALES ESQUIVEL
    Оценок пока нет
  • Practicas de Tercero
    Practicas de Tercero
    Документ3 страницы
    Practicas de Tercero
    Eberth Torres Diaz
    Оценок пока нет
  • S4-Calnum A
    S4-Calnum A
    Документ7 страниц
    S4-Calnum A
    Angeline Nicoll
    Оценок пока нет
  • Analisis de Montaje Práctico de Compuertas Logicas
    Analisis de Montaje Práctico de Compuertas Logicas
    Документ10 страниц
    Analisis de Montaje Práctico de Compuertas Logicas
    Alexha Marthinezz
    Оценок пока нет
  • SistemasS2 PDF
    SistemasS2 PDF
    Документ28 страниц
    SistemasS2 PDF
    Carlos Matias Muñoz Sandoval
    Оценок пока нет
  • Practica 1
    Practica 1
    Документ2 страницы
    Practica 1
    Jimmy Silvera
    Оценок пока нет
  • Tarea
    Tarea
    Документ4 страницы
    Tarea
    Jose Paucara Villca
    Оценок пока нет
  • Métodos Cerrados UTPL
    Métodos Cerrados UTPL
    Документ35 страниц
    Métodos Cerrados UTPL
    Jairo D. Santín Hidalgo
    Оценок пока нет
  • Unidad 4-2
    Unidad 4-2
    Документ44 страницы
    Unidad 4-2
    Wilson Andr� Aguirre Cardona
    Оценок пока нет
  • Ejercicio3 - METODO SIMPLEX DUAL
    Ejercicio3 - METODO SIMPLEX DUAL
    Документ12 страниц
    Ejercicio3 - METODO SIMPLEX DUAL
    dilan gomez
    Оценок пока нет
  • Teoría de Grafos
    Teoría de Grafos
    Документ8 страниц
    Teoría de Grafos
    ALEX MARTIN URUETA ACUÑA
    Оценок пока нет
  • Regresion Polinomial
    Regresion Polinomial
    Документ15 страниц
    Regresion Polinomial
    JOSE ARMANADO PANIHUARA ALAGON
    Оценок пока нет
  • Grupo - 2 Paso 2
    Grupo - 2 Paso 2
    Документ14 страниц
    Grupo - 2 Paso 2
    Daniel Andres Garcia Delgadillo
    Оценок пока нет
  • Tarea 1
    Tarea 1
    Документ8 страниц
    Tarea 1
    Angel de Jesus Canul Caamal
    Оценок пока нет
  • Programacià N Lineal
    Programacià N Lineal
    Документ52 страницы
    Programacià N Lineal
    Fernandita Karolinita
    Оценок пока нет
  • Taller Listas Simples
    Taller Listas Simples
    Документ2 страницы
    Taller Listas Simples
    kevin santiago monsalve agudelo
    Оценок пока нет
  • Algoritmo GRASP para Cortes de Guillotina: Resumen
    Algoritmo GRASP para Cortes de Guillotina: Resumen
    Документ8 страниц
    Algoritmo GRASP para Cortes de Guillotina: Resumen
    Mercy Roque
    Оценок пока нет
  • Ejerccios Karnaugh
    Ejerccios Karnaugh
    Документ8 страниц
    Ejerccios Karnaugh
    Angela DV
    Оценок пока нет
  • Métodos Numéricos, Mat. 240B
    Métodos Numéricos, Mat. 240B
    Документ20 страниц
    Métodos Numéricos, Mat. 240B
    radutari
    Оценок пока нет
  • Practico N 2
    Practico N 2
    Документ2 страницы
    Practico N 2
    Agustin Farina
    Оценок пока нет
  • Ejercicios Interpolación Numérica.
    Ejercicios Interpolación Numérica.
    Документ6 страниц
    Ejercicios Interpolación Numérica.
    Lucía Daniela Lotumolo Sueldo
    Оценок пока нет
  • Reforzamiento Operaciones Basicas
    Reforzamiento Operaciones Basicas
    Документ2 страницы
    Reforzamiento Operaciones Basicas
    Paulina Katherine Rivera Valenzuela
    Оценок пока нет