سؤال

بالنظر إلى الرسم البياني الحطب $ g= (v_1 \ cup v_2، e) $ و set $ v 'في (v_1 \ cup v_2) $ .ما هو تعقيد العثور على أقصى قدر من المطابقة في $ G $ يستخدم فقط $ x $ Span Class="حاوية الرياضيات"> $ v '$ ؟

هل كانت مفيدة؟

المحلول

set $ v_i '= v_i \ cap v' $ . يمكنك حل هذا من خلال العثور على الحد الأقصى للمطابقة باستخدام على الأكثر $ k $ $ v_1 '$ و على الأكثر $ XK $ من $ v_2 '$ لجميع $ k \ in [0، x] $ . يمكن العثور على هذا بدوره مع أقصى تدفق.

للعثور على هذا الحد الأقصى للمطابقة، نقوم بتعديل التخفيض المعتاد في أقصى تدفق. دع $ S $ يكون المصدر و $ T $ الحوض. دع $ L $ و $ r $ تكون قوسا مساعدة. أضف حافة من $ s $ to $ l $ مع السعة $ k $ ، وحافة من $ r $ إلى $ t $ مع السعة $ XK $ . جميع الحواف الأخرى ستحصل على السعة $ 1 $ . إضافة حافة من $ l $ إلى كل $ x \ in v_1 '$ ، ومن $ S $ إلى كل $ x \ in v_1 \ setminus v_1 '$ . إضافة حافة من كل $ y \ in v_2 '$ إلى $ r $ ، ومن كل $ y \ in v_2 \ setminus v_2 '$ إلى $ T $ . ل $ (x، y) \ in e $ ، أضف حافة من $ x $ إلى $ y $ . الآن أقصى تدفق يعطي أقصى قدر من المطابقة باستخدام على الأكثر $ K $ $ v_1 '$ Span Class="حاوية الرياضيات"> $ XK $ في $ v_2 '$ .

يمكننا بالتالي حل المشكلة في $ \ mathcal {o} (x \ cdot m) $ حيث $ m $ هو تعقيد أقصى تدفق. مشاكل التدفق الأقصى متشابهة للغاية، حتى نتمكن من تحسين ذلك.

يمكننا زيادة أو تقليل قدرة أي حافة حسب $ 1 $ مع الحفاظ على أقصى تدفق في $ \ mathcal { o} (| E |) $ . أولا احسب الحد الأقصى للمطابقة باستخدام أي رؤوس في $ v '$ . بعد ذلك، قم بزيادة قدرة الحافة من $ S $ "Math-container"> $ l $ بواسطة $ x $ . ثم في كل خطوة تزيد من قدرة الحافة من $ r $ إلى $ T $ ويقلل من السعة من الحافة من $ S $ إلى $ l $ مع الحفاظ على أقصى تدفق. إخراج أكبر مطابقة المنتجة. التعقيد سيكون $ \ mathcal {o} (| e | \ sqrt {| v |} + x \ cdot | E |) $ إذا نستخدم طعامي للعثور عليه مطابقة الأطباء الأولي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى cs.stackexchange
scroll top