क्या कोई एक या एक से अधिक वेबसाइटों को इंगित कर सकता है, जहां #SAT सॉल्वर का कार्यशील कार्यान्वयन संभव है? मैं उन लोगों में दिलचस्पी रखता हूं जो सटीक समाधान गिनती लौटाते हैं, न कि एक अनुमान।
क्या कोई एक या एक से अधिक वेबसाइटों को इंगित कर सकता है, जहां #SAT सॉल्वर का कार्यशील कार्यान्वयन संभव है? मैं उन लोगों में दिलचस्पी रखता हूं जो सटीक समाधान गिनती लौटाते हैं, न कि एक अनुमान।
जवाबों:
आप SAT4J के साथ कर सकते हैं , बस सभी मॉडलों पर पुनरावृत्ति करके: http://www.sat4j.org/howto.php#models । मैं कल्पना करता हूं कि अधिकांश सैट सॉल्वरों में यह क्षमता है।
एक विकल्प एक BDD लाइब्रेरी का उपयोग करना है, जैसे JavaBDD । ऐसे सभी पुस्तकालयों में या तो एक फ़ंक्शन होता है जो समाधानों को तेजी से गिनता है या कम से कम, वे इस तरह के फ़ंक्शन को लिखना आसान बनाते हैं। हालांकि, नुकसान यह है कि बीडीडी का निर्माण कई मामलों में धीमा होगा और इसमें बहुत अधिक मेमोरी की आवश्यकता हो सकती है।
संबंधित विषय: सर्वश्रेष्ठ सैट सॉल्वर ।
मुझे जो सबसे अच्छा मिला वह है "c2d कंपाइलर"। http://reasoning.cs.ucla.edu/c2d/
यह d-DNNF का उपयोग करता है और आपको -count विकल्प की आवश्यकता होती है।
यहां दिए गए एमबीाउंड सॉल्वर http://www.cs.cornell.edu/~sabhar/ मॉडल काउंट को संभाव्य गारंटी के साथ दे सकते हैं। यह सभी समाधानों की गणना करने की तुलना में बहुत तेज़ है।
मैंने एक छोटा मॉडल / प्राइम इम्प्लिकेंट एन्यूमरेटर लिखा । यह मॉडल गणना के साथ मॉडल की गिनती के लिए पहले से ही इस्तेमाल किया जा सकता है लेकिन यह बहुत व्यावहारिक नहीं है। अगर किसी की दिलचस्पी है, तो मैं इसे आगे बढ़ा सकता हूं, इसलिए यह प्राइम इम्प्लिकेंट्स के मॉडल गिना जाता है।
वेबसाइट BeyondNP में #SAT (और CNF फ़ार्मुलों पर अन्य संबंधित कठिन समस्याओं को हल करने के लिए) मौजूदा उपकरणों की एक अच्छी सूची है। आपको अनुमानित मॉडल की गिनती के लिए औजारों की एक सूची भी मिल सकती है और ज्ञान संकलन के (सीएनएफ को एक उम्मीद के मुताबिक़ डेटा संरचना में बदलने का काम जो अक्सर बहुपद समय मॉडल गिनती का समर्थन करता है)।
आप CNF फ़ार्मुलों को प्रीप्रोसेस करने के लिए उपकरणों की एक सूची भी पा सकते हैं जो मॉडल काउंटर और विभिन्न बेंचमार्क के प्रदर्शन को बेहतर बनाने के लिए उपयोगी हो सकते हैं ।
ग्लूकोज एक बहुत ही कुशल SAT सॉल्वर है जो बॉरदॉ विश्वविद्यालय में विकसित किया गया है।