Gráfok és algoritmusok 2019. tavasz
A Baranyai-tétel
2019. május 7.Baranyai tétele: Legyen 1 ≤ k | n, m = n/k és M = nk
/nk = n−1k−1
. Ekkor az [n] = {1,2, . . . , n}halmazk-méretű részhalmazait lehetséges m-esével csoportosítani (ezáltal M csoportot képezve) úgy, hogy minden egyesmméretű csoport az[n]halmaz egy-egy partíciója legyen. (Partíció alatt az alaphalmaz diszjunkt részhalmazok uniójaként történő előállítását értjük.)
Érdemes áttérni az alábbi terminológiára. Tegyük fel, hogy egy különös sportban minden mérkő- zést pontosank csapat játszik. Egy körmérkőzéses bajnokság ekkor azt jelenti, hogy a bajnokságban részt vevőncsapat közül a lehetséges nk
mérkőzés mindegyikét pontosan egyszer játsszák le. Bara- nyai tétele azt mondja ki, hogy hak |n, akkor a körmérkőzéses bajnokság fordulókba szervezhető. Ez alatt azt értjük, hogy minden fordulóban pontosanm mérkőzés van, és minden csapat pontosan egy mérkőzésen játszik. A szokásos sportokban k = 2, és a tételnek ez a speciális esete azzal ekvivalens, hogy a K2n teljes gráf élhalmaza teljes párosításokra particionálható, vagy ami ezzel egyenértékű, hogyχ0(K2n) = ∆(K2n) = 2n−1.
Ez utóbbi tényt igazolja az alábbi, jól ismert konstrukció. A 2n csúcsot egy szabályos 2n −1 oldalú sokszög csúcsaiként és annak középpontjaként képzeljük el. A teljes gráfnak a középpontra illeszkedő minden élét egy-egy teljes párosítássá egészítjük ki, mégpedig a sokszögnek az adott élre merőleges húrjaival és oldalával. Könnyen látható, hogy ezek a teljes párosítások rendelkeznek az adott tulajdonsággal, azaz leírják egy körmérkőzéses bajnokság fordulóit. Azt fogjuk látni, hogy k >2 esetén a fordulók struktúrája már korántsem lesz ennyire szabályos.
A bizonyításhoz a kerekítési lemma alábbi következményét használjuk.
Táblázat-kerekítési lemma Ha egy a×b méretű táblázat minden eleme valós szám, akkor a táblázat elemeit lehet úgy (lefelé vagy felfelé) kerekíteni, hogy a táblázatban minden sor- és oszlop- összeg is (lefelé vagy felfelé) kerekedjék.
A bizonyítás történhet úgy, hogy a táblázat elemeit egy páros gráf éleire írt számoknak tekintjük (a sorok ill. az oszlopok alkotják a színosztályokat), a gráfból a szokásos módon hálózatot készítünk, majd alkalmazzuk a folyamokról szóló kerekítési lemmát. Ám ugyanez igazolható közvetlenül is, az alábbiak szerint. Adjunk a táblázathoz egy-egy újabb sort és oszlopot, ill. töltsük ki ezeket 0 és 1 közötti valósakkal úgy, hogy minden sor- és oszlopösszeg egész szám legyen. Ekkor egyetlen sorban vagy oszlopban sem lehet pontosan egy darab tört (nem egész szám). Ezért ha van a táblázatban tört, akkor tört elemeken lépkedve visszajuthatunk kiindulási elemhez úgy, hogy eközben felváltva lépünk vízszintesen és függőlegesen. Egy ilyen körút mentén felváltvaε-nal növelve ill. csökkentve az elemeket nem változik egyetlen sor- és oszlopösszeg sem. Az εalkalmas választásával elérhető, hogy legalább egy tört egésszé váljon, a táblázatban megváltozó többi elem közül pedig egy se ugorjon át egész számot. Tehát amíg van a táblázatban tört szám, ez megtehető. Így előbb-utóbb minden elem egésszé válik, mégpedig a sor- ill. oszlopösszegek megváltozása nélkül. Ekkor a hozzáadott sor és oszlop miatt az eredeti mátrix minden sor- ill. oszlopösszege kerekedett.
Baranyai tételének bizonyítása: Jelölje 2[n] az [n] halmaz hatványhalmazát, [n]k
pedig az [n] halmaz k-elemű részhalmazainak halmazát. A bizonyítandó tétel átfogalmazható az alábbiak szerint. Az[n]alaphalmaznak megadhatóM dbm-tagú partíciója úgy, hogy e partíciók mindegyike k-méretű részhalmazokból álljon, és minden egyes k-méretű részhalmaz pontosan egy partícióban szerepeljen. Ennek az átfogalmazásnak az alábbi formális általánosítását fogjuk igazolni.
Állítás: Minden 0 ≤ ` ≤ n esetén megadható az [`] halmaznak M db m-tagú partíciója úgy, hogy tetszőlegesS ⊆[l] halmaz pontosan k−|S|n−l
partíciónak legyen tagja.
Az` =n speciális esetben az állítás úgy szól, hogy egyS részhalmaz pontosan akkor jelenik meg egy partícióban, ha |S| = k, és ebben az esetben S pontosan egy partíciónak lesz tagja. A fenti állítás egyébként azért csak formális általánosítása Baranyai tételének, mert a Baranyai tételében leírt partíciók tagjainak az[`]halmazzal vett metszetei megadják az[`]-hez tartozó partíciókat, azaz a fenti általánosítás közvetlenül adódik magából a tételből. Ilyenformán ez az „általánosítás” úgy is tekinthető, hogy a körmérkőzéses bajnokság fordulókba szervezését csak részben, konkrétan az első` csapatra adja meg: ezen csapatok mindegyikéhez meghatározza hogy az adott csapat az egyes fordulók melyik mérkőzésén játszik, a többi csapat esetén pedig nem ad erről információt. A fenti általánosításnak az alábbi, könnyebben kezelhető átfogalmazását fogjuk bizonyítani.
Lemma: Ha0≤`≤n ésk |n akkor létezik olyan M×2` méretűT(`) táblázat, aminek a sorai a fordulóknak, oszlopai pedig 2[`] elemeinek felelnek meg, és az alábbi tulajdonságokat teljesíti.
A T(`)táblázat elemei nemnegatív egészek, (1) minden minden 1≤i≤M eseténaT(`) táblázat i-dik sora (a továbbiakban T(`)i)
az [`] egym-tagú partíciójának karakterisztikus vektora, és (2) minden S ⊆[`]esetén a T(`)táblázat S ⊆[`]halmazhoz tartozó oszlopában
(azaz T(`)S-ben) az elemek összege k−|S|n−`
. (3)
Egy partíció karakterisztikus vektora alatt azt a vektort értjük, aminek az S ⊆ [`] halmazhoz tartozó koordinátájában S-nek az adott partícióban felvett multiplicitása áll. Ennek megfelelően S 6=∅ esetén a megfelelő koordináta0vagy1, S=∅esetén viszont itt 1-nél nagyobb egész is állhat.
A Lemmát ` szerinti indukcióval igazoljuk. Az ` = 0 eset világos: T(0) egyetlen oszlopának minden eleme m lesz. Az indukciós lépésben T(`)-et T(`−1)-ből készítjük el. A célunk tehát az első `−1 csapat beosztásának ismeretében meghatározni, hogy melyik meccsen is játszik az `-dik csapat az egyes fordulókban. Ehhez T(` −1) minden oszlopát két oszlop összegeként szeretnénk előállítani, mégpedig T(`−1)S =T(`)S+T(`)S∪{`} módon. Ezt pedig úgy végezzük, hogy minden S ⊆ [` −1] esetén meghatározzuk a T(`)S∪{`} oszlopot, majd a T(`)S = T(` −1)S − T(`)S∪{`}
képletből számítjuk a többi oszlopot. Ezáltal a T(`) táblázat minden sora automatikusan az [`]egy partíciójának karakterisztikus vektora lesz.
JelöljeT0(`)a fentiek szerint meghatározandóT(`)[S∪{`} oszlopokból álló táblázatot. TehátT0(`) azt adja meg, hogy az `-dik csapat melyik csapatokkal játszik az egyes fordulókban. T0(`)-re az alábbiaknak kell teljesülni.
Minden 1≤i≤M ésS ⊆[`−1] esetén 0≤T0(`)S∪{`}i ≤T(`−1)Si (4) minden1≤i≤M esetén aT0(`)i sor összege 1, és (5) minden `∈S ⊆[`] esetén aT0(`)S oszlop elemeinek összege k−|S|n−`
, valamint (6) aT0(`) táblázat elemei nemnegatív egészek. (7) A T0(`) táblázat elkészítése két lépésben történik. Először elkészítjük a T∗(`) táblázatot, ami- nek oszlopai T0(`)-hez hasonlóan a 2[`] halmaz ` elemet tartalmazó részhalmazainak felelnek meg, továbbá a T∗ táblázat teljesíti a T0-re elvárt a (4-6) feltételeket. Ehhez minden fordulóban az `-dik csapatot véletlenszeűen rendeljük a T(`− 1) szerint meghatározott meccsek kitöltetlen helyeinek valamelyikéhez, és vesszük ennek a választásnak a várható értékét. Konkrétan, legyen
T∗(`)S∪{`}i = k− |S|
n−`+ 1 ·T(`−1)Si .
A (4) feltétel teljesül, hisz 0≤ n−`+1k−|S| ≤1. Az (5) feltétel is fennáll, ugyanis1≤i≤M esetén X
S⊂[`−1]
T∗(`)S∪{`}i = X
S⊂[`−1]
k− |S|
n−`+ 1·T(`−1)Si = 1
n−`+ 1· X
S⊂[`−1]
(k−|S|)·T(`−1)Si = n−`+ 1 n−`+ 1 = 1. Az utolsó előtti egyenlőség abból adódik, hogyT(`−1)i egy partíció karakterisztikus vektora, ezért az összeg azt számolja meg, hogy az i-dik forduló meccsein hány kiadó hely van.
A (6) feltétel a T∗(`) táblázat S-hez tartozó oszlopösszegéből adódik:
M
X
i=1
T∗(`)S∪{`}i =
M
X
i=1
k− |S|
n−`+ 1 ·T(`−1)Si = k− |S|
n−`+ 1 ·
M
X
i=1
T(`−1)Si =
k− |S|
n−`+ 1
n−`+ 1 k− |S|
=
n−` k− |S| −1
=
n−` k− |S∪ {`}|
,
A táblázat-kerekítési lemmaT∗(`)-re történő alkalmazásával kapottT0(`)táblázat (7) mellett teljesí- teni fogja a (4-6) feltételeket is. AT0(`)táblázatból az (1-3) tulajdonságokat teljesítőT(`) táblázat adódik. Ezzel a lemmát és Baranyai tételét is igazoltuk.