व्याकरणिक विकास

ग्राम्मीटिकल एवोलुशन (जीई) ऐसी विकासवादी गणना है और विशेष रूप से, जेनेटिक प्रोग्रामिंग (जीपी) तकनीक (या दृष्टिकोण) है जिसे 1998 में लिमरिक विश्वविद्यालय में बीडीएस समूह में कॉनर रयान, जे जे कोलिन्स और माइकल ओ'नील द्वारा प्रारंभ किया गया था।

किसी भी अन्य जीपी दृष्टिकोण के जैसे, उद्देश्य एक्सेक्यूटबल प्रोग्राम, प्रोग्राम फ्रेगमेंट, या फ़ंक्शन परिक्षण है, जो किसी दिए गए उद्देश्य फ़ंक्शन के लिए उत्तम फिटनेस मान प्राप्त करेगा। जीपी पर अधिकांश प्रकाशित कार्यों में, एलआईएसपी-स्टाइल ट्री-संरचित अभिव्यक्ति में सरलता से आदान-प्रदान किया जाता है, जबकि जीई जेनेटिक ऑपरेटरों को पूर्णांक स्ट्रिंग पर प्रारंभ करता है, पश्चात में ग्रामर के उपयोग के माध्यम से प्रोग्राम (या समान) में मैप किया जाता है, जिसे सामान्यतः बैकस-नौर रूप में व्यक्त किया जाता है। जीई के लाभों में से यह है कि यह मैपिंग विभिन्न प्रोग्रामिंग भाषाओं और अन्य संरचनाओं में परिक्षण के अनुप्रयोग को सरल बनाती है।

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

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

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

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

जीई ग्रामर की संरचना करना संभव है जो किसी दिए गए फ़ंक्शन/टर्मिनल सेट के लिए जेनेटिक प्रोग्रामिंग के समान है।

आलोचना
अपनी सफलताओं के अतिरिक्त, जीई कुछ आलोचना का विषय रहा है। विषय यह है कि इसके मैपिंग ऑपरेशन के परिणामस्वरूप, जीई के जेनेटिक ऑपरेटर उच्च स्थानीयता प्राप्त नहीं कर पाते हैं जो विकासवादी एल्गोरिदम में जेनेटिक ऑपरेटरों की उच्च माने जाने वाले गुण है।

वेरिएंट
चूँकि जीई को मूल रूप से विकासवादी एल्गोरिदम, विशेष रूप से, जेनेटिक एल्गोरिदम का उपयोग करने के संदर्भ में वर्णित किया गया था, अन्य प्रकार उपस्थित हैं। उदाहरण के लिए, जीई शोधकर्ताओं ने सामान्य जीई के तुलनीय परिणामों के साथ जेनेटिक एल्गोरिदम के अतिरिक्त शोध करने के लिए पार्टिकल स्वॉर्म अनुकूलन का उपयोग करने का प्रयोग किया है; इसे ग्रामरिक स्वॉर्म कहा जाता है; केवल मूल पीएसओ मॉडल का उपयोग करके यह पाया गया है कि पीएसओ संभवतः जीई में शोध प्रक्रिया को पूर्ण करने में उतना ही सक्षम है जितना कि सरल जेनेटिक एल्गोरिदम हैं। (चूँकि पीएसओ सामान्यतः फ़्लोटिंग-पॉइंट शोध प्रतिमान है, इसे भिन्न किया जा सकता है, उदाहरण के लिए, जीई के साथ उपयोग के लिए प्रत्येक वेक्टर को निकटतम पूर्णांक में गोल करके किया जाता है।)

फिर भी साहित्य में प्रयोग किया गया और संभावित परिवर्तन शोध प्रक्रिया को और अधिक पूर्वाग्रहित करने के लिए ग्रामर में अर्थ संबंधी जानकारी को एनकोड करने का प्रयास है। अन्य कार्यों से ज्ञात होता है कि, डोमेन ज्ञान का लाभ उठाने वाले पक्षपाती ग्रामर के साथ, जीई को चलाने के लिए यादृच्छिक शोध का भी उपयोग किया जा सकता है।

संबंधित कार्य
जीई मूल रूप से रैखिक प्रतिनिधित्व का संयोजन था जैसा कि जेनेटिक एल्गोरिदम फॉर डेवलपिंग सॉफ्टवेयर (जीएडीएस) और बैकस नाउर फॉर्म व्याकरण द्वारा उपयोग किया जाता था, जो मूल रूप से 1995 में वोंग और लेउंग और 1996 में व्हिघम द्वारा ट्री-आधारित जीपी में उपयोग किया गया था। मूल जीई पेपर में उल्लेखित अन्य संबंधित कार्य फ्रेडरिक ग्रुउ का था, जिन्होंने वैचारिक रूप से समान "एम्ब्रियोनिक" दृष्टिकोण का उपयोग किया था, साथ ही केलर और बंजहाफ का भी, जो समान रूप से रैखिक जीनोम का उपयोग करते थे।

कार्यान्वयन
जीई के कई कार्यान्वयन हैं। इनमें निम्नलिखित सम्मिलित हैं:

यह भी देखें

 * जेनेटिक प्रोग्रामिंग
 * जावा ग्रामरिक विकास
 * कार्टेशियन जेनेटिक प्रोग्रामिंग
 * जीन अभिव्यक्ति प्रोग्रामिंग
 * रैखिक जेनेटिक प्रोग्रामिंग
 * मल्टी एक्सप्रेशन प्रोग्रामिंग

संसाधन

 * ग्रामरिक विकास ट्यूटोरियल।
 * जावा में ग्रामरिक विकास।
 * jGE - जावा ग्रामरिक विकास।
 * द बायोकंप्यूटिंग एंड डेवलपमेंटल सिस्टम्स (बीडीएस) ग्रुप यूनिवर्सिटी ऑफ लिमरिक में।
 * माइकल ओ'नील का ग्रामरिक विकास पृष्ठ, ग्रंथ सूची सहित।
 * DRP, निर्देशित रूबी प्रोग्रामिंग, प्रायोगिक प्रणाली है जिसे उपयोगकर्ताओं को हाइब्रिड GE/GP सिस्टम बनाने के लिए डिज़ाइन किया गया है। इसे शुद्ध रूबी में प्रारंभ किया गया है।
 * GERET, ग्रामरिक विकास रूबी खोजपूर्ण टूलकिट।
 * gramEvol, R के लिए ग्रामरिक विकास (प्रोग्रामिंग भाषा)।

श्रेणी:विकासवादी एल्गोरिदम