मैंने ट्रैवलिंग सेल्समैन समस्या (टीएसपी) को हल करने के लिए एक जेनेटिक एल्गोरिदम लागू किया है। जब मैं केवल उत्परिवर्तन का उपयोग करता हूं, तो जब मैं क्रॉसओवर में जोड़ता हूं तो मुझे बेहतर समाधान मिलते हैं। मुझे पता है कि सामान्य क्रॉसओवर विधियां टीएसपी के लिए काम नहीं करती हैं, इसलिए मैंने Ordered Crossover और PMX Crossover विधियों दोनों को लागू किया, और दोनों खराब परिणामों से पीड़ित हैं। 1% और 25% के बीच का परीक्षण किया उत्परिवर्तन दर के साथ एकल स्वैप उत्परिवर्तन या उल्टे Subsequence उत्परिवर्तन (as described by Tiendil here):मेरे अनुवांशिक एल्गोरिदम के लिए क्रॉसओवर जोड़ने से मुझे और नतीजे मिलते हैं?
उत्परिवर्तन:
यहाँ अन्य पैरामीटर मैं उपयोग कर रहा हूँ कर रहे हैं।
चयन: रूलेट व्हील चयन
स्वास्थ्य समारोह: दौरे के 1/दूरी
जनसंख्या आकार: GA 5 बार 100 परीक्षण किया गया, 200, 500, मैं भी चलाने के लिए इतना है कि मेरे पास विभिन्न प्रकार की आबादी है।
बंद करो स्थिति: 2500 पीढ़ियों
26 अंक का एक ही डाटासेट के साथ, मैं आमतौर पर उच्च उत्परिवर्तन दर के साथ विशुद्ध रूप से उत्परिवर्तन का उपयोग कर 500-600 के बारे में दूरी के परिणाम मिलता है। क्रॉसओवर जोड़ते समय मेरे परिणाम आमतौर पर 800 दूरी सीमा में होते हैं। दूसरी भ्रमित बात यह है कि मैंने समस्या को हल करने के लिए एक बहुत ही सरल हिल-क्लाइंबिंग एल्गोरिदम लागू किया है और जब मैं उस 1000 गुना (GA 5 बार चलाने से तेज़) चलाता हूं तो मुझे परिणाम 410-450 दूरी मिलते हैं, और मैं उम्मीद करता हूं जीए का उपयोग करके बेहतर परिणाम प्राप्त करने के लिए।
कोई विचार यह है कि जब मैं क्रॉसओवर जोड़ता हूं तो मेरा जीए खराब क्यों होता है? और यह एक साधारण हिल-क्लाइंब एल्गोरिदम की तुलना में बहुत खराब क्यों कर रहा है जो स्थानीय मैक्सिमा पर फंस जाना चाहिए क्योंकि स्थानीय मैक्स मिलने के बाद इसका अन्वेषण करने का कोई तरीका नहीं है?