2011-02-06 15 views
6

क्या जेनेटिक प्रोग्रामिंग वर्तमान में एक प्रकार के खोज एल्गोरिदम को विकसित करने में सक्षम है? उदाहरण के लिए, किसी भी प्रयोग ने क्विकस्टोर्ट से कभी भी कभी भी ब्रेड/म्यूट किया है (http://en.wikipedia.org/wiki/Sorting_algorithm देखें)जेनेटिक प्रोग्रामिंग और सर्च एल्गोरिदम

+0

आप इस प्रश्न पर एक नज़र डालना चाहते हैं कि आनुवांशिक प्रोग्रामिंग क्या कर सकती है या नहीं कर सकती -> http: // stackoverflow।कॉम/प्रश्न/5732 9 17/कोड-पीढ़ी-द्वारा-जेनेटिक-एल्गोरिदम – JohnIdol

उत्तर

1

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

स्थानीय मिनीमा में फंसने के कारण अधिकांश खोज रणनीतियों के लिए अज्ञात समस्या नहीं है।

+0

चार्ली, बस उत्सुक, आप अगली पीढ़ी का प्रजनन कैसे करेंगे? मुझे क्रमबद्ध करने और को एक नया एल्गोरिदम बनाने के लिए सॉर्ट करने के तथ्य को समझने के लिए प्रतीत नहीं होता है। सॉर्टिंग एल्गोरिदम कार्य के लिए अपने पूरे दृष्टिकोण में भिन्न होते हैं, केवल पैरामीटर नहीं जिन्हें आप खेल सकते हैं। – pnt

+1

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

+0

पांडा का एक और अच्छा उदाहरण है: यह दो चीजों के लिए बहुत उपयुक्त है - बांस खाने और प्यारा होना। शांत बांस वन आला दूर जा रहा है, और इसलिए वे लुप्तप्राय हो गए हैं। दूसरी तरफ, यह हो सकता है कि "प्यारा होना" विशेषता है जो निरंतर अस्तित्व को सुनिश्चित करती है। –

2

कोई कारण नहीं है कि जीपी क्यों विकसित नहीं हो सका। या तो एल्गोरिदम का प्रकार। मुझे यकीन नहीं है कि यह वास्तव में एक "में" विकसित करने के बारे में सोचने के लिए समझ में आता है। जीपी बस एक प्रोग्राम विकसित करेगा जो आपके द्वारा परिभाषित फिटनेस फ़ंक्शन के करीब आता है।

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

आप जीपी को उदाहरण के साथ बीज कर सकते हैं क्विकस्टोर्ट और यदि आपके पास उपयुक्त फिटनेस फ़ंक्शन था तो निश्चित रूप से अंततः बबलॉर्ट के साथ आ सकता था - लेकिन यह क्विकस्टोर्ट की तुलना में फिटर जितना भी हो सकता है।

अब कब तक यह इस विकास करने के लिए जीपी इंजन लेता है एक और सवाल ...

3

आप 80 के दशक से डब्ल्यू डैनियल Hillis के काम को देखने के लिए चाहते हो सकता है है। उन्होंने जेनेटिक प्रोग्रामिंग द्वारा सॉर्टिंग नेटवर्क बनाने में काफी समय बिताया। हालांकि वह निरंतर वस्तुओं की संख्या को हल करने की समस्या को हल करने में अधिक रुचि रखते थे (16-ऑब्जेक्ट सॉर्टिंग नेटवर्क लगभग एक दशक तक एक प्रमुख अकादमिक समस्या थीं), यदि आप हैं तो उनके काम से परिचित होना एक अच्छा विचार होगा वास्तव में जेनेटिक सॉर्टिंग एल्गोरिदम में रुचि रखते हैं।

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

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

यह पूछकर कि क्या जीपी एक एल्गोरिदम को दूसरे में विकसित कर सकता है, तो मुझे आश्चर्य है कि क्या आप पूरी तरह से स्पष्ट हैं कि जीपी क्या है। आदर्श रूप में, प्रत्येक अद्वितीय गुणसूत्र एक अद्वितीय प्रकार को परिभाषित करता है। 200 गुणसूत्रों की आबादी 200 अलग-अलग एल्गोरिदम का प्रतिनिधित्व करती है। हां, त्वरित और बबल कहीं कहीं हो सकता है, लेकिन 198 अन्य, संभावित रूप से अज्ञात, विधियां हैं।