التطابق في الرسوم البيانية ثنائية الأجزاء
\Does هل يحتوي الرسم البياني (graph) أدناه على تطابق (matching)؟ فإن كان كذلك، فأوجد واحدًا.
وليست كلُّ الرسوم البيانية ثنائية الأجزاء لها تطابقات. ارسم أكبر عددٍ من الأمثلة المختلفة جوهريًّا للرسوم البيانية ثنائية الأجزاء التي لا تملك تطابقات. والهدف أن تجد جميع الموانع الممكنة لوجود تطابقٍ تامّ (perfect matching) في رسمٍ بياني. اكتب الشروطَ اللازمة (necessary) لوجود تطابق في رسمٍ بياني (أي: املأ الفراغ: إذا كان في رسمٍ بياني تطابق، فإنّ ). ثمّ اسأل نفسك: هل هذه الشروط كافية (sufficient)؟ (هل صحيح أنّه إذا فإنّ في الرسم تطابق؟).
ونختم بمثالٍ آخر على مسألةٍ في نظرية الرسوم البيانية (graph theory) لتوضيح تنوّع هذا الموضوع واتّساعه.
لنفترض أنّ لديك رسمًا بيانيًا ثنائيّ الأجزاء سيتألّف هذا من مجموعتين من الرؤوس و، مع بعض الحوافّ التي تصل بعض رؤوس ببعض رؤوس (لكنّ بالطبع لا توجد حوافّ بين رأسين كلاهما في أو كلاهما في ). وتطابقُ هو مجموعةٌ جزئية من الحوافّ بحيث إنّ كلَّ رأسٍ في ينتمي إلى حافةٍ واحدةٍ بالضبط من المجموعة الجزئية، ولا ينتمي أيُّ رأسٍ في إلى أكثر من حافةٍ واحدة في المجموعة الجزئية. وفي التطبيق سنفترض أنّ (أي أنّ للمجموعتين العدد نفسه من الرؤوس)، وهذا يعني أنّ كلَّ رأسٍ في الرسم ينتمي إلى حافةٍ واحدةٍ بالضبط في التطابق. 11 وما نسمّيه تطابقًا يسمّيه أحيانًا آخر تطابقًا تامًّا أو كاملًا (complete matching). وذلك لأنّه من المثير للاهتمام النظر في التطابقات غير التامّة أيضًا. وسنسمّي تلك تطابقاتٍ جزئية (partial matching).
وقد يساعدك بعضُ السياق في فهم هذا الأمر بسهولة. تخيَّل أنّ الرؤوس في تمثّل طلبةً في صفٍّ، وأنّ الرؤوس في تمثّل مواضيعَ عروضٍ تقديمية. ونضع حافةً من رأس إلى رأس إذا أراد الطالب أن يقدّم عرضًا عن الموضوع وبالطبع يريد بعضُ الطلبة تقديمَ أكثر من موضوع، لذا يكون رأسُه ذا درجةٍ أكبر من 1. وأنت المعلّم، تريد أن تُسند إلى كلّ طالبٍ موضوعَه الفريدَ الخاصّ به. ومن ثمّ تريد إيجادَ تطابقٍ لـ تختار مجموعةً جزئيةً من الحوافّ بحيث يُطابَق كلُّ طالبٍ مع موضوعٍ واحدٍ بالضبط، ولا يُطابَق موضوعٌ مع طالبَين. 12 وكان المثالُ المعياريّ للتطابقات هو مسألةَ الزواج (marriage problem) التي كانت فيها تمثّل رجالَ البلدة، و نساءَها، وتمثّل الحافةُ زواجًا مقبولًا للطرفين. وكان التطابقُ يمثّل طريقةً لمشايخ البلدة أن يزوجوا كلَّ أهل البلدة، من غير أن يُسمح بتعدّد الزوجات. وقد اخترنا سياقًا أكثر حداثةً تبعًا للاعتبارات السياسية.
السؤال هو: متى يحتوي رسمٌ بيانيّ ثنائيّ الأجزاء على تطابقٍ لـ ولنبدأ بالإجابة عن هذا السؤال، فكّر فيما قد يمنع الرسمَ من احتواء تطابق. وهذا لن يخبرنا بالضرورة بشرطٍ في الحالة التي يحتوي فيها الرسمُ فعلًا على تطابق، لكنّه على الأقلّ بداية.
إحدى الطرق التي قد لا يملك على أساسها تطابقًا هي أن يوجد رأسٌ في غير مجاورٍ لأيّ رأسٍ في (أي أنّ درجته 0). وماذا غير ذلك؟ وماذا لو أحبّ طالبان الموضوعَ نفسه ولا يحبّان سواه؟ فإنّ بعد إسناد ذلك الموضوع الواحد إلى الطالب الأول لا يبقى للطالب الثاني ما يحبّه، فيصبح الأمر كما لو أنّ الطالب الثاني درجته 0. أو ماذا لو أحبّ ثلاثةُ طلبةٍ موضوعَين اثنين فقط بينهم؟ وبدوره، بعد إسناد موضوعٍ إلى طالبٍ واحد، نرجع إلى الحالة السابقة وهي حالة طالبَين يحبّان موضوعًا واحدًا فقط. ويمكننا المتابعة على هذا المنوال مع طلبةٍ أكثر فأكثر.
وينبغي أن يكون واضحًا في هذه المرحلة أنّه إذا كانت هناك مجموعةٌ من طالبًا يحبّون كمجموعةٍ موضوعًا أو أقلّ، فإنّ التطابقَ مستحيل. وهذا صحيحٌ لأيّ قيمةٍ لـ وأيّ مجموعةٍ من طالبًا.
ولجعل هذا الكلام أقرب إلى لغة الرسوم البيانية، لنفترض أنّ لديك مجموعةَ رؤوسٍ . عرّف على أنّها مجموعةُ كلّ الجيران (neighbors) لرؤوس أي أنّ تحوي كلَّ الرؤوس (في ) المجاورة لرأسٍ واحدٍ على الأقلّ من رؤوس (وفي رسم الطلبة/المواضيع، تكون مجموعةَ المواضيع التي يحبّها طلبةُ ) ويمكن تلخيصُ مناقشتنا أعلاه كالتالي:
شرط التطابق.
إذا كان رسمٌ بيانيّ ثنائيّ الأجزاء يملك تطابقًا لـ فإنّ لكلّ
هل العكس صحيح؟ لنفترض أنّ يحقّق شرطَ التطابق (matching condition) لكلّ (أي أنّ لكلّ مجموعةٍ من الرؤوس جيرانٌ بعددٍ لا يقلّ عن عدد رؤوسها). هل يعني ذلك أنّ هناك تطابقًا؟ والمفاجأة أنّ نعم. الشرطُ الضروريُّ الواضحُ هو أيضًا كافٍ. 13 وهذا يحدث كثيرًا في نظرية الرسوم البيانية. فإذا تجنّبتَ الأمثلةَ المضادّةَ الواضحة، فغالبًا ما تحصل على ما تريد. وهذه مبرهنةٌ أثبتَها فيليب هول (Philip Hall) أوّلًا سنة 1935. 14 وهناك أيضًا صيغةٌ لانهائية من هذه المبرهنة، أثبتَها مارشال هول (Marshal Hall) الابن. لكنّ التسمية مصادفة، إذ لا تربط بين الهولين صلةُ قرابة.
مبرهنة 2.7.1. مبرهنة زواج هول.
ليكن رسمًا بيانيًا ثنائيّ الأجزاء ذا المجموعتين و عندئذٍ يملك تطابقًا لـ إذا وإذا فقط لكلّ
وهناك عددٌ كبيرٌ جدًّا من البراهين المختلفة لهذه المبرهنة، ويكفي بحثٌ سريع على الإنترنت كي تبدأ.
وإلى جانب تطبيقها في الزواج ومواضيع عروض الطلبة، فإنّ للتطابقات تطبيقاتٍ في كلّ مكان. ونختم بمثالٍ من هذا النوع.
المثال 2.7.2.
لنفترض أنّك توزّع 52 بطاقةَ لعبٍ عادية على 13 مجموعة، كلّ مجموعةٍ منها 4 بطاقات. اثبت أنّ بإمكانك دائمًا أن تختار بطاقةً واحدةً من كلّ مجموعة فتحصل على واحدةٍ من كلٍّ من قيم البطاقات الثلاث عشرة: آس، 2، 3، …، 10، جاك، ملكة، وملك.
الحلّ. إنّ فعل ذلك مباشرةً سيكون صعبًا، لكنّنا يمكننا الاستعانة بشرط التطابق. أنشئ رسمًا بيانيًا فيه 13 رأسًا في المجموعة يمثّل كلٌّ منها إحدى قيم البطاقات الثلاث عشرة، و13 رأسًا في المجموعة يمثّل كلٌّ منها إحدى المجموعات الثلاث عشرة. ارسم حافةً بين رأس ورأس إذا كانت هناك بطاقةٌ قيمتها في المجموعة ولاحظ أنّنا نبحث فحسب عن تطابقٍ لـ إذ يجب أن تُوجد كلُّ قيمةٍ في المجموعات مرّةً واحدةً بالضبط.
سيكون لدينا تطابقٌ إذا تحقّق شرطُ التطابق. فلكلّ مجموعةٍ من قيم البطاقات (أي مجموعة ) يجب أن نبيّن أنّ أي إنّ عدد المجموعات التي تحوي تلك القيم لا يقلّ عن عدد القيم المختلفة. لكنّ ماذا لو لم يكن كذلك؟ لنقل إنّ فإن كان لكان في تلك المجموعات أقلّ من بطاقةً مختلفة (إذ إنّ كلّ مجموعةٍ تحوي 4 بطاقات). لكنّ هناك بطاقةً ذات القيم المختلفة، لذا لا بدّ أن تكون إحدى هذه البطاقات في مجموعةٍ أخرى، وهذا تناقض. إذن يتحقّق شرطُ التطابق، ومن ثمّ يوجد تطابق، كما هو مطلوب.
تمارين
1.
أوجد تطابقًا في الرسوم البيانية ثنائية الأجزاء أدناه، أو اشرح لماذا لا يوجد تطابق.
2.
قد يكون للرسم البياني ثنائيّ الأجزاء الذي لا يملك تطابقًا تطابقٌ جزئيّ (partial matching) على أيّ حال. وبهذا نعني مجموعةً من الحوافّ بحيث لا ينتمي أيُّ رأسٍ إلى أكثر من حافةٍ واحدة (وأنّه من الممكن ألّا ينتمي إلى أيّ حافة). وكلُّ رسمٍ بيانيّ ثنائيّ الأجزاء (له حافةٌ واحدةٌ على الأقلّ) يملك تطابقًا جزئيًّا، لذا يمكننا البحث عن أكبر تطابقٍ جزئيٍّ في رسمٍ بياني.
وتزعم «صديقتُك» أنّها وجدت أكبرَ تطابقٍ جزئيٍّ للرسم أدناه (تطابقُها مكتوبٌ بخطٍّ عريض). وتشرح أنّه لا يمكن إضافةُ أيّ حافةٍ أخرى، لأنّ جميع الحوافّ التي لم تُستعمل في تطابقها الجزئيّ متّصلةٌ برؤوسٍ مُطابَقة. هل هي محقّة؟
3.
إحدى الطرق التي يمكنك بها التحقّق ممّا إذا كان التطابقُ الجزئيّ هو التطابق الجزئيّ الأكبر (maximal) هي أن تبني مسارًا متناوبًا (alternating path). وهذا تسلسلٌ من الحوافّ المتجاورة، يتناوب بين حوافّ في التطابق وحوافّ ليست في التطابق (ولا يمكن استعمال أيّ حافةٍ أكثر من مرّة). وإذا بدأ مسارٌ متناوب وانتهى بحافةٍ ليست في التطابق، فإنّه يُسمّى مسارًا مُحسِّنًا (augmenting path).
- أوجد أطول مسارٍ متناوبٍ ممكنٍ للتطابق الجزئيّ في رسم صديقتِك. هل هو مسارٌ مُحسِّن؟ وكيف يساعدك ذلك على إيجاد تطابقٍ أكبر؟
2. أوجد أطول مسارٍ متناوبٍ ممكنٍ للتطابق الجزئيّ أدناه. هل هناك أيّ مساراتٍ مُحسِّنة؟ وهل التطابقُ الجزئيّ هو أكبرُ تطابقٍ موجود في الرسم؟
4.
قرّرت أعرقُ عائلتين في ويستيروس (Westeros) الدخول في تحالفٍ بالزواج. لدى العائلة الأولى 10 أبناء، ولدى الثانية 10 بنات. وتتوافق أعمارُ الأطفال في العائلتين. تفاديًا لسوء الأدب، تُصرّ العائلتان على أن يتزوج كلُّ طفلٍ شخصًا إمّا في سنّه هو، أو شخصًا أصغرَ منه أو أكبرَ منه بمرّةٍ واحدة. وفي الواقع، يبدو الرسمُ البياني الذي يمثّل الزيجاتَ المقبولة هكذا:
السؤال: كم عدد ترتيبات الزواج المقبولة المختلفة التي تزوّج بها جميعُ الأطفال العشرين؟
- كم عدد ترتيبات الزواج الممكنة إذا أصررنا على أن يكون هناك 6 أولادٍ بالضبط يتزوجون فتياتٍ ليس في سنّهم؟
- هل يمكنك تعميمُ الإجابة السابقة للوصول إلى العدد الإجماليّ لترتيبات الزواج؟
- كيف تعرف أنّ إجابتك صحيحة؟ حاول أن تعدّ بطريقةٍ مختلفة. انظر إلى أحجام العائلات الأصغر واستخرج متسلسلة.
- هل يمكنك إعطاءُ علاقةٍ تكرارية (recurrence relation) تناسب المسألة؟
5.
نقول إنّ مجموعةَ رؤوسٍ هي غطاءَ رؤوس (vertex cover) إذا كانت كلُّ حافةٍ في الرسم تنتهي عند رأسٍ في الغطاء (أي إنّ غطاء الرؤوس يغطّي الحوافّ). وبما أنّ نفسها غطاءُ رؤوس، فإنّ كلَّ رسمٍ بيانيّ له غطاءُ رؤوس. والسؤالُ المثير هو عن إيجاد غطاءِ رؤوسٍ أدنى (minimal)، أي واحدٍ يستعمل أصغرَ عددٍ ممكنٍ من الرؤوس.
- لنفترض أنّ لديك تطابقًا لرسمٍ بيانيّ. كيف يمكنك استعمالُه للحصول على غطاءِ رؤوسٍ أدنى؟ وهل تنجح طريقتُك دائمًا؟
- لنفترض أنّ لديك غطاءَ رؤوسٍ أدنى لرسمٍ بيانيّ. كيف يمكنك استعمالُه للحصول على تطابقٍ جزئيّ؟ وهل تنجح طريقتُك دائمًا؟
- ما العلاقة بين حجم غطاء الرؤوس الأدنى وحجم التطابق الجزئيّ الأكبر في رسمٍ بيانيّ؟
6.
في تطبيقاتٍ كثيرة للتطابقات، من المعقول استعمالُ الرسوم البيانية ثنائية الأجزاء. لكنّك قد تتساءل عمّا إذا كانت هناك طريقةٌ لإيجاد التطابقات في الرسوم البيانية عمومًا.
- لأيّ يملك الرسمُ البياني الكامل تطابقًا؟
- اثبت أنّه إذا كان في رسمٍ بيانيّ تطابقٌ، فإنّ زوجيّ.
- هل العكس صحيح؟ أي إنّ كلَّ الرسوم البيانية التي فيها زوجيّ تملك تطابقًا؟
- وماذا إن اشترطنا أيضًا شرطَ التطابق؟ اثبت أو افنِ: إذا حقّق رسمٌ بيانيّ بعددٍ زوجيّ من الرؤوس الشرط لكلّ فإنّ في الرسم تطابقًا.