2012-01-14 21 views
17

में नियमित अभिव्यक्ति को सरल बनाएं मैंने हाल ही में नियमित अभिव्यक्तियों को कुशल बनाने और सरल बनाने के लिए लगभग Kleene algebra पाया।मैथमैटिका

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

यदि आप इस बीजगणित के साथ किसी भी कार्यक्रम से अवगत नहीं हैं, तो क्या आप ऐसे किसी प्रोग्राम को जानते हैं जो अपने इंजन को नए बीजगणित के साथ विस्तारित करने की अनुमति देता है?

+1

गणित दस्तावेज में [स्ट्रिंग पैटर्न के साथ काम करना] पर विस्तृत ट्यूटोरियल शामिल है (http://reference.wolfram.com/mathematica/tutorial/WorkingWithStringPatterns.html)। यह शुरू करने के लिए एक अच्छी जगह हो सकती है। – kglr

+2

@kguler: मैंने पाया है कि सभी दस्तावेज, उस ट्यूटोरियल सहित, केवल मूल स्ट्रिंग मिलान और हेरफेर उद्देश्यों के लिए नियमित अभिव्यक्तियों का उपयोग करने पर विचार करता है। –

+4

क्या आप एक विशिष्ट समस्या का एक उदाहरण जोड़ सकते हैं जिसे आप हल करना चाहते हैं? आवश्यक कार्यक्षमता को चित्रित करने के लिए यह कुछ खिलौना उदाहरण हो सकता है। –

उत्तर

5

http://www.maplesoft.com/msw/program/MSW04FinalProgram.pdf पर, यह कहा गया है:

परिमित ऑटोमेटा के सिद्धांत के बुनियादी परिणामों में से एक प्रसिद्ध क्लीन प्रमेय, जिसमें कहा गया है कि एक भाषा एक परिमित automaton द्वारा स्वीकार्य है यदि और केवल यदि इसे नियमित अभिव्यक्ति द्वारा दर्शाया जा सकता है।

और

नियमित अभिव्यक्ति की एल्गोरिथम उपचार का मुख्य कठिनाई तथापि, उनके सरलीकरण। हालांकि कई पहचान नियमित अभिव्यक्तियों से संबंधित हैं, उदाहरण के लिए, क्लेन बीजगणित के नियम , नियमित अभिव्यक्तियों की सरलीकरण समस्या को हल करने के लिए के लिए एक प्रभावी एल्गोरिदम मौजूद नहीं है।

और

परिस्थितियों में, एक ही रास्ता छोड़ दिया नियमित अभिव्यक्ति को सरल बनाने के लिए अनुमानी एल्गोरिदम विकसित करना है। aut पैकेज के लिए, यह पेपर मेपल प्रक्रियाओं को रेखांकित करता है, रैबर्सब और रेक्सपैंड।

मुझे आश्चर्य है कि क्लेन बीजगणित एल्गोरिदम के खुले स्रोत कार्यान्वयन मौजूद हैं या नहीं।

+1

पर आधारित किसी भी चीज़ में अनंत शब्दों की शर्तों पर संघ की तरह चीजों को बदलने में भी सक्षम हो सकता है। मैंने सोचा कि समूह के लिए Knuth-Bendix जैसे सभी बीजगणित को सरल बनाने के लिए सिस्टम थे, लेकिन अब स्पष्ट रूप से नहीं हैं। यह प्रश्न: http://stackoverflow.com/questions/7540227/strategies-for-simplifying-math-expressions मानक अंकगणितीय और इस पेपर को सरल बनाने के लिए नियम आधारित सिस्टम के बारे में बात करते हैं: http://alleystoughton.us/forlan/book-and -स्लाइड/स्लाइड-3.2-twoup.pdf शुरू करने के लिए बहुत अच्छे नियम देता है। हालांकि मैं अभी भी सोच रहा हूं कि क्या मुझे वास्तव में स्क्रैच से टर्म-रीराइटिंग सिस्टम लिखना है, या ऐसे में हैं जिन्हें मैं प्लग कर सकता हूं। शायद उनमें से कुछ Automated_theorem_prover है? .. –