সাধারণ অপরিবর্তিত গ্রাফগুলিতে হাঙ্গেরীয় অ্যালগরিদমের সাধারণীকরণ?


14

হাঙ্গেরীয় অ্যালগরিদম একটি সমন্বয়মূলক অপ্টিমাইজেশান অ্যালগরিদম যা বহু-কালীন সময়ে সর্বাধিক ওজনের দ্বিপক্ষীয় মিলের সমস্যাটি সমাধান করে এবং গুরুত্বপূর্ণ প্রাথমিক-দ্বৈত পদ্ধতির পরবর্তী উন্নয়নের প্রত্যাশা করে । অ্যালগরিদমটি ১৯৫৫ সালে হ্যারল্ড কুহন দ্বারা বিকাশ ও প্রকাশিত হয়েছিল, যিনি "হাঙ্গেরিয়ান অ্যালগরিদম" নামটি দিয়েছিলেন কারণ আলগোরিদিম দুটি হাঙ্গেরিয়ান গণিতবিদ: ডেনিস কনিগ এবং জেনি এগ্রিভেরির পূর্ববর্তী রচনাগুলির উপর ভিত্তি করে ছিল। মুনক্রেস ১৯৫7 সালে অ্যালগরিদম পর্যালোচনা করে দেখেছেন যে এটি আসলে পলটাইম। সেই থেকে অ্যালগরিদম কুহান-মুনক্রেস অ্যালগরিদম হিসাবেও পরিচিত।

যদিও হাঙ্গেরিয়ান আদিম-দ্বৈত পদ্ধতির প্রাথমিক ধারণাটি ধারণ করে তবে এটি কোনও রৈখিক প্রোগ্রামিং (এলপি) যন্ত্রপাতি ব্যবহার না করেই সর্বোচ্চ ওজন দ্বিপক্ষীয় মিলের সমস্যাটি সরাসরি সমাধান করে। এইভাবে, নীচের প্রশ্নের উত্তরে জুক্কা সুমেলা মন্তব্য করেছিলেন

অবশ্যই আপনি কোনও সাধারণ-উদ্দেশ্যে এলপি সলভার ব্যবহার করে যে কোনও এলপি সমাধান করতে পারেন, তবে বিশেষায়িত অ্যালগরিদমে সাধারণত আরও ভাল পারফরম্যান্স থাকে। [...] আপনি প্রায়শই সঠিক যুক্তিযুক্ত সংখ্যা বনাম ভাসমান পয়েন্ট সংখ্যা ব্যবহার করার মতো বিষয়গুলি এড়াতে পারেন; পূর্ণসংখ্যার সাহায্যে সবকিছু সহজেই করা যায়।

অন্য কথায়, আপনাকে প্রদত্ত দ্বিপক্ষীয় গ্রাফের সর্বাধিক ওজনের নিখুঁত মিলটি ফিরে পেতে এলপি সলভারের থেকে কীভাবে যৌক্তিক / ভাসমান পয়েন্ট সমাধানটি নিয়ে যায় তা নিয়ে আপনাকে চিন্তা করতে হবে না।

আমার প্রশ্নটি নিম্নলিখিত:

হাঙ্গেরীয় অ্যালগরিদমের এমন কোনও সাধারণীকরণ রয়েছে যা এলপি যন্ত্রের ব্যবহার ছাড়াই সাধারণ অচলিত গ্রাফের জন্য কাজ করে যা মূল হাঙ্গেরীয় অ্যালগোরিদমের স্পিরিটের মতো?

আমি কিছু মূল জটিল কাগজের পরিবর্তে আধুনিক এবং সহজেই পঠনযোগ্য সহজে প্রকাশের পছন্দ করব। তবে যে কোনও পয়েন্টারটি খুব প্রশংসিত হবে!

অগ্রিম এবং মেরি ক্রিসমাস অনেক ধন্যবাদ !!!


আপডেট: প্রশ্নের নীচে আরমানের দ্বারা সুন্দরভাবে উত্তর দেওয়া হয়েছে। আমি কেবল এটিই উল্লেখ করতে চাই যে এডমন্ডসের ব্লসম অ্যালগরিদম (ওজনযুক্ত ক্ষেত্রে) অধ্যয়ন করার জন্য আরেকটি চমৎকার উত্স হ'ল কর্ট এবং ভাইজেনের সম্মিলিত অপ্টিমাইজেশনের অধ্যায় 11 । গুগল বইটি আসলে অ্যালগরিদমটি বোঝার জন্য আমার প্রায় সমস্ত অংশ দেখায়।


2
এডমন্ডসের ম্যাচিং অ্যালগরিদম সম্পর্কে কীভাবে? en.wikedia.org/wiki/Edmonds%27s_matching_algorithm
আরমান

1
@ আরমান - আমিও তাই ভাবছিলাম। লিঙ্কটির জন্য ধন্যবাদ, উইকিপিডিয়ায় অ্যাডমন্ডের ব্লসম অ্যালগরিদমের আশ্চর্যজনকভাবে বিশদ বিবরণ রয়েছে।
আব্রাহাম ফ্ল্যাক্সমান

2
যাইহোক, এডমন্ডসের ম্যাচিং অ্যালগরিদমটিও প্রাথমিক-দ্বৈত পদ্ধতির উপর ভিত্তি করে।
আরমান

1
ধন্যবাদ আরমান উইকিপিডিয়া লিঙ্কটি এডমন্ডসের অ্যালগোরিদমের ওজনযুক্ত সংস্করণের জন্য "লোভস্, লাসল্লি; প্লামার, মাইকেল (1986) বইটিও মিশেছে।" ম্যাচিং থিওরি "। আমার সত্যিই সেই বইটি পরীক্ষা করা উচিত। আপনার মন্তব্যের জন্য আপনাকে অনেক ধন্যবাদ! আপনার মধ্যে কেউ যদি উচ্চ স্তরে ব্যাখ্যা করতে পারে যে কীভাবে অ্যালগোরিদম হাঙ্গেরিয়ান অ্যালগরিদমকে সাধারণীকরণ করে, আপনি অবশ্যই এটি একটি উত্তর করতে পারেন।
দাই লে

1
আমি মনে করি এটি যেমন একটি খুব ভাল উত্তর :)। আরমান, আপনার এটি যুক্ত করা উচিত
সুরেশ ভেঙ্কট

উত্তর:


16

এডমন্ডসের ম্যাচিং অ্যালগরিদম (একে ব্লোসম অ্যালগোরিদমও বলা হয়) সাধারণ গ্রাফগুলিতে সর্বাধিক মিলের সমাধান করে। আসলে এটি বিকল্প পাথ পদ্ধতির একটি সাধারণীকরণ। (আমি পদ্ধতির নাম সম্পর্কে নিশ্চিত নই তবে এটি কনিগ-হল পদ্ধতিটি হ'ল) ​​এটি মূলত বর্ধিত পথগুলি খুঁজে পায় (উইকিপিডিয়া পৃষ্ঠা দেখুন: http://en.wikedia.org/wiki/Edmonds%27s_matching_algorithm ) বর্তমানের ম্যাচিং এবং যদি আরও বাড়ানোর কোনও পথ নেই তবে বন্ধ হয়ে যায়। সাধারণ গ্রাফগুলিতে বিজোড় চক্রের মধ্যে একমাত্র সমস্যা দেখা দেয়। এডমন্ডসের মিলে যাওয়া অ্যালগরিদম বিজোড় চক্রটি সংকোচিত হয় (ফুল ফোটে) এবং সমাধান পেতে ব্যয় করে ব্যয় করে।

ব্লসম অ্যালগরিদম এবং প্রাথমিক দ্বৈত পদ্ধতির মধ্যে একটি চিঠিপত্রও রয়েছে। বিজোড় চক্র ভগ্নাংশ চরম পয়েন্ট কারণ। অতএব আমরা প্রতিটি বিজোড় চক্রের জন্য তথাকথিত পুষ্প বৈষম্য যুক্ত করি।

নূন্যতম ওজনযুক্ত নিখুঁত ম্যাচিং এবং সর্বাধিক ওজন মেলানো সমস্যাগুলিও এই পদ্ধতির সাথে পরিচালনা করা যেতে পারে।

অ্যালগরিদমের বিশদগুলির জন্য দেখুন http://en.wikedia.org/wiki/Edmonds%27s_matching_algorithm http://www.cs.berkeley.edu/~karp/greatalgo/lecture05.pdf

গাণিতিক সূত্র এবং সংশ্লিষ্ট আদিম-দ্বৈত পদ্ধতি জন্য, দেখুন http://webdocs.cs.ualberta.ca/~mreza/courses/CombOpt09/lecture4.pdf


9

দু'বছর আগে, (অপ্রকাশিত) ব্লসম অ্যালগরিদম নিয়ে গবেষণা করার সময়, আমি দুটি দুর্দান্ত নোটের সন্ধান পেয়েছি, একটি টার্জনের এবং একটি জুইউকের। তারা অদূরদর্শিত কেসটিকে একেবারে সোজাসাপ্টা মনে হয়েছিল এবং আমি এটি গণিতের ক্ষেত্রে পুনরাবৃত্তি ব্যবহার করে প্রয়োগ করতে সক্ষম হয়েছি। এটি বেশ ভাল কাজ করে।

আমি যে নোটগুলি দরকারী পেয়েছি সেগুলি হ'ল

http://www.cs.tau.ac.il/~zwick/grad-algo-06/match.pdf এবং http://www.cs.dartmouth.edu/~ac/Teach/CS105-Winter05/Handouts/ tarjan-blossom.pdf

তারা এগুলিকে খুব সাধারণ পদগুলিতে ছড়িয়ে দেয় যা একজনকে পুনরাবৃত্তভাবে চিন্তা করতে দেয় এবং তারপরে যেমন উল্লেখ করা হয়েছে, পুনরাবৃত্তির সাথে প্রোগ্রামটি করে।

আমি মনে করি ওজনযুক্ত ক্ষেত্রে এটি সমস্তই কাজ করা উচিত, যা আমি এখন বাস্তবায়নের চেষ্টা করছি।


এবং আমি গণদেবতা যে মুক্ত সফটওয়্যার সহ যে কেউ এটি দেখা যেতে পারে আছে: প্রথম এক শো চমত্কারভাবে পুষ্প .... < demonstrations.wolfram.com/... > < demonstrations.wolfram.com/TheHungarianMaximumMatchingAlgorithm > < demonstrations.wolfram.com/ স্থাপন করা ডোমিনোঅনএচেকারবোর্ড >
স্টান ওয়াগন

এবং আমি সবেমাত্র কোর্ট / ভাইজেনে প্রদত্ত অপ্রকাশিত পুষ্প কর্মসূচী করেছি। আমি দেখতে পেলাম যে তার কোডটিতে বেশ কয়েকটি স্পিডআপ সম্ভব (উদাহরণস্বরূপ, কোনও কিছুর বিপরীতে সর্বাধিক মিলের সাথে শুরু করুন) তবে খুব সুন্দর বিষয় হ'ল তার পদ্ধতিগত কোডটি এমন একটি ফর্মটিতে দেওয়া হয়েছে যা কোনও সহজেই কোডিং কোডটিতে অনুবাদ করতে পারে। পরবর্তী: ওজনযুক্ত পুষ্প, যা অনেক বেশি শক্ত।
স্ট্যান ওয়াগন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.