আমি ওভারল্যাপিং চিত্রগুলির "ব্লেন্ডিং" সেটগুলির একটি সমস্যা সমাধান করছি। এই সেটগুলি এই যেমন একটি অপরিবর্তিত ওজনিত গ্রাফ দ্বারা প্রতিনিধিত্ব করা যেতে পারে:
প্রতিটি নোড একটি চিত্র প্রতিনিধিত্ব করে। ওভারল্যাপিং চিত্রগুলি একটি প্রান্ত দ্বারা সংযুক্ত থাকে। প্রান্তের ওজন ওভারল্যাপ ক্ষেত্রের আকারের প্রতিনিধিত্ব করে (আরও বৃহত্তর ওভারল্যাপটি মিশ্রন করা শীঘ্রই আরও ভাল সামগ্রিক মানের দিকে নিয়ে যায় )।
অ্যালগরিদম সাধারণত প্রান্তগুলি সরিয়ে দেয়। এটি ক্রমান্বয়ে বা সমান্তরালভাবে এটি করতে পারে। যাইহোক, যখন মিশ্রণ ঘটে তখন নোডগুলি মিশে যায় এবং গ্রাফের কাঠামো পরিবর্তিত হয়। সুতরাং সংযুক্ত উপাদানগুলিতে কেবল ওভারল্যাপিং না করেই সমান্তরালচনা সম্ভব!
এই ধরনের নন-ওভারল্যাপিং উপাদানগুলি হ'ল ডিবি এবং এফইজি। আমরা সমান্তরালে নিরাপদে এই উপাদানগুলিতে ব্লেন্ডিং অ্যালগরিদম চালাতে পারি। ফলস্বরূপ নিম্নলিখিত গ্রাফটি (মার্জ নোডগুলি সবুজ প্রদর্শিত হবে):
এখন আর কোনও সমান্তরালতা সম্ভব নয় কারণ যে কোনও দুটি সংযুক্ত উপাদান ওভারল্যাপ করে (তাদের মধ্যে সরাসরি একটি কিনারা রয়েছে)।
অ্যালগরিদমের সমান্তরাল সংস্করণটি এর মতো দেখতে পাবেন:
1. Find connected components (no two are connected directly) and create task for each.
2. Run the tasks in parallel.
3. Update graph.
4. Until single node remains, continue with 1.
জটিল অংশটি প্রথম পদক্ষেপ: সংযুক্ত উপাদানগুলির সেরা সেটটি কীভাবে সন্ধান করতে হবে?
একটি উপায় হ'ল একটি লোভী অ্যালগরিদম যা কেবলমাত্র একটি নির্দিষ্ট পুনরাবৃত্তিতে সর্বাধিক সংখ্যক উপাদানকে সন্ধান করে। লোভী অ্যালগরিদম শুরুতে সর্বাধিকতা বাড়িয়ে তুলবে তবে পরে অনেকগুলি পুনরাবৃত্তির জন্য ব্যয় করবে।
সমান্তরালঙ্কন সর্বাধিককরণ এবং একই সময়ে পুনরাবৃত্তির সংখ্যা হ্রাস করার জন্য সর্বোত্তম সমাধানটি প্রতিটি পুনরাবৃত্তিতে সংযুক্ত উপাদানগুলির ভাল পরিমাণে আনতে পারে (সুতরাং অপ্টিমাইজেশনে দুটি পরিবর্তনশীল রয়েছে)।
আমি ব্যাকট্র্যাকিং ব্যতীত অন্য কোনও অপ্টিমাইজেশন অ্যালগরিদম ভাবতে পারি না, অর্থাৎ সমস্ত সম্ভাব্য বিবর্তনের অনুসন্ধান স্থান এবং সর্বাধিক সমান্তরালতার সাথে একটিটি বেছে নিতে পারি।
এজ ওজন উপেক্ষা করা যেতে পারে, তবে অ্যালগোরিদমের উন্নত সংস্করণ এটিকে বিবেচনায় নিতে পারে কারণ বৃহত্তর অঞ্চলগুলি মিশ্রণে আরও বেশি সময় নেয় (উদাহরণস্বরূপ 200 মাপের ক্ষেত্রফলের আকার 100 এর দুটি ক্ষেত্রের তুলনায় প্রায় দ্বিগুণ সময় লাগবে)। অ্যাকাউন্টে ওজন গ্রহণের ফলে উপাদানগুলি (অ্যালগোরিদমের দ্রুত সামগ্রিক চলমান সময়) বাছাই করার ক্ষেত্রে আরও ভাল কৌশল হতে পারে।
সর্বাধিক সমান্তরালতা এবং সর্বনিম্ন সংখ্যার পুনরাবৃত্তির পরিমাণ রয়েছে যাতে গ্রাফের অংশগুলি নির্বাচন করার সর্বোত্তম কৌশলটি খুঁজে পায় এমন অপ্টিমাইজেশন অ্যালগরিদমের জন্য আপনার কি কোনও সূত্র রয়েছে?