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

From Vigyanwiki
Revision as of 12:19, 10 July 2023 by alpha>Indicwiki (Created page with "{{Evolutionary algorithms}} व्याकरणिक विकास (जीई) एक विकासवादी गणना है और, विशेष रू...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

व्याकरणिक विकास (जीई) एक विकासवादी गणना है और, विशेष रूप से, एक आनुवंशिक प्रोग्रामिंग (जीपी) तकनीक (या दृष्टिकोण) है जिसे 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/


यह भी देखें

टिप्पणियाँ

  1. "Grammatical Evolution: Evolving Programs for an Arbitrary Language".
  2. 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. 3.0 3.1 DOI.org
  4. "Publication: Positional Effect of Crossover and Mutation in Grammatical Evolution - School of Computing - University of Kent".
  5. 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
  6. 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.
  7. Whigham, P. (1996). "खोज पूर्वाग्रह, भाषा पूर्वाग्रह और आनुवंशिक प्रोग्रामिंग". www.semanticscholar.org (in English). S2CID 16631215. Retrieved 2022-08-08.
  8. Gruau, Frédéric (1994), Neural Network Synthesis Using Cellular Encoding And The Genetic Algorithm, CiteSeerX 10.1.1.29.5939
  9. 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.



संसाधन


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