व्याकरणिक विकास
व्याकरणिक विकास (जीई) विकासवादी गणना है और, विशेष रूप से, आनुवंशिक प्रोग्रामिंग (जीपी) तकनीक (या दृष्टिकोण) है जिसे 1998 में कॉनर रयान, जे जे कोलिन्स और माइकल ओ'नील ने शुरू किया था।[1] लिमरिक विश्वविद्यालय में BDS Group पर।
किसी भी अन्य जीपी दृष्टिकोण की तरह, उद्देश्य निष्पादन योग्य प्रोग्राम, प्रोग्राम खंड, या फ़ंक्शन ढूंढना है, जो किसी दिए गए उद्देश्य फ़ंक्शन के लिए अच्छा फिटनेस मूल्य प्राप्त करेगा। जीपी पर अधिकांश प्रकाशित कार्यों में, एलआईएसपी-शैली वृक्ष-संरचित अभिव्यक्ति में सीधे हेरफेर किया जाता है, जबकि जीई आनुवंशिक ऑपरेटरों को पूर्णांक स्ट्रिंग पर लागू करता है, बाद में व्याकरण के उपयोग के माध्यम से प्रोग्राम (या समान) में मैप किया जाता है, जिसे आम तौर पर व्यक्त किया जाता है बैकस-नौर फॉर्म। जीई के लाभों में से यह है कि यह मैपिंग विभिन्न प्रोग्रामिंग भाषाओं और अन्य संरचनाओं में खोज के अनुप्रयोग को सरल बनाती है।
समस्या का समाधान
टाइप-फ्री, पारंपरिक जॉन कोज़ा-शैली जीपी में, फ़ंक्शन सेट को बंद करने की आवश्यकता को पूरा करना होगा: सभी फ़ंक्शन को फ़ंक्शन सेट में अन्य सभी फ़ंक्शन के आउटपुट को अपने तर्क के रूप में स्वीकार करने में सक्षम होना चाहिए। आमतौर पर, इसे ल डेटा-प्रकार जैसे डबल-प्रिसिजन फ़्लोटिंग पॉइंट से निपटकर कार्यान्वित किया जाता है। जबकि आधुनिक जेनेटिक प्रोग्रामिंग फ्रेमवर्क टाइपिंग का समर्थन करते हैं, ऐसे टाइप-सिस्टम की सीमाएँ होती हैं जिनसे व्याकरणिक विकास प्रभावित नहीं होता है।
जीई का समाधान
जीई उपयोगकर्ता-निर्दिष्ट व्याकरण (आमतौर पर बैकुस-नौर फॉर्म में व्याकरण) के अनुसार समाधान विकसित करके ल-प्रकार की सीमा का समाधान प्रदान करता है। इसलिए खोज स्थान को प्रतिबंधित किया जा सकता है, और समस्या के डोमेन ज्ञान को शामिल किया जा सकता है। इस दृष्टिकोण की प्रेरणा जीनोटाइप को फेनोटाइप से अलग करने की इच्छा से आती है: जीपी में, खोज एल्गोरिदम जिन वस्तुओं पर काम करता है और फिटनेस मूल्यांकन फ़ंक्शन जो व्याख्या करता है वह ही है। इसके विपरीत, GE के जीनोटाइप पूर्णांकों की क्रमबद्ध सूचियाँ हैं जो प्रदान किए गए संदर्भ-मुक्त व्याकरण से नियमों का चयन करने के लिए कोड करते हैं। हालाँकि, फेनोटाइप कोज़ा-शैली जीपी के समान है: पेड़ जैसी संरचना जिसका पुनरावर्ती मूल्यांकन किया जाता है। यह मॉडल प्रकृति में आनुवंशिकी कैसे काम करती है, इसके अनुरूप है, जहां किसी जीव के जीनोटाइप और प्रोटीन में फेनोटाइप की अंतिम अभिव्यक्ति आदि के बीच अलगाव होता है।
जीनोटाइप और फेनोटाइप को अलग करने से मॉड्यूलर दृष्टिकोण की अनुमति मिलती है। विशेष रूप से, GE प्रतिमान के खोज भाग को किसी विशेष एल्गोरिदम या विधि द्वारा निष्पादित करने की आवश्यकता नहीं है। ध्यान दें कि जीई जिन वस्तुओं पर खोज करता है वे आनुवंशिक एल्गोरिदम में उपयोग की जाने वाली वस्तुओं के समान हैं। इसका मतलब है, सिद्धांत रूप में, किसी भी मौजूदा आनुवंशिक एल्गोरिदम पैकेज, जैसे कि लोकप्रिय GAlib, का उपयोग खोज को पूरा करने के लिए किया जा सकता है, और जीई सिस्टम को लागू करने वाले डेवलपर की आवश्यकता है केवल पूर्णांकों की सूची से प्रोग्राम ट्री तक मैपिंग करने की चिंता करें। किसी अन्य विधि का उपयोग करके खोज करना सैद्धांतिक रूप से संभव है, जैसे कि कण झुंड अनुकूलन (नीचे टिप्पणी देखें); जीई की मॉड्यूलर प्रकृति हाइब्रिड के लिए कई अवसर पैदा करती है क्योंकि रुचि की समस्या हल हो जाती है।
ब्रैबज़ोन और ओ'नील ने कॉर्पोरेट दिवालियापन की भविष्यवाणी करने, स्टॉक सूचकांकों की भविष्यवाणी करने, बांड क्रेडिट रेटिंग और अन्य वित्तीय अनुप्रयोगों के लिए जीई को सफलतापूर्वक लागू किया है।[citation needed] पारिस्थितिक स्थिरता पर शिकारी दक्षता, विशिष्ट संख्या और यादृच्छिक उत्परिवर्तन जैसे मापदंडों के प्रभाव का पता लगाने के लिए जीई का उपयोग क्लासिक शिकारी-शिकार मॉडल के साथ भी किया गया है।[2] जीई व्याकरण की संरचना करना संभव है जो किसी दिए गए फ़ंक्शन/टर्मिनल सेट के लिए आनुवंशिक प्रोग्रामिंग के बराबर है।
आलोचना
अपनी सफलताओं के बावजूद, GE कुछ आलोचना का विषय रहा है। मुद्दा यह है कि इसके मैपिंग ऑपरेशन के परिणामस्वरूप, जीई के आनुवंशिक ऑपरेटर उच्च स्थानीयता प्राप्त नहीं कर पाते हैं[3][4] जो विकासवादी एल्गोरिदम में आनुवंशिक ऑपरेटरों की उच्च मानी जाने वाली संपत्ति है।[3]
वेरिएंट
हालाँकि GE को मूल रूप से विकासवादी एल्गोरिदम, विशेष रूप से, आनुवंशिक एल्गोरिदम का उपयोग करने के संदर्भ में वर्णित किया गया था, अन्य प्रकार मौजूद हैं। उदाहरण के लिए, जीई शोधकर्ताओं ने सामान्य जीई के तुलनीय परिणामों के साथ आनुवंशिक एल्गोरिदम के बजाय खोज करने के लिए कण झुंड अनुकूलन का उपयोग करने का प्रयोग किया है; इसे व्याकरणिक झुंड कहा जाता है; केवल मूल पीएसओ मॉडल का उपयोग करके यह पाया गया है कि पीएसओ संभवतः जीई में खोज प्रक्रिया को पूरा करने में उतना ही सक्षम है जितना कि सरल आनुवंशिक एल्गोरिदम हैं। (हालांकि पीएसओ आम तौर पर फ़्लोटिंग-पॉइंट खोज प्रतिमान है, इसे अलग किया जा सकता है, उदाहरण के लिए, जीई के साथ उपयोग के लिए प्रत्येक वेक्टर को निकटतम पूर्णांक में गोल करके।)
फिर भी साहित्य में प्रयोग किया गया और संभावित बदलाव खोज प्रक्रिया को और अधिक पूर्वाग्रहित करने के लिए व्याकरण में अर्थ संबंधी जानकारी को एनकोड करने का प्रयास है। अन्य कार्यों से पता चला कि, डोमेन ज्ञान का लाभ उठाने वाले पक्षपाती व्याकरण के साथ, जीई को चलाने के लिए यादृच्छिक खोज का भी उपयोग किया जा सकता है।[5]
संबंधित कार्य
जीई मूल रूप से रैखिक प्रतिनिधित्व का संयोजन था जैसा कि सॉफ्टवेयर विकसित करने के लिए जेनेटिक एल्गोरिदम (जीएडीएस) द्वारा उपयोग किया जाता था।[citation needed] और बैकस नौर फॉर्म व्याकरण, जो मूल रूप से वोंग और लेउंग द्वारा पेड़-आधारित जीपी में उपयोग किए गए थे[6] 1995 में और व्हिघम 1996 में।[7] मूल जीई पेपर में उल्लेखित अन्य संबंधित कार्य फ्रेडरिक ग्रुउ का था,[8] जिन्होंने वैचारिक रूप से केलर और बंजहाफ़ के समान भ्रूणीय दृष्टिकोण का उपयोग किया,[9] जो समान रूप से रैखिक जीनोम का उपयोग करता है।
कार्यान्वयन
GE के कई कार्यान्वयन हैं। इनमें निम्नलिखित शामिल हैं.
Project name | Language | Year | Location |
GELab | Matlab | 2018 | https://github.com/adilraja/GELAB |
PonyGE2 | Python | 2017 | https://arxiv.org/abs/1703.08535 |
gramEvol | R | 2016 | https://cran.r-project.org/web/packages/gramEvol/vignettes/ge-intro.pdf |
PyNeurGen | Python | 2012 | http://pyneurgen.sourceforge.net/ |
Grammatical_ evolution | Ruby | 2011 | http://www.cleveralgorithms.com/nature-inspired/evolution/grammatical_evolution.rb |
AGE | C, Lua | 2011 | http://nohejl.name/age/pdf/AGE-Documentation-1.0.2.pdf |
PonyGE | Python | 2010 | https://code.google.com/archive/p/ponyge/downloads |
GERET | Ruby | 2010 | https://github.com/bver/GERET/ |
GEVA | Java | 2008 | http://ncra.ucd.ie/Site/GEVA.html |
ECJ | Java | 2008 | https://cs.gmu.edu/~eclab/projects/ecj/ |
GENN | C++ | 2007 | https://ritchielab.org/research/past-research/52-grammatical-evolution-neural-networks |
libGE | C++, S-Lang, tinycc | 2004 | http://bds.ul.ie/libGE/ |
यह भी देखें
- आनुवंशिक प्रोग्रामिंग
- जावा व्याकरणिक विकास
- कार्टेशियन आनुवंशिक प्रोग्रामिंग
- जीन अभिव्यक्ति प्रोग्रामिंग
- रैखिक आनुवंशिक प्रोग्रामिंग
- मल्टी ्सप्रेशन प्रोग्रामिंग
टिप्पणियाँ
- ↑ "Grammatical Evolution: Evolving Programs for an Arbitrary Language".
- ↑ Alfonseca, Manuel; Soler Gil, Francisco José (2 January 2015). "व्याकरणिक विकास के साथ गणितीय अभिव्यक्तियों का शिकारी-शिकार पारिस्थितिकी तंत्र विकसित करना". Complexity. 20 (3): 66–83. Bibcode:2015Cmplx..20c..66A. doi:10.1002/cplx.21507. hdl:10486/663611.
- ↑ 3.0 3.1 DOI.org
- ↑ "Publication: Positional Effect of Crossover and Mutation in Grammatical Evolution - School of Computing - University of Kent".
- ↑ O’Sullivan, John; Ryan, Conor (2002), Foster, James A.; Lutton, Evelyne; Miller, Julian; Ryan, Conor (eds.), "An Investigation into the Use of Different Search Strategies with Grammatical Evolution", Genetic Programming, Berlin, Heidelberg: Springer Berlin Heidelberg, vol. 2278, pp. 268–277, doi:10.1007/3-540-45984-7_26, ISBN 978-3-540-43378-1, retrieved 2022-08-08
- ↑ Wong, Man Leung; Leung, Kwong Sak (November 1995). "आनुवंशिक प्रोग्रामिंग में उप-कार्यों को प्रेरित करने के लिए तर्क व्याकरण लागू करना". Proceedings of 1995 IEEE International Conference on Evolutionary Computation. 2: 737–740 vol.2. doi:10.1109/ICEC.1995.487477. ISBN 0-7803-2759-4. S2CID 16071918.
- ↑ Whigham, P. (1996). "खोज पूर्वाग्रह, भाषा पूर्वाग्रह और आनुवंशिक प्रोग्रामिंग". www.semanticscholar.org (in English). S2CID 16631215. Retrieved 2022-08-08.
- ↑ Gruau, Frédéric (1994), Neural Network Synthesis Using Cellular Encoding And The Genetic Algorithm, CiteSeerX 10.1.1.29.5939
- ↑ Kellere, Robert E. (1996). "Genetic Programming Using Mutation, Reproduction and Genotype-phenotype Mapping from Linear Binary Genomes into Linear Lalr(1) Phenotypes Paper Category: Genetic Programming (gp)". www.semanticscholar.org (in English). S2CID 18095204. Retrieved 2022-08-08.
संसाधन
- व्याकरणिक विकास ट्यूटोरियल।
- जावा में व्याकरणिक विकास।
- jGE - जावा व्याकरणिक विकास।
- द बायोकंप्यूटिंग एंड डेवलपमेंटल सिस्टम्स (बीडीएस) ग्रुप यूनिवर्सिटी ऑफ लिमरिक में।
- माइकल ओ'नील का व्याकरणिक विकास पृष्ठ, ग्रंथ सूची सहित।
- DRP, निर्देशित रूबी प्रोग्रामिंग, प्रायोगिक प्रणाली है जिसे उपयोगकर्ताओं को हाइब्रिड GE/GP सिस्टम बनाने के लिए डिज़ाइन किया गया है। इसे शुद्ध रूबी में लागू किया गया है।
- GERET, व्याकरणिक विकास रूबी खोजपूर्ण टूलकिट।
- gramEvol, R के लिए व्याकरणिक विकास (प्रोग्रामिंग भाषा)।
श्रेणी:विकासवादी एल्गोरिदम