यादृच्छिक डीएफए उत्पन्न करने के लिए एक अच्छा एल्गोरिथ्म क्या है?


9

मैं उन पर डीएफए कटौती एल्गोरिदम का परीक्षण करने के लिए यादृच्छिक डीएफए उत्पन्न कर रहा हूं।

जो एल्गोरिथ्म मैं अभी उपयोग कर रहा हूं, वह इस प्रकार है: प्रत्येक राज्य , वर्णमाला में प्रत्येक प्रतीक के लिए कुछ यादृच्छिक अवस्था में जोड़ें । प्रत्येक राज्य को अंतिम राज्य बनने की समान संभावना है।qcδ(q,c)

क्या यह निष्पक्ष डीएफए उत्पन्न करने का एक अच्छा तरीका है? इसके अलावा, यह एल्गोरिथ्म एक ट्रिम DFA (कोई अप्रचलित राज्यों के साथ एक DFA) उत्पन्न नहीं करता है, इसलिए मैं सोच रहा हूं कि क्या यादृच्छिक डीएफए उत्पन्न करने का एक बेहतर तरीका है जो किसी तरह यह सुनिश्चित कर सकता है कि यह ट्रिम है?


2
यादृच्छिक डीएफए का कोई प्राकृतिक वितरण नहीं है, इसलिए यह आपके ऊपर है। तुम्हारी क्या हासिल करने की इच्छा है?
युवल फिल्मस

मैं उन पर डीएफए कटौती एल्गोरिदम का परीक्षण करने के लिए यादृच्छिक डीएफए उत्पन्न कर रहा हूं।
डंकन

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

सोच रहा था, क्या आप एक नॉन-टोटल रिडक्शन एल्गोरिथ्म का परीक्षण कर रहे हैं या यह अद्वितीय न्यूनतम इष्टतम डीएफए ढूंढ रहा है?
vnn

2
यदि आप परीक्षण के लिए डेटा संरचना उत्पन्न कर रहे हैं, तो निष्पक्ष होना महत्वपूर्ण नहीं है। दिलचस्प व्यवहार को ट्रिगर करने का एक अच्छा मौका होना महत्वपूर्ण है। एक सादृश्य लेने के लिए, जब आप एक ज्यामितीय एल्गोरिथ्म का परीक्षण करते हैं, तो आपको यह सुनिश्चित करने की आवश्यकता होती है कि आपके कुछ परीक्षणों में तीन बिंदु संरेखित होंगे और अन्य चीजें जो एक यादृच्छिक वितरण में कभी नहीं होंगी।
गिल्स एसओ- बुराई को रोकें '

जवाबों:


6

[1] और धारा ४, रैंडम ऑटोमेटा जनरेशन में चर्चा देखें। कागज अलग DFA न्यूनतम एल्गोरिदम बेंचमार्क। एक समान यादृच्छिक जनरेटर का उपयोग किया जाता है जो राज्यों और प्रतीकों के साथ पूर्ण डीएफए के विहित स्ट्रिंग प्रतिनिधित्व का उत्पादन करता है । वे अन्य तरीकों पर भी चर्चा करते हैं।nk


[१] अल्मेडा, एम।, मोरेरा, एन।, और रीस, आर। (२००))। ऑटोमेटा मिनिमाइजेशन एल्गोरिदम के प्रदर्शन पर। तर्क और एल्गोरिथ्म का सिद्धांत, 3।


"विहित स्ट्रिंग अभ्यावेदन" का क्या अर्थ है?
डंकन

@drowse विहित आदेश राज्यों के सेट पर ऑटोमेटन को एक चौड़ाई में तय करके परिभाषित किया गया है-जिस तरह से प्रत्येक नोड को चुनने के लिए के (कुल) आदेश का उपयोग करके आउटगोइंग । कागज में संदर्भ देखें। Σ
जुहो

4

आपको सिरिल नेकॉड के होमपेज को देखना चाहिए । विशेष रूप से, निम्नलिखित संदर्भ आपके प्रश्न के लिए प्रासंगिक हैं:

एफ। बेसिनो, जे। डेविड और सी। नीकुड, एन्यूमरेशन और रैंडम जेनरेशन ऑफ़ इम्प्लीमेंटेड डिसिप्लिनिस्टिक ऑटोमेटा, प्योर मैथमेटिक्स एंड एप्लीकेशंस 19 (2-3) (2009) 1-16।

एफ। बेसिनो और सी। नेकौड। सुगम्य ऑटोमेटा की गणना और रैंडम जनरेशन। या। अनि। एससी। 381 (2007) 86-104।


3

एक क्रमपरिवर्तन के लिए DFAs को बेतरतीब ढंग से उत्पन्न करने के लिए एल्गोरिदम हैं http://paranthoen.thomas.free.fr/PAPERS/RandDFAToAppearInTCS.ps.gz

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

लेकिन मेरे दृष्टिकोण से, यदि आप अपने कार्यान्वयन की गति का परीक्षण करना चाहते हैं, तो इसके खिलाफ जांच करें कि आप इसका क्या उपयोग करना चाहते हैं: यादृच्छिक शब्द सेट या यादृच्छिक REGEX के साथ, NFA या DFA बनाएं और फिर परिणामी DFA को कम से कम करें ।


2

एक प्राकृतिक रणनीति है कि डीएफए को एक ग्राफ के रूप में माना जाए और फिर कई "प्राकृतिक" और ग्राफ़ के अत्यधिक अध्ययन किए गए यादृच्छिक वितरण हैं, सबसे सरल शायद एर्दोस-रेनी है । उस स्थिति में आप डीएफए के सभी राज्यों को ग्राफ के नोड्स के रूप में मानते हैं और सभी संभावित किनारों (डीएफए संक्रमण) के कुछ निश्चित प्रतिशत को चुना जाता है। अधिक परिष्कृत वितरण जो हाल के युग में बहुत अधिक अध्ययन किए गए हैं वे छोटे विश्व रेखांकन हैं। आपके द्वारा अपने प्रश्न में उल्लिखित रणनीति के लिए, आप जाहिरा तौर पर विशेष मामले चुन रहे हैं जहाँ ग्राफ में नोड्स की संख्या है। हालाँकि, आपकी रणनीति और न ही एर्दो-रेनी, यह गारंटी नहीं देते हैं कि DFA में सभी राज्य जुड़े हुए हैं [जोड़ने के लिए एक प्राकृतिक बाधा]।p=1/nn



संपादित करें, DFA को देखने का एक और तरीका है किनारों को परिभाषित करने वाले त्रिभुजों के एक सेट के रूप में जहां है 1, शीर्ष 2, और संक्रमण का प्रतीक है और इनमें से किसी भी सबसेट को निर्धारित करने के लिए चुना जा सकता है। एक डीएफए। (v1,b,v2)v1v2b
vzn
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.