मैं यात्रा विक्रेता समस्या से निपटने के लिए आनुवांशिक एल्गोरिदम बना रहा हूं। दुर्भाग्यवश, मैंने चोटियों को मारा जो उनमें से बाहर निकलने से पहले और बेहतर परिणाम प्राप्त करने से पहले एक हजार पीढ़ियों तक बनाए रख सकते हैं। इस मामले में आम तौर पर क्या क्रॉसओवर और उत्परिवर्तन ऑपरेटर अच्छा प्रदर्शन करते हैं?एक टीएसपी समस्या के लिए जीए ऑपरेटरों सुझाए गए?
उत्तर
आप कृपया
"दुर्भाग्य से, मैं चोटियों कि की उन्हें बाहर परिवर्तनशील और बेहतर परिणाम प्राप्त करने से पहले एक हजार से अधिक पीढ़ियों के लिए बनाए रख सकते हैं हिट" स्पष्ट सकते हैं?
आप क्रॉसओवर ऑपरेटरों पर जांच कर सकते हैं, जो सुनिश्चित करते हैं कि आपके बच्चे गुणसूत्रों में कोई दोहराना नोड्स नहीं है। उन क्रॉसओवर ऑपरेटरों का युगल ऑर्डर क्रॉसओवर (ओएक्स) और एज क्रॉसओवर ऑपरेटर हैं।
उत्परिवर्तन एक ही गुणसूत्र में दो पदों को बस स्वैप करने जितना आसान हो सकता है।
बीटीडब्ल्यू, चूंकि आपने "पायथन" टैग किया है, Pyevolve पर एक नज़र डालें, इसमें एक टीएसपी उदाहरण भी है।
आदेशित उत्परिवर्तन और क्रॉस-ओवर का आदेश दिया गया (देखें this article)। मानक उत्परिवर्तन और क्रॉस-ओवर ऑपरेशंस आमतौर पर अमान्य समाधान (यानी रूट में डुप्लिकेट और/या गायब शहरों) का परिणाम होगा।
हाल ही में similar question था।
मेरे पास a Java applet that implements the TSP using ordered cross-over and mutation है, यदि आप अपने कार्यान्वयन के प्रदर्शन की तुलना में रुचि रखते हैं।
यदि आपकी समस्या यह है कि चोटियों में एक हजार से अधिक पीढ़ियों के लिए रहते हैं, तो समस्या क्रॉसओवर और उत्परिवर्तन ऑपरेटरों के साथ नहीं हो सकती है। हो सकता है कि आप अपनी आबादी में पर्याप्त बदलाव न करें या न रखें: मैं क्रॉसओवर, उत्परिवर्तनों और बचे हुए लोगों के अनुपात को एक पीढ़ी से अगले तक जांचता हूं, और संभवतः उत्परिवर्तन के अनुपात को बढ़ाता हूं।
http://stackoverflow.com/questions/1544055/rossover-operation-in- आनुवांशिक- एल्गोरिदम-for-tsp मदद कर सकता है। –