ASP (Answer Set Programming avec quantificateurs
Transcription
ASP (Answer Set Programming avec quantificateurs
Sommaire Introduction (problématique) Règles existentielles + ASP Réécriture ∃ASP → ASP Conclusion ∃ASP (Answer Set Programming avec quantificateurs existentiels) F. Garreau JIAF 12 décembre 2013 Fabien Garreau ∃ASP (Answer Set Programming avec quantificateurs existentiels) 1/32 Sommaire Introduction (problématique) Règles existentielles + ASP Réécriture ∃ASP → ASP Conclusion Sommaire 1 Introduction (problématique) 2 Règles existentielles + ASP 3 Réécriture ∃ASP → ASP 4 Conclusion Fabien Garreau ∃ASP (Answer Set Programming avec quantificateurs existentiels) 2/32 Sommaire Introduction (problématique) Règles existentielles + ASP Réécriture ∃ASP → ASP Conclusion Introduction (problématique) 1 Introduction (problématique) 2 Règles existentielles + ASP 3 Réécriture ∃ASP → ASP 4 Conclusion Fabien Garreau ∃ASP (Answer Set Programming avec quantificateurs existentiels) 3/32 Sommaire Introduction (problématique) Règles existentielles + ASP Réécriture ∃ASP → ASP Conclusion Problématique Coder une ontologie en DL-LiteR dans ASP Exemple de cas qui pose problème A v ∃R Règle ASP : ∃X, R(X,Y)←A(Y) Example homme v ∃parent à coder en ∃X, parent(X,Y)←homme(Y) Fabien Garreau ∃ASP (Answer Set Programming avec quantificateurs existentiels) 4/32 Sommaire Introduction (problématique) Règles existentielles + ASP Réécriture ∃ASP → ASP Conclusion Règles existentielles Les règles existentielles permettent de coder les DL légères Exemple A v ∃R Règle existentielle : ∃X, R(X,Y)←A(Y) Il manque la non-monotonie Fabien Garreau ∃ASP (Answer Set Programming avec quantificateurs existentiels) 5/32 Sommaire Introduction (problématique) Règles existentielles + ASP Réécriture ∃ASP → ASP Conclusion DL-Lite Fabien Garreau ∃ASP (Answer Set Programming avec quantificateurs existentiels) 6/32 Sommaire Introduction (problématique) Règles existentielles + ASP Réécriture ∃ASP → ASP Conclusion RE DL-Lite Fabien Garreau ∃ASP (Answer Set Programming avec quantificateurs existentiels) 7/32 Sommaire Introduction (problématique) Règles existentielles + ASP Réécriture ∃ASP → ASP Conclusion RE ASP DL-Lite Fabien Garreau ∃ASP (Answer Set Programming avec quantificateurs existentiels) 8/32 Sommaire Introduction (problématique) Règles existentielles + ASP Réécriture ∃ASP → ASP Conclusion non-monotonie RE ∃ ASP DL-Lite Fabien Garreau ∃ASP (Answer Set Programming avec quantificateurs existentiels) 9/32 Sommaire Introduction (problématique) Règles existentielles + ASP Réécriture ∃ASP → ASP Conclusion ∃ASP non-monotonie RE ∃ ASP DL-Lite Fabien Garreau ∃ASP (Answer Set Programming avec quantificateurs existentiels) 10/32 Sommaire Introduction (problématique) Règles existentielles + ASP Réécriture ∃ASP → ASP Conclusion Règles existentielles + ASP 1 Introduction (problématique) 2 Règles existentielles + ASP 3 Réécriture ∃ASP → ASP 4 Conclusion Fabien Garreau ∃ASP (Answer Set Programming avec quantificateurs existentiels) 11/32 Sommaire Introduction (problématique) Règles existentielles + ASP Réécriture ∃ASP → ASP Conclusion Definition (Règle) Une règle ∃ASP est une règle de la forme : − H ← B+ , not B− 1 , ..., not Bn . − avec H, B+ , et B− 1 ,...,Bn des ensembles d’atomes on appelle : H la tête B+ le corps positif − not B− 1 ,...,not Bn le corps négatif Un fait est un ensemble d’atomes Example R = parent(X,Y), homme(X) ← homme(Y). F = {homme(titi),homme(toto),parent(titi,toto)} Fabien Garreau ∃ASP (Answer Set Programming avec quantificateurs existentiels) 12/32 Sommaire Introduction (problématique) Règles existentielles + ASP Réécriture ∃ASP → ASP Conclusion Caractéristiques d’une ∃-règle R = a(X,Y), b(X) ← c(Y), not(a(Y,Z), b(Z)) Variables universelles Variables existentielles Fabien Garreau ∃ASP (Answer Set Programming avec quantificateurs existentiels) 13/32 Sommaire Introduction (problématique) Règles existentielles + ASP Réécriture ∃ASP → ASP Conclusion Caractéristiques d’une ∃-règle R = a(X,Y), b(X) ← c(Y), not(a(Y,Z), b(Z)) Variables universelles Variables existentielles Fabien Garreau ∃ASP (Answer Set Programming avec quantificateurs existentiels) 14/32 Sommaire Introduction (problématique) Règles existentielles + ASP Réécriture ∃ASP → ASP Conclusion Caractéristiques d’une ∃-règle R = a(X,Y), b(X) ← c(Y), not(a(Y,Z), b(Z)) Variables universelles Variables existentielles Fabien Garreau ∃ASP (Answer Set Programming avec quantificateurs existentiels) 15/32 Sommaire Introduction (problématique) Règles existentielles + ASP Réécriture ∃ASP → ASP Conclusion Definition (Justification) Soit F un fait, V un vocabulaire et I = (∆,.I ) une interprétation de V. Une justification π de F dans I est une application de terms(F) → ∆ telle que : Si c ∈ C, π(c) = cI Si p(t1 , ..., tk ) ∈ F, (π(t1 ), ..., π(tk )) ∈ pI Example R = parent(X,Y) ← homme(Y). I = {homme(titi),homme(toto),parent(titi,toto)} Fabien Garreau ∃ASP (Answer Set Programming avec quantificateurs existentiels) 16/32 Sommaire Introduction (problématique) Règles existentielles + ASP Réécriture ∃ASP → ASP Conclusion Definition − Soit I une interprétation et R = H ← B+ , not B− 1 , ..., not Bn . une règle ∃ASP Un support de R dans I est une justification de B+ dans I Un support de R dans I est dit vérifié s’il s’étend à une justification de H dans I Un support est bloqué par I si ce support s’étend à une justification d’un B− i dans I Fabien Garreau ∃ASP (Answer Set Programming avec quantificateurs existentiels) 17/32 Sommaire Introduction (problématique) Règles existentielles + ASP Réécriture ∃ASP → ASP Conclusion Example R = parent(X,Y) ← homme(Y). I = {homme(titi),homme(toto),parent(titi,toto)} Il existe 2 supports de I dans R π(Y) = titi π(Y) = toto qui est vérifié Fabien Garreau ∃ASP (Answer Set Programming avec quantificateurs existentiels) 18/32 Sommaire Introduction (problématique) Règles existentielles + ASP Réécriture ∃ASP → ASP Conclusion Definition (Modèle) Une interprétation I est un modèle d’une règle R sur V ssi tous les supports non bloqués de R sont vérifiés. I est un modèle d’un programme P ssi I est modèle de tous les faits et règles du programme Example Soit P le programme composé de : R = pere(X,Y) ← homme(Y). F = {homme(toto)} Soit 3 interprétations : I = {homme(toto)} n’est pas modèle I’ = {homme(toto),pere(x0 ,toto)} modèle I” = {homme(toto),pere(x0 ,toto),homme(titi)} modèle Fabien Garreau ∃ASP (Answer Set Programming avec quantificateurs existentiels) 19/32 Sommaire Introduction (problématique) Règles existentielles + ASP Réécriture ∃ASP → ASP Conclusion Definition (∃-Answer Set) Soit P le programme composé de : R = pere(X,Y) ← homme(Y). F = {homme(toto)} I0 = π(F) = {homme(toto)} I1 = {homme(toto),pere(x0 ,toto)} Soit : I’ = {homme(toto),pere(x0 ,toto)} = I1 ∃-Answer Set I” = {homme(toto),pere(x0 ,toto),homme(titi)} 6= I1 Simple modèle Propriété Soit P un programme ∃ASP safe (donc un programme ASP) et I une interprétation, I est un ∃-Answer Set de P ssi I est un Answer Set de P Fabien Garreau ∃ASP (Answer Set Programming avec quantificateurs existentiels) 20/32 Sommaire Introduction (problématique) Règles existentielles + ASP Réécriture ∃ASP → ASP Conclusion Réécriture 1 Introduction (problématique) 2 Règles existentielles + ASP 3 Réécriture ∃ASP → ASP 4 Conclusion Fabien Garreau ∃ASP (Answer Set Programming avec quantificateurs existentiels) 21/32 Sommaire Introduction (problématique) Règles existentielles + ASP Réécriture ∃ASP → ASP Conclusion Définition de la normalisation Normalisation ⇒ Pour traiter les variables existentielles dans un corps négatif et avoir un seul atome dans chaque corps négatif H1 , . . . , Hn ← B1 , . . . , Bm , not(N11 , . . . , Nu11 ), . . . , not(N1s , . . . , Nuss ) est normalisée en l’ensemble de règles H1 , . . . , Hn ← B1 , . . . , Bm , not N1 , . . . , not Ns N1 ← N11 , . . . , Nu11 ... Ns ← N1s , . . . , Nuss avec Nk nouvel atome p(X1 , . . . , Xv ) avec p nouveau symbole de prédicat et X1 , . . . , Xv dans V∀ (r )(N1k , . . . , Nukk ) Fabien Garreau ∃ASP (Answer Set Programming avec quantificateurs existentiels) 22/32 Sommaire Introduction (problématique) Règles existentielles + ASP Réécriture ∃ASP → ASP Conclusion Exemple de la normalisation Example traitement(X,aspirine) ← migraine(X), not(atteint(X,Y), maladie-sang(Y)). est normalisée en traitement(X,aspirine) ← migraine(X), not atteint-maladie-sang(X). atteint-maladie-sang(X) ← atteint(X,Y), maladie-sang(Y). Fabien Garreau ∃ASP (Answer Set Programming avec quantificateurs existentiels) 23/32 Sommaire Introduction (problématique) Règles existentielles + ASP Réécriture ∃ASP → ASP Conclusion Définition de la skolémisation Skolémisation ⇒ Pour traiter les variables existentielles en tête Example pere(X,Y),homme(X) ← homme(Y). est skolémisée en pere(f(Y),Y),homme(f(Y)) ← homme(Y). Fabien Garreau ∃ASP (Answer Set Programming avec quantificateurs existentiels) 24/32 Sommaire Introduction (problématique) Règles existentielles + ASP Réécriture ∃ASP → ASP Conclusion Définition de l’expansion Expansion ⇒ Pour obtenir un seul atome en tête de règle T1 , . . . , Tn ← B1 , . . . , Bm , not N1 , . . . , not Ns est expansée en l’ensemble de règles T1 ← B1 , . . . , Bm , not N1 , . . . , not Ns ... Tn ← B1 , . . . , Bm , not N1 , . . . , not Ns Fabien Garreau ∃ASP (Answer Set Programming avec quantificateurs existentiels) 25/32 Sommaire Introduction (problématique) Règles existentielles + ASP Réécriture ∃ASP → ASP Conclusion Exemple de l’expansion Example pere(X,Y),homme(X) ← homme(Y). est expansée en : pere(f(Y)),Y) ← homme(Y). homme(f(Y)) ← homme(Y). Un programme ∃ASP normalisé, skolémisé et expansé est un programme ASP standard Fabien Garreau ∃ASP (Answer Set Programming avec quantificateurs existentiels) 26/32 Sommaire Introduction (problématique) Règles existentielles + ASP Réécriture ∃ASP → ASP Conclusion Conclusion 1 Introduction (problématique) 2 Règles existentielles + ASP 3 Réécriture ∃ASP → ASP 4 Conclusion Fabien Garreau ∃ASP (Answer Set Programming avec quantificateurs existentiels) 27/32 Sommaire Introduction (problématique) Règles existentielles + ASP Réécriture ∃ASP → ASP Conclusion Comparaison 2 façons d’appréhender l’extension ∃ASP Règles existentielles + non-monotonie Réécriture ASP avec ∃ → ASP Même problème : Indécidable Fabien Garreau ∃ASP (Answer Set Programming avec quantificateurs existentiels) 28/32 Sommaire Introduction (problématique) Règles existentielles + ASP Réécriture ∃ASP → ASP Conclusion Conclusion Example Programme P : R = pere(X,Y),homme(X)←homme(Y). F = {homme(titi)} ∃-Answer Set infini : I = {homme(titi),pere(x0 ,titi),homme(x0 ),pere(x1 ,x0 ),homme(x1 ),...} Fabien Garreau ∃ASP (Answer Set Programming avec quantificateurs existentiels) 29/32 Sommaire Introduction (problématique) Règles existentielles + ASP Réécriture ∃ASP → ASP Conclusion Conclusion But : Identifier des classes décidables En règles existentielles : 3 classes décidables couvrant les DL légères Peut-on retrouver ces 3 classes en ∃ASP ? De nouvelles classes ? Fabien Garreau ∃ASP (Answer Set Programming avec quantificateurs existentiels) 30/32 Sommaire Introduction (problématique) Règles existentielles + ASP Réécriture ∃ASP → ASP Conclusion Conclusion Merci! Fabien Garreau ∃ASP (Answer Set Programming avec quantificateurs existentiels) 31/32 Sommaire Introduction (problématique) Règles existentielles + ASP Réécriture ∃ASP → ASP Conclusion J-F. Baget, M. Leclère, M-L. Mugnier, and E. Salvat. On rules with existential variables: Walking the decidability line. AIJ, 2011. C. Lefèvre and P. Nicolas. A first order forward chaining approach for answer set computing. LPNMR, 2009. R. Reiter. A logic for default reasoning. Artificial Intelligence, 1980. M. Gelfond and V. Lifschitz. The stable model semantics for logic programming. International Conference on Logic Programming, 1988. M. Gelfond and V. Lifschitz. Classical negation in logic programs and disjunctive databases. New Generation Computing, 1991. Fabien Garreau ∃ASP (Answer Set Programming avec quantificateurs existentiels) 32/32