2015-06-20 11 views
5

मैं जेनेटिक्स एल्गोरिदम के लिए जेनेटिक्स जावा पुस्तकालय का उपयोग शुरू करने की कोशिश कर रहा हूं और कुछ ऐसा है जो मुझे अपने जीए सीमित बैकग्राउड से नहीं समझा जाता है;एक से अधिक क्रोमोसोम प्रति समाधान (या जीनोटाइप) क्यों?

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

पृष्ठ छः the manual, अनुभाग 3.1.3 देखें।

यदि संभव हो तो मैं जानना चाहता हूं कि यह क्यों है। मुझे उम्मीद है कि सवाल काफी स्पष्ट हो गया है।

उत्तर

1

आपने जो वर्णन किया है वह मूल आनुवंशिक एल्गोरिदम में जनसंख्या है। इसे सुधारने के लिए कई तकनीकें हैं, और उनमें से एक अनुकूली कोडिंग है।

आप जिस शब्द को खोज रहे हैं वह अनुकूली कोडिंग तकनीकों के तहत जीन पूल पुनर्मूल्यांकन (संशोधित) है।

जीन पूल पुनर्मूल्यांकन पूरी जनसंख्या पर काम करता है बल्कि एक इकाई और जनसंख्या विकसित करता है। यह एक ही संरचना को रख सकता है या नहीं भी हो सकता है। जीव विज्ञान के नजरिए से इस विचार पर

देखो:

  • प्रकृति में, पहले वहाँ सरल जीवों थे और फिर वे और अधिक जटिल जीवों में विकसित हुआ।

समान प्रेरणा आनुवांशिक एल्गोरिदम के साथ उपयोग की जा सकती है। भिक्षा पर सरल इकाइयां होती हैं जो समय के साथ विकसित हो सकती हैं - दूसरे शब्दों में लंबाई और समाधान की संरचना को स्थिर नहीं होना चाहिए।

GA के लिए सार्वभौमिक जानकारी को एनकोड करने का कोई आसान तरीका नहीं है, इसलिए आपको इसे हर समस्या के लिए विचार करना होगा। आपको जीन पूल पुनर्संरचना, मूल बाइनरी एन्कोडिंग या मूल आनुपातिक चयन की आवश्यकता हो सकती है या नहीं। ये विकल्प बड़े पैमाने पर उस समस्या पर निर्भर हैं जो आप हल करने की कोशिश कर रहे हैं, और एल्गोरिदम द्वारा उठाए गए समाधान/समय की सटीकता स्वीकार्य है।

जीन के वेक्टर का प्रतिनिधित्व करने वाली मूल बाइनरी एन्कोडिंग सरल है लेकिन जीए की नकारात्मक स्थिति है जहां यह निकटतम पड़ोसियों को खोजने में अक्षम है।

उदाहरण निम्नलिखित पर विचार करें:

  • वहाँ समाधान 15 और 16 (01111, 10000) कर रहे हैं इन दो संख्याओं के बीच

  • आलोचनात्मक दूरी 5

है जीए में बदलने के लिए 15 से 16 तक, सभी 5 बिट्स को बदला जाना चाहिए। तो, जीए पड़ोसी असतत संख्याओं के साथ समस्या है। इसे सुधारने का एक तरीका ग्रे कोड का उपयोग करके है जो आपको सभी समाधानों के बीच 1 की दूरी देता है।

+0

तुम्हारा मतलब है कि अचानक एक उम्मीदवार समाधान अधिक जीन हो सकता है? –

+0

हां, पूरी आबादी अधिक जीन के लिए विकसित हो सकती है। – John

2

जनसंख्या में संभावित समाधान (फेनोटीपीस/जीनोटाइप) की "सरणी" एकत्र की जाती है। जीनोटाइप एक संभावित समाधान का प्रतिनिधित्व करता है।जीनोटाइप की द्वि-आयामी संरचना से भ्रमित न हों, इससे आपको अधिक जटिल समस्याओं को मॉडलिंग के लिए अतिरिक्त लचीलापन देना चाहिए। जीनोटाइप अभी भी एक संभावित समाधान और जनसंख्या का एक व्यक्ति का प्रतिनिधित्व करता है।

एक शास्त्रीय द्विआधारी जीए के लिए जीनोटाइप आसानी से बनाया जा सकता है:

Genotype<BitGene> gt = Genotpe.of(BitChromosome.of(15)); 

इसके अलावा, डोमेन मॉडल पर एक नजर है manual में 3.1 आंकड़ा। धारा 6.1 आपको अतिरिक्त एन्कोडिंग उदाहरण देने की कोशिश करता है।

,

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