Bsz2 Jegyzet

6. Párosítások páros gráfban

Hall-feltétel (házasítási tétel), a tétel szükségessége és elegendősége. Frobenius-tétel a teljes párosítás létezésére. Alkalmazások és szűk keresztmetszetek vizsgálata páros gráfokban.

6.1

Javítóutak páros gráfban

Definíció

Legyen $G = (A, B; E)$ páros gráf és $M$ egy párosítás $G$-ben. Ekkor egy $G$-béli $P$ út javítóút $M$-re nézve, ha rá az alábbiak teljesülnek:

(1)

$P$ egy $M$ által nem fedett $A$-béli csúcsból indul;

(2)

$P$ egy $M$ által nem fedett $B$-béli csúcsban ér véget;

(3)

$P$-nek minden páros sorszámú éle (tehát a második, negyedik stb.) $M$-béli.

6.2

Javítóutas algoritmus

Algoritmus

JAVÍTÓUTAS ALGORITMUS (MAXIMÁLIS PÁROSÍTÁS KERESÉSÉRE PÁROS GRÁFBAN)

Bemenet: Egy $G = (A,B;E)$ páros gráf

1

$M \leftarrow \emptyset$ (vagy ehelyett $M$ lehet tetszőleges kezdeti párosítás is)

2

ciklus

3

KERESSÜNK EGY $P$ JAVÍTÓUTAT az $M$ párosításra nézve

4

ha nem létezik $M$-re nézve javítóút, akkor: stop

5

különben:

6

$M \leftarrow M \setminus \{P \text{ páros sorszámú élei}\} \cup \{P \text{ páratlan sorszámú élei}\}$

7

ciklus vége

Interaktív: Augmentálás szimuláció

A gráfban egy $M$ párosítást látsz (vastag élek). A kék szaggatott vonal egy javítóutat ($P$) jelöl, amely szabad csúcsból indul és szabadban végződik. Kattints az augmentálásra az élcseréhez!

Párosítás mérete

2
$|M|$ értéke
Készen áll az élcserére: $M \leftarrow M \oplus P$
6.3

Alternáló utak

Definíció

Definíció. Legyen $G = (A,B;E)$ páros gráf és $M$ egy párosítás $G$-ben. A $G$-béli $P$ utat alternáló útnak hívjuk, ha rá a definíció (1) és (3) követelményei teljesülnek (de a (2) nem feltétlenül).

Más szóval: alternáló útnak az olyan utakat nevezzük, amik párosítás által nem fedett $A$-béli csúcsból indulnak és minden második élük $M$-béli.

6.4

Alternáló utak

Lemma

Tegyük fel, hogy a $G = (A,B;E)$ páros gráf $M$ párosítására nézve nincs javítóút $G$-ben. Vezessük be az alábbi jelöléseket:

(1)

jelölje $A_1$, illetve $B_1$ az $M$ által nem fedett $A$, illetve $B$-béli csúcsok halmazát;

(2)

jelölje $A_2$ azoknak az ($M$ által fedett) $A$-béli csúcsoknak a halmazát, amikbe vezet alternáló út;

(3)

jelölje $A_3$ a maradék $A$-béli csúcsoknak a halmazát (amik tehát $M$ által lefedettek, de nem vezet hozzájuk alternáló út);

(4)

Jelölje $B_2$, illetve $B_3$ az $A_2$, illetve $A_3$ csúcsainak $M$ szerinti párjaiból álló $B$-béli csúcsok halmazait.

Ekkor $G$-nek nincs olyan éle, ami $A_1 \cup A_2$ és $B_1 \cup B_3$ között vezet.

Tegyük fel indirekt, hogy $G$-nek mégis létezik egy olyan $e = \{a, b\}$ éle, amire $a \in A_1 \cup A_2$ és $b \in B_1 \cup B_3$. Ez összesen négy esetet jelent, amiket sorban kizárunk:

1. eset: Ha $a \in A_1$ és $b \in B_1$, akkor $a$-ból $b$-be egyetlen élű javítóút vezetne; ez lehetetlen, hiszen feltettük, hogy $G$-ben nincs javítóút.

2. eset: Ha $a \in A_1$ és $b \in B_3$, akkor $a$-ból $e$-n át $b$-be, majd onnan a $b$-re illeszkedő $M$-béli élen át tovább lépve egy $A_3$-béli csúcsba jutnánk egy két élű alternáló úton. Ez lehetetlen, mert $A_3$-ba épp az alternáló úton nem elérhető $A$-béli csúcsok kerültek.

7.14. ábra

3. eset: Tegyük most fel, hogy $a \in A_2$ és $b \in B_1$. Ekkor $a$-ba vezet egy $P$ alternáló út. Ennek az utolsó éle nyilván $M$-béli, hiszen $P$ $A$-ból indul és $A$-ba is érkezik, így páros sok éle van. Mivel $b$ biztosan nincs rajta $P$-n (mert $b \in B_1$ szabad csúcs), $P$-t folytathatjuk az $e$ élen át $b$-ig, amivel egy javítóutat kapunk. Ez ellentmondás.

4. eset: Végül tegyük fel, hogy $a \in A_2$ és $b \in B_3$. Ekkor az $a$-ig vezető $P$ alternáló utat először $e$-n át $b$-ig, majd a $b$-re illeszkedő $M$-béli éllel tovább hosszabbítva egy $P$-nél kettővel hosszabb $P'$ alternáló utat kapunk. Mivel azonban $b \in B_3$, ezért a $P'$ út vége $A_3$-béli. Ez ellentmondás, mert $A_3$-béli csúcsba nem vezethet alternáló út.

6.5

Kőnig tétele

Tétel

Kőnig tétele Ha a $G = (A,B;E)$ páros gráf $M$ párosítására nézve nincs javítóút, akkor $M$ maximális párosítás $G$-ben.

Jelölje $M$ élszámát $|M| = k$. Annak bizonyításához, hogy $M$ maximális, a lefogó ponthalmaz fogalmát hívjuk segítségül: meg fogjuk mutatni, hogy létezik $G$-ben $k$ pontú lefogó ponthalmaz. Ebből a korábban már látott gondolatmenet szerint valóban következni fog, hogy $M$ maximális: a $k$ méretű $M$ párosítás létezéséből $\nu(G) \geq k$, a $k$ pontú lefogó ponthalmaz létezéséből $\tau(G) \leq k$, ezekből az állításokból együtt pedig $k \leq \nu(G) \leq \tau(G) \leq k$ adódik. Következik, hogy $\nu(G) = k$, ami valóban azt jelenti, hogy $M$ maximális párosítás.

Azt állítjuk, hogy a Lemma jelöléseit használva $X = A_3 \cup B_2$ lefogó ponthalmaz $G$-ben. Legyen ugyanis $e = \{a, b\}$ tetszőleges éle $G$-nek, amire $a \in A$ és $b \in B$. Ha $a \in A_3$, akkor $e$-nek az $A$-béli végpontja $X$-béli, így $e$-t $X$ lefogja. Ha viszont $a \in A_1 \cup A_2$, akkor a Lemmából következik, hogy $b \in B_2$; így $X$ ebben az esetben is lefogja $e$-t.

Megmutatjuk még, hogy $|X| = k$. Ez abból adódik, hogy $X$ minden $M$-béli élnek pontosan az egyik végpontját tartalmazza: az $A_2$ és $B_2$ között futóknak a $B$-béli végpontját, az $A_3$ és $B_3$ között futóknak pedig az $A$-béli végpontját. Mivel $|M| = k$ és $X$ minden $M$-béli élnek egy végpontját tartalmazza, ezért $|X| = k$ is igaz.

Interaktív: Lefogó pontok vadászata

Válaszd ki a gráf csúcsait úgy, hogy minden élet lefedj! Próbáld meg ezt pontosan annyi ponttal megtenni, amennyi a maximális párosítás mérete ($|M|=k$).

0
Pontjaid
4
Cél ($k$)
Kattints a csúcsokra a kijelöléshez!
?

Kidolgozott példa: $\nu, \tau, \alpha, \rho$ meghatározása

Példafeladat

A feladat szövege

Határozzuk meg a 7.14. Feladat b) részének páros gráfjában $\tau(G)$, $\alpha(G)$ és $\rho(G)$ értékét, valamint adjunk meg egy minimális lefogó ponthalmazt, egy maximális független ponthalmazt és egy minimális lefogó élhalmazt!

Megoldás levezetése

1. A korábbiak alapján $\nu(G) = 8$. Kőnig tételéből tudjuk, hogy páros gráfban $\tau(G) = \nu(G)$, tehát a minimális lefogó pontszám is **8**.

A Gallai-tételeket ($n=19$) használva:

$\alpha(G) = 19 - 8 = \mathbf{11}$ |

2. A csúcsok szétválogatásával ($A_3 \cup B_2$) kapjuk a minimális lefogó ponthalmazt: $X = \{a, c, d, f, 2, 3, 4, 5\}$.

3. A maximális független ponthalmaz az $X$ komplementere: $Y = \{b, e, g, h, i, 1, 6, 7, 8, 9, 10\}$.

Végeredmény: $\nu(G) = \tau(G) = 8$ és $\alpha(G) = \rho(G) = 11$.

6.6

Hall-tétel (Házasítási tétel)

Tétel

Tétel. (Hall tétele) A $G = (A,B;E)$ páros gráfban akkor és csak akkor létezik $A$-t lefedő párosítás, ha minden $X \subseteq A$ részhalmazra $|N(X)| \geq |X|$ teljesül.

A feltétel szükségessége nyilvánvaló: ha létezik $A$-t lefedő párosítás, akkor $|N(X)| \geq |X|$ minden $X \subseteq A$ esetén. Valóban, ha $M$ egy $A$-t lefedő párosítás, akkor az $X$ elemeinek $M$ szerinti szomszédjai mind $N(X)$-ben vannak és páronként különbözők, így $N(X)$-nek legalább $|X|$ eleme van. (Vagy ugyanez más megfogalmazásban: ha egy $X \subseteq A$ részhalmazra $|N(X)| < |X|$ teljesülne, akkor – ahogyan azt a tétel kimondása előtti példában is láttuk – nem juthatna már az $X$ minden elemének sem csupa különböző pár, így nem létezhetne $A$-t lefedő párosítás.)

Most belátjuk a feltétel elégségességét: ha $|N(X)| \geq |X|$ minden $X \subseteq A$ részhalmazra teljesül, akkor van $A$-t lefedő párosítás $G$-ben. Futtassuk ugyanis a javítóutas algoritmust a $G$ gráfra (tetszőleges párosításból indítva). Megmutatjuk, hogy az algoritmus leállásakor kapott $M$ párosítás lefedi $A$-t. Tegyük fel ugyanis indirekt, hogy nem ez a helyzet.

Lemma jelöléseit használva $N(A_1 \cup A_2) = B_2$ következik; valóban, a lemma állítása szerint $A_1 \cup A_2$ és $B_1 \cup B_3$ között nincs éle $G$-nek, ezért az $(A_1 \cup A_2)$-béliek minden szomszédja $B_2$-béli. Továbbá mivel $|A_2| = |B_2|$ (hiszen $A_2$ és $B_2$ elemeit az $M$ megfelelő élei párba állítják) és $A_1 \neq \emptyset$ (mert az $M$ nem fedi le $A$-t), ezért $|A_1 \cup A_2| > |B_2|$. Következik, hogy az $X = A_1 \cup A_2$ esetében sérül az $|N(X)| \geq |X|$ feltétel; ez az ellentmondás pedig bizonyítja a tétel állítását.

Interaktív: Hall-feltétel ellenőrző

Kattints az A halmaz csúcsaira a kijelöléshez! A rendszer automatikusan mutatja a B halmazbeli szomszédokat ($N(X)$). Találsz olyan halmazt, ahol $|N(X)| < |X|$?

Állapot

0
$|X|$
vs
0
$|N(X)|$
Válassz ki legalább egy pontot az A oldalon!
?

Példa: Hall-tétel alkalmazása

Példafeladat

7.23. Feladat

Egy kiránduláson $n$ házaspár vesz részt. El kellene osztani közöttük $2n$ különböző fajta csokit úgy, hogy mindenki egyet kapjon. Tudjuk, hogy mindenki legalább $n$ fajtát szeret a csokik közül. Továbbá minden emberre teljesül, hogy ha valamelyik fajta csokit nem szereti, akkor a házastársa ezt a fajtát biztosan szeretni fogja. Bizonyítsuk be, hogy a csokik szétoszthatók úgy, hogy mindenki olyat kapjon, amit szeret!

Megoldás

A $G = (A, B; E)$ páros gráf $A$ pontosztályát alkossa a $2n$ résztvevő, a $B$-t pedig a $2n$ csoki; egy embert akkor kössünk össze egy csokival, ha az illető ezt a fajta csokit szereti. Azt kell megmutatnunk, hogy $G$-ben létezik $A$-t lefedő párosítás.

Ezért Hall tételét hívjuk segítségül. Legyen $X \subseteq A$ egy tetszőleges részhalmaza $A$-nak. Két esetet vizsgálunk:

1. Eset: Van benne házaspár

Ha van olyan házaspár, aminek $X$ mind a két tagját tartalmazza, akkor a feladat szövege szerint $N(X) = B$ (hiszen minden csoki szomszédos $G$-ben ennek a házaspárnak legalább az egyik tagjával). Így az ilyen $X$-ekre $2n = |N(X)| \geq |X|$ nyilván igaz.

2. Eset: Nincs benne teljes házaspár

Ha viszont $X$ minden házaspárnak legfeljebb csak az egyik tagját tartalmazza, akkor $|X| \leq n$, hiszen csak $n$ házaspár van. De ha $X$ legalább egy embert tartalmaz, akkor $|N(X)| \geq n$ következik abból, hogy minden ember legalább $n$ csokit szeret. Így ilyenkor $|N(X)| \geq n \geq |X|$.

Ha viszont $X = \emptyset$, akkor persze $N(X) = \emptyset$, így $0 = |N(X)| \geq |X| = 0$ ebben az esetben is igaz. Megmutattuk tehát, hogy $|N(X)| \geq |X|$ az $A$ minden $X$ részhalmazára teljesül, így Hall tétele szerint $G$-ben valóban létezik $A$-t lefedő párosítás.

A csokik tehát mindenki számára kielégítően szétoszthatók.

Hall tételéből könnyen választ kaphatunk arra a kérdésre is, hogy teljes párosítás létezése mitől függ egy páros gráfban. Ezt az állítást az alábbi formájában Georg Frobenius (1849 – 1917) német matematikusnak szokták tulajdonítani.

6.7

Frobenius-tétel

Következmény

Következmény. (Frobenius tétele) A $G = (A,B;E)$ páros gráfban akkor és csak akkor létezik teljes párosítás, ha $|A| = |B|$ és minden $X \subseteq A$ részhalmazra $|N(X)| \geq |X|$ teljesül.

A feltétel szükségessége ismét nyilvánvaló: ha létezik $G$-ben teljes párosítás, akkor $|A| = |B|$ természetesen igaz és mivel egy teljes párosítás egyben $A$-t lefedő párosítás is, így azt már beláttuk, hogy $|N(X)| \geq |X|$ minden $X \subseteq A$ részhalmazra teljesül.

Megfordítva: ha $|N(X)| \geq |X|$ minden $X \subseteq A$ részhalmazra teljesül, akkor Hall Tétele miatt $G$-ben van $A$-t lefedő párosítás. De mivel $|A| = |B|$, ezért egy ilyen párosításnak nyilván $B$-t is fednie kell, így az teljes párosítás. Ezzel tehát a feltétel elégségességét is beláttuk.

6.8

Összefoglaló Kvíz

Párosítási Algoritmusok

Vidd az egeret a kártyák fölé a helyes válaszért!

#01 Javítóút definíciója

Milyen csúcsok között fut egy javítóút, és mi jellemzi az éleit?

Válasz: Két szabad (párosítás által nem fedett) csúcs között fut, és az élei felváltva $M$-en kívüliek és $M$-beliek.

#02 Kőnig-tétel

Milyen kapcsolat van páros gráfokban $\nu(G)$ és $\tau(G)$ között?

Válasz: Páros gráfban $\nu(G) = \tau(G)$, azaz a maximális párosítás mérete egyenlő a minimális lefogó ponthalmaz méretével.

#03 Hall-feltétel

Mikor létezik egy páros gráfban az $A$ pontosztályt lefedő párosítás?

Válasz: Pontosan akkor, ha minden $X \subseteq A$ részhalmazra teljesül, hogy $|N(X)| \geq |X|$.

#04 Teljes párosítás

Mi a Frobenius-tétel szerinti feltétele a teljes párosítás létezésének?

Válasz: Ha $|A| = |B|$, és minden $X \subseteq A$ részhalmazra $|N(X)| \geq |X|$ teljesül.

Tudtad-e?

A JAVÍTÓUTAK EREJE

Ahelyett, hogy az összes lehetséges párosítást végigpróbálnánk, a javítóutas algoritmus polinomidőben megtalálja az optimumot. Ez teszi lehetővé, hogy a modern keresőmotorok és adatbázisok villámgyorsan kezeljenek hatalmas adathalmazokat.

A HÁZASÍTÁSI TÉTEL

A Hall-tételt a szakirodalom gyakran "Házasítási tételnek" nevezi. A tétel alapjául szolgáló matematikai modell azt vizsgálja, hogyan lehet egy közösség tagjait optimálisan párba állítani a saját preferencialistáik alapján.

KŐNIG ÉS A DUALITÁS

A $\nu(G) = \tau(G)$ összefüggés a Kőnig-tételben a matematikai dualitás egyik legszebb példája. Azt bizonyítja, hogy egy "maximális" keresési és egy "minimális" lefogási probléma ugyanazt az eredményt adja.

SZOFTVER-ÜTEMEZÉS

A modern operációs rendszerek párosítási algoritmusokat használnak a feladatok processzormagokhoz rendeléséhez. Ez garantálja, hogy a hardver ne maradjon szabadon, amíg van elvégezhető számítási munka.

Mindent megtanultál?

Ne add fel bro,
van remény!