আমি একজন শিক্ষার্থী যা একটি কোর্স প্রকল্পের জন্য পিঁপড়া কলোনী সিমুলেটারে কাজ করে। এর জন্য অ্যালগরিদম (স্পষ্টতই) একটি পিঁপড়া কলোনী অ্যালগরিদম। আমি জানি অ্যালগরিদমের বিভিন্ন রূপ রয়েছে তবে সেগুলি আমাদের জন্য খুব গাণিতিকভাবে বিশদ ছিল তাই আমরা একটি পন্থা নিয়েছিলাম যাতে আমাদের রয়েছে:
- একটি পিঁপড়া একটি কলোনীতে জন্মগ্রহণ করে এবং উপনিবেশকে টিকিয়ে রাখতে উত্স থেকে খাদ্য সংগ্রহ করতে হবে।
- সমস্ত পিঁপড়া একই রকম।
- পিঁপড়াটি যে অঞ্চলটিতে চলে সেগুলি 1000x1000 গ্রিড, সুতরাং প্রতিটি গ্রিড পয়েন্ট একটি পিঁপড়া দখল করার জন্য একটি বৈধ পয়েন্ট হিসাবে কাজ করে। এখন, আমি যে সমস্ত অ্যালগরিদমগুলি পেরিয়ে এসেছি সেগুলিতে উল্লম্ব এবং প্রান্তগুলি পৃথকভাবে চিকিত্সা করার সাথে জড়িত তবে আমরা পিঁপড়ার চলাচলকে কেবলমাত্র চার দিকে (উপরে, নীচে, বাম, ডানদিকে) সীমাবদ্ধ রাখছি বলে আমি অনুমান করি যে আমরা ফেরোমোনটি কোথায় রেখেছি তাতে কিছু আসে যায় না।
- উপরে উল্লিখিত গ্রিড পয়েন্টগুলি ফেরোমন সঞ্চয় করে।
- পিঁপড়া যদি কেবল খাদ্য বহন করে তবে ফেরোমন ফোঁটা করে।
- কোন অবস্থানে পিঁপড়ার জন্য (i, j), এটি সিদ্ধান্ত নিয়েছে যে তার চারটি সংলগ্ন নোডের ফেরোমোন পরিমাণকে একটি সাধারণ সম্ভাব্য সূত্রে অ্যাকাউন্টে গ্রহণ করে, যেখানে কোনও নোডে ভ্রমণের সম্ভাবনা দেওয়া হয়েছে তা পরবর্তী পদক্ষেপে কোথায় স্থানান্তরিত হবে (নির্দিষ্ট সংলগ্ন নোডে ফেরোমোন পরিমাণ) / (4 সংলগ্ন নোডে ফেরোমন পরিমাণের যোগফল)।
- একটি পিপীলিকা যে অবস্থান থেকে এসেছিল সেখানে ফিরে যেতে পারে না। এটি কেবল তখনই এটি করতে পারে যদি এটি এমন কোনও সাইটে থাকে যেখানে খাবার থাকে বা এটি তার কলোনীতে থাকে।
এখন আমার উদ্বেগটি হ'ল (এবং আসলে আমাদের প্রোগ্রামে কী ঘটছে) যে যখন কোনও পিঁপড়া FIRST এমন একটি অবস্থানে পৌঁছায় যেখানে খাবার থাকে এবং এটি তুলে নিয়ে যায়, তখন আমাদের অ্যালগরিদম যেভাবে কাজ করে, এটি যে কোনও জায়গায় যেতে পারে! এর কারণ এটি কেবল ফেরোমোন ট্রেইল ছেড়ে যাবে, এটি একবার খাবার খেয়েছে এবং এর আগে নয় এবং এটি প্রথম পিঁপড়ে হিসাবে উপস্থিত থাকার পরে, কোনও ট্রেইল নেই।
পিঁপড়া যদি কোথাও চলে যেতে পারে, পিঁপড়াগুলি খাবারের উত্সে পৌঁছার পরে এটি বেশিরভাগ ক্ষেত্রে অনুসরণ করার ঝোঁকও রাখে .. যদি এটি কলোনির দিকে ফিরে না যায় তবেও। এটি পুরো অ্যালগরিদমের উদ্দেশ্যকে পরাস্ত করে।
আমার প্রশ্ন তাই হয়
- উপরোক্ত উদ্বেগ বৈধ? যদি না হয় তবে কেন? যদি হ্যাঁ, তবে এটি কীভাবে মোকাবেলা করবেন?
- বাস্তবে এটি কার্যকর করার জন্য আমাদের কি অ্যালগরিদম সম্পর্কে আমাদের প্রাথমিক বোঝার কিছু পরিবর্তন করা দরকার?
- এই ক্ষেত্রে আমার মতো নতুন কিছুগুলি মিস করতে পারে এমন আরও কিছু সূক্ষ্ম এখনও গুরুত্বপূর্ণ বিষয়গুলি কী কী?