الگوریتم‌های جورسازی گراف

در مجموعه‌ای از افراد، هر فرد با برخی از افراد دیگر سازگار است، یافتن شرایطی که تحت آن بتوانیم افراد را به صورت جفت سازگار باهم دسته بندی کنیم.بسیاری از کاربردهای گراف‌ها تضمین‌کننده‌ی چنین جفت سازی‌هایی هستند.
تعریف
یک جورسازی در یک گراف بی‌سوی G مجموعه‌ای از یال‌های دو به دو مجزا می‌باشد. راس‌های متعلق به یال‌های یک جورسازی، اشباع شده و سایر راس‌ها اشباع نشده هستند.
اگر یک جورسازی هر راس از G را اشباع کند، آن گاه یک جورسازی تام یا جورسازی کامل است.
انواع جورسازی‌ها
جورسازی بیشینه
برای جستجوی یک جورسازی بزرگ، می‌توانیم به‌طور مکرر یالی مجزا شده از یال‌های بیشتر انتخاب شده، را، درنظر بگیریم.
این روند یک جورسازی ماکسیمال را به دست می‌دهد، اما لزومی ندارد که یک جورسازی بیشینه رابدهد.
یک جورسازی ماکسیمال را نمی‌توان بیشتر نمود، زیرا یال‌های آن با همه یال‌های دیگر متلاقی می‌باشد ولی یک جورسازی بیشینه، یک جورسازی با حداکثر اندازه‌است.
طبق قضیه برژ جورسازی‌های بیشینه هیچ مسیر افزوده‌ای ندارند.
تعریف
اگر GوH گراف‌هایی با مجموعه‌ی راس‌های V باشند، آنگاه تفاضل متقارن GH، گرافی با مجموعه‌ی راس‌های Vاست که یال‌هایش همه یال‌هایی هستند که دقیقادر G یا H ظاهر شوند.بنابراین اگر MوN جورسازی باشند آن گاه داریم:
جورسازی هال
اگر گراف X، گرافMرا اشباع کند، آن گاه برای هر باید حداقل راس وجود داشته باشند که دارای همسایه‌هایی در باشند.قضیه هال ثابت می‌کند که این شرط لازم و کافی است.
جورسازی دوبخشی بیشینه
شکل ۱
مشخص‌سازی مسیر-افزوده برای جورسازی‌های بیشینه به الگوریتم تطابق بیشینه در گراف دوبخشی برای یافتن جورسازی‌های بیشینه می‌انجامد.
جستجوی پیاپی مسیرهای افزوده و افزایش آن به اندازه‌ی یک یال موجب یافتن این مسیر می‌شود که در صورت عدم پیدا کردن یک مسیر افزوده، پوشش راسی با اندازه‌ی جورسازی جاری یافت می‌شود.
جورسازی دوبخشی سریع
زمان اجرای الگوریتم جورسازی دو بخشی را می‌توان با ترتیبی ماهرانه در جستجوی مسیرهای افزوده بهبود بخشید.
درصورتی که مسیرهای افزوده‌ی کوتاه در دسترس باشند، نیاز به جستجوی یال‌های فراوان جهت یافتن یک یال نیست.
بااستفاده از الگوریتم تطابق بیشینه در گراف دوبخشی به‌طور هم زمان از تمام راس‌های اشباع نشده‌ی گراف X، می‌توانیم با یک بررسی مجموعه‌ی یال‌ها مسیرهای فراونی با طول یکسان را بیابیم.
هاپکرافت و کارپ ۱۹۷۵ثابت کرده‌اند که افزوده‌های بعدی باید از مسیرهای طولانی‌تری استفاده کنند، بنابراین جستجوها را می‌توان در فازهایی که مسیرهای با طول یکسان را پیدا می‌کنند، گروه بندی کرد.
به این شکل جورسازی بیشینه در گراف‌های دوبخشی را می‌توان در زمان (O(n 2.5 یافت.
جورسازی پایدار
استفاده از ارجحیت‌ها برای جورسازی راس‌های گراف به جای بهینه ساختن وزن کل آن یک جورسازی پایدار را ایجاد می‌کند.در واقع باید راس‌ها طوری جفت شوند که ترجیعی مبنی بر برهم زدن آن رابطه وجود نداشته باشد.
کاربردها و الگورتیم‌ها
الگوریتم شکوفه ادموندز
الگوریتم مسیر افزوده
شکل ۲
ورودی :
یک گراف دوبخشی G، با افراز از مضاعف Y،X یک جورسازی Mدر G، ومجموعه‌ی U از همه راس‌های M-اشباع نشده در X.
حکم :
مسیرهای M- متناوب را از U جستجو کنید، با فرض اینکه و مجموعه‌ی راس‌هایی باشند که به آن‌ها رسیده‌اید.راس‌هایی از S را که علامت دارند برای بسط مسیرها جستجو کنید. برای هر راس پیش از x را روی یک مسیر M-متناوب از U ثبت کنید.
ارزش دهی آغازی : T= S=U
تکرار :
اگر S دارای هیچ راس علامت‌گذاری شده‌ای نباشد، متوقف شوید و را به عنوان یک پوشش کمینه و M را به عنوان یک جورسازی بیشینه گزارش دهید.در غیر این صورت، یک علامتدار نشده را انتخاب کنید.برای جستجوی x، هر را طوری درنظر بگیرید که .اگر y اشباع نشده باشد، به کار پایان دهید و ازy به عقب جستجو کنید تا یک مسیر M- افزوده را از U به y گزارش نمایید.در غیر این صورت،y با یک به وسیله‌ی M جور می‌شود. در این حالت،y را به T اضافه کنید( از x به آن رسیده‌ایم) و w را به S اضافه نمایید(از y به آن رسیده‌ایم). پس از جستجوی همه چنین یال‌های متصل به x،x را علامتدار کنید و تکرار نمایید.