Introducción a ASP (Answer Set Programming - programación con conjuntos respuestos)

Documentos relacionados
Ejercicios de Lógica Proposicional *

INTRODUCCION A LA INTELIGENCIA ARTIFICIAL MÓDULO 6- CÁLCULO DE PREDICADOS Y LÓGICA DE PRIMER ORDEN

Métodos de Inteligencia Artificial

Matemáticas Discretas Lógica

ALGEBRA y ALGEBRA LINEAL. Primer Semestre CAPITULO I LOGICA Y CONJUNTOS.

Lógica Proposicional IIC1253. IIC1253 Lógica Proposicional 1/64

Tema 6: Teoría Semántica

Lógica proposicional. Ivan Olmos Pineda

John Venn Matemático y filósofo británico creador de los diagramas de Venn

Lógica Proposicional. Guía Lógica Proposicional. Tema III: Cuantificadores

TEMA 1: LÓGICA. p p Operador conjunción. Se lee y y se representa por. Su tabla de verdad es: p q p q

CIENCIAS FORMALES CIENCIAS FÁCTICAS

Coordinación de Matemática I (MAT021) 1 er Semestre de 2013 Semana 1: Lunes 11 Viernes 16 de Marzo. Contenidos

Lógica Proposicional. Significado de una Fórmula Proposicional

Lógica. Matemática discreta. Matemática discreta. Lógica

Inteligencia en Redes de Comunicaciones. Razonamiento lógico. Julio Villena Román.

Algoritmos y programas. Algoritmos y Estructuras de Datos I

Lógica proposicional

Tema 6: Programación Lógica: semántica declarativa. Lenguajes y Paradigmas de Programación

Bases Formales de la Computación

Semántica de Primer Orden. Semántica de Primer Orden

Lógica de proposiciones

Tema 1: Sintaxis y Semántica de la Lógica Proposicional

Lógica Proposicional. Cátedra de Matemática

Lógica Clásica Proposicional

LÓGICA DE PROPOSICIONAL Y PREDICADOS INGENIERÍA DE SISTEMAS

Propiedades de imágenes y preimágenes

Lógica y Programación

Formalismos de Representación de Conocimientos

Matemáticas Dicretas LÓGICA MATEMÁTICA

Benemérita Universidad Autónoma de Puebla

John Venn Matemático y filósofo británico creador de los diagramas de Venn

LÓGICA PROPOSICIONAL

Apuntes de Lógica Proposicional

MATEMÁTICAS BÁSICAS. 23 de febrero de Universidad Nacional de Colombia MATEMÁTICAS BÁSICAS

Lógica de primer orden: Repaso y notación

Teoremas: Condiciones Necesarias, Condiciones Suficientes y Condiciones Necesarias y Suficientes

MATEMÁTICAS DISCRETAS. UNIDAD1 Lógica y Demostraciones

Forma lógica de enunciados

Tema 2: Teoría de la Demostración

Inteligencia en Redes de Comunicaciones - 04 Razonamiento lógico

Agentes Lógicos Univer Univ sidad Po sidad P litécnica de Pueb o la litécnica de Pueb D r. J Jesús A A ntonio G G á onz l ál ez B Ber l na

LÓGICA FORMAL. PROPOSICIONES. CONECTORES LÓGICOS. TABLAS DE VERDAD. Introducción a la programación EPET N 3

CONJUNTO: Colección o agregado de ideas u objetos de cualquier especie.

ANOTACIONES BÁSICAS SOBRE LÓGICA PROPOSICIONAL FILOSOFÍA 1º BACHILLERATO

Coordinación de Matemática I (MAT021) 1 er Semestre de 2013 Semana 2: Lunes 18 Viernes 22 de Marzo. Contenidos

Contenido. BLOQUE I: PRELIMINARES Tema 2 ALGUNAS NOCIONES DE TEORÍA DE CONJUNTOS, RELACIONES Y FUNCIONES Lógica Grado en Ingeniería Informática

{} representa al conjunto vacío, es decir, aquel que no contiene elementos. También se representa por.

los lenguajes WHILE y LOOP X2 := X1; while X2 0 do X1 := X1 + 1; X2 := X2 1 od

Guía 1: Funciones, precedencia y tipado

Lenguajes lógicos: cláusulas de Horn

Introducción. El uso de los símbolos en matemáticas.

Conjuntos Los conjuntos se emplean en muchas áreas de las matemáticas, de modo que es importante una comprensión de los conjuntos y de su notación.

MLM Matemática Discreta

Lógica de Predicados 1!

INGENIERÍA EN SISTEMAS Y COMUNICACIONES

Repaso de Lógica de Primer Orden

TÍTULO: MATEMÁTICA DISCRETA Y LÓGICA Disponibilidad

2.1.- Formalización de enunciados en lenguaje ordinario

Lógica de Predicados de Primer Orden

En la fig. 1 se representa el grafo, G=(V,A) donde: V = {1, 2, 3, 4, 5, 6} A = { {1,2}, {1,3}, {1,5}, {3}, {3,4}, {4,5}, {5,6} }

TEMA 5 El tipo grafo. Tipo grafo

LÓGICA Y CONJUNTOS* En este capítulo

Sistemas deductivos. Lógica Computacional. Curso 2005/2006. Departamento de Matemática Aplicada Universidad de Málaga

Programación Funcional Lisp-DrScheme Primera Parte. Dr. Oldemar Rodríguez Rojas Escuela de Informática Universidad de Nacional

Redes Semánticas. Redes semánticas. Limitaciones de las redes semánticas. Notas

Introducción. Ejemplos de expresiones que no son proposiciones

p q p q p (p q) V V V V V F F F F V V F F F V F

logica computacional Tema 1: Introducción al Cálculo de Proposiciones

IIC Matemática Discreta

Teorema de incompletitud de Gödel

Un enunciado es toda frase u oración que se emite

CONJUNTOS. Por ejemplo, el E del ejemplo 2 se escribe.

Resumen de las clases teóricas del turno tarde a cargo de la Prof. Alcón.

Capítulo 1: Fundamentos: Lógica y Demostraciones Clase 2: Lógica de Predicados y Métodos de Demostración

Si x es un símbolo de variable y F es una FBF, entonces también lo son: x F x F Si F es una FBF, entonces también lo es (F). Nada más es una FBF.

ÁLGEBRA I. Curso Grado en Matemáticas

Manual de turbo pascal

Introducción a la Lógica

FORMALIZACIÓN Y EJECUCIÓN DEPARTAMENTO DE ELECTRÓNICA Y COMPUTADORES. Mercedes Granda Departamento de Electrónica y Computadores

Capítulo 3. Conjuntos. Continuar

Lógica Proposicional. Sergio Stive Solano Sabié. Marzo de 2012

CONTENIDO. 1.- Introducción a la Inteligencia Artificial (IA) 2.- Lógica de predicados. 3.- Búsqueda de soluciones

Isabelle como un lenguaje funcional

LOGICA DE ENUNCIADOS

I N T E L I G E N C I A A R T I F I C I A L I

personal.us.es/elisacamol Elisa Cañete Molero Curso 2011/12

A5 Introducción a la optimización en redes

Tema 3.- Predicados y sentencias condicionales

Lógica de Predicados

Las redes semánticas intentan trasladar esa afirmación a un formalismo Una red semántica será un grafo donde:

Métodos de Inteligencia Artificial

Curso Extraordinario INTELIGENCIA ARTIFICIAL Y SISTEMAS EXPERTOS

Lógica de predicados

1. Resolución en lógica proposicional

Capítulo 1 Lógica Proposicional

Definición y representación de los

Proposicional. Curso Mari Carmen Suárez de Figueroa Baonza

Transcripción:

Introducción a ASP (Answer Set Programming - programación con conjuntos respuestos) Inteligencia Artificial David Pearce 13 de enero de 2009

ASP y programación declarativa ASP es una forma de programación declarativa orientada a problemas combinatoricas dificiles sus campos de aplicación incluyen: planificación diagnostica razonamiento sobre acciónes y causalidad verificación de software data management sistemas multagentes razonamiento para la Web semántica 1

ASP y programación declarativa ASP es un lenguaje similar a programación lógica pero con otro método de computación apoya varios tipos de razonamiento: razonamiento por defecto razonamiento temporal restricciónes información incompleta preferencias y prioridades 2

ASP y programación declarativa ASP se base en la semántica de modelos estables de la programación lógica en 1999 se desarrolló la paradigma de ASP como programación declarativa ahora existen unas 15 sistemas implementadas y numerosas aplicaciones ASP ya fue la tecnología principal en dos importantes proyectos Europeos, incluso en un IP. Los sistemas más importantes son SMODELS http://www.tcs.hut.fi/software/smodels/ DLV http://www.dbai.tuwien.ac.at/proj/dlv/ GNT http://www.tcs.hut.fi/software/gnt/ ASSAT http://assat.cs.ust.hk/ CMODELS http://www.cs.utexas.edu/users/tag/cmodels/ 3

el método de ASP describe un dominio o problema utilizando reglas lógicas utilize restricciónes para eliminar soluciones (modelos) el sistema computa los modelos estables (answer sets) que corresponden a soluciones correctos del problema 4

3 tipos de notación Para escribir y analizar programas ASP utilizamos tres diferentes notaciones 1. El lenguaje de la lógica clásica. Simbolos p, q, r,... de proposiciones y conectivas de la lógica proposicional:,,,,. Las constantes lógicas:,. Variables x, y, z,... y símbolos de predicados P (x), Q(x, y), R(x, y, z),... Símbolos de constantes: a, b, c,... 2. Una notación lógica para escribir reglas. Conectivas: not,, y, predicados: p(x), q(x, Y ) 3. Una sintáxis para programas en p.e. SMODELS. p, q, r, :-, not r(x,y).... 5

3 tipos de notación - ejemplo La expresión para cada x, si x tiene la propiedad P y no la propiedad Q, entonces tiene la propiedad R, se escribe como: 1. x(p (x) Q(x) R(x)) 6

3 tipos de notación - ejemplo La expresión para cada x, si x tiene la propiedad P y no la propiedad Q, entonces tiene la propiedad R, se escribe como: 1. x(p (x) Q(x) R(x)) 2. r(x) p(x), not q(x) 6

3 tipos de notación - ejemplo La expresión para cada x, si x tiene la propiedad P y no la propiedad Q, entonces tiene la propiedad R, se escribe como: 1. x(p (x) Q(x) R(x)) 2. r(x) p(x), not q(x) 3. r(x) :- p(x), not q(x). 6

la semántica de modelos estables Sistemas de ASP computan modelos estables. Este semántica no coincide con la lógica clásica. En particular su negación representa la negación por defecto, la negación por fallo. 7

la semántica de modelos estables Sistemas de ASP computan modelos estables. Este semántica no coincide con la lógica clásica. En particular su negación representa la negación por defecto, la negación por fallo. Ejemplo. La fórmula p q tiene un solo modelo estable, que corresponde a p falso y q verdadero. 7

la semántica de modelos estables Sistemas de ASP computan modelos estables. Este semántica no coincide con la lógica clásica. En particular su negación representa la negación por defecto, la negación por fallo. Ejemplo. La fórmula p q tiene un solo modelo estable, que corresponde a p falso y q verdadero. La fórmula q p que es equivalente en la lógica clásica, tiene el modelo estable que corresponde a p verdadero y q falso. 7

la semántica de modelos estables Una conjunción (F G) o el conjunto {F, G} puede tener un model estable que no es model estable de F. Ejemplo. ( p q) p tiene un único model estable {p}, que no es model estable de ( p q). 8

la semántica de modelos estables Una conjunción (F G) o el conjunto {F, G} puede tener un model estable que no es model estable de F. Ejemplo. ( p q) p tiene un único model estable {p}, que no es model estable de ( p q). Añadiendo el conjunt p, el valor de q cambia de verdadero a falso. Eso significa que el concepto de inferencia es no-monótona. 8

la semántica de modelos estables Ejemplos. una regla Horn es una expresión de forma F A donde A es un átomo y F es una conjunción de átomos 9

la semántica de modelos estables Ejemplos. una regla Horn es una expresión de forma F A donde A es un átomo y F es una conjunción de átomos una regla normal tiene la forma A 1... A m A m+1... A n A (A i átomos) 9

la semántica de modelos estables Ejemplos. una regla Horn es una expresión de forma F A donde A es un átomo y F es una conjunción de átomos una regla normal tiene la forma A 1... A m A m+1... A n A (A i átomos) una regla disyunctiva tiene la forma A 1... A m A m+1... A n B 1... B k (A i, B j átomos) 9

choice formulas - fórmulas de elección Una construcción muy útil en ASP es el concepto de choice formulas (fórmulas de elección) que tienen muchos modelos estables. Para un conjunto finito de átomos Z, el CF Z C está definido por A Z (A A) Si Z es un conjunto finito de átomos, entonces un conjunto X de átomos es un modelo estable de Z C sii X Z. 10

choice formulas - fórmulas de elección Una construcción muy útil en ASP es el concepto de choice formulas (fórmulas de elección) que tienen muchos modelos estables. Para un conjunto finito de átomos Z, el CF Z C está definido por A Z (A A) Si Z es un conjunto finito de átomos, entonces un conjunto X de átomos es un modelo estable de Z C sii X Z. por ejemplo {p, q} C es (p p) (q q) 10

choice formulas - fórmulas de elección Una construcción muy útil en ASP es el concepto de choice formulas (fórmulas de elección) que tienen muchos modelos estables. Para un conjunto finito de átomos Z, el CF Z C está definido por A Z (A A) Si Z es un conjunto finito de átomos, entonces un conjunto X de átomos es un modelo estable de Z C sii X Z. por ejemplo {p, q} C es (p p) (q q) sus modelos estables son arbitrarios subconjuntos de {p, q}: {}, {p}, {q}, {p, q, }. 10

restricciones - constraints La técnica de ASP se base en la posibilidad de representar ciertas colecciones de conjuntos como colecciones de modelos estables. Muchas veces se combina una CF, que aproxima la coleccion de conjuntos, con fórmulas llamadas restricciones ( constraints ) que eliminan modelos no correctos fórmulas negadas eliminan modelos estables: un conjunto de átomos es un modelo estable de F G sii es un modelo estable de F que satisface G. 11

restricciones - constraints La técnica de ASP se base en la posibilidad de representar ciertas colecciones de conjuntos como colecciones de modelos estables. Muchas veces se combina una CF, que aproxima la coleccion de conjuntos, con fórmulas llamadas restricciones ( constraints ) que eliminan modelos no correctos fórmulas negadas eliminan modelos estables: un conjunto de átomos es un modelo estable de F G sii es un modelo estable de F que satisface G. en ASP una restricción es una fórmula negada 11

restricciones - constraints La técnica de ASP se base en la posibilidad de representar ciertas colecciones de conjuntos como colecciones de modelos estables. Muchas veces se combina una CF, que aproxima la coleccion de conjuntos, con fórmulas llamadas restricciones ( constraints ) que eliminan modelos no correctos fórmulas negadas eliminan modelos estables: un conjunto de átomos es un modelo estable de F G sii es un modelo estable de F que satisface G. en ASP una restricción es una fórmula negada restricciones también pueden ser representado como reglas con cabezas vacias. Eg. la regla p, not q espresa en forma de restricción la formula (p q). Su efecto es eliminar modelos estables que satisfacen p y q. 11

LPARSE y SMODELS SMODELS es un de los sistemas de ASP más utilizados. Su frontend LPARSE sierve también como input lenguaje para los sistemas GNT, ASSAT y CMODELS. Ejemplo el conjunto de fórmulas de Horn se representa en LPARSE como: p. p :- p. s :- q, r. (p (p q) (q r) s) (1) para computar los modelos estables de (1) se guarda los tres ĺıneas en un fichero, eg. file1 y se llama LPARSE y SMODELS así: 12

% lparse file1 smodels La parte principal de la respuesta a este comando es el modelo estable: Answer: 1 Stable Model: q,p Se escribe la negación como not, entonces las fórmulas de antes pueden ser escrito en un fichero, eg. file2. como: q :- not p. p :- not q. con ĺınea de comando % lparse file2 smodels 0 (El número zero al final indica que queremos computar todos los modelos estables; un integer positivo n significa compute los primeros n modelos.) 13

se produce el output Answer: 1 Stable Model: q Answer: 2 Stable Model: p Para representar en LPARSE un choice formula {A 1,..., A n } C, quitamos el etiqueta C. Una restricción F se escribe como :- F. Así la fórmula {p, q, r} C p (q r) se representa en LPARSE como: {p, q, r}. :- not p. :- q, not r. 14

equivalencia fuerte Supone que dos fórmulas F y G se comportan tal que por cualquier H, (F H) y (G H) tienen los mismos modelos estables. 15

equivalencia fuerte Supone que dos fórmulas F y G se comportan tal que por cualquier H, (F H) y (G H) tienen los mismos modelos estables. Se dice que F y G son fuertemente equivalente. 15

equivalencia fuerte Supone que dos fórmulas F y G se comportan tal que por cualquier H, (F H) y (G H) tienen los mismos modelos estables. Se dice que F y G son fuertemente equivalente. Son siempre inter-sustituible sin afectar la semántica en cualquier contexto o programa 15

equivalencia fuerte Supone que dos fórmulas F y G se comportan tal que por cualquier H, (F H) y (G H) tienen los mismos modelos estables. Se dice que F y G son fuertemente equivalente. Son siempre inter-sustituible sin afectar la semántica en cualquier contexto o programa Se puede comprobar la equivalencia fuerte utilizando como calculo una lógica no-clásica (HT) de tres valores 15

equivalencia fuerte Ejemplo. Las fórmulas (p p) y ( p p) son equivalente en HT entonces fuertemente equivalente. La primera (entonces ambos) fórmulas se puede escribir en LPARSE como {p}. 16

equivalencia fuerte Ejemplo. Las fórmulas (p p) y ( p p) son equivalente en HT entonces fuertemente equivalente. La primera (entonces ambos) fórmulas se puede escribir en LPARSE como {p}. También se puede representar la doble negación A dentro de una regla como {not A}0 (más detalles abajo). Así se escribe ( p p) como p :- { not p } 0. 16

Parte 2: técnicas de programación 17

expresiones de cardinalidad En ASP es frequente utilizar fórmulas que expresan condiciones sobre la cardinalidad de un conjunto. Si l es un integer no-negativo y F 1,..., F n son fórmulas, l {F 1,....F n } (2) representa la disyunción: I {1,...,n}, I =l i I F i. 18

expresiones de cardinalidad En ASP es frequente utilizar fórmulas que expresan condiciones sobre la cardinalidad de un conjunto. Si l es un integer no-negativo y F 1,..., F n son fórmulas, l {F 1,....F n } (2) representa la disyunción: I {1,...,n}, I =l i I F i. Ejemplo representa 2 {F 1, F 2, F 3 } (3) (F 1 F 2 ) (F 1 F 3 ) (F 2 F 3 ). 18

La expresión {F 1,....F n } u (4) para u no-negativo denota la fórmula (u + 1 {F 1,....F n }). Mientras l {F 1,....F n } u (5) representa l {F 1,....F n } {F 1,....F n } u. Un conjunto de átomos: satisface (2) sii satisface al menos l de las fórmulas {F 1,....F n } satisface (4) sii satisface como máximo u de las fórmulas {F 1,....F n } satisface (5) sii satisface al menos l y como máximo u de las fórmulas {F 1,....F n } 19

LPARSE acepta expresiones de forma (2), (4), (5), eliminando el simbolo, si las fórmulas {F 1,....F n } son literales (átomos o sus negaciones). Ejemplo Hemos visto que la implicación ( p p) se puede representar en LPARSE somo p : {not p}0. Es porque { p} 0 = (1 { p}) = p. 20

abreviaturas Cuando A 1,..., A n son átomos por pares distintos escribe: l {A 1,..., A n } C para {A 1,..., A n } C (l {A 1,..., A n }), {A 1,..., A n } C u para {A 1,..., A n } C ({A 1,..., A n } u), l {A 1,..., A n } C u para {A 1,..., A n } C (l {A 1,..., A n } u). Si X es un conjunto de átomos, entonces: 1. X es un modelo estable de l {A 1,..., A n } C sii X {A 1,..., A n } y l X 2. X es un modelo estable de {A 1,..., A n } C u sii X {A 1,..., A n } y X u 3. X es un modelo estable de l {A 1,..., A n } C u sii X {A 1,..., A n } y l X u 21

Ejemplo Los modelos estables de 2 {p, q, r} C 2 son {p, q}, {p, r}, {q, r}. 22

variables en LPARSE En general los programas ASP contienen variables. Un ejemplo en LPARSE: p(1..4). #domain p(i). q(i) :- not q(i-1). Supone que se guarda la tres ĺıneas en un fichero var. La primera ĺınea es una abreviatura por 4 reglas: p(1). p(2). p(3). p(4). Esa define un predicado auxiliario de dominio, p, que se usa en la segunda ĺınea para declarar I como variable con dominio {1,..., 4}. La última ĺınea de var es una representación esquemática de las 4 reglas: q(1) :- not q(0). q(2) :- not q(1). q(3) :- not q(2). q(4) :- not q(3). 23

Entonces LPARSE interpreta var como la conjunción de las fórmulas p(i), q(i 1) q(i) (1 i 4) Dado el comando 24

Entonces LPARSE interpreta var como la conjunción de las fórmulas p(i), q(i 1) q(i) (1 i 4) Dado el comando % lpars var smodels 0 responde con el único model estable Stable Model: q(1) q(3) p(1) p(2) (p3) p(4) Los átomos auxiliarios p(1)....,p(4) pueden ser ocultado si se incluye la declaración hide p( ). 24

Método alternativo para especificar el grounding en LPARSE: incluye predicados de dominio directamente en los cuerpos de las reglas. Escribe var así: p(1..4). q(i) :- p(i), not q(i-1). 25

Método alternativo para especificar el grounding en LPARSE: incluye predicados de dominio directamente en los cuerpos de las reglas. Escribe var así: p(1..4). q(i) :- p(i), not q(i-1). Estas ĺıneas representan la conjunción de la fórmulas p(i), p(i) q(i 1) q(i) (1 i 4) Las dos versiones de var son fuertemente equivalente. Otra abreviatura en LPARSE: se puede escribir p(1..4). 2 {q(i) : p(i) } 3. en lugar de p(1). p(2). p(3). p(4). 2 {q(1), q(2), q(3), q(4)} 3. 25

un ejemplo: coloreando grafos Un n-colorido (colouring) de un grafo G es una función f desde sus vertices a {1,..., n} tal que f(x) f(y) si x, y son vertices contiguos. 26

un ejemplo: coloreando grafos Un n-colorido (colouring) de un grafo G es una función f desde sus vertices a {1,..., n} tal que f(x) f(y) si x, y son vertices contiguos. Problema: utilize ASP para encontrar un n-colorido o demonstrar que ninguno existe. Entonces: escribe un programa cuyos answer sets (modelos estables) son en correspondencia 1-1 con los n-coloridos de G. 26

un ejemplo: coloreando grafos Un n-colorido (colouring) de un grafo G es una función f desde sus vertices a {1,..., n} tal que f(x) f(y) si x, y son vertices contiguos. Problema: utilize ASP para encontrar un n-colorido o demonstrar que ninguno existe. Entonces: escribe un programa cuyos answer sets (modelos estables) son en correspondencia 1-1 con los n-coloridos de G. Solución Sea V los vertices de G y E el conjunto de los bordes. El programa consiste en las reglas: 1 {colour(x, 1),..., colour(x, n)} C 1 (x V ) (6) colour(x, i), colour(y, i) ({x, y} E; 1 i n). (7) 26

Podemos demonstrar que ese programa es correcto. El programa (6),(7) se puede codificar en LPARSE como el siguiente fichero colour: c(1..n). 1 { colour(x,i) : c(i) } 1 :- v(x). :- colour(x,i), colour(y,i), e(x,y), c(i). 27

Podemos demonstrar que ese programa es correcto. El programa (6),(7) se puede codificar en LPARSE como el siguiente fichero colour: c(1..n). 1 { colour(x,i) : c(i) } 1 :- v(x). :- colour(x,i), colour(y,i), e(x,y), c(i). Se supone que los predicados de dominio, v y e caracterizando los vertices y los bordes de G, estan definido en un fichero separado, eg graph. Por ejemplo, si G es un cubo en 3 dimensiones, el ficher puede tener la forma: v(0..7). e(0,1). e(1,2). e(2,3). e(3,0). e(4,5). e(5,6). e(6,7). e(7,4). e(0,4). e(1,5). e(2,6). e(3,7). La ĺınea de comando utilize la opción -c de LPARSE para especificar el valor del constante n, y ordena LPARSE que concatena los ficheros graph y colour: % lparse -c n=2 -d none graph colour smodels 27

SMODELS responde con un conjunto de átomos que representa un 2-colorido del cubo: Stable Model: colour(0,1) colour(1,2) colour(2,1) colour(3,2) colour(4,2) colour(5,1), colour(6,2) colour(7,1) 28

ejemplo 2: cliques Un clique en un grafo G es un conjunto de por pares contiguos vertices de G. Problema Utilice ASP par encontrar un clique de cardinalidad n o demonstrar que eso no existe. Escribe un programa cuoys answer sets estan en correspondencia 1-1 con cliques de card. n. 29

ejemplo 2: cliques Un clique en un grafo G es un conjunto de por pares contiguos vertices de G. Problema Utilice ASP par encontrar un clique de cardinalidad n o demonstrar que eso no existe. Escribe un programa cuoys answer sets estan en correspondencia 1-1 con cliques de card. n. Solución Como antes, sean V los vertices y E los bordes de G. El programa consiste en las reglas n {in(x) : x V } C, (8) in(x), in(y) (x, y V ; x y; {x, y} E). (9) Se puede comprobar que un conjunto X de átomos es un modelo estable de (8) + (9) sii X es {in(x) : x C} para un clique C in G tal que C n. 29

Se escribe (8) + (9) en LPARSE así: n {in(x) : v(x)}. ;- in(x), in(y), v(x,y), X!=Y, not e(x,y), not e(y,x). Como antes, v y e son predicados de dominio para vertices y bordes de G. Las condiciones not e(x,y), not e(y,x) expresan que X y Y no son contiguo. 30

ciclos de Hamilton Un ciclo de Hamilton en un grafo orientado G es un camino cerrado que pasa dentro cada vertice de G exactamente una vez. El programa abajo utiliza los átomos in(x, y) para cada borde x, y de G para expresar que x, y es elemento del camino. La parte generativa del programa consiste en las reglas de elección: donde E es el conjunto de bordes. {in(x, y)} C ( x, y E) (10) Restricciones eliminan los subconjuntos de E que no son de Hamilton; 2 {in(x, y) : y A x } (x V ) (11) 2 {in(x, y) : x B y } (y V ) (12) donde A x denota {y : x, y E} y B y denota {x : x, y E}. 31

Las restricciones guarantizan que dos in-bordes ni empezan ni terminan en el mismo vértice. Así el conjunto de in-bordes es un camino o una unión de caminos separados. Última condicion: cada vértice de G es alcanzable por una secuencia de in-bordes desde un vértice fijo, p.e. x 0. Utilizamos átomos auxiliarios r(x) para x es alcanzable desde x 0, para cada x en G. Una definición recursiva de r es: r(x) in(x 0, x) (x V ) (13) r(y) r(x), in(x, y) ( x, y E) (14) En fin ponemos las restricciones de alcanzabilidad: not r(x) (x V ). (15) 32

Se demuestra que un conjunto X de átomos es la parte esencial de un modelo estable de (10) - (15) si X tiene la forma {in(x, y) : x, y H} donde H es el conjunto de bordes de un ciclo de Hamilton en G. 33

Se demuestra que un conjunto X de átomos es la parte esencial de un modelo estable de (10) - (15) si X tiene la forma {in(x, y) : x, y H} donde H es el conjunto de bordes de un ciclo de Hamilton en G. La representación en LPARSE ponendo x 0 = 0 es: {in(x,y)} :- e(x,y). :- 2 {in(x,y) : e(x,y)}, v(x). :- 2 {in(x,y) : e(x,y)}, v(y). r(x) :- in(0,x), v(x). r(y) :- r(x), in(x,y), e(x,y). :- not r(x), v(x). hide r( ). 33