चींटी कॉलोनी एल्गोरिथ्म


13

मैं एक पाठ्यक्रम परियोजना के लिए चींटी कॉलोनी सिम्युलेटर पर काम करने वाला छात्र हूं। इसके लिए एल्गोरिथ्म (जाहिर है) एक चींटी कॉलोनी एल्गोरिथ्म है। मुझे पता है कि एल्गोरिथ्म के विभिन्न रूप हैं, लेकिन वे सभी गणितीय रूप से हमारे लिए बहुत विस्तृत थे इसलिए हमने एक दृष्टिकोण लिया जिसमें हमारे पास है:

  • एक चींटी एक कॉलोनी में पैदा होती है और उसे कॉलोनी बनाए रखने के लिए एक स्रोत से भोजन इकट्ठा करना चाहिए।
  • सभी चींटियाँ समान हैं।
  • जिस क्षेत्र में चींटी चलती है वह 1000x1000 ग्रिड है, इसलिए प्रत्येक ग्रिड बिंदु एक चींटी के कब्जे के लिए एक वैध बिंदु के रूप में कार्य करता है। अब, सभी एल्गोरिदम जो कि मुझे आये हैं, जिनमें कंधे और किनारों का अलग-अलग उपचार शामिल है, लेकिन जैसा कि हम चींटियों की आवाजाही को केवल चार दिशाओं (ऊपर, नीचे, बाएं, दाएं) तक सीमित कर रहे हैं, मुझे लगता है कि इससे कोई फर्क नहीं पड़ता कि हमने फेरोमोन कहां रखा है।
  • उपर्युक्त ग्रिड बिंदु फेरोमोन को स्टोर करते हैं।
  • एक चींटी फेरोमोन को तभी गिराती है जब वह भोजन ले जा रही हो।
  • एक स्थिति (i, j) पर एक चींटी के लिए, यह तय करता है कि फेरोमोन मात्रा को अपने चार समीपस्थ नोडों पर एक साधारण संभाव्य सूत्र में खाते हुए अगले चरण में कहाँ ले जाया जाए, यानी एक नोड पर यात्रा करने की संभावना द्वारा दी गई है। (विशेष आसन्न नोड पर फेरोमोन राशि) / (4 आसन्न नोड में फेरोमोन मात्रा की राशि)।
  • एक चींटी उस स्थिति में वापस नहीं जा सकती, जहां से वह आई थी। यह केवल तभी कर सकता है जब यह उस साइट पर हो, जिसमें भोजन हो या वह अपनी कॉलोनी में हो।

अब मेरी चिंता यह है (और वास्तव में हमारे कार्यक्रम में क्या हो रहा है) कि जब एक चींटी FIRST स्थिति में पहुँच जाती है जिसमें भोजन होता है और उसे उठाता है, तो जिस तरह से हमारा एल्गोरिथ्म काम करता है, वह कहीं भी स्थानांतरित हो सकता है! ऐसा इसलिए है क्योंकि यह केवल फेरोमोन ट्रेल को छोड़ देगा, एक बार भोजन करने के बाद और पहले नहीं और जैसा कि यह पहला चींटी है, कोई मौजूदा निशान नहीं है।

यदि चींटी कहीं भी जा सकती है, तो चींटियाँ जो भोजन के स्रोत तक पहुँचती हैं, इसके बाद भी ज्यादातर उसी का पालन करती हैं .. EVEN IF यह कॉलोनी की ओर वापस नहीं जा रही है। यह संपूर्ण एल्गोरिथ्म के उद्देश्य को पराजित करता है।

तो मेरे सवाल हैं

  • क्या उपरोक्त चिंता वैध है? यदि नहीं, तो क्यों? यदि हाँ, तो इससे कैसे निपटा जाए?
  • क्या हमें एल्गोरिथ्म के बारे में अपनी बुनियादी समझ में कुछ बदलाव करने की ज़रूरत है ताकि वास्तव में यह काम कर सके?
  • क्या कुछ अन्य सूक्ष्म अभी तक महत्वपूर्ण चीजें हैं जो मेरे जैसे नए शौक इस मामले में याद कर सकते हैं?

1
यदि मैं एक चींटी कॉलोनी का निर्माण कर रहा था, तो मुझे दो प्रकार के फेरोमोन निशान होंगे: "नियमित", हमेशा एक चींटी यात्रा करती है, और "भोजन", केवल एक चींटी ले जाने वाले भोजन द्वारा छोड़ दिया जाता है। यदि भोजन ले जा रहा है, तो एक चींटी "नियमित" फेरोमोन की अधिक एकाग्रता की ओर बढ़ती है, अन्यथा "भोजन" के निशान की ओर। इसके अलावा, मैं चींटियों को "भूखा" और "sated" बनाऊंगा; एक भूखा चींटी नए भोजन स्रोतों की खोज करने के लिए "भोजन" के निशान की ओर लेकिन "नियमित" निशान से दूर जाती है। (मैं ग्रिड षट्भुज भी बनाऊंगा, लेकिन यह बात नहीं है।)
9000

जबकि कई भिन्नताएं हैं, मुझे लगता है कि ज्यादातर चींटी कॉलोनी एल्गोरिदम मानती हैं कि चींटी अपने घर वापस आने के तरीके को याद कर सकती है। IOW, यह उन नोड्स को जानता है जो पहले से ही गए थे। बेतरतीब ढंग से यात्रा करने वाली चींटियों के लिए फेरोमोन का खेल चल रहा है।
डंक

कभी सिमेंट खेलते हैं ?

"मुझे पता है कि एल्गोरिथ्म के विभिन्न रूप हैं, लेकिन वे सभी गणितीय रूप से हमारे लिए बहुत विस्तृत थे इसलिए हमने एक दृष्टिकोण लिया, जिसमें हमारे पास है ..." क्या आपको यकीन है कि आप वास्तव में असाइनमेंट कर रहे हैं यदि आप नहीं कर सकते थे तो ' टी एल्गोरिदम को समझते हैं?
डोभाल

@ डोभाल: हमें बस अपनी पसंद का प्रोजेक्ट करना है। हम किसी भी तरह से एक क्षेत्र के लिए विवश नहीं थे। पाठ्यक्रम C ++ में एक परिचयात्मक है। हमारे प्रशिक्षक चाहते हैं कि हमें सॉफ्टवेयर देव में अनुभव हो।
ट्रांजिस्टर

जवाबों:


6

यह एसीओ कैसे काम करता है। एसीओ ग्रिड में सभी बिंदुओं पर चींटियों को स्थानांतरित करने के बाद ही फेरोमोन को गिराता है। आप तब कुछ का मूल्यांकन करते हैं (शायद कुल यात्रा का समय) और फिर अच्छी चींटियों के लिए फेरोमोन को गिराएं, और दोहराएं।

वे एक ही शिखर पर दो बार नहीं जाते हैं, आम तौर पर, हालांकि आप इसे कार्यान्वयन विशिष्टता के लिए अनुकूलित कर सकते हैं।

फेरोमोन प्रत्येक चाल को नहीं गिराते हैं, वे हर जगह चले जाने के बाद गिर जाते हैं और यह निर्धारित करने के लिए कुछ का मूल्यांकन किया जाता है कि कौन सी चींटियाँ बेहतर हैं। चींटियां जो बेहतर हैं, फिर फेरोमोन (शायद सबसे अच्छा 25% प्रदर्शन करने वाली चींटियों) को छोड़ दें।


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

1

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

आमतौर पर, किसी दिए गए नोड में कदम रखने के चींटी की बाधाओं को फेरोमोन की मात्रा से मापा जाता है जो "अच्छाई" के कुछ उपाय है। उदाहरण के लिए, अच्छाई का माप चींटी और भोजन के बीच की दूरी के व्युत्क्रम जैसा कुछ हो सकता है - यह चींटियों को भोजन की ओर बढ़ने की कोशिश करता रहेगा, भले ही पिछले फेरोमोन जमा की परवाह किए बिना। अन्य कारकों के कारण अच्छाई को और अधिक भारित किया जा सकता है, जैसे कि कुछ नोड्स दूसरों की तुलना में यात्रा करना आसान हो सकता है। और जैसा कि एंडरलैंड बताते हैं, आम तौर पर पथ "चयन" का कुछ रूप होता है एक बार सभी चींटियों ने सफलतापूर्वक अपने पाठ्यक्रम चलाए हैं, जहां फेरोमोन जमा के लिए "सर्वश्रेष्ठ" पथ का केवल कुछ हिस्सा चुना जाता है। हालाँकि, आपको अभी भी चयन के बिना उचित रास्ते मिलने चाहिए,

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.