आंसर सेट प्रोग्रामिंग
उत्तर सेट प्रोग्रामिंग (एएसपी) कठिन (मुख्य रूप से एनपी कठिन ) खोज एल्गोरिदम की ओर उन्मुख घोषणात्मक प्रोग्रामिंग का एक रूप है। यह तर्क प्रोग्रामिंग के स्थिर मॉडल शब्दार्थ (उत्तर सेट) शब्दार्थ पर आधारित है। एएसपी में, स्थिर मॉडल की गणना करने के लिए खोज समस्याओं को कम कर दिया जाता है, और 'आंसर सेट सॉल्वर' - स्थिर मॉडल बनाने के लिए प्रोग्राम - का उपयोग खोज करने के लिए किया जाता है। कई उत्तर सेट सॉल्वरों के डिजाइन में नियोजित कम्प्यूटेशनल प्रक्रिया डीपीएलएल एल्गोरिदम की वृद्धि है और सिद्धांत रूप में, यह हमेशा समाप्त हो जाती है (प्रोलॉग क्वेरी मूल्यांकन के विपरीत, जो अनंत लूप का कारण बन सकता है)।
अधिक सामान्य अर्थ में, एएसपी में ज्ञान प्रतिनिधित्व के उत्तर सेट के सभी अनुप्रयोग शामिल हैं[1][2] और इन अनुप्रयोगों में उत्पन्न होने वाली समस्याओं को हल करने के लिए प्रोलॉग-शैली क्वेरी मूल्यांकन का उपयोग।
इतिहास
उत्तर सेट प्रोग्रामिंग का एक प्रारंभिक उदाहरण 1997 में डिमोपोलोस, नेबेल और कोहलर द्वारा प्रस्तावित स्वचालित योजना और शेड्यूलिंग पद्धति थी।[3][4] उनका दृष्टिकोण योजनाओं और स्थिर मॉडलों के बीच संबंध पर आधारित है।[5] 1998 में सोइनिनेन और नीमेला[6] लागू किया जिसे अब उत्पाद कॉन्फ़िगरेशन की समस्या के लिए उत्तर सेट प्रोग्रामिंग के रूप में जाना जाता है।[4]1999 में, उत्तर सेट प्रोग्रामिंग शब्द पहली बार एक पुस्तक द लॉजिक प्रोग्रामिंग पैराडाइम में दो पत्रों के संग्रह के शीर्षक के रूप में दिखाई दिया।[4]इन पत्रों में से पहले ने एक नए प्रोग्रामिंग प्रतिमान के रूप में खोज के लिए उत्तर सेट सॉल्वरों के उपयोग की पहचान की।[7] उसी वर्ष नीमेला ने एक नए प्रतिमान के रूप में स्थिर मॉडल शब्दार्थ के साथ तर्क कार्यक्रम भी प्रस्तावित किए।[8]
उत्तर सेट प्रोग्रामिंग भाषा AnsProlog
Lparse उस प्रोग्राम का नाम है जिसे मूल रूप से उत्तर सेट सॉल्वर के लिए प्रतीक ग्राउंडिंग टूल (फ्रंट-एंड) के रूप में बनाया गया था [http: //www.tcs.hut.fi/Software/smodels/ smodels]। Lparse जिस भाषा को स्वीकार करता है उसे अब आम तौर पर AnsProlog कहा जाता है,[9] तर्क में उत्तर सेट प्रोग्रामिंग के लिए संक्षिप्त।[10] अब इसे asसैट, [https:/ /potassco.org/क्लैप/ क्लैप], cmodels, gNt , nomore++ और pbmodels। (dlv एक अपवाद है; dlv के लिए लिखे गए एएसपी प्रोग्राम का सिंटैक्स कुछ अलग है।)
AnsProlog प्रोग्राम में फॉर्म के नियम होते हैं
<head> :- <body> .
प्रतीक :-
(अगर) अगर गिरा दिया जाता है <body>
खाली है; ऐसे नियमों को तथ्य कहा जाता है। सबसे सरल प्रकार के Lparse नियम स्थिर मॉडल शब्दार्थ हैं # बाधाओं के साथ कार्यक्रम।
इस भाषा में शामिल एक अन्य उपयोगी निर्माण पसंद है। उदाहरण के लिए, चुनाव नियम
{p,q,r}.
कहते हैं: मनमाने ढंग से परमाणुओं में से चुनें स्थिर मॉडल में शामिल करने के लिए। Lparse प्रोग्राम जिसमें यह पसंद नियम है और कोई अन्य नियम नहीं है, के 8 स्थिर मॉडल हैं - मनमाना उपसमुच्चय . एक स्थिर मॉडल की परिभाषा को पसंद के नियमों वाले कार्यक्रमों के लिए सामान्यीकृत किया गया था।[11] विकल्प नियमों को स्थिर मॉडल सिमेंटिक्स#प्रस्तावात्मक सूत्रों के एक सेट के स्थिर मॉडल के लिए संक्षिप्त रूपों के रूप में भी माना जा सकता है।[12] उदाहरण के लिए, ऊपर दिए गए चुनाव नियम को तीन बहिष्कृत मध्य सूत्रों के संयोजन के लिए आशुलिपि के रूप में देखा जा सकता है:
Lparse की भाषा हमें विवश विकल्प नियम लिखने की भी अनुमति देती है, जैसे कि
1{p,q,r}2.
यह नियम कहता है: कम से कम 1 परमाणु चुनें , लेकिन 2 से अधिक नहीं। स्थिर मॉडल शब्दार्थ के तहत इस नियम का अर्थ प्रस्ताविक सूत्र द्वारा दर्शाया गया है
नियम के शरीर में भी कार्डिनलिटी बाउंड का उपयोग किया जा सकता है, उदाहरण के लिए:
:- 2{p,q,r}.
इस बाधा को Lparse प्रोग्राम में जोड़ने से स्थिर मॉडल समाप्त हो जाते हैं जिनमें कम से कम 2 परमाणु होते हैं . इस नियम का अर्थ प्रस्ताविक सूत्र द्वारा दर्शाया जा सकता है
चर (पूंजीकृत, जैसा कि प्रोलॉग # डेटा प्रकार में है) का उपयोग Lparse में नियमों के संग्रह को संक्षिप्त करने के लिए किया जाता है जो समान पैटर्न का पालन करते हैं, और उसी नियम के भीतर परमाणुओं के संग्रह को संक्षिप्त करने के लिए भी। उदाहरण के लिए, Lparse प्रोग्राम
p(a). p(b). p(c).
q(X) :- p(X), X!=a.
के समान अर्थ है
p(a). p(b). p(c).
q(b). q(c).
कार्यक्रम
p(a). p(b). p(c).
{q(X):-p(X)}2.
के लिए आशुलिपि है
p(a). p(b). p(c).
{q(a), q(b), q(c)}2.
एक श्रेणी का रूप है:
(start..end)
जहां प्रारंभ और अंत निरंतर मूल्यवान अंकगणितीय अभिव्यक्तियां हैं। एक श्रेणी एक नोटेशनल शॉर्टकट है जो मुख्य रूप से संख्यात्मक डोमेन को संगत तरीके से परिभाषित करने के लिए उपयोग किया जाता है। उदाहरण के लिए, तथ्य
a(1..3).
का शॉर्टकट है
a(1). a(2). a(3).
समान शब्दार्थ वाले नियम निकायों में रेंज का भी उपयोग किया जा सकता है।
एक सशर्त शाब्दिक रूप का है:
p(X):q(X)
यदि का विस्तार q
है {q(a1), q(a2), ..., q(aN)}
, उपरोक्त स्थिति शब्दार्थ की दृष्टि से लेखन के समतुल्य है {p(a1), p(a2), ..., p(aN)}
स्थिति के स्थान पर। उदाहरण के लिए,
q(1..2).
a :- 1 {p(X):q(X)}.
के लिए आशुलिपि है
q(1). q(2).
a :- 1 {p(1), p(2)}.
स्थिर मॉडल बनाना
फ़ाइल में संग्रहीत Lparse प्रोग्राम का एक स्थिर मॉडल खोजने के लिए ${filename}
हम कमांड का उपयोग करते हैं
% lparse ${filename} | smodels
विकल्प 0 smodels को कार्यक्रम के सभी स्थिर मॉडलों को खोजने का निर्देश देता है। उदाहरण के लिए, यदि फ़ाइल test
नियम शामिल हैं
1{p,q,r}2.
s :- not p.
तब कमांड आउटपुट उत्पन्न करता है
% lparse test | smodels 0
Answer: 1
Stable Model: q p
Answer: 2
Stable Model: p
Answer: 3
Stable Model: r p
Answer: 4
Stable Model: q s
Answer: 5
Stable Model: r s
Answer: 6
Stable Model: r q s
एएसपी कार्यक्रमों के उदाहरण
ग्राफ रंग
एक -ग्राफ का रंग रंगना (असतत गणित) एक कार्य है ऐसा है कि आसन्न शीर्षों की प्रत्येक जोड़ी के लिए . हम एक खोजने के लिए एएसपी का उपयोग करना चाहेंगे किसी दिए गए ग्राफ का रंग (या निर्धारित करें कि यह अस्तित्व में नहीं है)।
यह निम्न Lparse प्रोग्राम का उपयोग करके पूरा किया जा सकता है:
<वाक्यविन्यास लैंग = प्रोलॉग लाइन = 1> सी (1..एन)। 1 {रंग(एक्स,आई) : सी(आई)} 1:-वी(एक्स).
- - रंग (एक्स, आई), रंग (वाई, आई), ई (एक्स, वाई), सी (आई)।
</वाक्यविन्यास हाइलाइट>
पंक्ति 1 संख्याओं को परिभाषित करती है रंग होना। लाइन 2 में पसंद नियम के अनुसार, एक अनूठा रंग प्रत्येक शीर्ष पर असाइन किया जाना चाहिए . पंक्ति 3 में बाधा एक ही रंग को शीर्ष पर निर्दिष्ट करने पर रोक लगाती है और अगर उन्हें जोड़ने वाला कोई किनारा है।
अगर हम इस फ़ाइल को परिभाषा के साथ जोड़ते हैं , जैसे कि
v(1..100). % 1,...,100 are vertices
e(1,55). % there is an edge from 1 to 55
. . .
और उस पर smodels चलाते हैं, के संख्यात्मक मान के साथ कमांड लाइन पर निर्दिष्ट, फिर फॉर्म के परमाणु smodels के आउटपुट में एक का प्रतिनिधित्व करेगा - का रंग .
इस उदाहरण में प्रोग्राम जनरेट-एंड-टेस्ट संगठन को दिखाता है जो अक्सर साधारण एएसपी प्रोग्राम में पाया जाता है। पसंद नियम संभावित समाधानों के एक सेट का वर्णन करता है - दी गई खोज समस्या के समाधान के सेट का एक सरल सुपरसेट। इसके बाद एक बाधा आती है, जो स्वीकार्य नहीं होने वाले सभी संभावित समाधानों को समाप्त कर देती है। हालांकि, smodels और अन्य उत्तर सेट सॉल्वरों द्वारा नियोजित खोज प्रक्रिया परीक्षण और त्रुटि पर आधारित नहीं है।
बड़ा गिरोह
एक ग्राफ़ में एक क्लिक (ग्राफ़ सिद्धांत) जोड़ीदार आसन्न शीर्षों का एक सेट है। निम्नलिखित Lparse प्रोग्राम आकार का एक समूह पाता है किसी दिए गए ग्राफ़ में, या यह निर्धारित करता है कि यह मौजूद नहीं है:
<वाक्यविन्यास लैंग = प्रोलॉग लाइन = 1> एन {इन (एक्स): वी (एक्स)}।
- - in(X), in(Y), v(X), v(Y), X!=Y, नहीं e(X,Y), नहीं e(Y,X).
</वाक्यविन्यास हाइलाइट>
यह जनरेट-एंड-टेस्ट संगठन का एक और उदाहरण है। लाइन 1 में चुनाव नियम से मिलकर सभी सेट उत्पन्न होते हैं शिखर। लाइन 2 में बाधा उन सेटों को मात देती है जो गुट नहीं हैं।
हैमिल्टनियन चक्र
निर्देशित ग्राफ में एक हैमिल्टनियन चक्र एक पथ (ग्राफ सिद्धांत) है जो ग्राफ के प्रत्येक शीर्ष से ठीक एक बार गुजरता है। यदि यह मौजूद है तो दिए गए निर्देशित ग्राफ में हैमिल्टनियन चक्र को खोजने के लिए निम्नलिखित एलपार्स प्रोग्राम का उपयोग किया जा सकता है; हम मानते हैं कि 0 शीर्षों में से एक है।
<वाक्यविन्यास लैंग = प्रोलॉग लाइन = 1> {इन (एक्स, वाई)} :- ई (एक्स, वाई)।
- - 2 {इन (एक्स, वाई): ई (एक्स, वाई)}, वी (एक्स)।
- - 2 {इन (एक्स, वाई): ई (एक्स, वाई)}, वी (वाई)।
आर(एक्स) :- में(0,एक्स), वी(एक्स). आर(वाई) :- आर(एक्स), में(एक्स,वाई), ई(एक्स,वाई).
- नहीं आर(एक्स), वी(एक्स).
</वाक्यविन्यास हाइलाइट>
लाइन 1 में पसंद नियम किनारों के सेट के सभी सबसेट उत्पन्न करता है। तीन बाधाओं ने उन उपसमुच्चय को हटा दिया जो हैमिल्टनियन चक्र नहीं हैं। उनमें से अंतिम सहायक विधेय का उपयोग करता है ( 0 से पहुंच योग्य है) उन शीर्षों को प्रतिबंधित करने के लिए जो इस शर्त को पूरा नहीं करते हैं। यह विधेय रेखा 6 और 7 में पुनरावर्ती रूप से परिभाषित किया गया है।
यह कार्यक्रम अधिक सामान्य उत्पन्न, परिभाषित और परीक्षण संगठन का एक उदाहरण है: इसमें एक सहायक विधेय की परिभाषा शामिल है जो हमें सभी खराब संभावित समाधानों को खत्म करने में मदद करती है।
निर्भरता पदच्छेद
प्राकृतिक भाषा प्रसंस्करण में, पार्सिंग | निर्भरता-आधारित पार्सिंग को एएसपी समस्या के रूप में तैयार किया जा सकता है।[13] निम्नलिखित कोड विला लिंगुआम लैटिनम डिस्किट में लैटिन वाक्य पुएला पुल्चरा को पार्स करता है, सुंदर लड़की विला में लैटिन सीख रही है। सिंटैक्स ट्री को चाप विधेय द्वारा व्यक्त किया जाता है जो वाक्य के शब्दों के बीच निर्भरता का प्रतिनिधित्व करता है। गणना की गई संरचना एक रैखिक रूप से क्रमबद्ध जड़ वाला पेड़ है।
% ********** input sentence **********
word(1, puella). word(2, pulchra). word(3, in). word(4, villa). word(5, linguam). word(6, latinam). word(7, discit).
% ********** lexicon **********
1{ node(X, attr(pulcher, a, fem, nom, sg));
node(X, attr(pulcher, a, fem, abl, sg)) }1 :- word(X, pulchra).
node(X, attr(latinus, a, fem, acc, sg)) :- word(X, latinam).
1{ node(X, attr(puella, n, fem, nom, sg));
node(X, attr(puella, n, fem, abl, sg)) }1 :- word(X, puella).
1{ node(X, attr(villa, n, fem, nom, sg));
node(X, attr(villa, n, fem, abl, sg)) }1 :- word(X, villa).
node(X, attr(linguam, n, fem, acc, sg)) :- word(X, linguam).
node(X, attr(discere, v, pres, 3, sg)) :- word(X, discit).
node(X, attr(in, p)) :- word(X, in).
% ********** syntactic rules **********
0{ arc(X, Y, subj) }1 :- node(X, attr(_, v, _, 3, sg)), node(Y, attr(_, n, _, nom, sg)).
0{ arc(X, Y, dobj) }1 :- node(X, attr(_, v, _, 3, sg)), node(Y, attr(_, n, _, acc, sg)).
0{ arc(X, Y, attr) }1 :- node(X, attr(_, n, Gender, Case, Number)), node(Y, attr(_, a, Gender, Case, Number)).
0{ arc(X, Y, prep) }1 :- node(X, attr(_, p)), node(Y, attr(_, n, _, abl, _)), X < Y.
0{ arc(X, Y, adv) }1 :- node(X, attr(_, v, _, _, _)), node(Y, attr(_, p)), not leaf(Y).
% ********** guaranteeing the treeness of the graph **********
1{ root(X):node(X, _) }1.
:- arc(X, Z, _), arc(Y, Z, _), X != Y.
:- arc(X, Y, L1), arc(X, Y, L2), L1 != L2.
path(X, Y) :- arc(X, Y, _).
path(X, Z) :- arc(X, Y, _), path(Y, Z).
:- path(X, X).
:- root(X), node(Y, _), X != Y, not path(X, Y).
leaf(X) :- node(X, _), not arc(X, _, _).
भाषा मानकीकरण और एएसपी प्रतियोगिता
एएसपी मानकीकरण कार्यसमूह ने एक मानक भाषा विनिर्देशिका प्रस्तुत की है, जिसे ASP-Core-2 कहा जाता है,[14] जिसकी ओर हाल के ASP सिस्टम संगत हो रहे हैं। ASP-Core-2, जो उत्तर सेट प्रोग्रामिंग प्रतियोगिता के लिए संदर्भ भाषा है, जिसमें ASP सॉल्वर्स को नियमित अंतराल पर संदर्भ समस्याओं के उपरी मानक के साथ मान्यांकित किया जाता है।
कार्यान्वयन की तुलना
प्रारंभिक प्रणालियाँ, जैसे कि स्मॉडेल्स, समाधान खोजने के लिए बैक ट्रैकिंग का उपयोग करती हैं। बूलियन सैट सॉल्वर के सिद्धांत और अभ्यास के विकास के साथ, कई एएसपी सॉल्वर्स सैट सॉल्वर्स के ऊपर बनाए गए, जिनमें आसैटऔर कमॉडेल्स शामिल हैं। इन्होंने एएसपी सूत्र को सैट प्रस्तावों में परिवर्तित किया, सैट सॉल्वर का उपयोग किया, और फिर समाधानों को फिर से एएसपी रूप में परिवर्तित किया। नवीनतम सिस्टम, जैसे क्लैप, एक हाइब्रिड दृष्टिकोण का उपयोग करते हैं, सैट से प्रेरित संघर्ष-निर्धारित एल्गोरिदम का उपयोग करते हैं, जो पूर्ण रूप से बूलियन-तार्किक रूप में परिवर्तन नहीं करते हैं। ये दृष्टिकोणों का उपयोग पहले के बैकट्रैकिंग एल्गोरिदम की तुलना में आदेश के कई गुना तक प्रदर्शन में महत्वपूर्ण सुधारों की अनुमति देते हैं।
पोटास्को परियोजना नीचे दी गई कई प्रणालियों के लिए छत्र के रूप में कार्य करती है, जिसमें क्लैप, ग्राउंडिंग सिस्टम (ग्रिंगो), इंक्रीमेंटल सिस्टम (आईसीलिंगो), कंस्ट्रेंट सॉल्वर (क्लिंगकॉन), एएसपी कंपाइलर्स के लिए क्रिया भाषा (कोआला) ,वितरित एमपीआई कार्यान्वयन (क्लैस्पर), और कई अन्य शामिल हैं।
अधिकांश प्रणालियाँ चर का समर्थन करती हैं, लेकिन केवल अप्रत्यक्ष रूप से ग्राउंडिंग को प्रबल करके, लपर्स या ग्रिंगो जैसे ग्राउंडिंग सिस्टम का उपयोग प्रवेश बिंदु के रूप में करके। ग्राउंडिंग की आवश्यकता क्लॉज की संख्या में एक संयोजक विस्फोट का कारण बन सकती है; इसलिए, ऑन-द-फ्लाई ग्राउंडिंग करने वाले सिस्टम का एक फायदा हो सकता है।[15]
गैलीवास्प सिस्टम जैसे उत्तर सेट प्रोग्रामिंग के क्वेरी-संचालित कार्यान्वयन[16] और एस (सीएएसपी)[17] संकल्प (तर्क) और संयोग के संयोजन का उपयोग करके पूर्णतः ग्राउंडिंग से बचते हैं।
प्लैटफ़ॉर्म | विशेषताएँ | यांत्रिकी | ||||||
---|---|---|---|---|---|---|---|---|
नाम | ओएस | लाइसेंस | चर | फंक्शन के प्रतीक | स्पष्ट सेट | स्पष्ट सूचियाँ | वियोगी (पसंद नियम) समर्थन | |
ASPeRiX | लिनक्स | जीपीएल | Yes | No | ऑन-द-फ्लाई ग्राउंडिंग | |||
ASसैट | सोलारिस | फ्रीवेयर | सैट-सॉल्वर आधारित | |||||
अकवार उत्तर सेट सॉल्वर | लिनक्स, मैकओएस, विंडोज | एमआईटी लाइसेंस | Yes, in Clingo | Yes | No | No | Yes | वृद्धिशील, एसएटी-सॉल्वर प्रेरित (कोई अच्छा नहीं, संघर्ष संचालित) |
Cmodels | लिनक्स, सोलारिस | जीपीएल | Requires grounding | Yes | वृद्धिशील, एसएटी-सॉल्वर प्रेरित (कोई अच्छा नहीं, संघर्ष संचालित) | |||
diff-सैट | लिनक्स, मैकओएस, विंडोज (जावा वर्चुअल मशीन) | एमआईटी लाइसेंस | Requires grounding | Yes | एसएटी-सॉल्वर प्रेरित (कोई अच्छा नहीं, संघर्ष संचालित)। संभाव्य समस्याओं को हल करने और उत्तर सेट नमूनाकरण का समर्थन करता है | |||
DLV | लिनक्स, मैकओएस, विंडोज[18] | अकादमिक और गैर-वाणिज्यिक शैक्षिक उपयोग के लिए और गैर-लाभकारी संगठनों के लिए निःशुल्क[18] | Yes | Yes | No | No | Yes | Lparse संगत नहीं है |
DLV-Complex | लिनक्स, मैकओएस, विंडोज | जीपीएल | Yes | Yes | Yes | Yes | DLV के शीर्ष पर निर्मित — Lparse संगत नहीं | |
GnT | लिनक्स | जीपीएल | Requires grounding | Yes | स्मॉडेल्स के शीर्ष पर बनाया गया | |||
nomore++ | लिनक्स | जीपीएल | संयुक्त शाब्दिक + नियम-आधारित | |||||
Platypus | लिनक्स, सोलारिस, विंडोज | जीपीएल | वितरित, बहु-थ्रेडेड nomore++, smodels | |||||
Pbmodels | लिनक्स | ? | छद्म-बूलियन सॉल्वर आधारित | |||||
Smodels | लिनक्स, मैकओएस, विंडोज | जीपीएल | Requires grounding | No | No | No | No | |
Smodels-cc | लिनक्स | ? | Requires grounding | सैट-सॉल्वर आधारित; मॉडल ऑन/कॉन्फ्लिक्ट क्लॉज | ||||
Sup | लिनक्स | ? | सैट-सॉल्वर आधारित |
यह भी देखें
- डिफ़ॉल्ट तर्क
- तर्क प्रोग्रामिंग
- गैर-मोनोटोनिक तर्क
- प्रोलॉग
- स्थिर मॉडल शब्दार्थ
संदर्भ
- ↑ Baral, Chitta (2003). ज्ञान प्रतिनिधित्व, तर्क और घोषणात्मक समस्या समाधान. Cambridge University Press. ISBN 978-0-521-81802-5.
- ↑ Gelfond, Michael (2008). "Answer sets". In van Harmelen, Frank; Lifschitz, Vladimir; Porter, Bruce (eds.). ज्ञान प्रतिनिधित्व की पुस्तिका. Elsevier. pp. 285–316. ISBN 978-0-08-055702-1. as PDF Archived 2016-03-03 at the Wayback Machine
- ↑ Dimopoulos, Y.; Nebel, B.; Köhler, J. (1997). "Encoding planning problems in non-monotonic logic programs". In Steel, Sam; Alami, Rachid (eds.). Recent Advances in AI Planning: 4th European Conference on Planning, ECP'97, Toulouse, France, September 24–26, 1997, Proceedings. Lecture Notes in Computer Science: Lecture Notes in Artificial Intelligence. Vol. 1348. Springer. pp. 273–285. ISBN 978-3-540-63912-1. as Postscript
- ↑ 4.0 4.1 4.2 Lifschitz, Vladimir (13 July 2008). "What is answer set programming?" (PDF). Proceedings of the 23rd National Conference on Artificial Intelligence. AAAI Press. 3: 1594–1597.
- ↑ Subrahmanian, V.S.; Zaniolo, C. (1995). "Relating stable models and AI planning domains". In Sterling, Leon (ed.). Logic Programming: Proceedings of the Twelfth International Conference on Logic Programming. MIT Press. pp. 233–247. ISBN 978-0-262-69177-2. as Postscript
- ↑ Soininen, T.; Niemelä, I. (1998), Formalizing configuration knowledge using rules with choices (Postscript), Laboratory of Information Processing Science, Helsinki University of Technology
- ↑ Marek, V.; Truszczyński, M. (20 May 1999). "Stable models and an alternative logic programming paradigm". In Apt, Krzysztof R. (ed.). The Logic programming paradigm: a 25-year perspective (PDF). Springer. pp. 169–181. arXiv:cs/9809032. ISBN 978-3-540-65463-6.
- ↑ Niemelä, I. (November 1999). "एक बाधा प्रोग्रामिंग प्रतिमान के रूप में स्थिर मॉडल शब्दार्थ के साथ तर्क कार्यक्रम" (Postscript,gzipped). Annals of Mathematics and Artificial Intelligence. 25 (3/4): 241–273. doi:10.1023/A:1018930122475. S2CID 14465318.
- ↑ Crick, Tom (2009). Superoptimisation: Provably Optimal Code Generation using Answer Set Programming (PDF) (Ph.D.). University of Bath. Docket 20352. Archived from the original (PDF) on 2016-03-04. Retrieved 2011-05-27.
- ↑ Rogelio Davila. "AnsProlog, और सिंहावलोकन" (PowerPoint).
- ↑ Niemelä, I.; Simons, P.; Soinenen, T. (2000). "Stable model semantics of weight constraint rules". In Gelfond, Michael; Leone, Nicole; Pfeifer, Gerald (eds.). Logic Programming and Nonmonotonic Reasoning: 5th International Conference, LPNMR '99, El Paso, Texas, USA, December 2–4, 1999 Proceedings. Lecture Notes in Computer Science: Lecture Notes in Artificial Intelligence. Vol. 1730. Springer. pp. 317–331. ISBN 978-3-540-66749-0. as Postscript
- ↑ Ferraris, P.; Lifschitz, V. (January 2005). "नेस्टेड एक्सप्रेशंस के रूप में वजन की कमी". Theory and Practice of Logic Programming. 5 (1–2): 45–74. arXiv:cs/0312045. doi:10.1017/S1471068403001923. S2CID 5051610. as Postscript
- ↑ "निर्भरता विश्लेषण". Archived from the original on 2015-04-15. Retrieved 2015-04-15.
- ↑ "ASP-Core-2 Input Language Specification" (PDF). Retrieved 14 May 2018.
- ↑ Lefèvre, Claire; Béatrix, Christopher; Stéphan, Igor; Garcia, Laurent (May 2017). "ASPeRiX, उत्तर सेट कंप्यूटिंग के लिए एक प्रथम-क्रम फ़ॉरवर्ड चेनिंग दृष्टिकोण*". Theory and Practice of Logic Programming (in English). 17 (3): 266–310. arXiv:1503.07717. doi:10.1017/S1471068416000569. ISSN 1471-0684. S2CID 2371655.
- ↑ Marple, Kyle.; Gupta, Gopal. (2012). "Galliwasp: A Goal-Directed Answer Set Solver". In Albert, Elvira (ed.). Logic-Based Program Synthesis and Transformation, 22nd International Symposium, LOPSTR 2012, Leuven, Belgium, September 18-20, 2012, Revised Selected Papers. Springer. pp. 122–136.
- ↑ Arias, J.; Carro, M.; Salazar, E.; Marple, K.; Gupta, G. (2018). "ग्राउंडिंग के बिना बाधा उत्तर सेट प्रोग्रामिंग". Theory and Practice of Logic Programming. 18 (3–4): 337–354. doi:10.1017/S1471068418000285. S2CID 13754645.
- ↑ 18.0 18.1 "DLV System company page". DLVSYSTEM s.r.l. Retrieved 16 November 2011.