SAT उदाहरणों में परिवर्तित (गणित) समस्याएं


22

मैं जो करना चाहता हूं वह एक गणित की समस्या है जो मुझे एक बूलियन संतोषजनकता समस्या (एसएटी) में बदल देती है और फिर एसएटी सॉल्वर का उपयोग करके इसे हल करती है। मुझे आश्चर्य है कि अगर कोई मैनुअल, गाइड या कुछ भी जानता है जो मेरी समस्या को SAT उदाहरण में बदलने में मदद करेगा।

इसके अलावा, मैं इसे बेहतर समय के साथ बेहतर तरीके से हल करना चाहता हूं। मुझे उम्मीद है कि एक सैट सॉल्वर मेरी मदद करेगा।


1
सैट के पास कोई कारगर तरीका नहीं है ... लेकिन इन स्लाइड्स
फ़येज़ अब्द्ल्रज्जाक

कृपया यहां भी देखें: cs.stackexchange.com/questions/12135/convert-problem-to-cnf
Dchris

इससे पहले कि आप कुछ और परीक्षण करना चाहें, बस कुछ त्वरित और गंदा समाधान, आप किसी चीज़ का परीक्षण करना चाहते हैं: क्रिप्टोग्लवर । उपकरण का कहना है कि यह क्रिप्टो के लिए केंद्रित है, लेकिन यह चाल करेगा। इसके अलावा, आपके द्वारा उपयोग की जाने वाली भाषा का वाक्यविन्यास बहुत ही अच्छा है, जैसे कि आपको कई समस्याएं नहीं होंगी। स्थापना मुश्किल नहीं है, लेकिन क्वार्टस बड़ा है इसलिए एक कप कॉफी प्राप्त करें।
absinthe_minded

1
संबंधित प्रश्न भी देखें cs.stackexchange.com/q/30790
András Salamon

जवाबों:


20

SAT हैंडबुक के अध्याय 2 (स्टीवन प्रेस्टविच द्वारा) कुछ गहराई में सीएनएफ में असतत निर्णय समस्याओं को चालू करने के लिए कैसे कवर किया गया है। (दुर्भाग्य से, मुझे नहीं लगता कि ऑनलाइन ड्राफ्ट संस्करण है - संभवत: अपने स्थानीय पुस्तकालय से परामर्श करने के लिए सबसे अच्छा।) मैग्नस ब्योर्क के क्वर्की ओवरव्यू में उल्लिखित कई अन्य संदर्भ सफल सैट एन्कोडिंग तकनीक भी उपयोगी हैं।

यदि आपकी समस्याएं निरंतर हैं, या आप विशेष रूप से असमानताओं की प्रणाली में रुचि रखते हैं, तो अन्य प्रकार के सॉल्वर उपयोगी होने की अधिक संभावना है। जैसा कि काइल बताते हैं, एसएमटी सॉल्वर्स (जैसे जेड 3 , यस , या ओपनएसएमटी ) उपयोगी हो सकते हैं, हालांकि परंपरागत रूप से एसएमटी सिद्धांत कंप्यूटर सॉफ्टवेयर के सत्यापन पर ध्यान केंद्रित करते हैं, इसलिए एसएमटी सॉल्वर आमतौर पर पूर्णांक के अंतराल के साथ अभिव्यक्ति के लिए चीजों का बहुत समर्थन करते हैं। , लेकिन इंजेक्शन की कमी पर खराब प्रदर्शन कर सकते हैं। ऐसी समस्याओं के लिए जिन्हें स्वाभाविक रूप से असमानताओं की प्रणाली के रूप में व्यक्त किया जाता है, CPLEX को हरा देने वाला एक है (यह मुफ्त में शैक्षणिक उपयोग के लिए उपलब्ध है, और यह अभी भी हो सकता है)। कुछ दहनशील निर्णय समस्याओं के लिए (जैसे खोजनाआयतों के एक वर्ग में पैक ), बाधा सॉल्वर जैसे मिनियन आउटपरफॉर्म सैट सॉल्वर और अक्सर उपयोग करने में आसान होते हैं।


13

जब तक आप गणितीय समस्याओं को SAT अभ्यासों में सीखने की कवायद के रूप में अनुवादित नहीं करते हैं, तब तक आपका समय संतोषजनक ढंग से काम करने वाले modulo सिद्धांतों के बारे में सीखने में अधिक उपयोगी होगा । एसएमटी आपको बूलियन सैट उदाहरणों की तुलना में स्वाभाविक रूप से समीकरणों और अन्य बाधाओं को व्यक्त करने की अनुमति देगा। कुछ श्रीमती सॉल्वर अस्तित्व और सार्वभौमिक मात्रा का समर्थन करते हैं, जिससे आप एनपी से आगे निकल सकते हैं और पीएसपीएसी समस्याओं को व्यक्त कर सकते हैं।

अधिक अभिव्यंजक होने के अलावा, श्रीमती सॉल्वर तेज हैं। पी = एनपी तेज नहीं है, लेकिन इसमें एक अधिक कुशल एसएमटी सॉल्वर सिद्धांत-विशिष्ट संरचनात्मक जानकारी को नहीं छोड़ता है जो खोज स्थान के माध्यम से सॉल्वर को मार्गदर्शन करने में मदद करता है। एक SAT उदाहरण के लिए सीधे Karp कटौती करना SAT के सॉल्वर को उस सभी संरचना को फिर से तैयार करने के लिए मजबूर करता है, जो अक्सर घातीय लागत पर होता है। उदाहरण के लिए, यह तथ्य कि जोड़-घटाव DPLL- आधारित और स्थानीय खोज आधारित SAT सॉल्वर्स दोनों पर खो गया है; सॉल्वर को इस बात की जानकारी नहीं है कि वह नंबर के साथ काम कर रहा है! X + y + z = 10 के सभी क्रमपरिवर्तन की कोशिश से बचने के लिए एक सैट सॉल्वर को समरूपता-ब्रेकिंग कोड की आवश्यकता होती है, जिसके लिए ग्राफ ऑटोमोरफिज़्म डिटेक्शन की आवश्यकता होती है। सबसे अच्छा वर्तमान ग्राफ ऑटोमोर्फिज्म मान्यता एल्गोरिदम को सबसे खराब स्थिति में कोने की संख्या के लिए समय की आवश्यकता होती है,


2
क्या आप किसी विशिष्ट श्रीमती सॉल्वर का सुझाव देते हैं?
Dchris

5

दो उपकरण जो उच्च स्तरीय भाषाओं को एसएमटी या सीएनएफ में परिवर्तित करते हैं।

CVC सिंटैक्स CAS के करीब है।

CBMC यह एक C कार्यक्रम को CNF में परिवर्तित करता है, जिसमें अभिकथन की अनुमति होती है। दावे या तो हमेशा सत्य होते हैं, या यदि गलत है तो एक प्रतिसाद इनपुट मिलता है। CBMC लूप्स को अनियंत्रित करता है, इसलिए कुछ C कार्यक्रमों में तेजी से बड़े CNF / SMT होते हैं।


ऐसा लगता है कि CBMC एक मनमाना C प्रोग्राम को CNF में परिवर्तित नहीं करता है; यह C प्रोग्राम के आधार पर CNF बनाता है जो पूर्णांक ओवरफ्लो, बफर ओवरफ्लो और इसी तरह के लिए एक स्थैतिक विश्लेषण करता है।
vy32
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.