আমি একটি গ্রাফ-অনুসন্ধান অপ্টিমাইজেশান সমস্যা সমাধান করছি। আমাকে একটি নির্দেশিত ওজনযুক্ত গ্রাফের মাধ্যমে কে সেরা অ্যাসাইক্লিক সংক্ষিপ্ততম পাথগুলি সন্ধান করতে হবে।
আমি জানি যে বেশ কয়েকটি নির্ভুল এবং আনুমানিক কে-বেস্ট অ্যালগরিদম রয়েছে তবে সাম্প্রতিক গবেষণাগুলি বেশিরভাগই খুব বড়, খুব কম সংযোগযুক্ত গ্রাফগুলির (যেমন রাস্তা রাস্তা এবং দিকনির্দেশ) এর দিকে দৃষ্টি নিবদ্ধ করেছে বলে মনে হয় এবং আমার গ্রাফটিও একটি নয়।
আমার সমস্যার বিশিষ্ট দিকগুলি:
গ্রাফটি প্রায় 160 টি উল্লম্ব দ্বারা গঠিত।
গ্রাফটি সম্পূর্ণরূপে সংযুক্ত (দ্বিদ্বারা, তাই ~ 160 ^ 2 ~ = 25 কেজি)
কে বেশ ছোট হবে (সম্ভবত 10 এর কম)
সর্বাধিক পাথের দৈর্ঘ্য সম্ভবত সীমিত এবং খুব ছোট হবে (যেমন 3-5 প্রান্ত)
আমি উপরে 'অ্যাসাইক্লিক' বলেছি, তবে কেবল পুনরাবৃত্তি করতে - সমাধানগুলিতে চক্র অন্তর্ভুক্ত করা উচিত নয়। এটি 1-সেরা সংক্ষিপ্ততম পথের জন্য কোনও সমস্যা নয়, তবে এটি কে-বেস্টের জন্য সমস্যা হয়ে দাঁড়িয়েছে - উদাহরণস্বরূপ, একটি রাস্তা রাউটিং বিবেচনা করুন - এ থেকে বি পর্যন্ত দ্বিতীয়তমতম পথটি 1-সেরা হিসাবে একই হতে পারে, কোথাও একটি ব্লকের চারপাশে দ্রুত ভ্রমণ trip এটি গাণিতিকভাবে অনুকূল হতে পারে তবে খুব কার্যকর সমাধান নয়। ;-)
আমাদের প্রতিটি গণনার জন্য প্রান্তে পুনরায় ওজনের প্রয়োজন হতে পারে। একটি প্রান্ত ব্যয় বেশ কয়েকটি কারণের ওজনযুক্ত সমষ্টি নিয়ে গঠিত হয় এবং চূড়ান্ত প্রয়োজনীয়তাগুলি (যখনই আমরা সেগুলি পাই) কোনও ব্যবহারকারীর সেই ওজনযুক্ত কারণগুলির নিজস্ব অগ্রাধিকার নির্দিষ্ট করে, প্রান্তের ওজনকে পরিবর্তন করতে পারে। এটি তুলনামূলকভাবে একটি ছোট গ্রাফ (আমাদের কয়েকশ কেবিতে এটি উপস্থাপন করতে সক্ষম হওয়া উচিত) সুতরাং গ্রাফটিকে স্মৃতিতে ক্লোন করা, পুনরায় ওজন প্রয়োগ করা এবং ক্লোনযুক্ত গ্রাফটিতে অনুসন্ধান চালানো সম্ভবত যুক্তিসঙ্গত। তবে ফ্লাইটে ওজন গণনার সময় যদি অনুসন্ধানের আরও কার্যকর পদ্ধতি থাকে তবে আমি আগ্রহী।
আমি সান্টোস (কে সবচেয়ে সংক্ষিপ্ত পথের অ্যালগরিদম), এপস্টেস্টিন 1997 (কে সংক্ষিপ্ততম পথগুলি সন্ধান করা) এবং অন্যান্যগুলিতে বর্ণিত অ্যালগরিদমগুলি দেখছি। ইয়েনের অ্যালগরিদম আগ্রহের বিষয়, মূলত বিদ্যমান জাভা প্রয়োগের কারণে । আমি গবেষণামূলক কাগজপত্র পড়তে ভয় পাই না, তবে আমি ভেবেছিলাম এটি আমার সমস্যার বিশদটি ছড়িয়ে দেওয়া এবং কিছু পড়ার সময় বাঁচানোর জন্য পয়েন্টারগুলি জিজ্ঞাসা করা ভাল worth
এবং আপনার যদি জাভা বাস্তবায়নের দিকে পয়েন্টার থাকে তবে আরও ভাল।