मैं वर्तमान में जेनेटिक एल्गोरिदम का एक बहुत ही सरल उदाहरण महसूस करने की कोशिश कर रहा हूं।क्रॉस-ओवर दो पूर्णांक बिटवाई
एक बिंदु पर, आपको "बच्चे" प्राप्त करने के लिए दो नंबर (माता-पिता) के साथ "क्रॉस ओवर" (जीवविज्ञान) करना होगा।
आप क्रॉस-ओवर का एक विवरण यहाँ पा सकते हैं: (। दूसरा चित्रण, आसान "एक बिंदु" क्रॉस-ओवर एक मैं क्या करने की कोशिश कर रहा हूँ है)
How to "crossover" two strings (1234 & abcd -> 12cd & ab34)
गुणसूत्र (माता-पिता और बच्चे) संख्याएं हैं लेकिन "क्रॉस-ओवर" थोड़ा सा ऑपरेशन होगा।
- चाल सही करने के लिए बिट्स एक्स राशि (
>>>
ऑपरेटर) - और उसके बाद फिर X स्थितियां बिट्स के लिए कदम:
मैं "क्रोमोसोम" में से एक के लिए एक समाधान है, जो निम्नलिखित है पाया लेकिन बाएं (
<<
ऑपरेटर) को इस बार
तो यह गुणसूत्रों में से एक के अंत रखने के लिए और 0s के साथ शुरुआत को भरना था।
लेकिन मुझे वास्तव में अन्य गुणसूत्र की समस्या को हल करने का तरीका नहीं पता है और फिर क्रॉस-ओवर भी करते हैं।
(शायद एक XOR एक बार मैं गुणसूत्रों की शुरुआत/अंत रखा और 0 से बाकी भरा।) या मैं भी एक और कोण से इस समस्या को संपर्क करना चाहिए?
आप हमेशा जानते हैं कि कैसे बड़े अपने दो आदानों संख्या के रूप में कर रहे हैं क्या (जैसे, 16-बिट पूर्णांक) ? – David
हां, वे हमेशा 16 बिट पूर्णांक होते हैं। एक चीज जिसे संशोधित किया जा सकता है क्रॉस ओवर का% है। उदाहरण के लिए 75% माता-पिता ए के पहले 4 (25%) बिट्स रखेंगे और फिर उन बी बिट्स का पालन करें जो माता-पिता बी से 12 (75%) बिट्स के साथ होंगे। –