2011-10-16 16 views
13

मैंने किताबों के कुछ प्रारंभिक खंडों के साथ-साथ दोनों विषयों पर कुछ कागजात पढ़े हैं और ऐसा लगता है कि इन दो विधियों की तरह बिल्कुल वही है।जेनेटिक एल्गोरिदम और विकास रणनीतियों के बीच अंतर क्या हैं?

यही कहा कि मैं, वास्तव में गहरा अभी तक विषयों पर शोध भी करने के लिए समय नहीं पड़ा है तो मैं गलत हो सकता है।

आनुवंशिक एल्गोरिथम और विकास की रणनीतियों के बीच भेद क्या हैं? उन्हें क्या अलग बनाता है, और वे समान कहां हैं?

उत्तर

19

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

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

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

+2

मुझे लगता है कि इस सवाल का जवाब एक सा बहुत सामान्य है, यह देखते हुए कि मानक और मूल जीए आनुवंशिक प्रतिनिधित्व पूर्णांकों, बल्कि 1s और 0 के एक द्विआधारी बिट श्रृंखला नहीं है। फिटनेस आनुपातिक चयन तक चयन सीमित नहीं है, टूर्नामेंट से बचने के लिए कई अन्य लोग हैं ... भ्रम से बचने के लिए शायद यह अनुमान लगाने के बजाय उत्तर को थोड़ा अलग तरीके से दोहराया जाना चाहिए कि जीए के पास यह होना चाहिए और ... आदि – chutsu

+0

मुझे लगता है यह मतभेदों के लिए एक महान परिचय है। प्रतिनिधित्व को पूर्णांक के सेट को कॉल करने में समस्या क्या है?एक सॉफ्टवेयर स्तर पर यह बिल्कुल ठीक है कि उन्हें एल्गोरिदम द्वारा संसाधित किया जाता है और यह उन्हें जेनेटिक कोड के समान होने के रूप में देखने में मदद करता है। सामान्य सलाह किसी स्ट्रिंग के रूप में प्रतिनिधित्व को संभालने के लिए नहीं है, कम से कम इस तरह मुझे प्रशिक्षित किया गया था। – Adam893

+0

क्या आप एक उदाहरण दे सकते हैं जहां ईएस और जहां जीए आम तौर पर लागू होता है? –

0

मुख्य अंतर यह एक विकास रणनीति वास्तविक संख्या का एक अनुक्रम का उपयोग करता है, जबकि कि एक आनुवंशिक एल्गोरिथ्म एक समाधान पूर्णांकों का एक अनुक्रम का उपयोग का प्रतिनिधित्व करता है हो सकता है, लगता है - संदर्भ: http://en.wikipedia.org/wiki/Evolutionary_algorithm#

0

विकिपीडिया स्रोत के रूप में (http://en.wikipedia.org/wiki/Genetic_algorithm) और @ वॉन काटो ने कहा कि दोनों तकनीकों में अंतर कार्यान्वयन पर निर्भर करता है। ईए वास्तविक संख्याओं और जीए उपयोग पूर्णांक का उपयोग करें।

हालाँकि, व्यवहार में मैं आप अपनी समस्या के निर्माण में और अपने कार्यक्रम में पूर्णांक या वास्तविक संख्या इस्तेमाल कर सकते हैं लगता है। यह आप पर निर्भर करता है। उदाहरण के लिए, प्रोटीन फोल्डिंग के लिए आप कह सकते हैं कि डायहेड्रल कोणों का सेट वेक्टर बनता है। यह वास्तविक संख्याओं का एक वेक्टर है, लेकिन प्रविष्टियां पूर्णांक द्वारा लेबल की गई हैं, इसलिए मुझे लगता है कि आप अपनी समस्या का निर्माण कर सकते हैं और आपको एक पूर्णांक अंकगणितीय पर पर आधारित प्रोग्राम लिख सकते हैं। यह सिर्फ एक विचार है।

2

जीए पर सबसे नए पाठ्यपुस्तकों में, वास्तविक मूल्य कोडिंग पूर्णांक एक के लिए एक विकल्प के रूप में पेश किया जाता है, अर्थात व्यक्तियों वास्तविक संख्या का वैक्टर के रूप में कोडित किया जा सकता है। इसे निरंतर पैरामीटर जीए कहा जाता है (उदाहरण के लिए हौपट & हौपट, "प्रैक्टिकल जेनेटिक एल्गोरिदम", जे। वेली & संस, 1 99 8)। तो यह ईएस वास्तविक संख्या कोडिंग के लिए व्यावहारिक रूप से समान है।

माता पिता चयन के संबंध में

, वहाँ कई विभिन्न रणनीतियों जीए के लिए प्रकाशित कर रहे हैं। मैं उन सभी को नहीं जानता, लेकिन मैं सभी के बीच चयन मानता हूं (न केवल कुछ अनुप्रयोगों के लिए सबसे अच्छा इस्तेमाल किया गया है)।

संबंधित मुद्दे