Jiří Matoušek* Jaroslav Nešetřil z diskrétní matematiky Univerzita Karlova v Praze Nakladatelství Karolinum 2009 Jen matematikové dovedli ocenit tuto práci... 2610434082 Recenzenti: prof. RNDr. Zdeněk Ryjáček, DrSc. doc. RNDr. Václav Nýdl, CSc. Obsah © Jiří Matoušek, Jaroslav Nešetřil 2009 ISBN 978-80-246-1740-4 Předmluva ke čtvrtému vydání Předmluva 1 Základní pojmy a označení 1.1 Ochutnávka problémů........ 1.2 Přirozená čísla, množiny....... 1.3 Matematická indukce......... 1.4 Relace................. 1.5 Funkce................. 1.6 Další druhy relací, zvláště ekvivalence 2 O uspořádaných množinách 2.1 Uspořádání a jejich znázorňování 2.2 Uspořádání a lineární uspořádání 2.3 Uspořádání pomocí inkluzc . 2.4 O dlouhém a širokém..... 3 Kombinatorické počítání 3.1 Funkce a podmnožiny .... 3.2 Permutace a faktoriály .... 3.3 Binomické koeficienty .... 3.4 Odhady funkcí: faktoriál . . . 3.5 Odhady: binomické koeficienty 3.6 Princip inkluze a exkluze . . 8 Obsah Obsah 3.7 Šatnážka a ti druzí.................... 105 4 Grafy: úvod 111 4.1 Pojem grafu; isomorfismus................ 111 4.2 Podgrafy, souvislost, metrika, matice sousednosti . . . 118 4.3 Hledání nejkratší cesty.................. 124 4.4 Skóre grafu........................ 129 4.5 Jednotažky - eulerovské grafy.............. 135 4.6 Eulerovské orientované grafy .............. 142 4.7 2-souvislost........................ 147 4.8 Grafy bez trojúhelníků: extremální úloha poprvé . . . 154 5 Stromy 159 5.1 Definice a charakteristika stromů............ 159 5.2 Isomorfismus stromů................... 164 5.3 Problém minimální kostry................ 170 5.4 Jarníkův algoritmus a Borůvkův algoritmus...... 180 6 Rovinné kreslení grafů 187 6.1 Úvod do rovinných grafů................. 187 6.2 Proč a jak definovat rovinné nakreslení grafu..... 189 6.3 Jordánova věta o kružnici................ 194 6.4 Stěny a Eulerův vztah.................. 201 6.5 Maximální počet hran rovinného grafu ........ 204 6.6 Platónská tělesa ..................... 214 6.7 Kuratowského věta.................... 218 6.8 Barvení map problém čtyř barev........... 220 6.9 Kreslení grafů na plochách ............... 231 7 Počítání dvěma způsoby 237 7.1 Princip sudosti...................... 238 7.2 Spernerova věta o nezávislém systému množin..... 245 7.3 Extremální věta: grafy bez čtyřcyklů.......... 252 8 Počet koster 259 8.1 Cayleyho formule..................... 259 8.2 Důkaz přes skóre..................... 260 8.3 Důkaz s obratlovci.................... 262 8.4 Důkaz pomocí Priiferova kódu ............. 265 8.5 Důkaz pracující s determinanty............. 268 8.6 Důkaz zatím asi nejjednodušší.............. 278 9 Konečné projektivní roviny 281 9.1 Definice a vlastnosti konečné projektivní roviny .... 281 9.2 Konstrukce projektivních rovin............. 289 9.3 Ortogonální latinské čtverce............... 294 9.4 Použití konečných projektivních rovin......... 298 10 Pravděpodobnostní důkazy 301 10.1 Důkazy počítáním.................... 301 10.2 Konečné pravděpodobnostní prostory.......... 307 10.3 Střední hodnota...................... 317 10.4 Několik aplikací...................... 322 11 Řád z nepravidelnosti: Ramseyova věta 331 11.1 Večírky se šesti...................... 332 11.2 Ramseyova věta pro grafy................ 334 11.3 Dolní odhad Ramseyových čísel............. 336 12 Vytvořující funkce 341 12.1 Kombinatorické aplikace mnohočlenů.......... 341 12.2 Rozšíření na nekonečné řady............... 345 12.3 Fibonacciho čísla a zlatý řez............... 354 12.4 Binární stromy...................... 360 12.5 O házení kostkou..................... 365 12.6 Náhodná procházka ................... 366 12.7 Rozklady ......................... 368 10 Obsah 13 Aplikace lineární algebry 377 13.1 Bloková schémata..................... 377 13.2 Fisherova nerovnost ................... 382 13.3 Pokrývání úplnými bipartitními grafy ......... 386 13.4 Prostor kružnic grafu................... 388 13.5 Cirkulace a řezy: prostor kružnic podruhé....... 393 Dodatek: opakování algebry 399 Literatura 409 Rejstřík 413 Návody ke cvičením 427 Předmluva ke čtvrtému vydání Toto je oficiálně čtvrté české vydání Kapitol z diskrétní matematiky. Oproti vydání třetímu z roku 2007 jsme podstatne přepracovali kapitolu o rovinných grafech (za její pročtení a řadu užitečných připomínek děkujeme Petru Kolmanovi a Heleně Nyklové) a jako obvykle opravili drobné chyby. Třetí vydání bylo proti vydání předchozímu významně rozšířeno: přidali jsme kapitolu 2 o částečných uspořádáních, část 4.8 o Turánově větě, několik důkazů Cauchyho-Schwarzovy nerovnosti v části 7.3, další důkaz determinantové formule pro počítání koster v části 8.5, geometrickou interpretaci konstrukce projektivní roviny v části 9.2, krátkou kapitolu 11 o Ramseyově větě a oddíl 12.7 o počtu rozkladů čísla n. Praha, říjen 2009 Jiří Matoušek Jaroslav Nešetřil Předmluva Čtenář, kterého jsme si při psaní této učebnice představovali, byl studentem prvního ročníku matematiky nebo informatiky. Text je ovšem určen i pro posluchače vyšších ročníků, kterým se dostává úvodního kursu diskrétní matematiky později, a může být užitečný i pro jiné zájemce o snadné a rychlé úvodní poučení o kombinatorice, například pro odborníky z četných oblastí, kde se diskrétní matematika využívá. Hlavně jsme však mysleli na našeho studenta prvního ročníku, a tomu jsme podání přizpůsobili. Ne snad vypuštěním všech těžších věcí, nýbrž hlavně důrazem na některé rysy výkladu: • Rozvoj matematického myšlení. Chceme čtenáře seznámit se základy kombinatoriky a teorie grafů. Hlavně mu ale chceme pomoci naučit se matematickému způsobu myšlení, přesnému formulování myšlenek a řešení matematických problémů vyžadujících více rozmyslu než jen dosazení do vzorečku. Volba konkrétního materiálu pro takovou průpravu patrně není klíčová -uchvacuje-li vás algebra, rozhodně vás od ní nebudeme zrazovat! Domníváme se však, že kombinatorika je pro takové první samostatnější ponoření do matematiky zvlášť vhodná, poněvadž problémy a pojmy v ní studované jsou, přinejmenším ze začátku, elementárnější než např. v matematické analýze, která již od úvodního kursu začíná jako dosti hluboká a jednolitá teorie. • Radost. Kníhaje psána pro onoho ideálního čtenáře, který aspoň někdy zažil potěšení z důvtipného řešení matematické úlohy či hádanky. Je ovšem též naším smělým přáním, aby tato kniha 14 Předmluva Předmluva 15 pomohla podobný pocit vzbudit u těch, u nichž dosud jen dřímal. Domníváme se, že taková občasná radost z elegantní myšlenky, někdy dokonce smíšená s pocitem dobře vykonané práce, je pro studium matematiky nesmírně důležitá. Ne každý byl obdařen takovým talentem, stejně jako ne každý má rád hudbu. Ale bez podobného pocitu je studium matematiky nejspíš velmi nudné. • Karty na stůl. Látku se snažíme vyložit v úplnosti. Rekneme-li, že něco je jednoduché, myslíme to vážně, a jestliže to čtenáři při pozorném studiu tak nepřipadá, pak je patrně něco v nepořádku: Možná jsme situaci špatně odhadli, ale možná to naznačuje, že čtenář nepochopil něco z předchozí látky. • Souvislosti a aplikace. Probíraná látka dává několik příležitostí ukázat pojmy a výsledky z jiných oblastí matematiky v akci, a tyto souvislosti se snažíme zdůraznit. Takové partie demonstrují vzájemnou provázanost základních matematických oborů, a podle našich zkušeností je studenti mají rádi, pokud se celá aplikace probere důkladně, včetně připomenutí pojmů z příslušného jiného odvětví. m A co informatika? I když dnes mnoho posluchačů kursů diskrétní matematiky studuje informatiku, chtěli jsme text učinit přístupným i pro ty, kteří shledávají počítače a programování odpudivými, a proto jsme se informatické terminologii spíše vyhýbali (např. místo „NP-úplná úloha" říkáme vágněji „algoritmicky těžká úloha"). Přesto kniha obsahuje několik pasáží o efektivních algoritmech a řadu cvičení na sestavení programů, od krátkých až po menší softwarové projekty. Náplň. Náš text je úvodem do kombinatoriky a teorie grafů. Vychází z koncepce úvodního kursu diskrétní matematiky pro první ročník matematického a informatického studia na Matematicko-fyzikální fakultě University Karlovy v Praze, vypracované druhým z autorů, a pokrývá látku kursu v podobě, v jaké ho autoři řadu let přednášeli. V jednosemestrálním kursu se určitě neprobírá celý tento text. Připsali jsme hodně rozšiřujícího (a někdy trochu pokročilejšího) materiálu, hlavně v naději, že čtenář si kromě toho, co je zrovna povinné k přednášce, třeba mimoděk přečte i jiné věci. Navíc některé kapitoly slouží aspoň jako xivod k specializovanějším kursům, např. o pravděpodobnostní metodě nebo o aplikacích lineární algebry. Vložili jsme i dodatek shrnující základní pojmy a některé výsledky z lineární algebry. Nemůže samozřejmě nahradit řádný kurs, ale kromě připomenutí základních pojmů může být snad užitečný i pro studium lineární algebry jako jistý pohled z ptačí perspektivy. V jednotlivých částech je rozšiřující nebo specializovanější materiál vyznačen takovýmhle menším písmem. Řadu dalších souvisejících informací jsme se snažili propašovat i do cvičení. O literatuře. V českém jazyce existuje několik knih o teorii grafů, např. [23], i knihy pojednávající o základech kombinatorického počítání (třeba [30]), ale nemusí být snadno dostupné, a značná část zde probrané látky se patrně najde jen v zahraničních učebnicích. O matematice obecně a o tom, jak a na čem dnes matematici pracují, se lze dočíst ve vynikající populární knížce Gowersově [12]. V citacích neuvádíme zdaleka všechny prameny, z nichž jsme čerpali. Chtěli bychom ale vyzdvihnout (a doporučit) jeden z pramenů, totiž velkou sbírku řešených kombinatorických problémů Lovász [21], odkud jsme převzali část materiálu a část těžších cvičení (naše těžší cvičení jsou Lovászovy lehčí problémy). Tato knížka je vynikající pro pokročilejší studium kombinatoriky, i jako soupis spousty kombinatorických výsledků a metod. Dobrá učebnice kombinatoriky, vhodná jako pokračování našeho spisu, je Van Lint a Wilson [19]. Umění kombinatorického počítání a asymptotických odhadů je znamenitě zpracováno v knize Graham, Knuth, Patashnik [13] nebo též v monografii Knuthově [18]. Nedávno vyšla také obsáhlá kniha Flajolet a Sedgewick [10]. Dobrá moderní učebnice teorie grafů je např. Diestel [9]. Další zmínky o doporučené literatuře jsou roztroušeny po jednotlivých kapitolách. (Učebnic kombinatoriky existuje spousta, zde jsme jen zmínili některé naše oblíbené.) 16 Předmluva Předmluva 17 0 cvičeních. Za jednotlivými částmi najde čtenář větší či menší nabídku cvičení (některá souvisí s probraným tématem jen volně, a jsou zařazena spíš pro oživení a pro všeobecný matematický rozhled). Uspě-chanost moderního života a utváření lidské psychologie asi málokomu dovolí, aby si pro vlastní uspokojení a sebevzdělání systematicky vyřešil větší část z uvedených 373 cvičení, i když by to byla asi nakonec časově nejúspornější cesta, jak probírané věci aktivně zvládnout. Nezařazovali jsme cvičení zcela rutinní (spočívající v aplikaci nějakého probraného „receptu", např. „aplikujte probraný algoritmus na tento konkrétní graf"), věříme, že takovým způsobem si své porozumění látce může ověřit každý sám (apelujeme ale na vedoucí cvičení, aby takové příklady také zařazovali). Cvičení jsme rozdělili na tři skupiny obtížnosti: bez hvězdičky, s jednou a se dvěma hvězdičkami. Představujeme si, že dobrý student matematiky by měl po pochopení příslušného článku být schopen vyřešit velkou většinu bezhvězdičkových cvičení. Jednohvězdičková cvičení většinou vyžadují nějaký nápad, na nějž člověk přijít může a nemusí, a konečně dvouhvězdičková chtějí asi nápad poměrně neotřelý. Skoro všechna cvičení mají krátké řešení pokud víme, nikde nejsou potřeba dlouhé a úmorné výpočty. Naše rozdělení podle obtížnosti je ovšem subjektivní, a cvičení, které je pro někoho zcela snadné, protože třeba již viděl nějaký matematický obrat použitelný v podobné situaci, může být pro jiného nepřekonatelné. Rozhodli jsme se zařadit 1 krátké návody na řešení některých cvičení. Přečtením návodu si čtenář může zkazit radost ze samostatného vyřešení problému, ale i za pomoci návodu dá formulace úplného řešení často ještě hodně práce. O rejstříku. Pokud se pojem, na nějž se v rejstříku odkazuje, vyskytuje v číslovaném odstavci (např. v definici), číslo tohoto odstavce je v závorce za číslem stránky, něco jako 56(3.2.2). Podobně odkazy na cvičení jsou typu 123(cv. 2). U většiny pojmů, zejména všeobecně matematického charakteru (jako např. relace, graf) rejstřík odkazuje pouze na místo jejich definice. Matematické symboly vytvořené z latinských písmen (např. Cn) jsou zařazeny pod příslušným písmenem, před ostatními slovy. Značení zahrnující speciální symboly (jako X\Y, G = H) a řecká písmena je uvedeno na začátku rejstříku. Historie. Tento text vznikl na katedře aplikované matematiky Mate-maticko-fyzikální fakulty University Karlovy Praha. Předběžnou verzi vydala katedra v prosinci 1995. První vydání vyšlo v nakladatelství Matfyzpress koncem roku 1996. Rozšířená anglická verze byla publikována nakladatelstvím Oxford University Press v roce 1998 pod názvem Invitation to Díscrete Mathematics, a postupně byla přeložena do několika dalších jazyků. Další dvě česká vydání vyšla v Nakladatelství Karolinum. Každé z nich má proti předchozímu něco navíc a jsou v něm opraveny další chyby. Autorství některých ilustrací. Obrázky na obálce jsou dílem Jiřího Načeradského a Jaroslava Nešetřila. Úvodní ilustrace je rytina G. Rouxe z knihy Julese Věrna: Zmatek nad zmatek, vydané nakladatelem J. Vilímkem v Praze roku 1931. Poděkování. Mnoho našich spolupracovníků z KAM a studentů spoluvytvářelo příjemnou stimulující atmosféru, v níž se nám dobře psalo. Jan Kratochvíl napsal první verze části 4.3 (za chyby, které jsme tam vyrobili dalším jejím přepracováváním, ovšem nenese žádnou zodpovědnost!). Naši kolegové, vedoucí cvičení a někteří studenti přispěli drobnými připomínkami k textu a náměty na cvičení. Velké množství chyb v předchozích vydáních nalezli zejména Pavel Socha, Eva Matoušková, Tomáš Holan, Robert, Babilon a Jana Chlebíková. Martin Klazar a Jiří Otta sestavili sbírku cvičných příkladů, z nichž většinu jsme použili. Aleš Pultr laskavě přispěl k vylepšení dodatku o algebře několika připomínkami, a Martin Klazar nás upozornil na slabosti jednoho z důkazů i na možnosti nápravy. Jana Chlebíková a Karel Horák velmi pomohli prvnímu autorovi radou při zápolení s typografií knížky. S Jaroslavem Jirsou a Kamilou Schúllerovou z nakladatelství Karolinum byla radost spolupracovat na přípravě druhého vydání. Všem zmíněným (jakož i těm, na které jsme bez zlého úmyslu mohli zapomenout) děkujeme. .Iménem lidstva též děkujeme Otfriedu Cheongovi za napsání grafického editoru Ipe, jímž byla vyrobena většina obrázků. Zmíněný editor je názorným dokladem významu matematického vzdělání pro zdánlivě nematematické činnosti, jako v tomto případě psaní složitého 18 Předmluva software - stačí tento teoretickým informatikem napsaný program porovnat s chaotičností mnohého komerčního software. Prosba na závěr. V každém textu jsou nejaké chyby. Už jsme jich spoustu odstranili, ale určitě ne všechny. Zejména se může stát, že některá cvičení jsou nevhodně formulována, nebo že nefunguje řešení, které jsme si představovali. Prosíme čtenáře, který nějaká nedopatření odhalí, aby je sdělil autorům (c-mail jiri.matousek@mff.cuni.cz nebo jaroslav.nesetril@mff.cuni.cz). Aktuální seznam objevených chyb vystavujeme na internetové stránce přístupné z adresy http://kam.mff.euni.cz/"matousek. Základní pojmy a označení V této úvodní kapitole zavedeme mnoho pojmů. Věříme, že se jimi čtenář nenechá odradit; předpokládáme, že jich většinu dobře zná nebo aspoň již slyšel. Takže vlastně pojmy většinou pouze připomínáme a (hlavně) ukazujeme jejich přirozené souvislosti, různé možné způsoby jejich zavedení apod. A i když, jakkoliv nepravděpodobně, čtenář nikdy nic podobného neslyšel, jedná sc zde o pojmy základní, snadno pochopitelné a názorné. Vynechat je nemůžeme: Matematika má svůj jazyk, a kdo chce porozumět a domluvit se, musí zvládnout aspoň základní slovíčka. 1.1 Ochutnávka problémů Nejdříve se podívejme na několik úloh, jimiž se budeme v této knížce zabývat. Zde je zformulujeme jako matematické hádanky, a je dost dobře možné, že se čtenář s některými z nich již setkal v populární literatuře. Známý problém pojednává o třech domech a třech studnách. V daleké zemi stály tři pěkné domy, a tři blízké studny jim dávaly čistou chladnou vodu. Všichni tam žili spokojeně, až jednoho dne vypukl spor, a nikdo jej nedokázal rozsoudit. Od každého domu chtěli mít tři cesty, jednu ke každé ze tří studen, a nejen to, s jejich cestami že se nesmí křížit žádná z cest jejich sousedů. 20 Kapitola 1: Základní pojmy a označení 1.1 Ochutnávka problémů 21 Může někdo někdy najít takové cesty? Kdyby byly studny jenom dvě, řešení by bylo snadné: Ale pro tři studny není žádná naděje (pokud by ti zatvrzelci nepřistoupili na chození po mostě nebo tunelem, ale to se asi čekat nedá). Uměli byste úlohu zformulovat jako matematický problém, a třeba dokonce ukázat, proč je neřešitelný? Tohle byla v podstatě otázka o kreslení v rovině. Mnoho jiných úloh studovaných v naší knize lze také formulovat pomocí kreslení. Dá se následující obrázek nakreslit jedním tahem, aniž bychom zvedli tužku z papíru, a aniž bychom některou z čar obtáhli vícekrát? A co tenhle obrázek? Jestli ne, tak proč? Je nějaký jednoduchý způsob, jak odlišit obrázky, které jdou tak nakreslit, od těch, které nejdou? K následující sérii problémů si nakreslíme 8 puntíků tak, aby žádné 3 neležely na přímce (číslo 8 je celkem libovolné, obecně bychom mohli uvažovat n takových puntíků). Spojíme některé dvojice puntíků úsečkami, například takto: Kolik nanejvýš lze do obrázku s 8 puntíky nakreslit spojnic, když nesmí vzniknout žádný trojúhelník s vrcholy v puntících? Zde je obrázek se 13 spojnicemi: Dovedete pro 8 puntíků nakreslit větší počet spojnic? Asi ano. Ale uměli byste dokázat, že váš počet už nejde zlepšit? Teď pro změnu chceme nakreslit nějaké spojnice (úsečky) tak, aby se mezi každými dvěma puntíky dalo přejít po cestě, sestávající z nakreslených úseček. Taková cesta nesmí zatáčet mimo puntíky, v místech, kde sc úsečky jen kříží. Tedy levý obrázek je správné řešení, zatímco pravý nikoliv: 22 Kapitola 1: Základní pojmy a označení 1.1 Ochutnávka problému 23 Jaký je nejmenší počet úseček, které je třeba nakreslit? A kolik existuje různých řešení s tímto minimálním počtem úseček? A jak bychom našli řešení, pro něž je celková délka nakreslených úseček co nejmenší? Všechny tyhle úlohy jsou populární verze jednoduchých základních otázek teorie grafů, což bude jedno z našich hlavních témat (budeme se jí zabývat v kapitolách 4. 5 a 6). Je snadno vidět, že u problémů s 8 puntíky, až na ten poslední, vůbec nesejde na tom, jak jsou puntíky rozmístěny. Záleží jedině na tom, které z dvojic puntíků jsou spojeny a které ne. Většina teorie grafů pojednává o otázkách, které se dají geometricky znázornit, ale v nichž geometrie ve skutečnosti nehraje roli. Naproti tomu úloha o domech a studnách náleží do „opravdu geometrické" části teorie grafů. Je podstatné, že cesty se mají vytyčit v rovině. Kdyby domy a studny byly na maličké planetě tvaru duše z pneumatiky, tak by se požadované cesty daly navrhnout: Dalším důležitý™ tématem této knížky je kombinatorické počítáni. probírané v kapitolách 3 a 12. Úlohy z této oblasti většinou začínají „Kolika způsoby..." nebo nějak podobně. Jednu takovou otázku jsme zmínili v sérii úloh s 8 puntíky (a je to pěkná a nesnadná otázka - je jí zasvěcena celá kapitola 8). Čtenář nepochybně viděl už řadu úloh takového typu. Tady je ještě jedna: Kolika způsoby lze natřít čtyřicet i-patrový mrakodrap, když každé ze 40 pater se může natřít buď zeleně nebo růžově, ale každá dvě růžová patra musejí být oddělena aspoň jedním zeleným? Ačkoli výše uvedené úlohy mohou vypadat jako pouhé hříčky, každá z nich se dá považovat za výchozí bod zajímavé teorie, s mnoha použitími jak v matematice samé, tak v mnoha jiných odvětvích. Rozlišit, dobré matematické problémy od špatných není snadné. Co je dobrý problém? Je to takový, jehož řešení vede k novým pohledům na známé věci, novým trikům a metodám, či dokonce k celé nové teorii. Mnohé z úloh rekreační matematiky z tohoto hlediska dobré nejsou, i když k jejich vyřešení může být potřeba značný důmysl. Čtenář může namítnout, že problémy z této sekce json pro praxi k ničemu. Proč by se o nich člověk měl učit, když je taková spousta důležitých znalostí, které budou určitě potřeba v budoucím zaměstnání? Jedna možná odpovědna takové námitky je, že ke každé z uvedených úloh hříček lze uvést důležitý praktický problém, jehož řešení je založeno na podobných principech. Řekněme, že pošťák má doručit poštu do všech domů v nějaké čtvrti, což znamená aspoň jednou projít každou z ulic. Jaká je nej kratší možná trasa obchůzky? Dá se v rozumném čase najít pomocí stolního počítače? Aby člověk porozuměl tomuto pošťáckému problému, měl by se napřed seznámit s poměrně jednoduchými výsledky o kreslení obrázků jedním tahem. Podobně úloha o domech a studnách je úvodem například k problémům rozmístění a propojení prvků integrovaného obvodu, a když ji člověk pochopí, je pak mnohem snadnější proniknout do algoritmů pro návrh integrovaných obvodů. V naší knize se takovými „praktickými" problémy přímo zabývat nebudeme, ale aby člověk porozuměl řešením, popsaným v jinýrch knihách, nebo dokonce nějaké dobré řešení sám vymyslel, jc potřeba se nejdřív seznámit se základními pojmy a myšlenkovými obraty. Zdůrazněme také, že ačkoliv má matematika odjakživa působivé aplikace, nejkvalitnější matematický výzkum byl zřídkakdy přímo motivován praktickými problémy. Aplikace matematických objevů přicházejí často s velkým časovým odstupem a v překvapivých souvislostech. K tomuto oddílu nejsou potřeba žádná cvičení. Podaří se vám vyřešit nějakou z uvedených úloh, nebo dokonce všechny? 24 Kapitola, 1: Základní pojmy a označení 1.2 Přirozená čísla, množiny 25 1.2 Přirozená čísla, množiny Číselné obory. Pro množinu všech přirozených čísel. tj. množinu {1, 2,3,...}, vyhradíme symbol N. Písmena n, m, k, i,j,p (a případná další) budou většinou rezervována pro přirozená čísla. Pomocí přirozených čísel se konstruují další, větší číselné obory: čísla celá, racionální a reálná (a také čísla komplexní, ale ta téměř potřebovat nebudeme). Celá čísla vzniknou z přirozených čísel přidáním záporných čísel a nuly. Množinu všech celých čísel označíme Z. Racionální čísla jsou zlomky s celočíselným čitatelem a jmenovatelem; zpravidla se značí písmenem Q, ale v tomto textu pro ně žádný symbol zavádět nepotřebujeme. Konstrukce množiny R všech reálných čísel je složitější a probírá se zpravidla v úvodním kursu analýzy. Známými příklady reálných čísel, jež nejsou racionální, jsou čísla jako \/2, některé důležité konstanty jako w, a obecně čísla mající v dekadickém zápisu za desetinnou čárkou nekonečnou a neperiodickou posloupnost číslic, třeba 0.12112111211112 .... Uzavřený interval od a do b na reálné ose budeme značit [a,b], otevřený interval s týmiž koncovými body zapisujeme (a, b). Operace s čísly. Většina označení pro číselné operace, jako například + pro sčítání, pro odmocninu atd., je všeobecně známa. Děleníbu-deme zapisovat buď zlomkovou čarou, nebo někdy (pro úsporu místa) lomítkem, tedy ve tvaru | nebo a/b. Zavedeme dvě méně běžné funkce. Pro reálné číslo x se symbol [x\ nazývá1 dolní celá část x a jeho hodnota je nejvčtší celé číslo, které je menší nebo rovno x. Podobně \x], horní celá část x, označuje nejmenší celé číslo, které je větší nebo rovno x. Tak například: [0.999J = 0, L-0.1J = -1, [0.01] = 1, [ifl = 6, [V2\ = 1. Později zavedeme další číselné funkce a symboly, které budeme pro jejich kombinatorický význam zkoumat podrobněji. Patří sem např. n\, G).8(»). Sumy a součiny. Jsou-li a±,a2i...,an reálná čísla, jejich součet 1 Zejména ve starší literatuře se někdy ve stejném významu používá symbol [as] ai+ a2 + ■ ■ ■ + an se zapisuje také pomocí sumačního znaménka T ve tvaru ' Ea<- Tento zápis je trochu podobný FOR cyklu z různých programovacích jazyků. Ještě několik příkladů jeho použití: É1 J=2 11 1 1_ 2j 4 6 + 8 + 10 1 +± + ±=2 n E + 3) = E + !) + (* + 2) + • • • + (* + n)) = n n E (»»» + (1 + 2 + • • • + n)) = n (i \ + n(l + 2 + • • • + n) = 2n(l + 2 + --- + n). Podobně jako součty se zapisují pomocí ^ (což je velké řecké písmeno „sigma", od slova .suma), součiny se vyjadřují užitím znaménka I~[ (velké řecké písmeno „pí", od slova produkt), kupříkladu jj i + 1 1 2 n + 1 v = n + 1. Množiny. Jiným základním pojmem, který budeme používat, je pojem množiny. S tímto pojmem jste se patrně setkali již na střední škole (a díky snaživosti pedagogických modernizátorů možná i na základní škole). Množiny budeme označovat zpravidla pomocí písmen velké abecedy: A,B,...,X,Y,...,M,N,... 26 Kapitola 1: Základní pojmy a označení 1.2 Přirozená čísla, množiny 27 a podobně, a prvky množin budeme značit většinou malými písmeny a,b,...,x,y,... ,m,n..... Skutečnost, že množina X obsahuje prvek x, se označuje tradičně pomocí symbolu G (což je trochu stylizované řecké písmeno e - „epsi-lon"); x E X čteme „x (je) prvkem X". Je třeba si uvědomit, že pojem množiny a symbol ,.€" nedefinujeme (pomocí jiných, dříve zavedených pojmu). Jsou to tzv. primitivní pojmy. Předpokládáme, že ve všech konkrétních případech bude smysl uvažovaných množin a jejich prvků jasný. Jak se ukázalo začátkem století, používá-li se pojem množiny zcela svobodně a bezuzdné, může to vést k různým podivným situacím, tzv. paradoxům2. V tomto textu se však něčeho takového obávat nemusíme, většina námi uvažovaných množin bude mít dokonce konečný počet prvků. Množina s prvky 1, 37 a 55 se zapíše {1,37,55}. To i zápisy {37, 1, 55} a {1,37,1,55, 55,1} znamenají všechny totéž (tedy vícenásobný výskyt téhož prvku se ignoruje, týž prvek se nemůže v jedné množině vyskytovat dvakrát). Tři tečky v zápisu množiny {2,4,6,8,...} znamenají ovšem „a dále podobně, podle stejné zákonitosti", tj. v uvedeném případě množinu všech sudých přirozených čísel (příslušná zákonitost by ovšem měla být na první pohled patrná, tak například {21, 2 , 23,...} je srozumitelné jako množina všech mocnin dvojky, {2,4,8,...} je už možná srozumitelné méně). Složitější a zajímavější množiny se zpravidla tvoří zc známých množin pomocí nějakého pravidla. Množinu všech druhých mocnin přirozených čísel bychom mohli zapsat například {?;2; i g N} nebo také {n € N; existuje k G N tak, že fc2 = n} či totéž pomocí symbolu 3 pro „existuje" {n G N; 3k G N : k2 = n}. 2Nejznámější je asi tzv. paradox holiče: vojenský holič má holit všechny vojáky, kteří se neholí sami - má se, jakožto jeden z vojáků, holit, nebo ne? To se dá přeložit do matematické řeči a ukazuje to spornost pojmů jako „množina všech množin" a podobně. Důležitá je množina neobsahující žádný prvek. Taková množina existuje pouze jedna a je zvykem ji značit 0 a nazývat prázdná množina. Poznamenejme, že prázdná množina může být prvkem jiné množiny. Například, {0} je množina, obsahující prázdnou množinu jako prvek, a není to tedy totéž jako 0! Počet prvků, neboli mohutnost, množiny X budeme značit symbolem \X\ (jako absolutní hodnota). Cizím slovem se mohutnosti říká také kardinalita. Mohutnost se definuje i pro nekonečné množiny; my ji ale budeme uvažovat jen pro množiny konečné. V matematice máme dost často co dělat s množinami, jejichž prvky jsou jiné množiny. Můžeme třeba definovat množinu M= {{1,2}, {1,2,3}, {2,3,4}, {4}}, jejímiž prvky jsou 4 množiny přirozených čísel, přesněji řečeno 4 podmnožiny množiny {1,2,3,4}. V diskrétní matematice se s takovými množinami setkáváme běžně. Aby se nemuselo říkat „množina množin", používá se někdy výraz množinový systém?, řekli bychom tedy, že M je systém množin na množině {1,2,3,4}. Takové množiny množin neboli množinové systémy se někdy označují ozdobnými typy velkých písmen, třeba M. Je ale vidět, že takové rozlišení pomocí typů písma nemůže být úplně důsledné, co třeba když bychom narazili na množinu množin množin? Množinu všech možných podmnožin nějaké množiny X budeme značit symbolem 2X. (Jiné v literatuře běžné označení je V{X), písmeno V je od anglického „power set"). Obecnější zápis sum a součinů. Někdy je výhodný obecnější způsob zápisu sumy než podle vzoru Yh=i °i- Například *6{1,3,5,7} znamená součet l2 + 32 + 52 + 72; pod sumační znaménko se napíše nejdříve proměnná, podle které se sčítá, a potom se nějakým způsobem zapíše množina hodnot, přes něž se sčítá. Ve způsobu zápisu V angličtině se někdy používá roztomilejší výraz family of sets, tedy rodina množin. 28 Kapitola 1: Základní pojmy a označení 1.2 Přirozená čísla, množiny 29 této množiny je značná libovůle, někdy se může i zčásti popsat slovy. Třeba: i = 2 + 3 + 5 +7. i] l 0 platí [V^J = LVT^JJ- 4. Zapište výraz f|ľ=i UjLi Mj jako sjednocení průniků. 5. (a) Podejte definici „uzávorkování" pro sjednocení n množin [J"-i %i a „uzávorkování" pro součet n čísel X)i=i ai- (b) Dokažte, žc každá dvě uzávorkování výrazu f|"=1 X» dávají stejný výsledek. (c) Kolika způsoby lze uzávorkovat sjednocení 4 množin AuBLíCUD'! (d) ** Pokuste sc odvodit, kolika způsoby lze uzávorkovat sjednocení n množin U"=i ^i- 6. Je pravda, že pro každé dvě množiny X a Y platí 2X = 2Y, právě když X = Y1 7. Na následující úloze si můžete otestovat svou schopnost nacházet jednoduchá leč skrytá řešení. Rozdělte následující obrazec na 7 navzájem shodných částí (všechny ohraničující úsečky mají délku 1 a úhly jsou 90, 120 a 150 stupňů). 1.3 Matematická indukce Řekněme, že chceme spočítat třeba součet ri 1 + 2 4- 22 + 23 + • • • + T = 2* (a že si nevybavujeme vzorec pro součet geometrické posloupnosti). Výpočtem číselných hodnot pro několik malých hodnot n můžeme odhalit, že uvedený součet bude nejspíš roven 2n+1 1. I kdybychom to ale ověřili na počítači pro miliony konkrétních hodnot n, nebude to ještě důkaz. Správnost tohoto vztahu pro všechna n se dá ukázat tzv. matematickou indukcí (jiný používaný název je úplná indukce). V tomto případě bychom postupovali takto: 1. Vztah Ya=o 2l = 2"+1 _ 1 Je správný pro n = 1, jak se přesvědčíme dosazením. 2. Předpokládejme, že uvedený vztah platí pro nějakou hodnotu n = n0. Dokážeme, že platí i pro n = n0 + 1. Skutečně, «o+l / rap J3 2' = ( J221) +2"'0+1; »:=o m=o ' suma v závorce je podle předpokladu rovna 2nn+1 — 1, takže no+l 2?: = 2"0+i - 1 + 2"0+l = 2x 2™0+1 - 1 = 2"0+2 - 1. To je ale požadovaný vztah pro n = no + 1. 32 Kapitola 1: Základní pojmy a označení 1.3 Matematická indukce 33 Tím jsme dokázali platnost vztahu pro libovolné n: Podle kroku 1 totiž vztah platí pro n — 1, podle kroku 2 platí i pro n = 2 (použijeme krok 2 s no = 1), opět podle kroku 2 platí pro n = 3,..., a takto můžeme pokračovat libovolně daleko. Krok 2 v tomto typu důkazu se jmenuje indukční krok. Předpoklad, že dokazované tvrzení již platí pro nějaké n = no, se nazývá indukční předpoklad. Obecně se princip matematické indukce dá formulovat například takto: 1.3.1 Tvrzení. Nechť X je množina přirozených čísel, pro niž platí: (i) Číslo 1 je prvkem X. (ii) Je-li číslo n prvkem X, potom rovněž číslo n + 1 je prvkem X. Potom X je množina všech přirozených čísel (tedy X = N). V aplikacích bude X množina všech n, pro něž platí dokazované tvrzení. Schéma důkazu indukcí má mnoho různých obměn. Například, chceme-li nějaké tvrzení dokazovat pro všechna n > 2, bude první krok důkazu patrně ověření platnosti tvrzení pro n = 2. Jako indukční předpoklad můžeme někdy využívat nejen platnosti tvrzení pro n = no, ale i pro všechna n < íiq. A tak dále. Matematickou indukci můžeme pokládat buď za základní vlastnost přirozených čísel (tj. axiom, který nedokazujeme), nebo ji můžeme dokázat z jiné základní vlastnosti (axiomu), totiž že každá neprázdná podmnožina přirozených čísel má nej menší prvek (to se vyjadřuje obratem, že uspořádání přirozených čísel podle velikosti jc dobré uspořádání). Důkaz tvrzení 1.3.1 z vlastnosti dobrého uspořádání: Předpokládejme pro spor, že X splňuje (i) a (ii), ale neobsahuje všechna přirozená čísla. Nechť tedy přirozené číslo n nenáleží X. Mezi všemi takovými přirozenými čísly n (nenáležejícími X) zvolme číslo nejmenší a označme ho no. Podle podmínky (i) víme, že no > 1, a protože r?.0 bylo minimální, je číslo no — 1 prvkem množiny X. Použitím (ii) však dostaneme, že no je prvkem X, což je spor. n Poznamenejme, že tento typ úvahy, kde řekneme „Nechť n0 je nejmenší číslo, pro které dokazované tvrzení neplatí" a odvodíme spor -jmenovitě že musí existovat ještě menší číslo, pro nějž tvrzení neplatí -někdy nahrazuje matematickou indukci. Oba způsoby (právě zmíněný a matematická indukce) v podstatě dělají totéž a který z nich použijeme je hlavně věc vkusu. Matematickou indukci budeme často používat, bude to jeden z našich základních důkazových prostředků. Spoustu příkladů a cvičení na indukci najde tedy čtenář v dalších kapitolách. Cvičení 1. Dokažte indukcí vztahy (a) 1 + 2 + 3 H-----f n = n(n + l)/2 (b) Eti *2': = (n - 1)2«+! + 2. 2. Čísla FQ, pí, Fa,... jsou zadána takto: F0 - 0, F\ 1, Fn . ■> = Fn+Í + Fn pro n = 0,1, 2,.... Dokažte, že pro každé n > 0 platí Fn < ((1 + v/5)/2)"-x (viz též část 12.3). 3. (a) Nakresleme n přímek v rovině tak, že žádné 2 nejsou rovnoběžné a žádné 3 se neprotínají v jednom bodě. Dokažte, že rovina je tím rozdělena na přesně n(n + l)/2 + 1 částí. (b)* Podobně uvažte n rovin v třírozměrném prostoru, z nichž každé 3 mají právě jeden společný bod a žádné 4 nemají společný bod. Zjistěte, na kolik oblastí rozdělují prostor. 4. Dokažte indukcí de Moivreovu větu: (cos a + i sin «)" = cos(na) + i sin(no:) (kde i je imaginární jednotka, i2 = —1). 5* Nechť M C R jc množina reálných čísel taková, že každá její neprázdná podmnožina má nejmenší prvek a také největší prvek. Dokažte, že M je nutně konečná. 34 Kapitola 1: Základní pojmy a označení 1.4 Relace 35 G. Dokážeme indukcí následující tvrzení: Nechť pi,P2, ■■• ,Pn je n > 2 různých přímek v rovině, žádné 2 nejsou rovnoběžné. Potom všechny tyto přímky mají společný bod. 1. Pro n — 2 tvrzení platí, protože každé 2 různoběžné přímky se protínají. 2. Nechť tvrzení platí pro n = no, mějme n = rao + 1 přímek pi,... ,pn. Podle indukčního předpokladu mají všechny přímky kromě poslední, tj. Pi,p2i • • • i Pra-li společný nějaký bod, označme jej x. Podobně přímky Pi,P2, • • • ;Pu-2,Pn mají společný bod, označíme jej y. Přímka p^ leží v obou skupinách, proto obsahuje jak x, tak y. Totéž platí pro přímku p„_2- Poněvadž jsou pi a pn-2 podle předpokladu různoběžné a tedy se protínají jen v jednom bodě, platí x = y. Tedy všechny přímky pi,... ,p« mají společný bod. Kde je zádrhel? 7. Obyvatelé staroegyptské říše zapisovali zlomky jako součty zlomků s čitatelem las navzájem různými jmenovateli, např. | = | + yg- Uvažte následující algoritmus pro zápis zlomku ^ v tomto tvaru (1 < m < n): napiš zlomek j^y, vypočítej zlomek ^ - y^y, a je-li nenulový, vyjádři jej v požadovaném tvaru týmž algoritmem. Dokažte, že tento algoritmus vždy skončí. 1.4 Relace Je pozoruhodné, jak mnoho matematických pojmů je možno vyjádřit pomocí množin a, rozličných množinových konstrukcí. Je to nejen pozoruhodné, ale i překvapivé, nebol' teorie množin, a dokonce pojem množiny, jsou pojmy zařazené do matematiky vlastně nedávno, a ještě před 100 lety byla teorie odmítána i některými předními vědci. Dnes se však teorie množin stala součástí běžného matematického vyjadřování, stala se jazykem matematiky (a matematiků), jazykem, který napomohl chápat současnou matematiku při vší její různorodosti jako jeden celek se společnými základy. Ukažme si, jak pomocí nejjednodušších množinových prostředků můžeme definovat další matematické pojmy. Jestliže x a y jsou prvky (nějaké množiny), potom symbol {x,y} označuje množinu obsahující právě prvky x a y, a nazývá se neuspořádaná dvojice prvků x a y. Připomeňme, že {x,y} je totéž jako {y,x}, a pokud x = y, potom {x, y} je jednoprvková množina. Zavedeme rovněž označení (.x, y) pro uspořádanou dvojici prvků x a y. Při této konstrukci závisí na pořadí prvků x a y. Předpokládáme tedy, že platí (x, y) = (z, t) právě když x = z a y = t. (1.2) Je zajímavé, že uspořádanou dvojici lze již vytvořit pomocí pojmu neuspořádané dvojice, následovně: {x,y) = {{x},{x,y}}. Ověřte, že takto definované uspořádané dvojice splňují podmínku (1.2). V tomto textu však bude pro nás jednodušší považovat (x,y) za další primitivní (tedy známý) pojem. Podobně definujeme uspořádanou n-tici prvků x\,..., xn, již označujeme4 (xí, .. .,xn). 1.4.1 Definice. Nechť X a Y jsou množiny. Symbolem X xY označíme množinu všech uspořádaných dvojic tvaru {x.y), kde x E X a y (F_Y. Formálně zapsáno XxY = {(x,y);xeX,yeY}. X x Y se nazývá (kartézský) součin množin X a Y. Název „kartézský součin" pochází z geometrické interpretace (a původně tedy zejména Dcscartcs): Když např. X = Y = R, potom X x Y můžeme interpretovat jako všechny body roviny, a v tomto případě x a y jsou (kartézské) souřadnice bodu (x, y) roviny: y - (x, y) (0.0) x Stejný zápis používáme i pro n-rozměmý vektor se složkami x\,... ,xn, jsou-li Xi např. reálná nebo komplexní čísla. 36 Kapitola 1: Základní pojmy a označení 1.4 Relace 37 Tohoto názoru používáme nejenom pro číselné množiny, ale například i pro kartézský součin konečných množin: Kartézský součin X x X někdy zapisujeme jako mocninu, tj. X2, a podobně X3 = X x X x X atd. Dostáváme se nyní k jednomu z klíčových pojmů celé matematiky. Pojem relace, který nyní zavedeme, zobecňuje tak rozdílné pojmy, jako jsou ekvivalence, funkce a uspořádání. 1.4.2 Definice. Relace5 R, je množina uspořádaných dvojic. Jsou-li X a Y množiny, nazývá se libovolná podmnožina kartézského součinu X x Y relací mezi X a Y. Zdaleka nejdůležitější případ je X = Y, v takovém případě mluvíme o relaci na X, což je tedy libovolná podmnožina R C X2. Náleží-li dvojice (x,y) relaci R, tj. (x, y) e R, říkáme také, že x a y jsou v relaci R, a zapisujeme též xRy. Jako relace v tomto smyslu můžeme interpretovat některé čtenáři dobře známé symboly. Tak například, „=" (rovnost) i „>" (neostrá nerovnost) jsou relace na množině N všech přirozených čísel. První z nich sestává z dvojic (1,1), (2, 2), (3, 3),..., druhá z dvojic (1,1), (2,1), (2, 2), (3,1), (3, 2), (3, 3), (4,1),.... Mohli bychom tedy psát i třeba (5, 2) G > místo 5 > 2, což ovšem neděláme. Všimněte si, že jsme museli říci, na jaké množině např. relaci > uvažujeme; jako relace třeba na R by to byla jiná množina dvojic. Slovo „relace" pochází z kořene znamenajícího „(příbuzenský) vztah". Příbuzenské vztahy (např. „býti matkou", „býti otcem", „býti sourozen- 8Obšírněji binární relace (poněvadž dává do vztahu dvojice prvků). Někdy se definují i relace n-ární pro n > 2. cem") skutečně poskytují řadu (netriviálních) příkladů relací na množině všech lidí. Relaci R na množině X můžeme obrázkově vystihnout dvěma naprosto rozdílnými způsoby. Pro relaci R = {(1,2), (2,4), (3,2), (4,2), (4,4)} na množině {1,2, 3,4} dává první způsob takovýto obrázek: 12 3 4 čtvercová políčka odpovídají uspořádaným dvojicím v kartézském součinu, a pro dvojice náležející do relace jsme příslušná políčka vybarvili. V tomto obrázku zdůrazňujeme definici relace na X a vystihujeme její „celkový tvar". Tento obrázek má rovněž velmi blízko k alternativnímu popisu relace na množině X pomocí pojmu matice . Jestliže R je relace na nějaké n-prvkové množině X = {x\9... ,xn}, potom R je úplně popsána n x n maticí A = («y), kde = 1 jestliže (xi,Xj) G R aí-j = 0 jestliže {xllXj) g" R. Matici A nazýváme matice sousednosti relace R. Například, pro relaci R zobrazenou výše je příslušná matice sousednosti (pro xt — i. i — 1. 2. 3,4) / 0 1 0 0 \ 0 0 0 1 0 10 0 ' \ 0 1 0 1 / Jiný způsob znázornění téže relace je takovýto: 6Matice n x m je obdélníková tabulka čísel s n řádky a rn sloupci; viz dodatek o algebře. 38 Kapitola 1: Základní pojmy a označení 1.5 Funkce 39 Puntíky odpovídají jednotlivým prvkům množiny X. Skutečnost, že daná uspořádaná dvojice prvků (x, y) náleží relaci R, vyznačíme nakreslením šipky z x do y: y a v případě x = y smyčkou Oba způsoby znázornění budeme v dalším používat. Podobně můžeme znázorňovat relaci mezi X a,Y, například takto: Skládání relací. Nechť X, Y, Z jsou množiny, R C X xY nějaká relace mezi Xa.Y,nSQYxZ relace mezi Y a Z. Složením relací R a S nazveme relaci T C X x Z, definovanou následovne: xTz (pro x G X. z G Z) platí právě tehdy, když existuje nějaké y G Y takové, že x Ry a y S z. Složení relací R. a S se značí zpravidla R o S. Skládání relací se dá dobře schematicky znázornit pomocí šipek. Na následujícím obrázku bude dvojice (x, z) v relaci R, o S, kdykoli lze z x do z projít po šipkách (přes nějaké y G Y): Všimněme si, že složení není definováno pro každé 2 relace: abychom mohli skládat, musí mít relace společnou „prostřední" množinu (již jsme v definici značili Y). Jsou-li však R i S relace na téže množině X, je jejich složení vždy dobře definováno. I v tomto případě výsledek skládání relací záleží na pořadí: R o S je obecně něco jiného než S o R, viz cvičení 2. Cvičení 1. Popište relaci R o fí, označuje-li R (a) relace rovnosti „=" na množině N všech přirozených čísel, (b) relaci „menší nebo rovno" („<") na N, (c) relaci „ostře menší'' („<") na N, (d) relaci „ostře menší" („<") na množinč R všech reálných čísel. 2. Najděte relace R a S na, nějaké množině X takové, že R o S ^ S o R. 3. Pro relaci R na množině X definujeme indukcí symbol Rn: R1 = R, Rn+l = RoRn. (a) Ukažte, že je-li X konečná množina a R relace na ní, potom existují r, s G N, r < s taková, že Rr = Rs. (b) Najděte relaci R na konečné množině takovou, že Rn ^ Rn^1 pro každé n G N. (c) Uka.žte, že je-li X nekonečná, tvrzení (a) platit nemusí (tj. existuje relace R, taková, že všechny relace tvaru R" jsou navzájem různé). 1.5 Funkce Pojem funkce je jeden ze základních pojmů v matematice. Trvalo dlouho, než se dospělo k dnešnímu chápání funkce (jakožto speciálního typu 40 Kapitola 1: Základní pojmy a označení 1.5 Funkce 41 relace); například v době, kdy byl objeven diferenciální počet, se uvažovaly pouze reálné nebo komplexní funkce, a „poctivá" funkce musela být vyjádřena nějakou formulí nebo součtem nekonečné řady (jako třeba f(x) = x2 + 4, f(x) = ^/šh^x/nj, nebo f(x) = f*(sint/t)dt, J(x) — J3^t.0(xw/»!)). To, že například reálná funkce může přiřazovat každému reálnému číslu nějaké zcela libovolné reálné číslo, je celkem moderní vynález. 1.5.1 Definice. Funkce z množiny X do množiny Y je relace f C X x Y, splňující dodatečnou podmínku, že pro každý prvek x G X existuje právě jediný prvek y G Y tak, že xfy. Místo „funkce" se také říká „zobrazení"7. Při znázornění relace pomocí šipek předchozí definice znamená, že z každého bodu množiny X vychází právě jedna šipka, jako na následujícím obrázku: X f Y To, že / je funkce z množiny X do množiny Y, zapisujeme takhle: f:X->Y. A to, že funkce / přiřazuje nějakému prvku x jistý prvek y, zapisujeme / : x h-» y. Tento symbol je výhodný, chceme-li mluvit o nějaké funkci aniž bychom ji pojmenovali, například „uvažme funkci x ^ 3asin(&x)" (z tohoto 7V některých odvětvích matematiky se slovo funkce rezervuje pro funkci do reálných (nebo komplexních) čísel, a slovo zobrazení se používá pro funkce do libovolné množiny. Pro nás budou „funkce" a „zobrazení" synonyma. zápisu je vidět, že míníme zkoumat závislost na x a nikoli na o nebo na b). Funkce, jakožto podmnožina kartézského součinu X x Y, se také kreslí pomocí grafu. To je způsob znázornění, který se nejvíce používá na střední škole i v matematické analýze. Následující obrázek to ukazuje pro funkci / : R —> R danou předpisem f{x) — x? + 1: \ / / / Pro funkce se ovšem nepoužívá značení, zavedeného pro relace. Je-li / C X x Y relace, která je funkcí, f(x) označuje to jediné y EY, pro něž xfy. Dále, množinu \f(x): x G X} označujeme f (X). Zavádějí se i další termíny (X je definiční obor, Y je obor hodnoť), ale v tomto textu se snažíme používat minimálně formalismu a terminologie. Skládání funkcí. Funkce se skládají stejně jako relace, ale používá se přitom jiné značení! Definici skládání funkcí můžeme odvodit ze skládání relací, pro jistotu ji zformulujme: 1.5.2 Definice. Jsou-li f : X —> Y a g : Y —> Z funkce, potom můžeme deňnovat novou funkci h : X —> Z předpisem h(x)=g{f{x)) pro každé x G X. 42 Kapitola, 2: Základní pojmy a označení 1.5 Funkce 43 Funkce h (přesvědčete se, že h je opravdu funkce) se nazývá složení funkcí g a f a značí se g o f. Tedy platí (W)(X> .'/(/i-'')) pro každý prvek x G X. Tady je zmíněná odlišnost od skládání relací. Pro relace jc zvykem psát skládání „zleva doprava", pro funkce „zprava doleva". Jsou-li tedy / : X —* Y a g ; Y —> Z funkce, jejich složení zapíšeme g o f, kdybychom je ale chápali jako relace, psali bychom pro totéž / o g\ Oba zápisy mají své důvody, takto se značení historicky ustálilo a nemá asi smysl se snažit ho měnit. K nejasnostem by dojít nemělo. V tomto textu budeme téměř výhradně mluvit o skládání funkcí. Skládání funkcí je asociativní, ale není komutativní. Má-li g o / smysl, potom / o g nemusí být vůbec definováno. 1.5.3 Definice (Důležité druhy funkcí). Funkci f : X —> Y nazýváme • prostá funkce, jestliže pro x / y je f (x) ^f(y), • funkce na, jestliže pro každé y G Y existuje x E X splňující f (x) = y, • vzájemně jednoznačná funkce, jestliže f je prostá a na. Cizími slovy sc funkce na nazývá surjehtivní (z francouzštiny, čte se „syr-jektivní"), prostá funkce je injektivni a vzájemně jednoznačná funkce se jmenuje bij'ektivni nebo bijekce. „Bijekce" je pro svou krátkost možná vhodnější termín než „vzájemně jednoznačná funkce". V obrázkovém znázornění funkce pomocí šipek se tyto druhy funkcí poznají takto: • pro prostou funkci vchází do každého bodu y £ Y nejvýš jedna šipka, • pro funkci na vchází do každého bodu y € Y aspoň jedna šipka, • pro bijekci vchází do každého bodu y £ Y právě jedna šipka. Jak už jsme řekli, funkci / z X do Y značíme /' : X —► Y. Fakt, že funkce / je prostá, vyznačujeme někdy zápisem / : X^Y, funkci /, která je na, značíme / : X^Y, a konečně funkci vzájemně jednoznačnou značíme / : X^Y. (Tohle značení není v literatuře příliš běžné.) Platí následující: 1.5.4 Tvrzení. Nechť f : X —* Y a g : Y —> Z jsou funkce. (i) Jsou-li f, g prosté funkce, je rovněž go f funkce prostá; (ii) Jsou-li f, g funkce na, je rovněž go f funkce na; (iii) Jsou-li f,g funkce vzájemně jednoznačné, je rovněž g o f funkce vzájemně jednoznačná. (iv) Pro každou funkci f : X —> Y existuje množina Z, prostá funkce h : Z^Y a funkce na g : X—»Z tak, že f = ho g. (Tedy každou funkci lze napsat jako složení funkce prosté a funkce na.) Důkaz. Části (i), (ii), (iii) sc dostanou přímým ověřením definice. Dokažme např. (ii). Zvolme Z € Z, hledáme x £ X splňující [g o fj (x) — z. Protože g jc funkce na, existuje nejprve y E Y tak, že g(y) = z. A protože / je funkce na, existuje poté x € X splňující f(x) = y. Takový x je hledaný prvek splňující (jg o f^j (x) = z. Nejzajímavější jc bod (iv). Buď Z = f(X) = {/($); x € X} (je tedy Z C Y). Definujme zobrazení g: X—>Zah: Z^>Y předpisem: g(x) = f(x) pro ié! h(z) = z pro z e Z. Zřejmě g je funkce na (čili g : X—»Z), h je funkce prostá (čili h : Z^Y) a / — ho g. D 44 Kapitola 1: Základní pojmy a označení 1.6 Další druhy relací, zvláště ekvivalence 45 Cvičení 1. Ukažte, že je-li X konečná množina, potom funkce / : X —» X je prostá, právě když je na. 2. Najděte příklad (a) prosté funkce / : N^N, která není na, (b) funkce / : N^>N (na), která není prostá. 3. Označme ix '■ X —s- X funkci, která zobrazuje každý prvek množiny X na něj samotný (tato funkce se nazývá identická nebo identita na X). Nechť / : X —> Y je nějaká funkce. Ukažte, že (a) funkce g : Y —> X taková, že g o f = ix, existuje právě když / je prostá. (b) funkce g : Y —> X taková, že / o g = ty, existuje právě když / je na. 4. (a) Je-li g o f funkce na, musí g být na? Musí / být na? (b) Je-li g o f prostá funkce, musí g být prostá? Musí / být prostá? 1.6 Další druhy relací, zvláště ekvivalence Každý jazyk má své zvláštnosti. Některé jazyky milují samohlásky, jiné souhlásky (mezi ně asi patří čeština) a ještě jiné se vyznačují spřežkami. Některé jsou jednoduché z hlediska gramatiky, u jiných se snadno učí výslovnost. Podobně tomu je i v matematice. Sám matematický jazyk má své podstatné vlastnosti (je přesný a záleží v něm snad až příliš na detailech), ale i jednotlivé části matematiky se odlišují stylem a jazykem. Tak například pro algebru sc zdá být typické množství pojmů a definic, které se zpravidla vyskytují na počátku, předtím než sc přikročí k vlastnímu studiu. Mnoho z těchto pojmů se však vyskytuje i při studiu jiných disciplín a patří do jazykového fondu cele matematiky. Zde uvedeme takový příklad tvorby pojmů. Tato část náleží do obecné algebry a týká se různých druhů relací. V odstavci 1.5 nám již speciální relace posloužily k definici pojmu funkce. Nyní zavedeme další 4 druhy. 1.6.1 Definice. Řekneme, že relace R na množině X je • reflexivní, jestliže pro každé x G X platí xRx, • symetrická, jestliže kdykoli xRy, pak i yRx, • antisymetrická, jestliže pro každé x: y S X platí, že pokud xRy a zároveň yRx, potom x = y, • transitivní, jestliže ze vztahů xRy a yRz plyne xRz. Samozřejmě jsme mohli zavést i další druhy, ale vystačíme si s uvedenými 4 druhy a jejich rozličnými kombinacemi. Ve znázornění jako str. 37 obsahuje reflexivní relace všechny čtverečky na diagonále, a ve znázornění se šipkami má smyčky u všech bodů. Obrázek jako str. 37 pro symetrickou relaci je symetrický podle diagonály. Ve znázornění pomocí šipek jdou vždy šipky oběma směry: Pro antisymetrickou relaci naopak víme, že se v ní takový obrázek nevyskytuje: Podmínka transitivity sc dá dobře vyjádřit pomocí šipek: jsou-li v relaci šipky x —> y a y —> z, musí tam být i x —> z: y x z Uvedené znázornění zdůrazňuje skutečnost, že všechny 4 vlastnosti je možno snadno ověřit; jsou to vlastnosti definované pomocí dvouprvkových a tříprvkových podmnožin. 46 Kapitola 1: Základní pojmy a označení 1.6 Další druhy relací, zvláště ekvivalence 47 Vlastnosti z dennice 1.6.1 můžeme rovněž zapsat pomocí operace skládání relací (zavedené v odstavci 1.4) a následujících dvou pojmů: Pro relaci R definujeme relaci R~l předpisem RT {(y,x); (x,y) e R)}. Nazýváme ji relace inverzní k relaci R. Symbolem A x označíme nejmenší reflexivní relaci na množině X: Ax = {(x,x);x 6 X}. Relace Ax se jmenuje diagonála (na množině X). Tento název je motivován maticovým znázorněním relace, uvedeném v části 1.4. Použitím těchto nástrojů můžeme zapsat definici 1.6.1 krátce takto: (1) i? je reflexivní, jestliže Ax Q R- (2) i? je symetrická, jestliže R = R l. (3) R, je antisymetrická8, jestliže R n R^1 C Ax • (4) R je transitivní, jestliže R, o R C R. Kombinací těchto pojmů dostaneme některé ze základních typů relací. 1.6.2 Definice. • Řekneme, že relace R na X je ekvivalence na X, jestliže je reflexivní, symetrická a transitivní (tj. ekvivalence splňuje (1). (2) a (4))- • Řekneme, že relace R na X je uspořádání na X, jestliže je re-ňexivní, antisymetrická, a transitivní (tj. uspořádání splňuje (1), (3) a (4)). To, čemu my říkáme antisymetrická relace, se někdy v literatuře nazývá slabě antisymetrická relace. Obrázek 1.1: Schematické znázornění relace ekvivalence na množině. • Řekneme, že relace R na X je lineární uspořádání na X, jestliže je to uspořádání a navíc RU R-1 = X x X. Na první pohled se může zdát, že rozdíly v jednotlivých částech definic jsou nepodstatné, ale příklady přesvědčí každého snadno o opaku (viz rovněž cvičení 7): relace (N, =) (rovnost přirozených čísel) je ekvivalence, relace (N, |) (dělitelnost přirozených čísel) je uspořádání, relace (N, <) (nerovnost přirozených čísel) je lineární uspořádání. Každé lineární uspořádání je také uspořádání, ale to je jediný vztah, který obecně platí pro uvedené tři druhy relací. Ve skutečnosti je podobnost pouze zdánlivá. Pojmy ekvivalence a uspořádání jsou tak vzdálené, že se studují odděleně. Učiníme tak i my. V tomto článku pojednáváme o ekvivalencích, zatímco uspořádáním a lineárním uspořádáním bude věnována kapitola 2. O ekvivalencích. Pojem ekvivalence je střechový pojem pro všechny pojmy vyjadřující stejnost, podobnost, isomorfismus atd. Relace ekvivalence se zpravidla značí symboly jako = , =, ~, ~, =, w, p a podobně. Přestože ekvivalence R na množině X je speciální relace a můžeme ji tedy znázornit libovolným ze dvou výše uvedených způsobů, častěji se používá znázornění jako na obr. 1.1. Klíčem k tomuto znázornění je následující pojem třídy ekvivalence: Nechť i? je ekvivalence na množině X, nechť a; je libovolný prvek množiny X. Označme symbolem R[x] množinu všech prvků y, které jsou ekvivalentní s x, tj. R[x] — {y; xRy}. Toto R[x] se nazývá třída ekvivalence R určená prvkem x. 48 Kapitola 1: Základní pojmy a označení 1.6 Další druhy relací, zvláště ekvivalence 49 1.6.3 Tvrzení. Pro každou ekvivalenci R na X platí (i) R[x] je neprázdná množina pro každý prvek x e X. (u) Pro každé dva prvky x, y množiny X platí buď R[x] = R[y], nebo R[x] n R[y] = 0. (iii) Třídy ekvivalence jednoznačne určují (popisují) relaci R. Předtím, než přistoupíme k důkazu, bychom měli vysvětlit smysl bodu (iii). Přesný význam je následující: Jsou-li R, a S dvě ekvivalence na množině X a platí-li pro každý prvek x množiny X rovnost R[x] = S[x], potom R — S. Důkaz je jednoduchý použitím všech tří požadavků v definici ekvivalence. (i) Množina R[x] vždy obsahuje prvek x. protože R je relace reflexivní. (ii) Nechť x. y jsou dané prvky. Rozlišíme dvě možnosti: (a) Jestliže xRy, potom dokážeme nejprve R[x] C R[y}. Skutečně, je-li z e R[x], potom víme rovněž že zRx (použitím symetrie relace R) a tudíž zRy (použitím transitivity R). Proto i z G R[y}. Opětovným použitím symetrie R dostáváme, že z platnosti xRy plyne R[x] = R[y]. (b) Nechť neplatí xRy. Ukážeme, že R[x] D R[y] = 0. Postupujme sporem: Nechť existuje z G R[x] n R[y]. Potom xRz a zRy (použitím symetrie R), a tedy xRy (opětovným použitím transitivity R), což je spor. (iii) Tato část tvrzení je zřejmá, neboť třídy ekvivalence R určují R vztahem xRy právě když {x,y} C R[x]. □ Toto tvrzení vysvětluje obrázek 1.1. Podmnožiny dané množiny X, které jsou navzájem disjunktní a které obsahují (dohromady) všechny prvky, tvoří rozklad množiny X. Tvrzení 1.6.3 potom zaručuje, že třídy ekvivalence tvoří rozklad množiny a že vztah mezi všemi ekvivalencemi na dané množině X a všemi rozklady X je vzájemně jednoznačný. Cvičení 1. Formulujte podmínky pro reflexivitu relace, pro symetrii relace a pro její transitivitu v řeči matice sousednosti relace. 2. Dokažte, že relace R na množině X je transitivní, právě když RoR C R. 3. Dokažte, že RCíR^1 — Ax, právě když R je reflexivní a antisymetrická. 4. (a) Dokažte, že pro libovolnou relaci R. na nějaké množině X je relace T = RURoR\jRoRoR\J... (sjednocení všech mnohonásobných složení R.) transitivní. (b) Dokažte, že každá transitivní relace obsahující R obsahuje i T. (c) Dokažte, že je-li \X\ = n, pak T = RllRo RU... U R o R o ... o R. (n.-l)x 5. Nechť R, a S jsou libovolné ekvivalence na množině X. Rozhodněte, které z následujících relací jsou nutně také ekvivalence. (a) R n S (b) RUS (c) R\S (d) R o S. (e) r'oS"1. 6. Nechť R a S jsou libovolná uspořádám na množině X. Rozhodněte, které z následujících relací jsou nutně také uspořádáními. (a) R O S (b) RUS (c) R\S (d) R o S. 7. Dokažte, že Ax je jediná relace na množině X. která je současně ekvivalence i uspořádání. 50 Kapitola, 1: Základní pojmy a označení 8. Nechť R a S jsou relace na nějaké množině X. Řekneme, že R a S jsou isomorfní, pokud existuje bijekce /: X —» X taková, že pro každé x,y £ X platí xRy, právě když f(x)Sf(y). (a) Vypište všechny možné relace na dvouprvkové množině X = {a, b}. Určete, které jsou navzájem isomorfní. (b) Dokažte, pro libovolnou množinu X je vztah „býti isomorfní" ekvivalence na množině všech relací na X. 2 O uspořádaných množinách Čtenář jistě zná lineární uspořádání přirozených čísel i dalších číselných oborů podle velikosti. Takové uspořádání se v matematice chápe jako speciální typ relace, tj. jako vztah dvojic čísel. Tato relace se ve zmíněném případě zpravidla označuje symbolem ,,<" („menší nebo rovno"). I na jiných množinách, třeba na množině všech slov v nějakém jazyku, se zavádějí různá uspořádání, a tutéž množinu lze uspořádat mnoha způsoby. Obecný pojem uspořádání jsme již zavedli v definici 1.6.2: Relace R se nazývá uspořádání, jestliže je reflexivní, antisymetrická a transitivní. Dodejme ještě, že je-li X množina a R uspořádání na X, říká se dvojici (X, R) uspořádaná množina. Uspořádané množiny mají mnoho zajímavých vlastností. V této kapitole uvedeme některé z nich a k dalším se vrátíme později, např. v kapitole 7. 2.1 Uspořádání a jejich znázorňování Začneme několika poznámkami k pojmu uspořádání. Pro relace uspořádání se často používají symboly ■< nebo <. První z nich je užitečný, chceme-li např. mluvit ještě o nějakém jiném uspořádání množiny přirozených čísel, než je obvyklé uspořádání podle velikosti, nebo uvažujeme-li nějaké obecné uspořádání na libovolné množině. 52 Kapitula 2: O uspořádaných množinách 2.1 Uspořádání a jejich znázorňování 53 Mámc-li nčjaké uspořádání definujeme odvozenou relaci „ostré nerovnosti" -< takto: a ~< b, právě když a ^ i) a o, / b. Dále můžeme definovat „obrácenou nerovnost", tj. relaci y, vztahem a y b b ^ a. Lineární uspořádání a částečná uspořádání. Připomeňme, že relace R se nazývá lineární uspořádání, jestliže je to uspořádání a navíc pro každé x, y platí xRy nebo yRx. Lineární uspořádání se také někdy nazývá úplné uspořádání. Když se mluví o uspořádání, které nemusí být nutně lineární, říká se někdy obšírněji částečné uspořádání. Částečné uspořádání tedy znamená přesně totéž, co uspořádání (bez dalších přívlastků), a podobně místo uspořádaná množina se často říká částečně uspořádaná množina1. Příklady. Několik příkladů uspořádaných množin jsme už zmínili -byly to (N, <), (R, <) a podobně, kde < značí obvyklé uspořádání podle velikosti (formálně chápané jako relace). Jak sc snadno ověří, jestliže je R uspořádání na nějaké množině X a F je podmnožina X. potom relace RCíY2 je uspořádání na Y (pomocí relace R porovnáváme prvky z F a na ostatní zapomeneme). Tím máme další příklady uspořádaných množin, totiž všelijakých podmnožin reálných čísel. To je poměrně obecný příklad lineárně uspořádané množiny -viz cvičení 2.3.6. Myšlenku seřazení slov vc slovníku podle abecedy formálně zachycuje pojem lexikografického uspořádání (česky „slovníkového"). Uvažme napřed speciální případ: bud X = N x N kartézský součin dvou kopií přirozených čísel, tj. množina všech uspořádaných dvojic [a\, 0,2), kde Gi a ai jsou přirozená čísla. Na X definujeme relaci -• •) (Xn, 1Což má i pěknou zkratku. Ostatně v angličtině sc plný termín partially ordered set také zkracuje na umělé slovo poset. pokud buď (ai, ei2)..., an) = (bi, 62,... , bn), nebo existuje index i, 1 < i < n, takový, žc a,- = bj pro všechna j < i a a* 1 to není uspořádání lineární. Popišme zajímavější příklady částečně uspořádaných množin. 2.1.1 Příklad. Představme si, že chceme koupit třeba ledničku. Složitou skutečnou situaci si zjednodušíme matematickou abstrakcí a předpokládáme, že u ledniček hledíme jen na 3 číselné parametry: cenu, spotřebu elektřiny a objem. Mámc-li dva typy ledniček, a první typ je dražší, více spotřebuje a méně se do něj vejde, potom lze považovat druhý typ za lepší - na tom by se shodla asi velká většina kupců ledniček. Na druhé straně, někdo dá přednost menší a levnější ledničce, jiný preferuje větší, i když je dražší, a kdo očekává, vzestup cen elektřiny, možná si koupí drahou ledničku s malou spotřebou. Relace „ být jednoznačně horší" (označíme ji ■<) v tomto pojetí je tedy částečné uspořádání na ledničkách, matematicky formulováno na množině všech trojic (a, b, c) reálných čísel, definované takto: («1,61, ci) ^ (o.2,ft2,c2) & aj > a2, h > 62 a C] < c2. (2.1) Následující příklad jsme už zmínili, ale připomeňme jej: 2.1.2 Příklad. Pro přirozená čísla a, b symbol a\b znamená „a dělí Ir, neboli že existuje přirozené číslo c takové, že b = ac. Relace „ j" (dělitelnost) je částečné uspořádání na N (k ověření už jsme čtenáře vyzývali). 54 Kapitola 2: O uspořádaných množinách 2.1 Uspořádání a jejich znázorňování 55 2.1.3 Příklad. Nechť X je nějaká množina. Relace „C" (býti podmnožinou) defínuje částečné uspořádání na množině 2X, tj. na systému všech podmnožin množiny X. Znázorňování částečně uspořádaných množin. Konečné částečně uspořádané množiny můžeme znázorňovat pomocí šipek jako kterékoliv jiné relace. V takových obrázcích bude typicky spousta šipek, například pro 10-prvkovou lineárně uspořádanou množinu bychom museli nakreslit 9 + 8 + . .. + 1 = 45 šipek a ještě 10 smyček. Řada šipek se ale dá zrekonstruovat z transitivity: Víme-li, že x ^ y a y ^ z. potom už také x r< z a šipku z x do z můžeme vynechat. Podobně není třeba kreslit smyčky. Pro konečné uspořádané množiny všechnu potřebnou informaci zachycuje relace „být bezprostředním předchůdcem", kterou teď definujeme. Nechť (X, ^) je uspořádaná množina. Řekneme, že prvek x je bezprostředním předchůdcem prvku y, pokud platí • x -< y, a • neexistuje žádné t (z X takové, že x -< i -< y. Právě zavedenou relaci bezprostředního předchůdce můžeme označit třeba <■ Tvrzení, že uspořádání -< lze rekonstruovat z relace <, můžeme přesně formulovat takto: 2.1.4 Tvrzení. Nechť (X, ^) je konečná uspořádaná množina a < je příslušná relace bezprostředního předchůdce. Potom pro libovolné dva prvky x. y G X platí x -< y, právě když existují prvky x,\, x%,.... Xu € X takové, že x < xi 4 n 3 «»2 *1 Další obrázek ukazuje množinu {1,2,..., 10} uspořádanou relací dělitelnosti (viz příklad 2.1.2): 56 Kapitola 2: O uspořádaných množinách 2.2 Uspořádání a lineární uspořádání 57 Na tomto náčrtku (3,3). (2,3) - a). 2.2.3 Věta. Každá neprázdná konečná částečně uspořádaná množina (X, <) má (alespoň jeden) minimální prvek. 58 Kapitola 2: O uspořádaných množinách 2.2 Uspořádání a lineární uspořádání 59 Důkaz. Zvolme xq £ X libovolně. Jestliže xq je minimální, jsme hotovi. Není-li Xq minimální v (X, potom existuje nějaké x,\ < xq. Je-li x\ minimální, jsme hotovi, jinak najdeme nějaké #2 -< x\, atd. Po konečně mnoha krocích nalezneme minimální prvek, protože jinak by X měla nekonečně mnoho různých prvků □ Poznamenejme, že věta 2.2.3 neplatí pro nekonečné množiny. Například množina všech celých čísel (Z, <) (s přirozeným uspořádáním) nemá žádný minimální prvek. Možná se výše uvedený (algoritmicky motivovaný) důkaz věty 2.2.3 zdá čtenáři podezřelý. Místo toho, abychom jej vysvětlovali, připojme jinou (běžnější) verzi: Druhý důkaz. Uvažujme uspořádanou množinu (X, X) a pro prvek x £ X definujme Lx = {y £ X; y ^ %}■ Všimneme si, že pokud x ^ y, potom Lx C Ly. Zvolme nyní x £ X tak, aby množina Lx měla nejrnenší možný počet prvků. Jestliže \LX\ — 1, jsme hotovi, neboť a: je nutně minimální prvek platí totiž Lx = {:r}. Kdyby \LX\ > 1, pak by existovalo y £ Lx, y ^ x, a pro něj potom \Ly\ < \LX\, což je ve sporu s výběrem prvku x. □ Větu 2.2.3 použijeme pro důkaz věty 2.2.1. Důkaz. Postupujeme indukcí. Pro \,X\ = 1 není třeba nic dokazovat, máme R = Ax a stačí položit S = R. Uvažme tedy uspořádanou množinu (X, fí), |X| > 1. Nechť xq £ X je minimální prvek (X, R). Položme X' = X \ {x'o} a nechť i?' je relace R zúžená na množinu X'. Víme již, že {X', R') je uspořádaná množina, a tedy podle indukčního předpokladu existuje lineární uspořádání S' na X' takové, že R' C S'. Definujme relaci S na množině X následujícím způsobem: xoSy pro každé y £ X; xSy kdykoliv xS'y. Ověřte sami, že S je lineární uspořádání. Je rovněž zřejmé, že i? C S. □ Existence lineárního rozšíření je důležitá a užitečná v mnoha aplikacích. V informatice je pro dané částečné uspořádání často potřeba najít nějaké lineární rozšíření. Tento algoritmický problém se jmenuje topologické třídění Věta 2.2.1 platí rovněž pro nekonečné množiny. Nejde to však dokázat tak snadno. Ve skutečnosti to nejde vůbec, protože existence lineárního rozšíření je možno považovat za jeden z axiomů teorie množin (podobně jako tzv. axiom výběru, s nímž je tento axiom spřízněn). Na závěr tohoto článku připojme varování (lingvistické). Pojmu minimálního prvku je zdánlivě příbuzný pojem nejrnenšího prvku. Jedná se však o podobnost pouze zdánlivou a vlastně jen jazykovou, jak ukazuje definice tohoto pojmu. 2.2.4 Definice. Nechť (X. ■<) je uspořádaná množina. Prvek a £ X nazveme nejmenším prvkem (X. ^), jestliže pro každé x G X platí a -< x. Podobně deňnujeme největší prvek. Nejrnenší prvek j c zřejmě rovněž minimální. Například pro množinu všech přirozených čísel uspořádanou relací dělitelnosti, neboli (N, |), je 1 jak nejrnenší, tak minimální prvek. Ale minimální prvek nemusí zdaleka vždycky být nejrnenší: Kupříkladu je-li X aspoň dvouprvková množina uspořádaná relací diagonály Ax (tj. žádné dva různé prvky nejsou porovnatelné), pak každý prvek je minimální, ale žádný není nejrnenší. Jiným příkladem je (N\{1}, |), tj. přirozená čísla bez jedničky uspořádaná relací dělitelnosti, která také nemá nejrnenší prvek, a přitom má nekonečně mnoho minimálních prvků, viz cvičení 7. Cvičení 1. (a) Ukažte, že největší prvek je maximální, a ukažte příklad uspořádané množiny, která má maximální prvek, ale nemá největší prvek. (b) Najděte uspořádanou množinu, která nemá ani nejrnenší, ani minimální prvek, ale má největší prvek. 2. (a) Uvažte množinu {1,2,...,/;,} uspořádanou relací dělitelnosti (viz příklad 2.1.2). Kolik nejvýše prvků může mít podmnožina X C 60 Kapitola 2: O uspořádaných množinách 2.3 Uspořádání pomoci inkluze 61 {1,2,..., n\. která je relací | uspořádána lineárně (takové podmnožině se někdy říká řetězec)? (b) Řešte tutéž otázku pro množinu 2i1'2'"''™} uspořádanou relací C (viz příklad 2.1.3). 3. Označme symbolem lr(X, ^) počet lineárních rozšíření částečně uspořádané množiny (X, ;<). Dokažte (a) lr(X; ;<) = 1, právě když ^ je lineární uspořádání; (b) lr(X,^) < n! pro n = |X (tady může být užitečné si napřed přečíst kapitolu 3). 4. Dokažte, že nejmenší prvek, pokud existuje, je určen jednoznačně. 5. Dokažte, že pro lineárně uspořádané množiny je každý minimální prvek rovněž prvek nejmenší. 6. Dokažte nebo vyvraťte: Má-li (X, jediný minimální prvek, potom je to také prvek nejmenší. 7. (a) Dokažte, že uspořádaná množina (N\ {1}, |) má nekonečně mnoho minimálních prvků. O která čísla se jedná? (b) Kolik minimálních prvků má množina {4k + 2; k > 2} uspořádaná relací dělitelnosti? Poznamenejme, že podobná otázka pro množinu {4A; + 1; k > 2} je mnohem obtížnější. 8. Nechť (X, R) je částečně uspořádaná množina. Dokažte: (a) Potom (X1 R^1) je rovněž částečně uspořádaná množina. (b) Prvek x G X je maximální v (X,R), právě kdvž x je minimální v ( V. R ). (c) Prvek í £ I je největší v (X, R), právě když x je nejmenší v(X,R-i). Vzhledem k tomu, že (i?"1)-1 = R, vidíme, že pojmy pro uspořádané množiny se vyskytují ve dvojicích: minimální a maximální prvek, nejmenší a největší prvek apod. Některé definice a důkazy se tak dají zkrátit tím, že se provedou jen pro jeden z příslušné dvojice pojmů. Tak například stačí dokázat větu 2.2.3 (o existenci minimálního prvku) a analogická věta o existenci maximálního prvku se dostane automaticky, důkaz se dá „přeložit". Tato metoda se nazývá, poněkud nepřesně, princip duality uspořádaných množin. 9. Buď (X, uspořádaná množina, A C X její podmnožina. Prvek s G X nazveme supremum množiny A, pokud platí: (i) a < s pro každé a G A. (ii) Pro každé s' G X platí: jestliže a ■< s' pro každé a G A, potom s r? s'. Podobně, ale se všemi nerovnostmi v obráceném směru, se definuje infimum podmnožiny A Q X. (a) Jaký prvek je supremem prázdné množiny? (b) Najděte příklad uspořádané množiny, jejíž každá neprázdná podmnožina má supremum, ale ne každá neprázdná podmnožina má infimum. (c) * Nechť (X, z<) je uspořádaná množina, jejíž každá podmnožina (včetně prázdné) má supremum. Dokažte, že každá podmnožina má též infimum. 10. Uvažme množinu N uspořádanou relací | (dělitelnost). (a) Rozhodněte, zda každá podmnožina N má supremum. (b) Rozhodněte, zda každá konečná podmnožina N má supremum. (c) Rozhodněte, zda každá neprázdná podmnožina má infimum. 2.3 Uspořádání pomocí inkluze V článku 1.5 jsme ukázali, jak jc možno ekvivalenci na množině X popsat pomocí rozkladu množiny. Tento vztah je vzájemně jednoznačný (můžeme také říci. že rozklady představují ekvivalentní popis ekvivalencí). Existuje něco podobného pro částečná uspořádání? Zdá se, že nikoliv. Pojem uspořádání je složitější než pojem ekvivalence, a také proto jsme mu věnovali zvláštní kapitolu. Přesto v tomto článku ukážeme, že si každou částečně uspořádanou množinu lze představit tak, že relace je vytvořena pomocí inkluze, tedy (zdánlivě) jednoduše. Klíčem k tomuto výsledku je následující pojem: 2.3.1 Definice. Nechť (X,R) a (X',Rr) jsou uspořádané množiny. Zobrazení f:X —» X' nazveme vnoření (X,R) do (X\R'), jestliže platí 62 Kapitola 2: O uspořádaných množinách 2.3 Uspořádání pomocí inkluzc 6,3 (i) f jc prosté zobrazení; (ii) f(x)R'f(y) pro každé xRy; (iii) jestliže f(x)R'f(y), potom i xRy. Připojme pár poznámek: Jestliže / je vnoření, které je rovněž zobrazení na, potom / je isomorfismus, o kterém jsme již pojednali ve cvičení 2.1.4. Jestliže isomorfismus uspořádaných množin vyjadřuje skutečnost, že příslušné množiny „vypadají stejně", potom vnoření (X,R) do (X',Rr) vyjadřuje skutečnost, že nějaká část, totiž část určená množinou {f(x);x G X}7 „vypadá stejně" jako (X, R). Následující obrázek znázorňuje dvě uspořádané množiny: 2 T f * 3» Pí > Příklady vnoření t\ do P^ jsou zobrazení /: 1 <—>■ v, 2 1—> x, 3 1 a také /': 1 1-+ t, 2 1—► x, 3 1—> w, zatímco třeba g: 1 1—► t, 2 1—» v, 3 ani g'\ 1 f—> t,2 t-> w,3 t—* u vnoření nejsou. y y 2.3.2 Věta. Pro každou uspořádanou množinu (X, ^) existuje vnoření do uspořádané množiny (2 , C). Důkaz. Ukážeme navíc, že hledané vnoření je velmi snadné najít. Definujeme zobrazení /: X —> 2X předpisem f(x) = {y; y ■< x}. Ověříme, že takto definované zobrazení jc skutečně vnoření. Přitom využijeme všech vlastností uspořádání. 1. Ověříme, že / je prosté. Předpokládejme, že f(x) — f(y). Protože x G /(.r) a y G f (y), dostáváme vzhledem k definici f (x), žc platí x ^ y a rovněž y -< x. a tedy x = y (z antisymetrie ■<). 2. Ukážeme, že f (x) C f (y) pro každé x < y. Je-li z G /(#), potom z ■< x, a tedy z transitivity ^ dostáváme rovněž z ^ ?y. Poslední výraz značí, že z G /(ž/)- 3. Nakonec dokážeme, že x ^ y pro každé /(x) C f (y). Je-li /(x) C /(y), potom x G /(y), a tedy x ^ y. □ S definicí zobrazení / jsme sc. vlastne již setkali v důkazu věty 2.2.3, kde jsme množinu f (x) označili Lx. Nevadí, že jsme ji v jiné souvislosti označili jinak. Konstrukce množiny Lx je v matematice častá a vyskytuje se pod různými jmény, např. dolní množina, dolní ideál apod. Všimněte si, že výše uvedená věta i důkaz platí i pro nekonečné množiny. Uspořádané množiny (2X, C) jsou tedy univerzální v tom smyslu, že obsahují všechny uspořádané množiny. Není divu, že jejich zkoumání byla věnována značná pozornost a že si vynutily zvláštní značení i pojmy. Speciálně pro množinu X = [1,2.... ,n) označíme uspořádanou množinu (2X, C) symbolem Bn. Hasseovy diagramy uspořádání jbi, B2, B$ jsou na obrázku. Si B2 B3 O uspořádané množině Bn se v různých souvislostech mluví také jako o Booleově algebře, booleovském svazu nebo n-dimenzionální krychli. Cvičení 1. Kolik mají uspořádání B2 a B3 lineárních rozšíření? 2. Modifikujte důkaz věty 2.3.2 pomocí horních množin, tj. množin tvaru Ux = {y G X; xRy}. 64 Kapitola 2: O uspořádaných množinách 2.4 O dlouhém a širokém 65 3. Nalezněte příklad uspořádané množiny P = [X, pro niž existuje vnoření do Bn pro n < \X\. 4* Dokažte, že každou konečnou uspořádanou množinu lze vnořit do (N, |). 5 * Dokažte, že ne každou konečnou uspořádanou množinu je možno vnořit do uspořádám trojic reálných čísel z příkladu 2.1.1. 6. (a) Popište nějaké vnoření množiny {1, 2} x N s lexikografickým uspořádáním do uspořádané množiny (Q, <), kde < je obvyklé uspořádání podle velikosti. (b) Řešte obdobu (a) s množinou NxN s lexikografickým uspořádáním místo {1,2} x N. (c) * Dokažte, že dokonce libovolnou spočetnou lineárně uspořádanou množinu lze vnořit do (Q, <). 7* Dokažte, že každá podmnožina uspořádané množiny Bn má jak supre-mum, tak infimum. 8. Spočtěte, kolik existuje vnoření P± do P%, kde Pi a Pí jsou uspořádané množiny na obrázku nad větou 2.3.2. 2.4 O dlouhém a širokém Nechť (X, <) je (konečná) uspořádaná množina. Pro stručnost ji označíme písmenem P, ve většině článku budeme uvažovat pouze jednu (zato libovolnou) uspořádanou množinu. Pojmy, které budeme zkoumat, jsou vyjádřeny následujícími definicemi. 2.4.1 Definice. Množina prvků A C X se nazývá nezávislá v P, jestliže pro žádné dva různé prvky ./:. y G A neplatí x ■< y. Nezávislé množině se někdy říká také antiřetězec. Uvedenou definici je možno vyjádřit ještě jinak: Řekneme, že dva různé prvky x a y jsou porovnatelné, jestliže buď x ~< y, nebo y ~< x. Množina je tedy nezávislá, jestliže žádné dva její prvky nejsou porovnatelné. Označme tt(-P) maximální velikost nezávislé množiny prvků v P. Symbolicky bychom to mohli zapsat takto: a(P) — m&x{\A\;A nezávislá v P}. 2.4.2 Příklad. Pro uspořádané množiny P\ a P% na obrázku platí a(Px) = 3, a(P2) = 4. Pi P2 2.4.3 Pozorování. Množina všech minimálních prvků P tvoří nezávislou množinu. 2.4.4 Definice. Množina prvků A ^ X se nazývá, řetězec v P, jestliže každé dva, prvky jsou porovnatelné (v P). Ekvivalentně, prvky A tvoří lineárně uspořádanou podmnožinu P. Označme uj(P) maximální velikost řetězce v P. Pro výše uvedená uspořádání P\ a P2 platí u){P\) = 3, uj{p2) = 2. Je snadné nahlédnout o/(Í3n) = n + 1. Určit o>(Bn) je již obtížnější, tuto otázku zodpovíme v kapitole 7. Z uvedených příkladů vidíme, že číslo a(P) můžeme považovat za jakousi abstraktní „šířku" uspořádání P, zatímco to(P) odpovídá jeho „výšce". Následující výsledek dal tedy jméno tomuto článku: 2.4.5 Věta. Pro každou konečnou uspořádanou množinu P = (X, ^) platí a(P)-io{P) > \X\. Důkaz. Definujeme množiny X\, X%,..., Xt indukcí: Nechť X\ označuje množinu všech minimálních prvků uspořádání P. V indukčním kroku nechť jsou množiny Xi,... ,Xg již definovány. Označme nejprve Xg množinu všech prvků nenáležejících žádné z množin Xj,..,, Xi, Symbolicky zapsáno X'( = X \ |Jí=i ^í- Jestliže X'f je prázdná množina, potom položme t = ta konstrukci ukončíme. V opačném případě, 66 Kapitolu 2: O uspořádaných množinách 2.4 O dlouhém a širokém 67 XL 0, označme uspořádání ^ zúžené na množinu XL Definujeme A'ř_i množinu všech minimálních prvků množiny (X'e, ^'). Důkaz věty bude ukončen, jestliže se přesvědčíme o následujících skutečnostech: (1) Množiny X^,... , Xt tvoří rozklad množiny X. (2) Každá z množin X; je nezávislá (a tedy a(P) > |Xj|). (3) u(F) > í. Tvrzení (1) a (2) plynou bezprostředně z konstrukce množin Xi, X-2,. ■ ■, Xt. Stačí tedy dokázat (3). Postupujeme zpětnou indukcí. Pro i = t,t — 1,... ,2.1 nalezneme prvky xí G X takové, že množina {xi, x%,..., xť} tvoří řetězec. Zvolme tedy xt G Xt libovolně. Protože xt £ Xt—i, existuje nutně Xt—i € X-i takové, že platí Xt-\ < x^.Tato úvaha je základem celého postupu: jestliže jsme již sestrojili prvky G Xt,Xt-i € Xt_i,..£ X/,.+1, potom Xfc+i ^ X/-, a tedy existuje Xfc e X^ splňující x^ -< Xk+\ - Prvek Xk je vždycky „důvodem", proč Xk+i nepřišel na řadu dřív. Zkonstruovaná množina {xi,.. . ,X;} tvoří řetězec. Tedy u>(P) > t. (Ve skutečnosti ovšem lu(P) = t, viz cvičení.) □ Věta 2.4.5 (o dlouhém a širokém) má řadu pěkných aplikací a souvislostí, jak je vidět z následujícího (slavného) použití. 2.4.6 Věta (Erdôsovo-Szekeresovo lemma). Libovolná posloupnost reálných čísel délky n2 + 1 obsahuje monotónní podposloupnost délky n + 1. Před důkazem definujme použité pojmy. Uvažme fc-prvkovou posloupnost (xi, x-2, • • •, Xk) reálných čísel. Podposloupnost délky m je určena indexy i(l),... , i(rn), i(l) < i(2) < • • • < i(m), a je tvořena prvky Xj(í), Zi(2) 5 • • ■ 5 %iřmy. Tato podposloupnost je monotónni jestliže platí buď x,:(1) < xi(2) < ••• < xi(m), nebo x,:(1) > xi(2) > • • • > xť(m)- Důkaz. Nechť je posloupnost (xi, x'2, ■ ■ ■ , xTi2+1) zadána. Položme X = {1, 2,..., ??2 + 1} a definuj me relaci ^ na X předpisem i ■< j právě když i < j a Xj < a?. Není těžké ověřit, že takto definovaná relace < je (částečné) uspořádání množiny X. Platí tedy a(X, ^) • oj(X, ^) > n2 + 1, a proto a(X, X) > n nebo W(V, :<) > n. Nyní je snadné se přesvědčit, že řetězec odpovídá neklesající podposloupnosti a nezávislá množina odpovídá nerostoucí pod-posloupnosti. □ Cvičení 1. (a) Nechť ;<,, i = l,...,fc, jsou uspořádání na nějaké množině X. Potom p|í=i —í Je °pět uspořádání. (Uvědomte si, že každé (Bn) — n + 1. 3. Najděte posloupnost reálných čísel délky 17, která neobsahuje monotónní podposloupnost délky 5. 4. Dokažte následující zesílení věty 2.4.6: Každá posloupnost reálných čísel délky kl - \ 1 obsahuje rostoucí podposloupnost délky k + 1 nebo nerostoucí podposloupnost délkj^ í + 1. 5. Dokažte, že věta 2.4.5 a předcházející cvičení jsou nejlepší možné v následujícím smyslu: Pro každé k a í existuje uspořádaná množina P s n prvky splňující n = kl, a(P) — k a w(P) = i. 6. (a) Uvažme dvě posloupnosti reálných čísel, a = (ai, 02,..., 0«) a b — (61,62, ...,i»n), v nichž se žádné číslo neopakuje. Ukažte, že vždy existují indexy i(l)...., i(k), 1 < i(l) < ... < i(k) < n, kde k = [n1/4], takové, že jimi určené podposloupnosti v a i b jsou rostoucí nebo klesající (připouští sc všechny 4 možné kombinace, např. „rostoucí v a, rostoucí v 6". „klesající v a, rostoucí v bu atd.). (b)* Ukažte, že odhad pro k v (a) obecně nelze zlepšit. 68 Kapitola 2: O uspořádaných množinách 7.** (Dilworthova věta) Nechť (X, <) je n prvková částečně uspořádaná množina. Dokážte, že X lze vyjádřit jako (disjunktní) sjednocení nejvýš q = oí(X, <) řetězců. 3 Kombinatorické počítání V této kapitole budeme studovat úlohy „na počet konfigurací" jako „Kolik jc zobrazení dané n-prvkové množiny do to-prvkové?" a podobně. Začneme jednoduchými příklady, které se dají vyřešit úvahou bez nějakých speciálních znalostí, ale později se dostaneme i k poněkud pokročilejším technikám. 3.1 Funkce a podmnožiny 3.1.1 Tvrzení. Nechť N je nějaká n-prvková množina (případně i prázdná, tj. n = 0.1, 2,...), M jc m-prvková množina, m > 1. Potom počet všech zobrazení (neboli funkcí) f : N —> M (zobrazení množiny N do M) je rrŕ. Důkaz. Toto tvrzení asi řada čtenářů zná nebo si jeho pravdivost uvědomí bez velké námahy. Cvičně je nicméně dokážeme indukcí podle n. Pro n = 0 uvažujeme zobrazení prázdné množiny. Podíváme-li se na definici zobrazení, je to relace (tedy podmnožina iV x M, čili v našem případě podmnožina prázdné množiny), splňující jistou podmínku - pro každý prvek a G N existuje v relaci právě jedna dvojice tvaru (a, 6), kde b G M. V našem případě N žádný prvek nemá, a proto uvedená podmínka nic nepožaduje, čili jediná možná relace, 70 Kapitola 3: Kombinatorické počítání 3.1 Funkce a podmnožiny 71 totiž prázdná, je také zobrazením AT —* M. Dokazované tvrzení platí pro n = 0. Leckdo by namítl, že zobrazení prázdné množiny nemá žádný smysl a nebo že není potřeba se jím zabývat (opravdu bychom mohli indukci začít od n — 1), V matematických úvahách se většinou vyplatí si podobné „mezní" případy rozmyslet, uvážit, co přesně o nich říká obecná definice. Tím se potom vyhneme různým výjimkám a speciálním případům (nebo chybám) v důkazech. Předpokládejme, že jsme tvrzení dokázali pro každé n < ťiq a pro každé m. Máme nyní n = no + 1, n-prvkovou množinu N a rn-prvkovou množinu M. Zvolme libovolně jeden prvek a G N. Zadat zobrazení / ; N —> M je totéž, jako zadat hodnotu /(a) £ M plus zobrazení / : N \ {a} —» M zbývajících prvků. Hodnotu f (a) můžeme zvolit m způsoby, a pro volbu /' máme podle indukčního předpokladu mn~l možností. Každou volbu f (a) můžeme zkombinovat: s libovolnou volbou /', takže celkem je počet možností pro / roven m ■ mn = mn. □ Následuje jiné dobře známé tvrzení, k němuž podáme dva důkazy: 3.1.2 Tvrzení. Libovolná n-prvková množina X má právě 2" podmnožin. První důkaz (indukcí). Pro X = 0 existuje jediná podmnožina, totiž prázdná, což souhlasí se vzorečkem, 2=1. Pro (n + ^-prvkovou množinu X. zvolme jeden její prvek, a, a rozdčlmc podmnožiny X do dvou typů: ty které neobsahují a, a ty, které jej obsahují. První typ jsou právě všechny podmnožiny n-prvkové množiny X \ {a}, a podle indukčního předpokladu jich je 2". Pro každou podmnožinu A druhého typu uvažme množinu A' = A\{a}. To je podmnožina X\ {a}. Zřejmě každá podmnožina A' C X. \ {a} se takto dostane právě z jedné množiny A. totiž z A' U {a}. Proto podmnožin A druhého typu je také 2n, a celkem máme 2" + 2n = 2n~l podmnožin (n + l)-prvkové množiny, jak to má být. Druhý důkaz (převedením na známé tvrzení). Uvažme libovolnou podmnožinu A dané n-prvkové množiny X, a definujme zobrazení f A : X {0,1}: pro prvek x e X položíme , . J 1 pokud x G A ja(x) j () pokud ,. 0 A (toto zobrazení se v matematice často objevuje a nazývá sc charakteristická funkce množiny A). Různým množinám A přísluší různá zobrazení f a, a obráceně, pro libovolné zobrazení / : X —> {0,1} existuje právě jedna množina A c X taková, že / = f a- Tudíž podmnožin X je stejný počet jako zobrazení X —» {0,1}, čili 2" podle tvrzení 3.1.1. □ Ted trošku těžší tvrzení: 3.1.3 Tvrzení. Nechť n > 1. Každá n-prvková množina má právě 2n_1 podmnožin liché velikosti a 2n 1 podmnožin sudé velikosti. Důkaz. Využijeme tvrzení 3.1.2. Zvolme pevně nějaký prvek a G X. Libovolnou podmnožinu A C X\{a} můžeme doplnit na podmnožinu A' C X s lichým počtem prvků: je-li \A\ liché, bude A' — A. a pro \A\ sudé A' — A U {a}. Je snadné zkontrolovat, že tím jsme našli bijekci mezi množinou všech podmnožin X \ {a} a množinou všech podmnožin X liché velikosti, a tak posledně jmenovaných je 2n~1. Pro podmnožiny sudé velikosti se postupuje stejně, nebo se řekne, že jich musí být doplněk do počtu všech podmnožin, tj. 2n - 2n_1 = 2"'~1. □ Vrátíme se k zobrazením. 3.1.4 Tvrzení. Pro n.m > 0 existuje právě n-l m(rn — 1) • • • (m — n + 1) = (m - í) prostých zobrazení n-prvkové množiny do vn-prvkové množiny. 72 Kapitola, 3: Kombinatorické počítání Důkaz. Zase indukcí podle n. budeme postupovat stručněji. Pro n = 0, prázdne zobrazení je prosté, tedy existuje jedno zobrazení, což odpovídá tomu, žc hodnotu prázdného součinu jsme definovali jako 1. Pro n > m žádné prosté zobrazení neexistuje, což souhlasí s dokazovaným vzorcem (vystupuje v něm totiž jeden činitel rovný 0). Mějme ??,-prvkovou množinu N, n > 1 a m-prvkovou množinu M, m > n. Vyberme prvek u € N a zvolme jeho funkční hodnotu f (a) G M libovolně, jedním z rn způsobů. Zbývá prostě zobrazit prvky N \ {a} do M\{f(a)}, pro což existuje podle indukčního předpokladu (to - l)(m - 2) • ■ • (rn - n + 1) možností. Celkem dostaneme m(m — l)(m — 2) • • ■ (rn — n + 1) prostých zobrazení N —> M. □ Máme-li množinu M sestávající z m různých předmětů a vybereme-li z nich libovolně uspořádanou n-tici předmětů (tj. při výběru záleží na pořadí; takové výběry se někdy nazývají variace, obšírněji variace n prvků z m prvků bez opakování), máme rn(m — 1)... (m - n + 1) možností takového výběru. Každý takový výběr můžeme chápat jako volbu prostého zobrazení / : {1,2,.. ,,n} -> M: definujeme /(l) jako první předmět z vybrané n-tíce, /(2) jako druhý předmět atd. Obráceně, volbu prostého zobrazení si můžeme představit jako výběr uspořádané n-tice z množiny, do níž zobrazujeme. Cvičení 1. Určete počet všech uspořádaných dvojic (A,B), kde A C B C {1,2,..., n}. 2. (a) Kolik existuje n x n matici s prvky z množiny {0,1,..., q — 1}? (b)* Předpokládejme, že q je prvočíslo. Kolik takových matic má determinant dělitelný g? (Jinými slovy, kolik matic nad tělesem GF(q) je singulárních? Viz algebraický dodatek.) 3.2 Permutace a faktoriály Prostá zobrazení konečné množiny X do sebe se nazývají permutace množiny X. Taková zobrazení jsou ovšem zároveň na. 3.2 Permutace a faktoriály 73 Máme-li prvky X srovnány v nějakém pořadí, můžeme si permutaci představovat jako nějaké jejich přerovnání. Například pro množinu X = {a, b, c, d} je jedna možná permutace a b c d b d, c a (v prvním řádku jsme vypsali prvky množiny X, a ve druhém jsrne pod každý prvek napsali prvek, na nějž sc uvažovanou permutací zobrazí). Nejčastěji se pracuje s permutacemi množiny {1,2,..., n). Předpokládá-me-li, že v prvním řádku budou tato čísla vždy zapsána v přirozeném pořadí, stačí uvést pouze druhý řádek; např. (2 4 3 1) by označovalo permutaci p s hodnotami p(l) = 2, p(2) = 4, p(3) = 3 a p(4) = 1. V literatuře se někdy permutace množiny X chápou přímo jako rozložení prvků X v nějakém pořadí, tj. lineární uspořádání na A\ To je někdy také užitečný pohled, my však budeme permutace chápat jako zobrazení, což má některé formální výhody, například že permutace lze přirozeně skládat. Ještě jiný způsob zápisu permutace je pomocí jejích cyklů. Cykly permutace můžeme asi nejlépe definovat při znázornění permutace pomocí šipek (jako jsme znázorňovali relace v části 1.4, např. na str. 38). V případě permutace p : X ~* X znázorníme prvky množiny X body (puntíky), a nakreslíme šipku od každého bodu x k bodu p(x). Například, pro permutaci p = (4 8 3 5 2 9 6 1 7) (použili jsme jednořádkového zápisu pro permutace množiny {1, 2,..., n) vysvětleného výše) vypadá takové znázornění takto: Z každého bodu vychází právě 1 šipka, a do každého bodu také právě 1 šipka vchází. Je snadné si rozmyslet, že za těchto podmínek je takové znázornění permutace vždy tvořeno několika disjunktními skupinami bodů, přičemž v každé ze skupin jsou body propojeny šipkami do cyklu (orientovaného, to znamená, že cyklus lze procházet kolem dokola 74 Kapitola 3: Kombinatorické počítání 3.2 Permutace a faktoriály 75 podél šipek) - jako na uvedeném obrázku. Tyto cykly budeme nazývat cykly dané permutace. Pomocí cyklů by se uvedená permutace zapsala p = ((1,4, 5, 2, 8)(3)(6, 9, 7)). V každé vnitřní závorce jsou vypsány prvky jednoho z cyklů v pořadí podle jeho šipek, počínaje prvkem s nejnižším číslem. K čemu mohou permutace sloužit? Studují se například při návrhu a analýze všelijakých algoritmů pro třídění. Některé efektivní algoritmy pro výpočty s grafy, s geometrickými objekty a podobně začínají tím, že rozestaví nějaké vstupní objekty do náhodného pořadí, tj. vlastně s nimi provedou náhodnou permutaci. Překvapivě komplikované vlastnosti permutací se uplatnily při matematické analýze míchání karet. V teorii grup jsou grupy permutací (se skládáním jako grupovou operací) jedním z hlavních předmětů studia. Prapríčina neřešitelnosti obecné algebraické rovnice pátého stupně je ve vlastnostech grupy všech permutací na 5-prvkové množině. Podle tvrzení 3.1.4 je počet permutací n-prvkové množiny roven n(n — 1) x • ■ • x 1. Toto číslo jako funkce proměnné n se označuje 7?,! a nazývá se n faktoriál. Je tedy n ni = 1 x 2 x 3 x ... m n = JJ i. Speciálně pro n = 0 je 0!, jako prázdný součin, roven 1. Cvičení 1. Kolik existuje permutací množiny {1.2,... ,n} s jediným cyklem? 2. Pro permutaci p : X —> X značí pk permutaci vzniklou fc-násobným složením p, tj. p1 = p, pk — p o pk"1. Řádem permutace p se rozumí nejmenší přirozené číslo k takové, že pk = id, kde id označuje identickou permutaci, která každý prvek zobrazí na něj samotný. (a) Určete řád permutace (2 3 1 5 1 7 8 9 6). (b) Ukažte, jak se v obecnosti najde řád permutace pomocí délek jejích cyklů. 3. Buď 7T permutace na množině {1,2,... ,n}, zapišme ji jednořádkovým zápisem, a vyznačme ve vzniklé posloupnosti jednotlivé rostoucí úseky, např. (4 5 7 2 6 8 3 1). Označme f(n, fc) počet permutací n-prvkové množiny s přesně k rostoucími úseky. (a) * Dokažte, že f(n,k) — f{n,n + 1 - fc), a odvoďte, že průměrný počet úseků permutace (přes všechny permutace) je (n + l)/2. (b) * Odvoďte rekurentní vzorec f(n, k) = k f (n - 1, k) + (n + 1 - k) f (n — l,fe — 1). (c) Pomocí (b) určete počet permutací sc 2, resp. se 3 úseky, případně * s k rostoucími úseky. (d) * Pro náhodnou permutaci 7r určete pravděpodobnost, že počáteční rostoucí úsek iná délku fc. Ukažte, že pro velká n se průměrná délka počátečního rostoucího úseku blíží číslu e — 1. Poznámka: Podobné otázky se studují při analýze některých algoritmů pro třídění. 4. Buď 7T nějaká permutace množiny {1,2,..., n}. Řekneme, že dvojice (i, j) € {1, 2,..., n} X {1,2,..., n} je inverze ti, pokud i < j a zároveň 7r(i) > 7r(j). (a) Dokažte, že množina I(n) všech inverzí, chápaná jako relace, je transitivní. Ukažte, že také množina „neinverzí" {(ij); i < 3 a ir(i) < rc(j)} je transitivní relace. (b) Uvažme nějaký třídicí algoritmus, který rovná n daných čísel podle velikosti, a přitom v každém kroku vymění pořadí některých dvou sousedních čísel (v momentálním pořadí). Dokažte, že pro setřídění některých posloupností je potřeba, řádově aspoň n2 kroků. (c) * Dokázali byste navrhnout algoritmus, který by spočítal počet inverzí daně permutace {1,2,... ,n} v podstatně méně než n'2 krocích? (Řešení viz např. [18].) 5. (a)* Zjistěte, jakou nejvyšší mocninou 5 je dělitelné číslo 50!. Kolik bude mít desítkový zápis 50! na konci nul? (b) Najděte obecný vzorec pro nejvyšší mocninu k takovou, že číslo tt! je dělitelné pk, kde p je dané prvočíslo. 6. Ukažte, že pro každé k,n > 1, (fc!)" dělí (fcn)!. 76 Kapitola 3: Kombinatorické počítání 3.3 Binomické koeňcienty 77 3.3 Binomické koeficienty Nechť n > k jsou nezáporná celá čísla. Binomický koeficient nebo kombinační číslo (£) (čteme „en nad ká", nikoliv „en nad kátou"!) je funkce proměnných n, k, definovaná vzorcem _ n(n-l)(n-2)-->-fc + l) _ nf=o(n - 0 1 x 2 x • • • x k Čtenář možná zná i jinou formuli, totiž n! k\ k\(n - k)\ (3.1) (3.2) Ta je v naší situaci ekvivalentní (3.1). Z těchto dvou možných definic má (3.1) některé výhody. Číselná hodnota (™) se z ní snadněji spočítá a při výpočtu vycházejí menší mezivýsledky. Navíc (3.1) má smysl pro libovolné reálné číslo n (o torn více v kapitole 12) a speciálně definuje hodnotu (£) i pro přirozené číslo n < k; v takovém případě je hodnota © rovna °- Základní kombinatorický význam kombinačního čísla (?) je počet všech k-prvkových podmnožin n-prvkové množiny. To za chvilku dokážeme, nejdřív jedno označení. 3.3.1 Definice. Nechť X je množina a k. nezáporné celé číslo. Symbolem k budeme značit množinu všech k-prvkových podmnožin množiny X. Příklad: {{a,b},{a,,c},{b,c}}. Symbol (£) tedy má nyní dva významy, podle toho, zda x je číslo nebo množina. Následující tvrzení je dává do souvislosti: 3.3.2 Tvrzení. Pro každou konečnou množinu X je počet všech jejích k-prvkových podmnožin roven ('í'). V symbolech můžeme toto tvrzení zapsat x) = (lx k V k Důkaz. Označme n = \X\. Budeme dvěma způsoby počítat všechny uspořádané k-tice, které lze utvořit z prvků množiny X (bez opakování). Na jedné straně tento počet je n(n — 1) • • - (n — k +1) podle tvrzení 3.1.4 (viz poznámku za jeho důkazem). Na druhé straně, z jedne fc-prvkové podmnožiny M e (^) můžeme vyrobit fe! různých uspořádaných ft-tic, a každou uspořádanou fc-tici dostaneme z nějaké podmnožiny právě jednou. Proto n(n — 1) k + 1) = k\ □ Ještě jedna základní úloha vedoucí ke kombinačním číslům. Kolika způsoby můžeme nezáporné celé číslo m zapsat jako součet r nezáporných celých sčítanců (přičemž záleží na pořadí sčítanců)? Jinak řečeno, chceme zjistit, kolik existuje uspořádaných r-tic {í\,Í2, ■ - ■ ,ir) nezáporných celých čísel, splňujících rovnici h +h H-----1" h ■m. (3.3) Odpověď je kombinační číslo (m^li )■ To se dá dokázat různými způsoby; zde popíšeme důkaz téměř ve stylu kouzelnického triku. Představme si, že každé proměnné i\, %i...., ir odpovídá jedna z r přihrádek. Máme m nerozlišitelných kuliček, a chceme je do těchto přihrádek nějak rozmístit (předpokládáme, že do každé z přihrádek se v případě potřeby vejde i všech m kuliček najednou). Každé možné rozmístění kóduje jedno řešení rovnice (3.3). Zajímá nás tedy, kolika způsoby můžeme rozmístit kuličky do přihrádek. Jedno takové rozmístění, pro m = 7 a r = 6, vypadá takto: 78 Kapitola. 3: Kombinatorické počítání 3.3 Binomické koeficienty 79 Odpovídá rozkladu 0 + 1 + 0 + 3 + 1 + 2 = 7. Necháme nyní zmizet dna přihrádek a dvě krajní stěny, takže zůstane jen m kuliček a r — 1 přepážek, oddělujících přihrádky: (navíc jsme pro lepší estetický dojem kuličky a přihrádky trochu posunuli). Tato situace stále obsahuje plnou informaci o rozdělení kuliček do přihrádek. Zvolit takové rozdělení tedy znamená vybrat pozice vnitřních přepážek mezi kuličkami. Jinak řečeno, máme m+r—1 předmětů, kuliček a vnitřních přepážek, srovnaných v řadě, a určíme, které pozice zaujmou kuličky a které přepážky. To odpovídá výběru r — 1 pozic z m + r — 1 možných, takže se to dá udělat (m^Tf ) způsoby. □ Jednoduché vlastnosti kombinačních čísel. Jedním dobře známým vzorcem je / ti \ í n \ (3.4) n n — k Jeho správnost (pro n > k > 0) je ihned vidět z již zmíněného vztahu (fc) = fc!( "-fc)l Kombinatoricky to znamená, že /^-prvkových podmnožin n-prvkovc množiny je stejně jako podmnožin s n — k prvky, což můžeme nahlédnout bez odvolávání se na kombinační čísla - stačí každé A;-prvkové podmnožině přiřadit její doplněk. Dosti důležitý je vzorec pro součet kombinačních čísel n - 1 k (3.5) Jeden elegantní důkaz je založen na kombinatorické interpretaci obou stran (3.5). Pravá strana je počet k-prvkových podmnožin ?^-prvko-vé množiny X. Zvolme jeden prvek a € X a rozdělme všechny k-prvkové podmnožiny X do dvou skupin podle toho, zda obsahují a. Podmnožiny neobsahující a jsou právě všechny k-prvkové podmnožiny X \ {a}, a je jich tudíž ("'^" ). Je-li A nějaká fc-prvková podmnožina X obsahující prvek a, můžeme jí přiřadit (k — l)-prvkovou množinu A' = A \ {a}. Je snadno vidět, že toto přiřazení je bijekce mezi všemi fc-prvkovými podmnožinami X obsahujícími prvek a a všemi (k. - l)-prvkovými podmnožinami množiny X \{a}. Posledně jmenovaných je (tlj)- Dohromady je tedy počet všech fc-prvkových pod-Žin X roven ("I1) + (£"}). □ nmozm S identitou (3.5) jc spojen tzv. Pascalův trojúhelník: 1 1 1 1 2 1 13 3 1 1 4 6 4 1 1 5 10 10 5 1 Každý další řádek v tomto schématu se vyrobí tak, že pod dvojici čísel z předchozího řádku se napíše jejich součet, a na kraje sc doplní jedničky. Z (3.5) indukcí vyplývá, že v (n + l)-ním řádku jsou právě binomické koeficienty Q, (?),..., Q). Binomická věta. Rovnice (3.5) sc také dá využít pro důkaz jiného známého tvrzení zahrnujícího binomické koeficienty binomické věty (odtud i název „binomické koeficienty"). Tato věta praví, že pro nezáporné celé číslo n k=0 n \ i. k-X (3.6) (je to rovnost dvou mnohočlenů v proměnné x, speciálně tedy platí pro každé konkrétní reálné číslo x). Z binomické věty můžeme dostat všelijaké vztahy pro binomické koeficienty. Nejjednodušší z nich vznikne patrně posazením x = 1 a zní + + = 2". (3.7) ;j+co+u. Kombinatoricky to ovšem není nic jiného než počítání všech podmnožin n-prvkové množiny: na levé straně jsme jc napřed rozdělili podle velikosti. 80 Kapitola 3: Kombinatorické počítaní 3.3 Binomické koeůcienty 81 Druhý důkaz tvrzení 3.1.3 (o počtu podmnožin liché velikosti). Dosazením x = — 1 do binomické věty vyjde + (3.8) Sečteme-li tuto rovnost s (3.7), budou na levé straně jen binomické koeficienty se sudým k, a každý z nich bude vynásoben 2, tj. + + + 2n. V hranaté závorce na levé straně stojí právě počet všech podmnožin n-prvkové množiny se sudým počtem prvků. Proto má n-prvková množina právě 2n~l podmnožin sudé velikosti. □ Další identity s kombinačními čísly. Jsou známy doslova tisíce různých vztahů a identit pro kombinační čísla; jsou jim věnovány celé knihy. Zde si předvedeme ještě jednu formuli, která má pěkný kombinatorický důkaz. Další vzorce zmíníme ve cvičení a v kapitole 12. 3.3.3 Tvrzení. i=0 2n n Důkaz. První trik je přepsat sumu pomocí (3.4) symetrie kombinačního čísla - na ^li)\n - í=0 v 7 v Teď ukážeme, že tato suma vyjadřuje počet n-prvkových podmnožin 2n-prvkové množiny (a tedy se rovná pravé straně v dokazovaném vzorci). Vezměme 2n-prvkovou množinu X, a obarvěme n jejích prvků červeně a zbývajících n prvků modře. Zvolit podmnožinu množiny X znamená totéž, jako zvolit nějakou i-prvkovou podmnožinu červených prvků a nějakou (n — i)-prvkovou podmnožinu modrých prvků, kde % € {0,1,.. - ,«}■ Pro dané i máme pro výběr červené podmnožiny Q J možností, a pro výběr modré podmnožiny (.„" J možností, celkem tedy Y^í=0 (") (n-i) m°žností volby červené a modré podmnožiny s dohromady n prvky. a Multinomické koeficienty a multinomická věta. Jeden z oblíbených přikladli v amerických učebnicích je tenhle: Kolik různých slov (včetně nesmyslných) můžeme sestavit s použitím (všech) písmen slova MISSISSIPPI? (Tím doufáme čtenáře, v případě potřeby, i nenásilne poučit o pravopisu.) Nejdřív si představme, že stejná písmena v názvu otce řek odlišíme indexy: MiIiS^USaS^P^U- Tím máme 11 různých písmen, která lze rozestavit 11! různými způsoby. Uvažme nyní jedno (libovolné) slovo vyrobené z „neoindexované" MISSISSIPPI, např. SI-PTSMSIPIS. Z kolika „oindexovaných" rozestavení vznikne toto slovo vymazáním indexů? Tndexy u čtyř písmen S mohou být rozmístěny 4! způsoby, nezávisle na tom indexy u čtyř I také 4! způsoby, pro dvě P máme 2! možností, a konečně pro jediné M jednu (neboli 1!) možnost. Tím pádem slovo SIPISMSIPIS (i každé jiné utvořené z MISSISSIPPI) lze oindexovat 4!4!2!l! způsoby, a proto počet neoindexovaných slov, tj. odpovědna úlohu, je ll!/(4!4!2!l!). Stejnou úvahou se zjistí následující výsledek: máme-li předměty m druhů, ki předmětů od i-tého druhu (a předměty jednoho druhu jsou nerozlišitelné), přičemž &! + ••• + km = n, potom počet jejich různých seřazení je dán výrazem h\k2\ km\ Tento výraz se někdy zapisuje symbolem fci, fc2 a nazývá sc multinomický koeficient. Speciálně pro m = 2 dostáváme binomický koeficient, tedy (k ™_k) je totéž co (™). Proč název multinomický koeficient? Vysvětlení dává následující věta: 3.3.4 Věta (Multinomická věta). Pro libovolná čísla X\,. ■., xrn G R a libovolné celé n > 1 platí rovnost {x1 + X2 H-----h xm)r E k-, +... + fcm=n fcl. k-2: „km 82 Kapitola, 3: Kombinatorické počítání 3.3 Binomické koefícienty 83 Tato věta se dá dokazovat, podobně jako věta binomická, indukcí podle n (viz cvičení 21). Přirozenější důkaz vyplyne z metod části 12.1 (cvičení 3). Cvičení 1. Dokažte součtový vzorec (3.5) použitím definice (3.1) pro kombinační čísla a početní úpravou. 2. (a) Dokažte vzorec 'r + 1\ . f r + 2 + r / \ r n + 1 r + 1 (3.9) indukcí podle 72 (při pevném r). Uvědomte si, co říká pro r = 1. (b)* Dokažte týž vzorec kombinatoricky. 3 * Pro přirozená čísla m < n spočítejte (=vyjádřete jednoduchým vzorcem bez použití sumy) ££=m (*)(£). 4. Spočítejte (—vyjádřete jednoduchým vzorcem bez použití sumy) (a) YTk^l (m)Í' 5.** Dokažte E m\ /n + k fc=0 Eím)("i2 6 * Kolik existuje funkcí / : {1, 2,..., n} —> {1,2,... ,n}, které jsou monotónní, tj. pro i < j platí /(i) < /(j)? 7. Kolik členů má rozvoj výrazu (xi + věty? im)n podle multinomické 8* Kolik existuje A:-prvkových podmnožin množiny {1,2,..., n}, v nichž se nevyskytují žádná 2 po sobě jdoucí čísla? 9. (a) S použitím vzorce (3.9) pro r — 2 vyjádřete součty ^l=2i{i - 1) a Eľ=i (b) S pomocí (a) a vzorce (3.9) pro r = 3 spočítejte E"=i *3- (c) * Odvoďte výsledek (b) podle takovéhoto obrázku: 10. Dokažte binomickou větu indukcí podle n. 11. Dokažte Leibnizovu formuli pro derivování součinu: nechť u,v jsou funkce jedné proměnné, značí fc-tou derivaci funkce u. Potom (uv) (n) k=0 (za předpokladu žc všechny uvedené derivace existují). 12. Buď p prvočíslo, n, k přirozená čísla. (a) Dokažte, žc pro k < p je (£) dělitelné p. (b) Dokažte, že (") je dělitelné p právě když \n/p\ je dělitelné p. 13. (a)* Pomocí binomické věty odvoďte vztah pro počet podmnožin n-prvkové množiny, jejichž velikost je dělitelná 4. (b)* Spočítejte počet podmnožin ?i-prvkové množiny velikosti dělitelné 3. 14. Máme n druhů předmětů, a chceme určit, kolika způsoby můžeme vybrat fc-tici předmětů. Uvažujeme varianty jednak podle toho, zda vybíráme uspořádané nebo neuspořádané fc-tice, a jednak podle toho, zda máme k dispozici od každého druhu jen 1 předmět nebo libovolně mnoho předmětů. Vyplňte počty v následující tabulce: 84 Kapitola 3: Kombinatorické počítání 3.4 Odhady funkcí: faktoriál 85 Jen 1 předmět každého druhu Libovolně předmětů každého druhu Uspořádané /c-tice Neuspořádané fc-tice 15. Máme k kuliček, rozmísťujeme je do n (očíslovaných) přihrádek. Vyplňte počty možných rozmístění vc variantách v následující tabulce: < 1 kulička do každé přihrádky Libovolný počet kuliček do přihrádky Kuličky jsou různobarevné (rozlišitelné) Kuličky jsou nerozlišitelné 16* Kolika způsoby lze rozestavit 5 vodníků a 7 čarodějnic do řady tak, že žádní 2 vodníci nestojí vedle sebe? 17. Na stole jc prostřeno 13 velkých talířů, máme 5 vařených raků (nerozlišitelných) a 8 nadívaných hlemýžďů (též nerozlišitelných). Kolik je způsobů, jak servírovat raky a hlemýždě na talíře (podstatný je postup servírování, tj. jako bychom se ptali na počet různých filmových scénářů popisujících servírování, např. „nandat hlemýždě na talíř č.5, potom nandat raka na talíř č.7, ...) (a) má-li se něco nadělit na každý talíř (b) není-li žádné takové omezení, tj. např. všechno může přijít najeden talíř. 18. V senátu zasedá 100 senátorů, po 2 z každého z 50 států. Kolika způsoby lze zvolit 4-členný výbor tak, aby v něm nebyli 2 senátoři z téhož státu? 19* Uvažme pravidelný n-úhelník. Rozdělíme ho diagonálami na trojúhelníky tak, aby každý z nich měl aspoň jednu stranu společnou s naším n-úhelníkem. Kolik existuje takových rozdělení (triangulací)? 20. Najděte koeficient při x2y8z ve výrazu (2x + y2 — 5z)7. 21. (a) Dokažte rovnost (ti, k2,..., hu) Gi - lj k2, h,..., krn) + + Gi,fc2 - l,/c3,... ,fcm) + + + ( " ~ ^ \k},k2,.. .,km-i,km - lj (n > 1, ki H-----h km — n, kí > 1). (b) Dokažte multinomickou větu indukcí podle n. 3.4 Odhady funkcí: faktoriál V této části budeme odpovídat na otázku „Jak rychle roste funkce n! (faktoriál čísla n)?". Na první pohled se může zdát, že sama definice faktoriálu, n! = 1 x 2 x ■ • ■ x n. nám o této funkci říká všechno, co můžeme kdy potřebovat: Pro malé n lze n! velmi rychle vyčíslit na počítači, a pro větší n by leckdo mohl prohlásit, že hodnoty faktoriálu již nemají v „reálném" světě žádný smysl, neboť jsou příliš velké - např. již 70! > 10100, jak asi ví mnoho majitelů kalkulaček. V různých matematických úvahách však potřebujeme srovnat rychlost růstu funkce ji\ s jinými funkcemi, a to i pro velmi velké hodnoty n. K tomu samotná definice není zvlášť vhodná, a často ani výpočet hodnot počítačem moc nepomůže. V takových situacích přijdou ke slovu odhady, které vyšetřovanou funkci, třeba n!, šikovně srovnávají s nějakou „jednodušší" funkcí, například vhodnou mocninnou funkcí a podobně. V následujícím si několik takových odhadů předvedeme. Ukážeme několik metod a triků, jimiž se dají dělat odhady i pro jiné funkce, sumy, součiny apod. Nejdříve ale zavedeme užitečné značení pro porovnávání rychlosti růstu funkcí, hojně používané např. při analýze algoritmů. Asymptotické porovnávání funkcí. Často je potřeba vyjádřit skutečnosti jako např. že funkce n2 je „větší" než funkce 10n + 5 a „zhruba 86 Kapitola 3: Kombinatorické počítání 3.4 Odhady funkcí: faktoriál 87 stejně velká" jako funkce n 2 + n^/n (přitom chcenie porovnávat rychlost růstu funkcí pro velká n). K tomu se zavádí následující definice. Nechť f,g jsou reálné funkce jedné proměnné definované na přirozených číslech, přičemž zpravidla předpokládáme, že hodnoty / i g jsou nezáporné. Zápis /(n) = 0(g(n)) znamená, že existují konstanty no a C takové, že pro všechna n > no platí |/(n)| < Cg(n). Místo /(n) a g(n) se v tomto zápise objevují i konkrétní formule; například můžeme psát 10n2 + 5n = 0(n2). Zápisu f(n) — 0(g(n)) tedy můžeme rozumět tak, že funkce / neroste podstatně rychleji než g, neboli že f(n)/g(n) neroste do nekonečna. Zdůrazněme ještě, že ačkoliv se v zavedeném zápisu vyskytuje rovnítko, zápis je nesymetrický (ve své podstatě je to nerovnost). Nepíše se tedy 0(f(n)) = g(n)\ Poznámky. Někdy se podobný zápis používá i pro funkce více proměnných; například f(m.,n) = 0(g(m,n)) znamená, že pro nějaké konstanty no, trio, C a pro všechny hodnoty m > mo a n > n() platí /(n, m)| < Cg(m,n). Pomocí symbolu G(.) můžeme zapsat i přesnější srovnání funkcí. Třeba zápisu f(n) = g(n)+(J(nz) se má rozumět tak, že funkce / roste stejně rychle jako g. až na „chybu" řádu n3, neboli žc f(n) — g(n) = 0(n3). Jednoduchý konkrétní příklad je např. n\ n(n — 1) n* + Q(n). V literatuře se běžně vyskytuje ještě několik symbolů pro jiné „nerovnosti" mezi rychlostí růstu funkcí. Pro přehled uvedeme jejich definice ve formě tabulky: Zápis Definice Význam f(n) - o(g(n)) lim— =0 / roste podstatně pomaleji než g /(«) - Q(g(n)) g(ri) = 0(/(n)) f roste aspoň tak rychle jako g /(n) = S(g(n)) • f(n) = 0(g(n)) a f(n) = íl(g(n)) f a, g rostou řádově stejně rychle f(n) ~ lÍmn-,00 = 1 f(n) a g{n) rostou asi stejně rychle Odhady funkce faktoriál. Pro každé n > 1 je zřejmě pravda n! < n'1 jak je vidět z definice faktoriálu. Přesnější odhad ukázal pěkným trikem Gauss (neboli, německy psáno, Gaufi): n + 1 \ 3.4.1 Věta. Pro každé n > 1 nnf2 < n! < Důkaz začneme nerovností mezi aritmetickým a geometrickým průměrem. Pro kladná reálná čísla a, b definujeme aritmetický průměr a a b výrazem , a geometrický průměr a a b výrazem \fab. 3.4.2 Lemma. Pro každou dvojici kladných reálných čísel a, b, geometrický průměr je nejvýše roven aritmetickému. Důkaz. Druhá mocnina reálného čísla je vždy kladná, speciálně tedy (i/ä — Vb)2 > 0. Po rozepsání levé strany máme a - 'žVčib + b > 0, 88 Kapitolu 3: Kombinatorické počítání 3.4 Odhady funkcí: faktoriál 89 a přičtením výrazu 2v/ofr k oběma stranám nerovnosti a dělením 2 vyjde \fah < (a + b)/2, což je požadovaná nerovnost. □ Důkaz věty 3.4.1. Platí (n!)2 = 1 x 2 x • ■ • x (n — 1) x n x n x (n — 1) x • • ■ x 2 x 1 = = (1 x n)(2 x (n - 1)) ■ • ■ ((n - 1) X 2)(n x 1) = (3.10) Ti = J| i(n + 1 - i) (čísla v součinu jsme jenom přerovnali a sdružili do dvojic). Zvolíme-li v lemmatu 3.4.2 a = i. b = n + 1 — i, dostáváme yji{n + 1 - i) < i + n + 1 — i čili podle (3.11) /?.! I = i=l *) s n n + 1 n + 1 což dokazuje jednu z nerovností v tvrzení věty 3.4.1. Abychom ukázali druhou nerovnost, uvažme součin i(n + 1 — i). Pro i = 1 a i = n je roven n, a pro 2 < i < n — 1 máme součin dvou čísel, z nichž větší je aspoň n/2 a menší je nejméně 2, tedy součin je také nejméně n. Pokaždé tedy i(n +!—?')> n, a odtud vrír' n n/2 jak jsme chtěli dokázat. □ Příklad. Každý 7. n lidí si z osudí obsahujícího čísla 1,2,..., n vylosuje jedno číslo, zapamatuje si ho a vrátí do osudí. Jaká je pravděpodobnost, že žádní dva nemají totéž číslo? Řečeno matematicky, jaká je pravděpodobnost, že náhodně zvolené zobrazení množiny {1, 2,..., n} do sebe Obrázek 3.1: Funkce y = 1 + x a y = e* v okolí počátku. bude permutace? Všech zobrazení je nn, permutací je nl, hledaná pravděpodobnost je n\/nn. Z horního odhadu z věty 3.4.1 spočítáme < n + 1 2~n < e,2- hledaná pravděpodobnost tedy exponenciálně klesá. Z přesnějších odhadů dokázaných níže se pak dostane, že uvedená pravděpodobnost se chová přibližně jako funkce e~n. Teď jinými postupy odhad z věty 3.4.1 vylepšíme. V dokonalejším odhadu bude vystupovat Eulerovo číslo e = 2.718281828 ..., základ přirozených logaritmů. O této pozoruhodné konstantě se čtenář více dozví v matematické analýze. Zde budeme potřebovat následující užitečný 3.4.3 Fakt. Pro každé reálné číslo x platí 1 + x < ex (viz obrázek 3.1). S jeho pomocí dokážeme: 90 Kapitola 3: Kombinatorické počítání 3.4 Odhady funkcí: íáktoriál 91 3.4.4 Věta. Pro každé n > 1, 'n\n , rn\n i [ — J < ??,! < en První důkaz (matematickou indukcí). Ukážeme pouze horní odhad n\ < en(n/e)n, dolní odhad ponecháváme jako cvičení 8. Pro n = 1 je pravá strana nerovnosti rovna 1, tvrzení tedy platí. Předpokládejme, že jsme je již dokázali pro n — 1, a odvodíme je pro n. Máme n! — n(n — 1)! < ne{n — 1) n — 1 n—1 podle indukčního předpokladu. Pravou stranu dále upravíme na tvar - 1 ~ en V hranaté závorce je výraz, kterým bychom potřebovali shora omezit n!, abychom dostali dokazovanou nerovnost pro n. Stačí tedy ukázat, že zbývající část výrazu nepřevyšuje 1. Úpravou a použitím faktu 3.4.3 pro x = — - dostáváme n - 1 1 1 < e e -l/n e x e □ Ještě poznamenejme, že fakt 3.4.3 je jediná vlastnost čísla e, kterou jsme v důkazu použili - například numerická hodnota e se tam vůbec neobjevila. Fakt 3.4.3 totiž číslo e charakterizuje: pokud pro nějaké reálne číslo a platí 1 + x < áŕ pro všechna x e R, potom už a — e. Existence čísla e s touto vlastností se ovšem musí dokázat prostředky matematické analýzy. Druhý důkaz věty 3.4.4 (pomocí integrálu). Zase uděláme jenom horní odhad. Vyjdeme z definice faktoriálu n! = 1 x 2 x • ■ ■ x n a obě strany zlogaritmujeme. Máme tedy y = ln x Obrázek 3.2: Odhad plochy pod stupňovitou funkcí pomocí integrálu (funkce ln je logaritmus o základu e). Výraz na pravé straně si můžeme představit jako plochu pod grafem stupňovité funkce na intervalu [l,n -I- 1], jejíž hodnota na intervalu [i, i + 1) je rovna Iní, viz obr. 3.2. Uvedená stupňovitá funkce je v každém bodě x e [1, n + 1) nejvýš rovna lna;, čili plocha pod jejím grafem nepřevyšuje plochu pod grafem funkce ln x na tomto intervalu. Odtud n+l lnn! < / ln.rdx — (n + l)ln(r?. + 1) — n, jak se spočte jako jednoduché cvičení na integrování. Tento odhad můžeme dále upravit n\ < e(n I l)ln(n+t)-n _ (n + 0" 1 To ještě není ten tvar, který chceme. Ale, můžeme použít tento vzorec pro n — 1, a tím už vyjde tvar, uvedený ve větě: nn ( n \ '"■ i\ = n(n — 1)1 < n-- = en — K ' ~ en 1 Ve/ □ lnn! = ln 1 + ln 2+ + ln n 92 Kapitola 3: Kombinatorické počítání 3.4 Odhady funkcí: faktoriál 93 Zvídavý čtenář si může rozmyslet, kde se číslo e vlastně vezme v právě uvedeném druhém důkazu. Zdánlivě jsme ho tam vpašovali uměle, protože jsme na začátku vzali přirozený logaritmus nl. Mohli jsme ale použít logaritmus o libovolném jiném základu a a e by v konečném odhadu vyšlo stejně, jenom s trochu složitějším počítáním. Pro zajímavost (a pro vzbuzení čtenářovy zvědavosti?) zmiňme ještě přesnější odhad pro nl, známý pod jménem Stirlingova formule: Definu-jeme-li funkci f(n) = \f2ixn (kde 7t = 3.1415926535 ... je Ludolfovo číslo), platí f(n) ~ nl, neboli lim i. n—>cx; 77. í to znamená, že odhadneme-li číslo nl hodnotou /(n), pak relativní chyba tohoto odhadu se blíží 0 pro n rostoucí do nekonečna; např. pro n = 8 je chyba okolo 1%. Všimněme si, že Stirlingova formule je zhruba „uprostřed" mezi odhady z věty 3.4.4 (viz též cvičení 9). Cvičení 1. Rozmyslete si, co říkají následující zápisy, a rozhodněte, zda jsou pravdivé. (a) n2 — 0(n2 lun) (b) n2 = o(n2 lim) (c) n2 + 5?ilnn = n2(l+o(l)) ~ n2 (d) n2 + 5nlnn — n2 + 0(n) (e) nl ~ ((n + l)/2)n (f) ln(n!) = íž(nlnn) (g) Eľ=i^8 = e(n9) (h) Eľ=1Vi = 8(n3/2). 2. Jaký je význam zápisů: C = 0(1), c = 0(1), f(n) = n°W? Jak je krátce vyjádřit bez použití symbolu 0(.)1 3. Srovnejte následující funkce podle rychlosti růstu, a zapište vztahy mezi nimi pomocí značení, zavedeného v této části: nlnn, (lnln?7)lnn, (ln n) ln ln n nevlnn, (lnn)lnT\ n2 ln ln n ^ nl + l/(lnlnn) ^l+l/I-nn ^2 4* Dokažte fakt 3.4.3. 5. (a) Vyšetřete, pro které dvojice reálných čísel (a, b), a., b > O, platí Va5 = (a + b)/2. (b) Harmonický průměr kladných čísel a, b se definuje výrazem 2ab/(a + b). Zjistěte, v jakém vztahu (nerovnosti) je harmonický průměr vzhledem k aritmetickému a geometrickému. 6. Nechť xi,x-2,-.. ,Xn jsou kladná reálná čísla. Jejich aritmetický průměr je (xi + x-2 H-----V xn)jn, a jejich geometrický průměr se definuje jako ýx\x2 ■ ■ ■ xn. Nechť ÄG(n) značí tvrzení „pro každou n-tici kladných reálných čísel Xi,Xa,..., xn je geometrický průměr nejvýš roven aritmetickému". Dokažte platnost AG(n) pro každé n následující (podivnou) indukcí: (a) Dokažte že z AG(n) plyne AG(2n), pro libovolné n. (b) * Dokažte že z AG(n) plyne AG(n - 1), pro libovolné n > 1. (c) Vysvětlete, proč z (a) a (b) plyne platnost AG{n) pro všechna n. 7* Definujme posloupnosti {a„}£L0 a {6„}^L0 takto: a0 = 2, ž»0 = 4, a„+i = \/anbn, = 2a„,+1ř>.„./(aíl+i + &„). Dokažte, že obě po- sloupnosti konvergují k číslu ir (návod: najděte souvislost s pravidelnými mnohoúhelníky opsanými a vepsanými jednotkové kružnici). Poznámka: Tato metoda (Archimedova) výpočtu tt není příliš efektivní. Mnohem rychlejší algoritmus je např. tento: x\ — 2-3/4 + 2~5//4, yi = e(n/e)n ve větě 3.4.4 (a) indukcí (šikovně využijte faktu 3.4.3), (b) pomocí integrálu. 9* Dokažte následující horní odhad (který je již velmi blízký Stirlingově formuli): nl < e.y/n(n/e)n. Vyjděte z důkazu věty 3.4.4 pomocí integrálu, ale od plochy pod křivkou y = \nx odečtěte ještě plochu vhodných trojúhelníčků. 10. Dokažte Bernoulliho nerovnost: Pro každé přirozené n a pro každé reálné x > -1 platí (1 + x)n > 1 + nx. 94 Kapitola 3: Kombinatorické počítání 3.5 Odhady: binomické koeficienty 95 11. Dokažte, že pro n = 1,2. 1 1 2Vn + 1-2 < 1 + -7= + —= + • \/2 y/í < 2Jň- 1. 12. V analýze různých algoritmů se často objevuje součet 1 1 Hn = l + 2 3 i=l (tzv. harmonické číslo). (a) Ukažte, že pro každé přirozené m, 1 + < ifn < m + 1, kde n = 2m. (b) Dokažte pomocí integrálu, že ln n < Hn < ln n + 1. 3.5 Odhady: binomické koeficienty Podobně jako jsme vyšetřovali chování funkce n\, budeme se teď zabývat funkcí Je hned vidět, že fe-i n(n !)•••(// /,• • 1) j-j- u 1 x 2 x • • • x k < nk, (3.11) i=0 a pro mnoho použití s tímto jednoduchým odhadem vystačíme. Pro k > n/2 je ovšem výhodné napřed použít vztahu (£) = (n1k)- Abychom odvodili dolní odhad, podíváme se na definici binomického koeficientu zapsanou jako součin zlomků, tak jako v (3.11). Pro n > k > i > 0 platí (n - i)/(k - i) > n/k, a proto k J ~ \k. Následující vylepšený horní odhad je podobného tvaru, a na jeho důkazu předvedeme ještě jednu další metodu. 3.5.1 Věta. Pro každé n > 1 a pro každé k, 1 < k < n, platí j-j - v k Důkaz. Ukážeme ve skutečnosti silnější nerovnost Vyjdeme z binomické věty, která pro libovolné reálné číslo x tvrdí 0/ • lij'' ' l2|ľ + xn = (1+ .'/;)'"'. Předpokládejme nyní, že 0 < x < 1. Potom vynecháním některých sčítanců na levé straně dostaneme a vydělením obou stran číslem xk máme xk < (I ■ x)'\ A) 1 + < (1 +x)n Každé z kombinačních čísel na levé straně je vynásobeno číslem větším nebo rovným jedné (poněvadž jsme předpokládali x < 1); vynecháme-li tyto koeficienty, levou stranu nezvětšíme. Vyjde (1 + .!■)" + h----+ < Číslo x z intervalu (0,1) můžeme zvolit podle potřeby, a uděláme to tak, abychom učinili pravou stranu co nejmenší. Vhodná hodnota je x= Dosazením tohoto výrazu do pravé strany máme < 1 + Konečně s využitím faktu 3.4.3 vychází k n a z toho už máme tvrzení věty 3.5.1 1 < [ekln 1 = efe, □ 9b Kapitola 3: Kombinatorické počítání Kombinační číslo (^j"2j)- ^ definice kombinačního čísla snadno plyne následující vzorec: n, k + 1 n k - 1 Proto pro k < n/2 máme (£) > a naopak pro k > n/2 do- staneme symetricky (™) > (^j) • Tudíž pro dané n jsou mezi kombinačními čísly Q') největší ta prostřední: pro n sudé je (n™2) větší než všechna ostatní, pro n liché jsou dvě největší kombinační čísla, (^n"2j) a. (fn/21)• Chování kombinačních čísel (£) pro dané velké n a pro A; blízké n/2 je znázorněno na obr. 3.3(a). Graf ve skutečnosti není souvislá křivka (protože (£) je definováno jen pro celá k), ale pro velké n je bodů tolik, že vizuálně splývají v křivku. „Výška" této křivky je právě (^n/2j)j a „šířka" zvonovitého tvaruje přibližně (to dokazovat nebudeme); měřítka na svislé a vodorovné ose jsou tedy podstatně odlišná. Křivka takovéhoto tvaru je velmi důležitá např. v teorii pravděpodobnosti (tzv. Gaussova křivka), kde např. dává typické rozložení chyb při měření nějaké veličiny, a vzniká v mnoha nečekaných souvislostech. Jak je kombinační číslo (i^y2i) velké? Jednoduchý, ale mnohdy dostatečně přesný odhad je < n n [n/2 < 2r' Druhá nerovnost je zřejmá ze vztahu Ylk=o (fe) = 2", a první vlastně taky - (|„y2j) Je největší mezi n + 1 kombinačními čísly tvaru jejichž součet je 2n. Ukážeme podstatně přesnější odhad. Pro pohodlnější zápis budeme pracovat jen se sudými hodnotami n, tj. n = 2m. 3.5.2 Tvrzení. Pro všechna m > 1 platí 22m < Í2m\ < 22m 3.5 Odhady: binomické koeňcienty 97 (a) (b) Obrázek 3.3: Znázornění relativní velikosti kombinačních čísel (£) pro jedno velké n a k blízké § (a); možná též klobouk, případně hroznýš, který sežral slona (b) viz [27]. Důkaz. Obě nerovnosti dokážeme podobně. Uvažme číslo 1 x 3 x 5 x ■ ■ • x (2m - 1) P =---- 2 x 4 x 6 x • ■ ■ x 2m (v tomto kroku je zakódována skoro celá myšlenka důkazu). Protože 1 x 3 x 5 x ■ • • x (2m - 1) 2 x 4 x ■ ■ ■ x (2m) _ (2m)! P = 2 x 4 x 6 x • • • x 2m 2 x 4 x ■ • ■ x (2m) ~ 22m(?n!)2 ' dostáváme, že P = ^ (2™). Chceme tedy ukázat 1 l/2sjm. 1 (2m - l)2 (2»? - 2)(2w) (2m - l)2 2(2m)P2: Poznamenejme, že aproximujemc-li (2m)! a m! pomocí Stirlingovy formule (kterou jsme ovšem nedokázali!), dostáváme ještě přesnější výsledek m 2m Uvažování odhadů čísel (2'") se může zdát jako zbytečná kuriozita. Není tomu tak, a takové odhady mají zajímavé souvislosti např. s teorií čísel. Jedna z najslávnejších matematických vět je následující tvrzení O hustotě prvočísel: Označme 7r(n) počet prvočísel nepře- n ln n 3.5.3 Věta (Prvočíselná věta). vyšujících číslo n. Potom 7r(n) (čili Yimn^iX n(n) ln n/n = 1). Je známo několik důkazů této věty, všechny jsou dost těžké (a hledání různých variací a zjednodušení pokračuje i dnes). Již v devatenáctém století ale našel Čebyšev jednoduchý důkaz takovéhoto slabšího výsledku: n(n) = 0 — Vln n tj. cin/lnn < iv(n) < c2n/\nn pro jisté konstanty c2 > Ci > 0. Část důkazu lze založit na odhadech 22m/(2m + 1) < (2™) < 22m (viz cvičení 3). Čebyšev dokázal rovněž tzv. Bertrandův postulát: Pro každé n > 1 existuje prvočíslo p splňující n < p < 2n. Dnes asi nejjednodušší známý důkaz je založen (mimo jiné) právě na tvrzení 3.5.2. O těchto velmi pěkných souvislostech se čtenář může poučit např. v knize [7]. Cvičení 1. Dokažte odhad (£) < (en/k)k indukcí podle k. 2. Srovnejte následující výrazy podle velikosti (předpokládejte, že n je velmi velké číslo): (a) 2 n n — II \n 2n\ (2n 10 n!, n^, (V^)n, (b) ...C), p, 3. (a) Ukažte, že součin všech prvočísel p, m < p < 2m, je nejvýš 22m. (b) * Pomocí (a) dokažte odhad 7r(n) = 0(n/ lnn), kde 7c(n) je jako ve větě 3.5.3. (c) * Buď p prvočíslo, m, k přirozená čísla. Ukažte, že pokud pk dělí (2™), potom pk<2m. (d) Pomocí (c) ukažte odhad 7r(n) = íí(n/lnn). 3.6 Princip inkluze a exkluze Do češtiny bychom mohli název této části přeložit třeba „princip zahrnutí a vyloučení". Tím jsme tento pojem asi čtenáři ještě příliš neosvětlili, začněme tedy motivačním příkladem. Jako to již učinili jiní autoři u mnoha jiných příkladů o konečných množinách, uchýlíme se k formulaci s kluby na malém městě, a na znamení úcty k pravlasti klubů to budou kluby tenisový, kriketový a egyptologičky. 3.6.1 Příklad. Ve městě M. fungují 3 kluby. Tenisový klub má 20 členů, kriketový klub 15 členů a egyptologičky klub je osmičlenný. Přitom z egyptologů jsou 2 hráči tenisu a 3 hráči kriketu, tenis a kriket zároveň provozuje 6 lidí, a jediná obzvláště agilní osoba je ve všech třech klubech. Kolik osob se celkem účastní klubového života v M. ? Nejdřív cvičně spočítejme, kolik dohromady čítá členstvo řekněme tenisu a kriketu. Je vidět, že je třeba sečíst počet tenistů a kriketistů a odečíst osoby, které jsou v obou klubech a tedy jsme je počítali dvakrát; symbolicky zapsáno, \TUK\ = \T\ + \K\-\TnK\ = 20-1-15-6= 29. 100 Kapitola 3: Kombinatorické počítání 3.6 Princip inkluze a exkluze 101 Obrázek 3.4: Princip inkluze a exkluze pro 3 množiny. Pokud čtenáře neodradí zjevná přihlouplost celého příkladu z praktického hlediska1, najde patrně podobnými, ale komplikovanějšími úvahami odpověď pro 3 kluby, která je 33; dobré je si k tomu nakreslit obrázek (obr. 3.4). Princip inkluze a exkluze je vztah, podle něhož lze řešit úlohy podobného typu obecně. Používá se v situaci, kdy chceme spočítat velikost sjednocení několika množin, a známe přitom velikosti všech možných průniků. Tak pro dvě množiny, K a T, jsme takový vzorec již uvedli, a pro 3 množiny K,T a E zní \KUTUE\ = \K\ + \T\ + \E\-\KnT\-\Kr\E\-\TC\E\ + \KC\Tr\E\. Slovně vyjádřeno, abychom dostali velikost sjednocení, sečteme napřed velikosti jednotlivých množin, pak odečteme velikosti průniků všech dvojic, a nakonec přičteme velikost průniku všech tří množin. Jak ukážeme za chvíli, takovýto návod funguje i pro obecný počet, n, konečných množin A±, A2, ■ ■ ■, An. Velikost jejich sjednocení, tj. \A\ U A2 U ... U An\. dostaneme takto: sečteme velikosti všech množin, odečteme velikosti průniků všech dvojic, přičteme velikosti průniků všech trojic, odečteme velikosti průniků čtveřic, atd.; jako poslední Což patrně indikuje jeho matematicko sklony. krok buď přičteme (pro liché n) nebo odečteme (pro sudé n) velikost průniku všech n množin. Jak to zapsat vzorcem? Jeden způsob by mohl být |A] U A2 U ... U An\ = \Ai\ + \A2\ + ■■■ + \An\- -\Ai nA2\-\A1nA3\-----\A1nAn\-\A2nA3\-----\An-1nAn\+ +\Aľ n A2 n Az\ + \Ai n A2 n A4| + • • • +(-i)"-1|^inA2n...nyln|. To je velmi těžkopádné vyjádření tak jednoduchého pravidla. Trošku lepší je zápis pomocí sum: n |A, Uyl2U...UA„| = ^2\Ai\ - Yl \Ai,r\Ah\ + i=l li nAP2r\A.l3\ - l0 + |A fc=i jfc({1-2-■-,a"if) «e/ ra-1 B-i) fe-i fc=i {l,3.,...,ft-l}<\ e n -4f ie/u{»} Už jsme skoro hotovi. V první sumě sčítáme (se správnými znaménky) všechny velikosti průniků nezahrnujících množinu An. Ve druhé sumč se objevují právě všechny velikosti průniků obsahujících množinu An. a průnik k + 1 takových množin (tj. nějakých k z množin A\,..., a„-i a množiny An) má znaménko -(—l)fc_1 = (-l)fc. V druhé sumě přitom není zahrnut člen \An\, ten však je zvlášť mezi oběma sumami. Celkem tedy velikost průniku libovolné fc-tice množin z A\,.., ,An se ve výrazu objevuje právě jednou, a se znaménkem (—l)*-1, což souhlasí s (3.12). Tím je důkaz indukcí ukončen (bez rozumného zápisu bychom se v tomto důkaze snadno beznadějně zapletli). □ 3.6 Princip inkluze a exkluze 103 Druhý důkaz principu inkluze a exkluze - počítáním. Uvažme libovolný prvek x A\ U...UAn, K velikosti sjednocení na levé straně vzorce (3.12) přispívá x právě 1. Podívejme se, kolik přispívá do jednotlivých průniků na straně pravé. Předpokládejme, že x je obsažen právě v j z množin AÍ7...,An, 1 < j < n; můžeme množiny přejmenovat tak, aby x byl obsažen právě v A\,... . Ar Prvek x se, tedy objevuje v průniku každé fe-tice množin z A\....,Aj (a v žádných jiných průnicích). Protože existuje právě (|) fe-prvkových podmnožin j-prvkové množiny, bude se x objevovat v (|) průnicích fc-tic. Velikosti fc-tic jsou přitom započteny se znaménkem (-l)fc_1, tudíž x na pravé straně přispívá veličinou » + + (-iy Podle vzorce (3.8) je toto rovno 1. Příspěvek každého prvku k oběma stranám (3.12) je tedy 1, a tím je tento vzorec dokázán. □ A ještě jeden, velmi krátký důkaz. Když se na věc vhodně pohlíží, je princip inkluze a exkluze důsledkem takovéhoto vzorečku pro roznásobení (1 + Xl)(1 + ;r2) • ■ • (1 f in) = ( 1 I ' ic{\,2,...,n} H6J (3.14) Rozvažte, co ten vzoreček říká (rozepište to pro n = 1,2,3, řekněme) a proč platí. Abychom dokázali princip inkluze a exkluze, označme A = A\ U Ai U ... U An, a nechť /» : A —> {0, 1} je charakteristická funkce množiny Ai, to znamená f4(a) = 1 pro a £ A,, a fi{a) = 0 jinak. Pro každé a £ A platí nJLi(l - fi(a)) = 0 (ne?)> a použitím (3.14) s Xi= fj(n) dostaneme e (-i)mn/'(°)=a /C{l,2,...,n} i€í Sečtením těchto rovností pro všechna a £ A, a potom záměnou pořadí sumace, se dopracujeme k o-e e <-umn/**)) = ti.eA VC{1,2.....n) 104 Kapitola 3: Kombinatorické počítaní 3.7 Šatnářka a ti druzí 105 e rc{i,2,.. (-1)' e n m* aEA i67 (3.15) Teď už si stačí uvědomit, že [J<€J fi(a) je charakteristická funkce množiny H. , -V takže Za€Aľli€i fi(a) = \f)iciAi\- Speciálně pro / = 0 Jc n*£0/i(a) prázdný součin, jenž podle definice má hodnotu 1, takže X>acA flie0 ma) = y.a^A 1 = l^l- Proto (3.15) znamená f.4! e ( 0//C{l,2,...,n} i€l = 0, což jc přesně princip inkluze a exkluze. Znalec algebry tedy může shlížet na princip inkluze a exkluze s jistým pohrdáním - trivialita, řekl by. □ Bonferroniho nerovnosti. Někdy se můžeme octnout v situaci, kdy známe velikosti všech průniků až do m-násobných, ale neznáme velikosti průniků většího počtu množin než m. Pak ovšem nemůžeme velikost sjednocení spočítat přesně. Takzvané Bonferroniho nerovnosti říkají, že vynecháme-li na pravé straně principu inkluze a exkluze (3.12) členy od (m+ l)-ního počínaje, potom chyba, jíž se tím dopustíme při výpočtu velikosti sjednocení, bude mít stejné znaménko jako první vynechaný člen. Zapsáno formulí, pro každé q = 1,2,... a libovolné konečné množiny Ai,..., An platí 2q B- k-l l)fc fc-1 e /e({1' }) i€l 1=1 < (11,2,... n a, (3.16) 2q-l To třeba znamená, že nevíme-li v příkladu 3.6.1, kolik horlivců je ve všech třech klubech zároveň, můžeme odhadnout, že celkový počet členů všech tří klubů dohromady je nejméně 32. Důkaz nerovností (3.16) zde neuvádíme. Cvičení 1. Rozvažte podrobně, proč formule (3.12) a (3.13) vyjadřují totéž. 2* Dokažte Bonferroniho nerovnosti (3.16). Nevíte-li si rady s obecným případem, zkuste aspoň případ q — 1 a q = 2. 3. (Eratosthenovo síto) Kolik čísel zbude z 1,2,...,1000 po vyškrtání všech násobků čísel 2,3,5 a 7? 4. Spočítejte počet přirozených čísel n < 100, která nejsou dělitelná druhou mocninou žádného přirozeného čísla (většího než 1). 5. Kolik existuje pořadí písmen A,B,C,D,E,F,G,H,I,J,K,L,M,N,0,P, z nichž vypuštěním některých písmen nelze dostat ani jedno ze slov PONK, DOBA, COP? Co když zakážeme ještě OPICE? 6. Kolika způsoby lze seřadit do fronty 5 Cechů,*4 Maďary a 3 Rusy tak, aby všichni příslušníci žádného národa netvořili jeden souvislý blok? 3.7 Šatnářka a ti druzí 3.7.1 Úloha. (Problém šatnářky) Ctihodní pánové v počtu n přijdou na shromáždění, všichni v kloboucích, a odloží si své klobouky do šatny. Při odchodu šatnářka, možná ten den velmi roztržitá, možná dokonce z mizerného osvětlení oslepla, vydá každému z pánů náhodně jeden z klobouků. Jaká jc pravděpodobnost, že žádný pán nedostane od šatnářky zpět svůj klobouk? Tento problém je formulován jako hříčka, ale matematicky je pozoruhodný a svého času zaměstnával matematické génie té doby. Nejprve ho přeformulujeme pomocí permutací. Očíslujeme-li pány (s prominutím) 1,2,... , n, a jejich klobouky taktéž, potom činnost šatnářky vede k náhodné permutaci n množiny {1,2,... , n}, kdy it(i) je číslo klobouku navráceného i-tému pánovi. Otázka zní, s jakou pravděpodobností platí ir{i) i pro všechna i G {1,2,...,n}. Nazvěme index i splňující = i pevným bodem permutace n. Ptáme se tedy, jaká je pravděpodobnost, že náhodně zvolená permutace nemá žádný pevný bod. Každá z n! možných permutací je, podle popisu práce šatnářky, stejně pravděpodobná, takže označíme-li š(n) počet permutací bez pevného bodu na n-prvkové množině, bude zkoumaná pravděpodobnost rovna š(n)/n!. 106 Kapitola 3: Kombinatorické počítání Pomocí principu inkluze a exkluze se dá odvodit vzorec pro š (re). Budeme hledat počet „špatných" permutací, tj. permutací aspoň s jedním pevným bodem. Nechť Sn (tradičně) značí množinu všech permutací množiny {1,2,...,re}, a pro i = 1,2,...,n definujme Ai = {tt € 5„; 7r(i) = i}. Špatné permutace jsou právě sjednocení všech A%. Zde doporučujeme čtenáři, aby si řádně uvědomil definici množin Ai (jejich prvky jsou permutace, nikoli čísla!) - ta bývá často zdrojem nedorozumění. Abychom mohli aplikovat princip inkluze a exkluze, musíme vyjádřit velikosti fc-násobných průniků množin Ai. Je snadno vidět, že \Aí\ = (n — 1)! {n(i) je fixováno, na zbývajících n — 1 prvcích volíme libovolnou permutaci). Jaké permutace např. jsou v AyDA^! Právě ty, které mají 1 a 2 jako pevné body (a zbývající prvky zpermutovány libovolně), takových je (n —2)!. Obecně pro libovolná i\ < %i < • ■ • < máme \A^ n Ai2 D... n Aik \ = (re — k)\, a proto dosazením do principu inkluze a exkluze vyjde \A\ U ... U An\ = J2(-l)k-' (?) (re - fc)| = B-l)^1 k-i fc=i re! fcT Připomeňme, že to jsme spočítali permutace s aspoň jedním pevným bodem, tedy š(«) re! A1U...uAra|=re!-- + ------• ( D" j. což můžeme ještě přepsat na tvar = re! f l - I + I re! 1 (3.17) Jak se vyučuje v kursu matematické analýzy, konverguje součet řady v závorce pro rostoucí re k e" 1 (kde e je Eulerovo číslo), a to velice rychle. Proto máme přibližný vztah š(re) « re!/e, a pravděpodobnost v problému šatnářky tedy konverguje ke konstantě e~l. 3.7 Šatnářka a ti druzí 107 Eulerova funkce tp. V teorii čísel hraje důležitou roli funkce, označovaná zpravidla ip a pojmenovaná po Leonhardu Eulerovi. Pro přirozené číslo n definujeme hodnotu ip(n) jako počet přirozených čísel rn < n nesoudělných s n; formálně tedy ip(n) = \{m e {1, 2,..., n}; (n, m) = 1}| (připomeňme, že (n, m) značí největší společný dělitel čísel m a n). Jako příklad na použití principu inkluze a exkluze najdeme vzorec, který umožňuje efektivně spočítat hodnotu tp{ii) ze znalosti rozkladu čísla n na prvočinitele. Nejjednodušší je případ, kdy n = p je prvočíslo. Potom každé m < p je s p nesoudělné, a tedy (p(p) =p — 1. Další stupínek k řešení je případ, kdy n - p" (a e N) je mocnina prvočísla. Potom čísla soudělná s p" jsou práyě násobky p. tj. p,2p, 3p____,Pa~\ a takových násobků je pa~l (obecně, pokud d je libovolný dělitel nějakého čísla n, potom násobků d nepřevyšujících n je právě n/d). Čísel nesoudělných s pQ tedy zbývá pq(i - i/v)- Obecné n můžeme zapsat ve tvaru n = pTvT---Prr'. kde pi,... ,pr jsou navzájem různá prvočísla a a» G N. „Spatná" m < n, tj. taková, která se nepočítají do tp{n), jsou právě násobky některého z prvočísel pí. Označme Ai - {m G {1,2,...,n}; Pj|ra} množinu násobků pi. Máme tedy 95(71) = n - \Aľ U A2 U ... U A,.|. Princip inkluze a exkluze velí, abychom zjistili velikosti průniků množin Ai. Tak např. průnik Ai H A2 obsahuje čísla dělitelná jak pL, tak p2, čili právě násobky pxP2, a proto \Ai n A2\ = n/(pip2). Obecně máme stejnou úvahou \Ah n A.,2 n...nAik\ = Podívejme se nejprve na konkrétní případy r = 2 a r = 3. Pro n = p^p"2 máme 2 PW2 == n 1 Ai| — |A3| + |Ai n Aa| = i) Pl / V P2. 108 Kapitola. 3: Kombinatorické počítání 3.7 Šatnářka a ti druzí 109 Podobně pro n = p^ffipf vychází f{n) — n n n n n n n -----+-+-+- Pl P'l Vi P\P2 PlPz P2P3 Pl) Í1 P2) (' P:í P1P2P3 To vzbuzuje podezření na obecný vzorec: 3.7.2 Věta. Pro n = p^p? ■ ■ -p"'- platí 1): Kružnice Cn (kde n > 3): V = {l,2;...,n}, E = {{i,i + l}; i = 1,..., n- 1} U {{1, n}}. C3 C i C.5 Cesta Pn (kden>0); V = {0,1,...,n), E= {{i - Li}; i = l,...,n}. 114 Kapitola 4: Grafy: úvod 4.1 Pojem grafu: isomorfísmus 115 Úplný bipartitní graf KniTn (kde n.rn > 1): V = {tti,?/„} U {tíi,vm}, E={{ui,vj};i = l,2,...,n, .7 = 1,2,.. , m}. i :.i K 2,3 a': 3,3 Tady je asi na místě malé vysvětlení. Slovo „bipartitní" bychom mohli přeložit jako „dvoučásťový". Obecně, graf G se nazývá bipartitní, pokud množinu V(G) můžeme rozdělit na dvě disjunktní podmnožiny V\ a V2 takové, že každá hrana z E(G) spojuje vrchol z V\ s vrcholem z V2; v symbolech E(G) C {{?;,(/}; u € Ví, t/ G Vfe}. Isomorfismus grafů. Dva grafy G a G' pokládáme za stejné, jestliže mají totožné množiny vrcholů a hran; tedy G = G' znamená V(G) - V(G') a E(G) = E(G'). Mnoho grafů se však liší „pouze" označením svých vrcholů a hran. To vystihuje pojem isomorfismu. 4.1.2 Definice. Dva grafy G = (V, E) a G' = (V, E') nazveme isomorfní, jestliže existuje vzájemně jednoznačné zobrazení / : V'—»V> tak, že platí {z, y} E E právě když {f(x), f(y)} e E'. Zobrazení f nazýváme isomorfismus grafů G a G'. Fakt, že grafy G a G' jsou isomorfní, vyznačujeme zápisem G = G'. Isomorfismus je tedy vlastně „přejmenování vrcholů" grafu (dejte na definici isomorfismu pozor, je důležitá, ale často se plete!). Relace = („býti isomorfní") je ekvivalence - viz cvičení 3. 4.1.3 Úloha. Následující 3 obrázky znázorňují isomorfní grafy. Najděte příslušné isomorňsmy. Řešení Všechny tři grafy jsou isomorfní -^3,3. Isomorfismus (a)—* (b): například 1 w o, 2 >—>■ d, 3 1—> b, 4=>e, 5hc, 6h / (existuje víc možností!). Ostatní přenecháváme čtenáři. Pro malé obrázky není zpravidla těžké rozhodnout, jestli odpovídají isomorfním grafům nebo ne (i když předchozí úloha naznačuje, že obrázky téhož grafu nemusí zdaleka vypadat na pohled stejně). Nicméně úloha rozhodnout, zda dané dva grafy jsou isomorfní, je obecně obtížná, a není pro ni znám žádný efektivní algoritmus (tj. fungující efektivně ve všech případech). Dokonce se soudí, že ani žádný efektivní algoritmus neexistuje. Počet neisomorfních grafů. Na dané 77,-prvkové množině V je právě různých grafů (neb tolika způsoby můžeme zvolit množinu E jako podmnožinu množiny (^), a posledně jmenovaná má (!j) prvků viz část 3.1). Grafů, které jsou navzájem neisomorfní, jc podstatně méně. Tak např. pro V = {1, 2, 3} dostáváme následujících 8 = 2(2) grafů A /. A A A A Z těchto 8 možností jen 4 jsou neisomorfní: A A. /. .'. Kolik je navzájem neisomorfních grafů na n vrcholech pro obecné n? Určit to přesně je poměrně těžké; jednoduchou úvahou můžeme ale dostat aspoň dobré odhady. Navzájem neisomorfních grafů určitě není více než všech grafů na dané konkrétní n-prvkové množině, tj. 2(2). Na druhé straně, uvažme jeden graf G na množině V — {1,2,..., n}. Kolik 116 Kapitola 4: Grafy: úvod 4.1 Pojem grafu; isomorňsmus 117 různých grafů G' na této množině je s grafem G isomorfních? Podle definice, je-li G' takový isomorfní graf, musí existovat bijekce / : V^»V, které je isomorfismem G a G'. Všech bijekcí / : V<—»V je ale n! (viz část 3.2), tedy G je isomorfní s nejvýš n\ grafy na množině V, a proto existuje minimálně 2(í) navzájem neisomorfních grafů na n vrcholech. Tvrdíme, že tato funkce neroste o mnoho pomaleji než 2® . Abychom to nahlédli, zlogaritmujeme obě funkce a poněkud upravíme (přitom použijeme zřejmý odhad n! < nn): log2 n Y 1 - 1 log2 — log2 n! > n2/2 — n/2 - nlog2 n = 1 _ 2 log2 n n n Vidíme, že pro velká n se logaritmy obou funkcí chovají „asi jako" funkce n2/2: relativní chyba, které bychom se dopustili jejich nahrazením funkcí n2/2, jde v obou případech k nule pro n —> oo. (Více o odhadech funkcí viz část 3.4.) Speciálně, pro dostatečně velké n je mnohem více než např. 2" navzájem neisomorfních grafů. Právě uvedená úvaha je pozoruhodná tím, že jsme pouze ukázali existenci velkého množství neisomorfních grafů, ale žádné takové grafy jsme nesestrojili (o podobných úvahách budeme mluvit systematičtěji v kapitole 10). Sestrojit (tj. explicitně popsat) mnoho neisomorfních grafů není jen tak - viz cvičení 7. Cvičení 1. Nalezněte isomorfismus mezi grafy 2. Které z následujících výroků o grafech G a H jsou správné? Zdůvodněte. (i (iíi (iv (v (vi (vii (viii G a, II jsou isomorfní, právě když pro každé zobrazení /: V(G) —* V(H) platí pro každé dva vrcholy u, v G V(G) následující ekvivalence: {u, v} e E(G) ^ {/(«), f (v)} e E (H). G a H jsou isomorfní, právě když existuje bijekce /: E(G) —> E(II). ' Jestliže existuje bijekce /: V(G) —> V(H) taková, že každj' vrchol u e V (G) má stejný stupeň jako f(u), pak jsou G a H ispmorfní. Jestliže jsou G a H isomorfní, pak existuje bijekce /: V(G) —> V{H) taková, že každý vrchol u S V (G) má stejný stupeň jako /(*«)• Jestliže jsou G a H isomorfní, pak existuje bijekce /: E(G) —> E{H). ' G a H jsou isomorfní, právě když existuje zobrazení /: V(G) —* V(H) takové, že pro každé dva vrcholy u. v £ V{G) platí ekvivalence {u,v} e E(G) & {/(«), f (v)} € /•;(//). Každý graf s n vrcholy je isomorfní nějakému grafu na množině vrcholů {1,2,____n}. Každý graf s n > 1 vrcholy je isomorfní nekonečně mnoha grafům. 3. Buď Q nějaká množina grafů. Dokažte, že relace „býti isomorfní" je ekvivalence na Q. 4. Automorfisrnus grafu G — (V,E) je každý isomorfismus G s G, tj. bijekce / : V^»V taková, že {u, v} E E, právě když {f(u),f(v)} £ E. Graf se nazývá asymetrický (někdy též strnulý), je-li jeho jediný automorfisrnus identické zobrazení (každý vrchol se zobrazí sám na sebe). (a) Najděte příklad asymetrického grafu (s aspoň 2 vrcholy). (b) Ukažte, že neexistuje žádný asymetrický graf G s 1 < |V(G)| < 5. 118 Kapitola 4: Grafy: úvod 4.2 Podgrafy, souvislost, metrika, matice sousednosti 119 5. Dokažte, že graf G s n vrcholy je asymetrický (viz cvičení 4), právě když na množině V(G) existuje n\ rázných grafň isomorfních G. 6. Graf G = (V, E) se nazývá vrcholově transitivní, pokud pro libovolné dva vrcholy v, v' £ V existuje automorfismus / : V'-^V grafu G (viz cvičení 4) takový, že f (v) = v'. Podobně G je hranově transitivní, pokud pro libovolné dvě hrany e,e' £ E existuje automorfismus / : V^>V takový, že /(e) = e! (označíme-li e = {u, v}, potom zápis f(e) značí množinu { f (u), f (v)}). (a) Rozhodněte, zda každý vrcholově transitivní graf je také hranově transitivní. (b) Najděte příklad grafu, který je hranově transitivní a není vrcholově transitivní. (c) * Dokažte, že graf jako v (b) je nutně bipartitní. 7. Sestrojte co nejvíce navzájem neisomorfních grafů na množině {1, 2,.... n} (předpokládejte, že n jc hodně velké číslo). Podaří se vám jich sestrojit více než n2? Aspoň 2"/10, nebo ještě podstatně více? 4.2 Podgrafy, souvislost, metrika, matice sousednosti 4.2.1 Definice. Řekněme, že graf H je podgrafem grafu G, jestliže V(H) C V (G) a E{H) C E{G). Řekneme, že graf H je indukovaným podgrafem grafu G, jestliže V{H) C V (G) a E(H) = E(G) n (VW). Tuto definici můžeme jinak vyjádřit takto: indukovaný podgraf grafu G vznikne vymazáním některých vrcholů G a všech hran vymazané vrcholy obsahujících. Pro podgraf můžeme ještě navíc vymazat některé další hrany, i když nevymažeme žádný z jejich koncových vrcholů. Na obr. 4.1 (a) je nakreslen graf, a v něm je silně vytažen podgraf isomorfní cestě p4. Tento podgraf není indukovaný (kvůli hraně {a, b}). Obrázek 4.1(b) ukazuje indukovaný podgraf (isomorfní kružnici O5); ten je ovšem zároveň podgrafem. Cesty a kružnice. Podgraf grafu G isomorfní nějaké cestě F( se nazývá cesta v grafu G (viz obr. 4.1(a)). Cestu v grafu G můžeme též Obrázek 4.1: Příklad podgrafu (a), indukovaného podgrafu (b). chápat jako posloupnost (no,ei,vi, ■ ■ ■ ,ct,vt), kde Vq,V\, ... ,vt jsou navzájem různé vrcholy grafu G, a pro každé i — 1,2,..., t je e% = {ví-i,Ví} G E(G). Obšírněji se cesta (vo, e\, v\,..., Ct, vt) nazývá cesta z vq do Vt délky t. Poznamenejme, že připouštíme t = 0, tj. cestu délky 0. Podobně podgraf grafu G isomorfní nějaké kružnici Ct (t > 3) se nazývá kružnice v grafu G (viz obr. 4.1(b)). Kružnici v grafu G můžeme též chápat jako posloupnost (v0,ei,vx,e2, ■ ■ .,et-i,vt-i,et,vo) (počáteční a koncový vrchol jsou tedy shodné), kde vq, í>i, ..., "fít-i jsou navzájem různé vrcholy grafu G, a e% = {Ví-i,Ví} e E(G) pro i = 1,2,...,t — 1, a také ct = {vt-i,vo} 6 E{G). Číslo t je délka kružnice. Souvislost, komponenty. Řekněme, že graf G je souvislý, jestliže pro každé dva jeho vrcholy x a y v něm existuje cesta z x do y. Pojem souvislosti lze definovat také jinak. Nejdříve definujme relaci ~ na množině V(G) vztahem x ~ y právě když v grafu G existuje cesta z x do y. 4.2.2 Tvrzení. Relace ~ je ekvivalence. 120 Kapitola 4: Grafy: úvod 4.2 Podgrafy, souvislost, metrika, matice sousednosti 121 Důkaz. Ověříme axiomy ekvivalence: (a) x ~ x, (b) X ~ y y ~ x, (c) x ~ y a y ~ z => x ~ z. Přitom (a) a (b) plynou bezprostředně z definice relace ~ a zbývá dokázat (c). Nechť tedy posloupnost (x = vq, c\, vis ■ ■., er, wr = y) je cesta z x do y a posloupnost (y = i>q, cf1} f[...., e'3, t/5 = z) je cesta z y do z. Nechť ť je maximální index, pro nějž v[ £ {t'o,... . vr} (to je korektní definice, protože přinejmenším v'Q G {vq, ...., w.r}). Nechť = Uj, Potom však posloupnost , e,-, u, = ví, eí [x — Vq, Ci, - . . , e», o's — i/t, t'ť+i, je hledaná cesta z x do 2, viz obrázek: □ Nechť V = V1ŮV2O... ŮVfc je rozklad množiny V na třídy ekvivalence ~. Zřejmě graf G je souvislý, právě když k = 1. Množiny Ví se nazývají komponenty grafu C Graf G je tedy sjednocením svých komponent. Na obr. (a) je příklad souvislého grafu, (a) (b) zatímco na obrázku (b) je příklad grafu nesouvislého. Rozhodnout, zda graf G je souvislý, popřípadě najít všechny jeho komponenty není obtížné. Příslušné algoritmy zde nebudeme popisovat; lze je najít v mnoha učebnicích informatiky (zpravidla jako algoritmy na prohledávání grafu, např. prohledávání do hloubky). Vzdálenost v grafu. Nechť G = {V, E) je souvislý graf. Pro vrcholy v, v' definujme číslo cLg(v,v') jako délku nejkratší cesty z v do v' v grafu G. Číslo dc{v, v') se nazývá vzdálenost vrcholů v a v' v grafu G. Funkce dG ■ V x V —» R, kterou nazýváme metrika grafu G, má následující vlastnosti 1. dG(v, v') > 0, a dc(v, v') = 0 právě když v = v'; 2. (symetrie) do (v, v') = da(v',v) pro každou dvojici vrcholů v, v'; 3. (trojúhelníková nerovnost) dG(v,v") < dG(v,v') + da{v', v") pro každou trojici v, v', v" vrcholů z V. Platnost tčehto vztahů plyne bezprostředné z definice čísla dG{v,v'). Každému zobrazení V x V do R s vlastnostmi 1-3 se říká metrika na množině V. Výše definovaná funkce do má navíc ještě následující speciální vlastnosti: 4. dG(v,v') je nezáporné celé číslo pro každou dvojici v, v'; 5. jestliže dG(v,v") > 1, potom existuje v', v v' =^ v" tak, že dG{v,v')+dG{v',v") = dG{v,v"). Podmínku 5 bychom mohli nazvat „obrácení trojúhelníkové nerovnosti" . Podmínky 1-5 již charakterizují funkce odpovídající metrice nějakého grafu G s množinou vrcholů V (viz cvičení 5). Reprezentace grafů. Kromě geometrických prostředků (kreslení grafů) se při studiu grafů používá i matic a jiných algebraických prostředků. To je důležité např. jestliže chceme zadat graf počítači. Grafy se reprezentují mnoha rozličnými způsoby. Snad nejběžnější a v jistém smyslu základní je pojem matice sousednosti grafu: 4.2.3 Definice. Nechť G — (V, E) je graf s n vrcholy. Označme vrcholy v\,...,vn (v nějakém libovolném pořadí). Matice sousednosti grafu G je čtvercová matice Ac = defínovaná předpisem pro {ví, Vj} G E jinak. 122 Kapitola 4: Grafy: úvod 4.2 Podgrafy, souvislost, metrika, matice sousednosti 123 Tedy matice sousednosti Aq je vždy symetrická čtvercová matice, jejímiž prvky jsou 0 nebo 1, přičemž na hlavní diagonále jsou 0. Každá matice s uvedenými vlastnostmi je maticí sousednosti vhodného grafu. Příklad. Pro graf G 1 je matice sousednosti / 0 1 1 1 0 0 \ 10 10 10 110 111 G ~ 10 10 0 1 ' 0 110 0 1 \ 0 0 1 1 1 o / Poznamenejme ještě, že matice sousednosti zjevně závisí na zvoleném očíslování vrcholů grafu! Mezi násobením matice sousednosti a metrikou grafu je jednoduchá souvislost. Nejdříve definujeme pojem sledu v grafu (podobný pojmu cesty): Nechť G = (V, E) je graf. Posloupnost (vq, ei, í?i, e2, ..., e„, vn) se nazývá sled v grafu G (obšírněji sled délky n z v0 do vn), jestliže platí Cj = {vi-i,v.i} 1, a že vt,Vj jsou nějaké vrcholy (dovolujeme i x>i = Vj). Každý sled délky k z Vi do v j začíná nějakou hranou jdoucí z ví do nějakého V£, a zbytek je sled délky k—l z V£ do vj. Podle indukčního předpokladu je počet sledů délky fc—1 z vg do y, roven at ■ Tím pádem je počet sledů délky k z Ví do Vj n E(fc-l) v " (fc-l) {ví,vt}EE(G) «=1 Tohle ale je, podle definice násobení matic, přesně prvek v pozici (i.j) v součinu matic A a Ak^1, neboli a\k-\ □ 4.2.6 Důsledek. Pro vzdálenost vrcholů platí dc'{vi,Vj) = min{/c; / 0}. Poznamenejme ještě, že matice sousednosti není vždy nejvhodnější způsob reprezentace grafu v paměti počítače. Obzvlášť když má graf málo hran (podstatně méně než bývá výhodnější např. pro každý vrchol zadat seznam jeho sousedů. Pro urychlení některých složitějších algoritmů se používají ještě další, složitější reprezentace. 124 Kapitola 4: Grafy: úvod 4.3 Hledání nejkratší cesty 125 Cvičení 1* Kolik nejvíce hran může mít graf s n vrcholy a k komponentami? 2. Zkuste navrhnout algoritmus, který pro zadaný graf G rozhodne, zda je souvislý, a pro nesouvislý graf najde rozklad množiny V (G) na komponenty. (Lze navrhnout algoritmus, který pro graf s n vrcholy a m hranami potřebuje 0(n + rn) kroků.) 3* Dokažte, že graf je bipartitní, právě když neobsahuje žádnou kružnici liché délky. 4. (a)* Popište, jak vypadají grafy, neobsahující žádnou cestu délky 3. (b)* Popište, jak vypadají grafy, neobsahující žádnou cestu délky 4. 5. Dokažte, že splňuje-li funkce d : V x V -> {0,1, 2,...} podmínky 1-5, potom existuje graf G = (V, E) tak, že da{"u, v') = d(v, v') pro každou dvojici prvků množiny V. 6. Definujte průměr a poloměr grafu (v analogii s intuitivním významem těchto pojmů). 7. (a) Najděte souvislý graf na n vrcholech, pro nějž každá mocnina matice sousednosti obsahuje nulové členy. (b) Buď G graf na n vrcholech, A = Aq jeho matice sousednosti, a /„ jednotková matice typu n x n (mající jedničky na diagonále a nuly všude jinde). Dokažte, že G je souvislý právě když (In + A)n~1 nemá žádné nulové členy. (c) Kde má matice (In 4 A)™-1 nulové členy, je-li G nesouvislý? 8. Dokažte, že grafy G a G' jsou isomorfní právě když existuje permutační matice P tak, že AG. -- PAGPT. Zde Aq je matice sousednosti G a PT označuje matici transponovanou k matici P. Matice P se nazývá permutační, jestliže její prvky jsou 0 a 1 a v každém řádku a sloupci je právě jediná 1. 4.3 Hledání nejkratší cesty Jednou ze základních algoritmických úloh v teorii grafů je najít nejkratší cestu mezi dvěma danými vrcholy v daném grafu. Takový požadavek vzniká v mnoha praktických aplikacích (třeba při hledání nej-kratšího dopravního spojení, vlakem nebo po silnici apod.). Dosud objevené algoritmy řešící tuto úlohu většinou počítají mnohem více, než se přímo požaduje - zpravidla naleznou nejkratší cesty z výchozího vrcholu do všech (nebo mnoha) vrcholů. Jedna z ne j jednodušších a nej důležitějších takových metod je tzv. Dijkstrův algoritmus (čte se, jakožto holandské jméno, „Dajkstrův"). Dijkstrův algoritmus předvedeme v situaci, kdy daný graf G má hrany ohodnocené kladnými reálnými čísly, to znamená, že spolu s každou hranou e G E (G) je dáno kladné reálné číslo w(e), nebo jinak řečeno, je dána funkce w : E (G) —> (0, oc). Ohodnocení w(e) hrany e si můžeme představovat jako její délku, nebo cenu, kterou musíme zaplatit za její projití, apod. Délka nějaké cesty v takto ohodnoceném grafu G je rovna součtu délek jejích hran, a vzdálenost dfj,v,{u,v) dvou vrcholů u, v G V {G) je pak rovna nejmenší z délek všech cest, spojujících u a v. „Obyčejná" grafová vzdálenost dg (definovaná v části 4.2) se dostane jako speciální případ, totiž je-li w(e) = 1 pro každou hranu e. Vstupem Dijkstrova algoritmu je graf G = (V, E), ohodnocení hran »■ : E > (0, oc) a počáteční vrchol s („start"). Algoritmus pro každý vrchol v G V (G) vypočítá číslo dc;W(s,v), tj. vzdálenost z s do v. Pro každý vrchol v G V se zavede jedna číselná proměnná d(v). To je číslo, udávající momentální „odhad" na hledanou hodnotu dc,w(s, v). V každém kroku se pro některé vrcholy v momentální hodnota d(v) prohlásí za definitivní (tj. je to skutečná vzdálenost v od s), pro ostatní vrcholy se d(v) přepočítává. Proměnná A je množina „aktivních" vrcholů, což jsou vrcholy, pro něž d(y) dosud nebylo prohlášeno za definitivní. Na začátku volíme A = V a ,f , í 0 pro v — s d(v) = i [ oo pro v/s, což odpovídá tomu, že na začátku známe cestu délky nula z ,s do s, ale zbytek grafu jsme ještě neprozkoumali. V obecném kroku algoritmu utvoříme nejdříve množinu N vrcholů, pro něž je d(v) nejmenší možné mezi všemi vrcholy v G A (množina N bude mít často jen jediný vrchol, aspoň pokud jsou ohodnocení hran např. náhodně vybraná čísla). Všechny vrcholy z N vyjmeme z A a přepočítáme hodnoty d(x) pro jejich sousedy: Pro kaž- 126 Kapitola 4: Grafy: úvod 4.3 Hledání nejkratší cesty 127 dou hranu {v, y} G E, kde v G N a y G A, porovnáme hodnoty d(y) a d(v) + w({v,y}). Je-li d(v) + w({v,y}) < d(y), znamená to, že přes vrchol t! vede do y cesta kratší, než jsme zatím znali. Změníme proto hodnotu d(y) na d(v) + w({v, y}). Po takovémto přepočítání přejdeme k dalšímu kroku algoritmu. Algoritmus končí, platí-li d(x) = oo pro všechna x e A. V takovém případě je buď A = 0 (je-li G souvislý), anebo A obsahuje pouze vrcholy nedosažitelné cestou z vrcholu s. Uvedeme ještě formální popis algoritmu: 4.3.1 Algoritmus (Dijkstruv algoritmus). Vstup: graf G = (V. E), ohodnocení hran w(e), e E E, startovní vrchol s. Proměnné: čísla d(v), v G V, číslo ô, množiny A, N C V. Výstup: po skončení algoritmu udává d(v) vzdálenost v od s, pro každé v G V. Krok 1. (Inicializace) d(s) := 0; d(x) := co pro x G V \ {s}; A := V. Krok 2. (Test ukončení) Jestliže pro všechna x G A platí d(x) = oo, algoritmus končí, jinak se pokračuje krokem 3. Krok 3. (Volba množiny N) 5 := min{d(y); y G .4} N := {v G A; d(v) = ô} A : • A \ N Krok 4. (Aktualizace d{y) pro sousedy N) Pro každou hranu e = {u, y}, kde v G AT a y G A, proved příkaz d(y) := rxún(d{y),d(v) + u?(e)). Po vyčerpání všech takových hran e pokračuj krokem 2. Poznámka. Při praktickém programování nahradíme symbol oo v inicializaci algoritmu nějakou velkou hodnotou, o které máme zaručeno, že bude větší než délka nej delší cesty v G, např. M = 1 + ^J, ?.w(e). Důkaz správnosti algoritmu. Nejprve nahlédneme (indukcí podle počtu opakování kroků 2-4 algoritmu), že v každém okamžiku činnosti algoritmu (a tedy i po jeho skončení) platí pro každý vrchol v G V nerovnost d{v)>dGtW{s,v). To je zajisté pravda na začátku, kdy 0 = do,w(s, s) a oo > daw(s,v) pro každé v G V. V okamžiku změny hodnoty d(y) pro nějaké y G V v kroku 4 ke změně dochází, protože existuje v G N takové, že d(v) + w({v. y}) dotW(s,v). Přidáním hrany {v,y} za nejkratší cestu z s do v (která má délku dG,w(s,v)) získáme cestu z s do y délky dG,w(s,v) + w({v,y}), a proto dG,w(s,y) < dG,w(s,v) + w({v,y}) < d(v) + ir({v.y}) = d(y), kde d{y) je hodnota po provedení změny. Nyní ukážeme, že po skončení činnosti algoritmu bude d(v) < dG,w(s,v) pro všechna v G V. Ukážeme dokonce silnější tvrzení: Jsou-li 0 = d] < d,2 < ■. ■ < dk < oo všechny různé konečné vzdálenosti vrcholů grafu od vrcholu s, a označíme-li Mi = {v G V; dG>w(s,v) =di} pro i. = 1,2,... ,k, pak krok 3 algoritmu se provede přesně k-krát. a pro každé i po i-tém vykonání kroku 3 platí N = Mi, S — ék a V \ A = u; , \/,. ' Toto tvrzení dokážeme indukcí podle i. Pro lepší orientaci v algoritmu přidáme ke jménům proměnných horní index ^ značící hodnotu po i-tém vykonání kroku 2. Pro i = 1 tvrzení triviálně platí. Vezměme nějaké i > 1 a y G Mi a předpokládejme, že tvrzení platí pro každé j < i. Jestliže d(;a.(s.y) = dt < oo, pak existuje cesta (a = v0, ei,vi,..., Vt, eí+i, vt+i = y) z s do y délky dk. Potom dG.w(s,vt) < d{ - w({vL,y}) < d-t, takže vt G M j pro nějaké j < i. Podle indukčního předpokladu je vt G N^) a d^{vt) = dG w(s, Vt). Proto d^+í\y) = dG,w(s, vt) + w({vt, y}) = dG,w(s,y) = cl.ř a tím spíše 128 Kapitola 4: Grafy: úvod Podle indukčního předpokladu je d^(v) = doyto(s,v) < di pro každé v G \Jf2iMj = V \ A^~l\ a podle výše ukázaného je dfi(v) >do,w(srv) >di pro každé v G \Ji [0, oo), splňující h(c) = 0 a následující podmínku: Pro každou hranu e = {u, v} G E platí \h(u) - h(v)\ < w{e). Hodnota h(v) je nějaký dolní odhad vzdálenosti v od c. V problémech dopravního spojení může být h(v) například vzdálenost mezi v a c vzdušnou čarou. Máme-li nějakou takovou funkci h, můžeme Dijkstrův algoritmus modifikovat takto: v kroku 2 položíme 5 := mm{h(x) + d(x); x G ^4}, a N := {v G A; h(v) + d(v) = 8}. Tento algoritmus zase správně najde vzdálenosti všech vrcholů od s, ale je-li h „kvalitní" (je to dobrý dolní odhad pro vzdálenosti od c), dá se čekat, že algoritmus najde definitivní vzdálenost do c. rychleji než Dijkstrův algoritmus samotný. Důkaz správnosti ponecháváme jako cvičení 6. 4.4 Skóre grafu 129 Cvičení 1. Podle algoritmu napište program ve vašem oblíbeném programovacím jazyce. 2* Navrhněte podrobně implementaci (způsob naprogramování) Dijkstrova algoritmu tak, aby pracoval vždv v čase 0(n log n + m), kde n=\V(G)\,m=\E(G)l 3. Ve kterém místě selže uvedený důkaz správnosti Dijkstrova algoritmu, připustíme-li i záporná ohodnocení hran? 4* Upravte algoritmus tak, aby nejen našel vzdálenosti dc,w{s, v), ale aby pro každé ?; též nalezl nějakou nejkratší cestu z s do v. 5. Uvažte následující algoritmus pro graf G — (V, E) a počáteční vrchol ,s (algoritmus známý pod jménem prohledávání do šířky): Položíme Vo = {s}, a bylo-li Ví již definováno, položíme Ví (i = {v eV\ (V0 U Ví U ... U Ví); existuje u G Vi, {u, v} G E}. (a) Formulujte přesně podmínku ukončení algoritmu (tak, aby fungoval i pro nesouvislý graf). (b) Dokažte, že množina K: jsou vrcholy v, pro něž do(s,v) = i. (c) Navrhněte implementaci (způsob naprogramování) algoritmu, který vyžaduje nejvýš 0(n + m) kroků, kde n = \V\, m, = \E\. 6* Dokažte správnost Dijkstrova algoritmu s heuristikou, popsaného v závěru této části. 4.4 Skóre grafu Nechť G je graf, v jeho vrchol. Symbolem degG(t>) označme počet hran grafu G obsahujících vrchol v. Číslo deg^w) nazveme stupněm vrcholu v v grafu G. Označme vrcholy grafu G vi,v^t..., vn (v nějakém libovolně zvoleném pořadí). Posloupnost (degG(«i). degG(u2),..., degG(vn)) 130 Kapitola 4: Grafy: úvod 4.4 Skóre grafu 131 Obrázek 4.2: Tři grafy se skóre (3, 3,3,3; 3,3,3,3, 3, 3). nazýváme posloupnost stupňů grafu G. nebo skóre grafu G. Dvě skóre přitom považujeme za stejná, pokud jedno můžeme dostat z druhého přerovnáním čísel (to znamená, že skóre nezávisí na zvoleném pořadí vrcholů). Je snadno vidět, že dva isomorfní grafy mají stejná, skóre (v právě zavedeném smyslu): tudíž dva grafy s různým skóre jsou nutně neisomorfní. Na druhé straně, grafy se stejným skóre ještě isomorfní být nemusí. Tak například následující dva grafy mají oba skóre (2,2,2,2,2,2), a přitom jsou zjevně neisomorfní - jeden je totiž souvislý, zatímco druhý není. Všechny tři grafy na obr. 4.2 mají skóre (3,3,3, 3,3,3,3,3,3, 3) a přitom žádné dva nejsou isomorfní (přesvědčit se o tom je trochu těžší, viz cvičení 1). Přesto skóre představuje důležitou a snadno zjistitelnou charakteristiku grafu. Budeme nyní hledat vlastnosti, které musí posloupnost čísel mít, aby byla skórem nějakého grafu. Jedna taková významná vlastnost je následující: 4.4.1 Tvrzení (Princip sudosti). Pro každý graf G — (V, E) platí Y/dcgG(v) = 2\E\. v€V Důkaz. Stupeň vrcholu v udává počet hran G obsahujících v. Přitom každá hrana obsahuje dva vrcholy; sečteme-li tedy všechny stupně, dostaneme dvojnásobek počtu hran. □ 4.4.2 Důsledek. Počet vrcholů lichého stupně je sudé číslo pro každý graf. (Neboli počet vičastníků večírku, kteří si potřásli rukou s lichým počtem jiných účastníků, je sudé číslo - pro každý konečný večírek.) Poznamenejme, že pro nekonečné večírky věta neplatí: následující graf (jednostranně nekonečná cesta) má jen jediný vrchol lichého stupně. Důsledek 4.4.2 (ani některé další snadné podmínky) na charakterizaci skóre grafu nestačí. Charakteristika skóre není zrovna jednoduchá a souvisí s problematikou tzv. toků v sítích, jež přesahuje rámec tohoto textu. Ukážeme zde však jednoduchý postup, jak o dané posloupnosti rozhodnout, zda je to skóre nějakého vhodného grafu. Základem je následující: 4.4.3 Věta (Věta o skóre). Nechť D = (di,&2,... ,dn) je posloupnost přirozených čísel. Předpokládejme, že d\ < d2 < ... < dn, a označme symbolem D' posloupnost {d\,..., ďn_x), kde , _ ( di pro i n — dn. Potom D je skóre grafu právě když D' je skóre grafu. Důkaz. Jedním směrem je tvrzení snadné. Předpokládejme, že D' je skóre grafu G' - (V',E'), kde V = {ví,... ,un_i} a degG(vi) = d[. 132 Kapitola 4: Grafy: úvod Zvolme nový vrchol vn, různý od vi, - -. ,vn i, a definujme nový graf G = (V, E), kde V = V U {vn} E = E' U {{ví, vn}; i = n — dn, n — dn + 1,..., n — 1} (méně formálně řečeno, nový vrchol vn připojíme k posledním dn vrcholům grafu C). Zřejmě skóre grafu G je právě D. Těžší je dokázat opačnou implikaci. Předpokládejme tedy, že D je skóre nějakého grafu. Uvažme množinu Q všech grafů na množině vrcholů {v\,... ,vn}, v nichž je stupeň každého m roven dj (tj. mají skóre D). Dokážeme následující Pomocné tvrzení: V množině Q existuje graf Go, v němž je vrchol vn spojen právě s vrcholy Wn-d,,, vn-dn+l, ■ ■ ■ ,vn-l (neboli s posledními dn vrcholy). Budeme-li mít graf Gq jako v pomocném tvrzení, je už jasné, že graf G' = (|>'i,..., ?;„_,}, E'), kde E' = {e € E(G0); vn 0 e}, má skóre D', a tím bude věta o skóre dokázána. Zbývá dokázat pomocné tvrzení. Pokud dn = n — 1, tj. pokud vrchol vn je spojen s každj'm z vrcholil t'i,..., vn-\, vyhovuje pomocnému tvrzení kterýkoli graf z Q a. jsme hotovi. Jinak, tj. pokud vn není spojen se všemi ostatními vrcholy, definujme pro každý graf G G Q číslo j {G), což bude největší index j G {1, 2,... , n — 1} takový, že / „ } 0 E (G). Buď Go graf, pro nějž je j(G) nejmenší možné; dokážeme, že J(Gq) = n — dn — 1, z čehož je už patrné, že G*o vyhovuje pomocnému tvrzení. Předpokládejme tedy pro spor, že j = j(Go) > n — dn ~ 1. Vrchol vn musí být spojen s dn vrcholy, a z nich nejvýš dn — 1 může následovat po vrcholu Vj. Proto existuje nějaké i < j takové, že %\ je spojen s vrcholem vn. Máme tedy {vj,vn} E(Gq), {vi,vn } G E(Gq). Vzhledem k tomu, že degGo(u.í) < deg^0(vj), existuje nějaký vrchol Vk, který je spojený hranou s v j. ale nikoli s Uj. V této situaci uvážíme nový graf G' = (V(Gt)),E'),kde E' = (E(G0) \ {{Vi,vn}, {v:rvk}}) U {{Vj,vn}, {Vi,vk}}. 4.4 Skóre grafu 133 Viz obrázek: Vi V2 Vk Ví Vj Vn Je snadno vidět, že graf G' má rovněž skóre D. a přitom j(G') < J(Gq) — 1, což je spor s volbou grafu Go. Tím je dokázáno pomocné tvrzení, a tudíž i věta 4.4.3. □ Z věty 4.4.3 lze odvodit algoritmus, který umožňuje rychle rozhodnout, jestli je daná konečná posloupnost skórem nějakého grafu. 4.4.4 Úloha. Rozhodněte, zda posloupnost (1, 1, 1, 2, 2, 3, 4, 5, 5) je skóre grafu. Řešení. Danou posloupnost redukujeme opakovaným použitím věty 4.4.3. Dostáváme tak posloupnosti (1,1,1,1,1,2,3,4) (1,1,1,0,0,1,2), po přerovnání (0,0,1,1,1,1,2) (0,0,1,1,0, 0), po přerovnání (0, 0,0,0,1,1) (0,0,0,0,0). Protože poslední posloupnost je skóre grafu (grafu s 5 vrcholy a žádnou hranou), dostáváme, že i posloupnost (1,1,1,2,2,3,4,5,5) je skóre grafu. Sestrojte sami příklad takového grafu! Cvičení 1. Dokažte, že tři grafy na druhém obrázku této sekce jsou navzájem neisomorfní. 2. Sestrojte příklad posloupnosti délky n, jejíž každý člen je některé z čísel 1,..., n — 1 a která má sudý počet lichých členů, a přesto není skórem žádného grafu. 134 Kapitola 4: Grafy: úvod 4.5 Jednotažky - eulerovské grafy 135 3. Najděte nejmenší možný příklad (s co nejméně vrcholy) dvou souvislých neisomorfních grafů se stejným skórem. 4. Nakreslete všechny navzájem neisomorfní grafy se skórem (6, 3, 3, 3, 3, 3, 3) (ukažte, že jste žádný nevynechali!). 5. Uveďte co nejmenší příklad grafu s 6 vrcholy stupně 3, ostatními vrcholy stupně < 2, as 12 hranami. 6. Buď G graf s 9 vrcholy, každý stupně 5 nebo 6. Dokažte, že má aspoň 5 vrcholů stupně 6 nebo aspoň 6 vrcholů stupně 5. 7. (a) Rozhodněte, zda existuje graf se skórem tvořeným n > 2 navzájem různými čísly. (b)* Pro která n existuje graf na n vrcholech, jehož skóre má všechna čísla navzájem různá až na 2? 8* Nechť G je graf s maximálním stupněm 3. Dokažte, že jeho vrcholy lze obarvit dvěma barvami tak, že nevznikne jednobarevná cesta se 3 vrcholy. 9. ** Nechť G je graf, jehož všechny vrcholy mají stupeň aspoň 3. Dokažte, že potom G obsahuje kružnici, která není indukovaným podgrafem (tj., má „diagonálu"). 10. Graf G se nazývá k-regulární (česky fc-pravidelný), jsou-li stupně všech jeho vrcholů přesně k. Určete všechny dvojice (k, n) takové, že existuje fc-regulární graf na n vrcholech. 11. Nakreslete všechny 3-regulární grafy na 6 vrcholech. 12. Najděte 3-regulární asymetrický graf (viz cvičení 4 v části 4.1). 13* Nechť G je souvislý graf, v němž mají každé dva různé vrcholy u, v buď 0 nebo 5 společných sousedů. Dokažte, že G je fc-regulární (pro nějaké k). 14.** Dokažte, že v každém grafu se sudým počtem vrcholů existují dva vrcholy, které mají sudý počet společných sousedil. 15. Nechť G je graf s n vrcholy, jehož každý vrchol má stupeň větší než ^. (a) Dokažte, že G obsahuje aspoň 1 trojúhelník (cyklus délky 3). (b) * Dokažte, že existuje hrana {x, y} obsažená aspoň v n/6 trojúhelnících (tj. existuje aspoň n/6 vrcholů spojených jak s x tak s y). Použijte principu inkluze a exkluze. 4.5 Jednotažky - eulerovské grafy Jednou zc základních (a nejstarších) úloh týkající se grafů je následující otázka: Nakreslete daný graf G = (V, E) jedním uzavřeným tahem, bez zvednutí tužky z papíru (přičemž žádná hrana se neobtahuje dvakrát). Matematicky lze úlohu formalizovat takto: Najděte uzavřený sled (vq, ei, vi,..., em-i, vm-i, Rm, vq), v němž se každá hrana vyskytuje právě jednou a každý vrchol aspoň jednou. Takový sled budeme nazývat uzavřeným eulerovským tahem. Graf je eulerovský právě když má aspoň jeden uzavřený eulerovský tah. Následující obrázek ukazuje příklad kreslení grafu jedním tahem: Podáme nyní charakteristiku eulerovských grafů. Pro stručnost definujeme tah v grafu G jako sled, v němž se žádná hrana neopakuje (vrcholy se opakovat mohou). 4.5.1 Věta (Charakterizace eulerovských grafů). Graf G je eulerovský právě když je souvislý a každý vrchol G má sudý stupeň. První důkaz. Uvedená podmínka je nutná. Eulerovský graf musí zjevně být souvislý. Stupně vrcholů jsou sudé, protože kdykoli eulerovský tah vstoupí do vrcholu, musí jej také zase opustit. Řekněme to přesněji. Nakresleme si nějaký eulerovský tah schématicky jako kružnici: 136 Kapitola 4: Grafy: úvod 4.5 Jednotažky - eulerovské grafy 137 V tomto obrázku jsou všechny hrany 61,62,... navzájem různé, ale některé z puntíků vq,Vx, ... mohou ve skutečnosti označovat týž vrchol. Podívejme se na nějaký vrchol v £ V, a vyznačme všechny jeho výskyty na předchozím obrázku. Například: Stupeň v je roven počtu hran zasahujících do vyznačených puntíků na tomto obrázku. Každý vyznačený puntík přispěje dvěma, hranami, a žádná hrana nemá oba konce vyznačené (protože vyznačené puntíky odpovídají všechny stejnému vrcholu zatímco hrana má dva různé konce). Proto degG(t>) je sudé pro každý vrchol v. Naopak, nechť souvislý graf G má všechny vrcholy sudého stupně. Uvažme v G tah T = (vq, ei, t'i, ..., em, vm), který má maximální možnou délku, m. Nejdříve dokážeme, že vq = vm. Kdyby ne, potom do vrcholu vq zasahuje lichý počet hran tahu T. Protože ale degG(t»o) je sudý, existuje nějaká hrana e G E, která není v T obsažena, a o tuto hranu bychom mohli tah prodloužit - spor. Předpokládejme tedy vq = vm a dokazujme {ei,e. ... ,em} = E. Definujme pomocný graf G' = (V, /',"), kde V je množina všech vrcholů tahu T a i?' je množina všech jeho hran. Nejdříve předpokládejme V1 7^ V. Díky souvislosti grafu G existuje hrana tvaru e = {uk,vf} G E, kde vk € V a v' £ V'. V tomto případě tah (v',e,vk,ek+l,vk+i,... ,vm-\,em,Vo,ei,vu .. -,ek,vk) má délku m + 1 a vede tedy ke sporu, viz obrázek: v' f ^ v' Jestliže V' — V a E' ^ E, uvažme hranu e = {vk.v^} € E \ E'. Podobně jako v předchozím případě vede tah (vk,ek+l,vk+i, ■■■■ Vm-\;dm,vo, ei, «i, • ■ • , ek,vk, e, ve) ke sporu: Druhý důkaz. Budeme dokazovat jen to, že každý souvislý graf se všemi stupni sudými má eulerovský tah (obrácená implikace je snadná a stačí nárn pro ni jeden důkaz). Prvním krokem je 4.5.2 Lemma. Má-li graf G = (V. E) všechny stupně sudé, potom množinu hran E lze rozložit na disjunktní podmnožiny E\, E%,..., Ek takové, že každá E{ je množinou hran kružnice. Důkaz lemmatu. Postupujeme indukcí podle \E\, pro E = 0 lemma platí. V indukčním kroku stačí ukázat, že G obsahuje aspoň jednu kružnici. Označíme-li totiž její množinu hran E\, potom graf (V, E\E\) má opět všechny stupně sudé, a podle indukčního předpokladu lze jeho množinu hran rozložit na kružnice. Hledejme tedy kružnici v G za předpokladu E ^ 0. Budeme konstruovat cestu v G. Zvolíme libovolný vrchol vq, z něhož vychází aspoň jedna hrana e\ = {fo, v\}, a vezmeme (vq, e,\, v\) jako počáteční cestu. Když už jsme zkonstruovali cestu (vq, ei, • • •, t'í-i, Cí,Ví), podíváme se, jestli v i sousedí s některým z vrcholů Vj, 0 < j < i — 2. Pokud ano, hrana {t>é,Uj-} spolu s úsekem vybudované cesty mezi v j a Wj tvoří hledanou kružnici. Pokud i?j nesousedí s žádným Vj, 0 < j < i — 2, potom můžeme cestu prodloužit o další hranu ct+\ = {vj.Ví+\}, poněvadž Vi-t není jediným sousedem vrcholu Ví (jinak by v i měl stupeň 1, což není sudé číslo). 138 Kapitola 4: Grafy: úvod 4.5 Jednotažky eulerovské grafy 139 V konečném grafu nemůže cesta pokračovat clo nekonečna, takže popsaný postup dříve či později najde kružnici. □ Dokončíme teď druhý důkaz věty 4.5.1. Máme dán souvislý graf G = (V. E) se sudými stupni. Rozložíme E na disjunktní množiny E\, E-z: ■ ■ ■ ■ E}, hran kružnic jako v právě dokázaném lemmatu. Nyní tyto kružnice postupně propojíme do eulerovského tahu. Přesněji, dokážeme toto: Bud'G = (V, E) souvislý graf, a nechť E je disjunktním sjednocením množin E\,Ei, ■ ■ ■ ,E(, £ > 1, kde každou Ei lze projít jedním uzavřeným tahem. Potom existuje index i ^ 1 takový, že také Ei U E i lze projít jedním uzavřeným tahem. Opakovaným použitím tohoto tvrzení se dá z počátečních k kružnic vyrobit eulerovský tah. Abychom to tvrzení dokázali, označme Ví množinu všech vrcholů, které jsou obsaženy v aspoň jedné hraně z Ei. Stačí nahlédnout, že existuje i ^ 1 tak, že V\ fl Ví ^ 0 (pak můžeme uzavřené tahy Ei a, Ei za společný vrchol slepit do jediného uzavřeného tahu, viz obrázek). Předpokládejme tedy opak: ViD^UVsli- ■ -UÍ4) = 0. To ale znamená, že mezi V] a V% U V3 U ■ ■ ■ U Vjt nejde žádná hrana (připomeňme, že každá hrana patří do nějakého Ej), a G tedy není souvislý spor. □ Poznámka o hamiltonovských kružnicích. Hamiltonovská kružnice v grafu G je kružnice obsahující všechny vrcholy G. Tento pojem je na první pohled podobný uzavřenému culerovskému tahu: hamiltonovská kružnice má procházet bez opakování všechny vrcholy, a uzavřený eulerovský tah všechny hrany. Přesto je matematická a algoritmická obtížnost obou pojmů úplně rozdílná. Zatímco uzavřené eulerovské tahy jsou snadno zvládnutelné, problém existence hamilto-novské kružnice je matematicky i algoritmicky obtížný a žádnou jednoduchou charakterizaci grafů s hamiltonovskou kružnicí nelze čekat. Některé úvahy o hamiltonovských kružnicích si může čtenář zkusit ve cvičení 5. Poznámka o násobných hranách. Zatím jsme definovali hrany grafu jako dvoubodové množiny vrcholů (a této definice se budeme zpravidla držet i nadále). To mimo jiné znamená, že dva dané vrcholy mohou být spojeny nejvýš jednou hranou. V některých aplikacích je však přirozené připustit, aby dva vrcholy mohly být spojeny i několika (různými) hranami; dostáváme tak grafy s násobnými hranami (zvané též multigrafy). Matematicky lze tento pojem vystihnout několika různými (a různě šikovnými) způsoby. Mohli bychom například každé dvojici vrcholů {u, v} přiřadit nezáporné celé číslo m(u, v), násobnost hrany {u,v}. Přitom m(u,v) = 0 by znamenalo, že hrana v grafu není přítomna, m(u, v) = 1 by znamenalo „obyčejnou" (jednoduchou) hranu, a m(u, v) > 1 by znamenalo, že graf obsahuje m(u,v) „kopií" hrany {u,v}. Multigraf by pak byl uspořádaná dvojice (V,m), kde m: Q -> {0,1,...}. Jiný používaný způsob, z jistého hlediska elegantnější, je prohlásit hrany za „abstraktní" objekty, tj. vzít E jako nějakou konečnou množinu disjunktní s množinou vrcholů V, a potom pro každou hranu určit dvojici vrcholů, které jsou jejími „konci" (a jedna dvojice vrcholů se může vyskytnout pro více hran). Formálne, graf s násobnými hranami by byl trojice (V,E, e), kde V a E jsou disjunktní množiny a e : E —> (^) je zobrazení, určující konce hran. Nčkdy je také výhodné v grafu připouštět smyčky, tj. hrany začínající a končící v temže vrcholu. Formálně je opět možné smyčky zavést řadou způsobů. Nejjednodušeji můžeme smyčku u vrcholu v v množině hran E reprezentovat jako jednoprvkovou množinu {v} (zatímco ostatní hrany jsou dvouprvkové). Při zavedení násobných hran pomocí zobrazení e by se smyčky zavedly tím, že e bude zobrazení do množiny (2) Uľ, a smyčka e se zobrazí na svůj (jediný) koncový vrchol. O ještě další modifikaci pojmu grafu (orientované grafy) budeme mluvit v části 4.6. 140 Kapitola 4: Grafy: úvod 4.5 Jednotažky - eulerovské grafy 141 U většiny jednodušších aplikací není způsob formálního zavedení grafů s násobnými hranami příliš důležitý, pokud ovšem zvolíme jeden způsob a nadále se jej konzistentně držíme, a pokud to není způsob zbytečně neohrabaný. Cvičení 1. Na následujícím plánku města je schématicky znázorněno 7 mostů. ílllllií ilIilIIHj ■- T\ lllllli|-'lil'iil::iiiirif ----.- V u -h ~~ u ...../ \\ ttgKx w » w^mim í*pfr^ctTi7% rirtíf 1 i. SI íf ft 1: Jílí '¥ í: (a) Rozhodněte, zda je možno vyjít z určitého místa, projít všechny mosty, každý z nich však pouze jedenkrát, a vrátit se do výchozího místa. Je možno projít tímto způsobem všechny mosty, aniž bychom požadovali návrat do výchozího místa? (Toto je historická motivace pojmu culerovských grafů: plánek odpovídá části města Královce, Kônigsbergu, či Kaliningradu - jak rňzně se ve své pohnuté historii nazývalo - a tuto úlohu řešil Euler roku 1736.) (b) Kolik mostů by bylo třeba přistavět (a kde), aby úloha měla kladné řešení? 2. Nakreslete jedním tahem následující grafy 3. Charakterizujte grafy, které lze nakreslit jedním tahem, jenž nemusí být nutně uzavřený. 4. (a) Na základě prvního důkazu věty 4.5.1 formulujte algoritmus pro nalezení uzavřeného eulerovského tahu. (b) Podobně pro druhý důkaz. *Pro který z algoritmů se vám podaří ukázat lepší časovou složitost? 5. (Hamiltonovské kružnice) (a) Najděte hamiltonovskou kružnici grafu (to je abstraktní verze hlavolamu, vynalezeného významným matematikem sirem Hamiltonem). Které další z grafů na obr. 6.1 (str. 216) mají hamiltonovskou kružnici? (b) Pokuste se ukázat, že Petersenův graf hamiltonovskou kružnici nemá. (c) Najděte dva grafy s týmž skóre, z nichž jeden má hamiltonovskou kružnici a drahý ne. 6. Řekněme, že graf G = (V, E) je náhodně, eulerovský z vrcholu Uq jestliže každý maximální tah z vrcholu vq představuje již nakreslení grafu G jedním tahem (ekvivalentně: jestliže libovolný tah počínající ve vrcholu vq, který již nelze prodloužit, představuje nakreslení grafu G jedním tahem). (a) Dokažte, že následující grafy jsou náhodně eulerovské: 142 Kapitola 4: Grafy: úvod 4.6 Eulerovské orientované grafy 143 (b) Dokazte, že následující grafy nejsou náhodne eulerovské: (c)* Dokážte následující charakteristiku náhodně eulerovských grafů: Souvislý graf G = (V, E), jehož všechny vrcholy mají sudý stupeň, je náhodne eulerovský z vrcholu vq, právě když graf (V \ {vo}, {e £ E; v0 £ c}) neobsahuje kružnici (tj., každá komponenta tohoto grafu je strom; takové grafy se také nazývají lesy). 4.6 Eulerovské orientované grafy Všechny grafy, které jsme dosud uvažovali, byly „neorientované" -jejich hrany byly neuspořádané dvojice. Čtenář se však zajisté setkal se schématy zahrnujícími jednosměrné ulice a schématy podobnými těm na obrázku: 4.6.1 Definice. Orientovaný graf G je dvojice (V,E) kde E je podmnožina kartézského součinu V x V. Prvky E nazýváme šipky (nebo orientované hrany). Tedy šipka e má tvar (x. y). Říkáme, že tato šipka vychází z x a končí v y. Mnoho úloh a pojmů, které se v tomto textu vyšetřují, je možno snadno modifikovat pro orientované grafy, často však tato obecnější tvrzení jsou snadným zobecněním a přitom značení a postup by se zkomplikovaly. Proto jsme se rozhodli uvažovat ve většině textu pouze neorientované grafy. Učiňme na tomto místě výjimku a zaveďme eulerovské orientované grafy a popišme jednu jejich aplikaci. Pozorný čtenář si možná všiml, že orientovaný graf G = (V, E) jc vlastně totéž co relace ua množině V. Přesto se zavádějí oba tyto pojmy, protože orientované grafy se vyšetřují v jiných souvislostech než relace. Nyní je přirozené definovat orientovaný tah jako posloupnost i'a-' 2- • • • ,em,vm) pro niž platí, že e* = (ví-i-Ví) € E pro každé i = 1,2,... ,m a navíc e.i e.j kdykoliv i ^ j. (Podobně definujeme pojmy orientovaný sled, orientovaná cesta, orientovaná kružnice - orientované kružnice je zvykem nazývat cykly.) Řekněme, že orientovaný graf (V. E) je eulerovský, jestliže v něm existuje uzavřený orientovaný tah, který obsahuje každou hranu právě jednou a každý vrchol aspoň jednou. 144 Kapitola 4: Grafy: úvod 4.6 Eulerovské orientované grafy 145 Orientovane eulerovské grafy lze opět charakterizovat velmi dobře. Před příslušnou včtou je však třeba zavést ještě několik pojmů. Pro daný vrchol v v orientovaném grafu G — (V, E) označme degg(t;) počet šipek G, které končí ve v. Podobně deg^,(?;) označuje počet šipek G, které začínají ve v. Číslo deg^(v) se nazývá vstupní stupeň vrcholu v a deg^(v) se nazývá výstupní stupeň vrcholu v. Orientovaný graf G = (V. E) nazýváme vyvážený, jestliže pro každý vrchol v e V platí degj(u) = deg^v). Každému orientovanému grafu G = (V, E) lze přiřadit neorientovaný graf sym (G) = (V, Ě), kde E = {{x, y}; (x, y) E E nebo (y, x) G E}. Graf sym (G) se nazývá symetrizace grafu G. Platí následující charakteristika eulerovských grafů: 4.6.2 Tvrzení. Orientovaný graf je eulerovský právě když je vyvážený a jeho symetrizace je souvislý graf3. Důkaz tohoto tvrzení je velice podobný důkazu věty 4.5.1, a proto jej ponecháváme jako cvičení. Aplikace. Představme si, že máme na obvod kotouče rozmístit čísla 0 a 1 takovým způsobem, že v každé poloze kotouče zjistíme tuto polohu jednoznačně z k po sobě jdoucích cifer, které pozorujeme na určitém místě. Při danem k bychom chtěli navrhnout co největší kotouč. 3Orientovaný graf se souvislou symetrizací se nazývá slabě souvislý. Naproti tomu v silně souvislém orientovaném grafu lze každé dva vrcholy spojit orientovanou cestou (v obou směrech). Jiná formulace problému je následující: Nalezněte co nejdelší cyklické uspořádání čísel 0 a 1, tak, aby žádné dvě k-tice po sobě jdoucích cifer nebyly stejné (zde cyklickým uspořádáním myslíme rozestavení čísel na obvodu kruhu). Pro dané k označme délku nejdelšího možného cyklického uspořádání symbolem u(k). Dokážeme následující překvapivé 4.6.3 Tvrzení. Pro každé k > 1 platí u(k) = 2k. Důkaz. Protože různých posloupností číse 1 0 a 1 délky k je 2k, délka uspořádání nemůže být větší než 2k. Zbývá sestrojit cyklické uspořádání délky 2k s požadovanou vlastností. Definujeme orientovaný graf G = (V, E) následovně: • V je množina všech posloupností 0 a 1 délky k — 1 (tedy \V\ = 2k~1). • Množina šipek je tvořena množinou všech dvojic tvaru ((ai,... ,ofc-i); («2, • ■ •,%•))• Šipky tedy odpovídají posloupnostem tvaru (ai,... ,ak), a proto \E\ = 2k. Pro zkrácení budeme rovněž šipku ((ai,..., afc_i), (02,..., £%)) označovat symbolem (04,... , a^). Nemůže dojít k mýlce. Zřejmě deg^(t>) = deg^(i') = 2 pro každý vrchol v G V. Graf sym (G) je rovněž souvislý, neb postupným vynecháváním posledních členů posloupnosti a přidáváním 0 na prvé místo lze každou posloupnost převést na posloupnost (0,0,... , 0). Tedy G je eulerovský graf. Položme \E\ = 2k = K, a nechť (e1,... ,e ) je posloupnost hran v nějakém eulerovském tahu v G. Každá hrana el je tvaru 146 Kapitola 4: Grafy: úvod 4.7 2-souvislost 147 é - (a\,... ,al). Požadované cyklické uspořádání K číslic 0 a 1 de- r- - -i / 1 O Er"* finujeme jako (aj, af, af) (Lj., vzali jsme první prvek z každé posloupnosti e'). Vzhledem k volbě vrcholů a hran sc každá, posloupnost délky k vyskytuje v cyklickém uspořádání (a\, af, ..., af), a to □ právě jednou. To dokazuje, že u(k) = 2ř Eulerovské orientované grafy, sestrojené v tomto důkaze, se nazývají De Bruijnovy grafy. Pro k = 2 dostaneme takovouto situaci tah: 00,01,11,10 cyklická posloupnost: 0011 a pro k — 3 tuto: 000 tah: 000,001,011,111,110,101,010,100 cyklická posloupnost: 00011101. Cvičení 1. Dokažte tvrzení 4.6.2. 2. Navrhněte algoritmus pro nakreslení orientovaného grafu jedním tahem. 3. Kdy lze nakreslit orientovaný graf jedním tahem, který nemusí být nutně uzavřený? 4. Je-li G = (V, E) graf, orientace G je každý orientovaný graf G' = iV.E'), který vznikne nahrazením každé hrany {u,v} e E buď šipkou [u, v), nebo šipkou (v, u). (a) Dokažte, že má-li graf G všechny stupně sudé, potom existuje jeho vyvážená orientace. (b) Dokažte, že vyvážený orientovaný graf je slabě souvislý, právě když je silně souvislý. 5* Buď G = (V, E) orientovaný graf, w : E —» R nějaké ohodnocení hran reálnými čísly. Funkci p : V —»■ R nazveme potenciálem pro w, pokud pro každou šipku e = (u, v) platí w(e) — p(v) — p(u). Dokažte, že potenciál pro w existuje právě když součet hodnot w přes hrany každého orientovaného cyklu v G je 0. 6* Dokažte, že následující 2 podmínky pro silně souvislý orientovaný graf G jsou ekvivalentní: (i) G obsahuje orientovaný cyklus sudé délky. (ii) Vrcholy G lze obarvit dvěma barvami tak, že z každého vrcholu vychází šipka do vrcholu opačné barvy. 4.7 2-souvislost Graf G nazveme vrcholově k-souvislý, má-li aspoň k + 1 vrcholů, a odebráním libovolných nejvýše k — 1 vrcholů vždy dostaneme souvislý graf. Graf G nazveme hranově k-souvislý, pokud po odebrání libovolných nejvýš k — 1 hran zůstane souvislý. Je-li nějaký graf schématem např. spojů městské dopravy, železniční sítě, elektrického rozvodu a podobně, dává jeho vyšší souvislost naději na rozumné fungování příslušné sítě i za krizových podmínek, kdy jedna nebo několik křižovatek či spojnic selže. Pojem fc-souvislosti je v teorii grafů teoreticky i prakticky velmi důležitý a souvisí s problematikou tzv. 148 Kapitola 4: Grafy: úvod 4.7 2-souvislost 149 toků v sítích, jíž se v tomto textu zabývat nebudeme. Zde se omezíme na vrcholovou 2-souvislost, již budeme potřebovat v kapitole o rovinných grafech a která nám rovněž poslouží pro ilustraci některých důkazových postupů a konstrukcí. Vrcholové 2-souvislosti budeme říkat krátce 2-souvislost. Zopakujme tedy ještě pro jistotu definici: 4.7.1 Definice (2-souvislost). Graf G nazveme 2-souvislým, má-li aspoň 3 vrcholy, a vynecháním jeho libovolného vrcholu vznikne souvislý graf. Je snadné nahlédnout, že každý 2-souvislý graf je také souvislý (tady se ovšem potřebuje předpoklad, že 2-souvislý graf má aspoň 3 vrcholy - doporučujeme čtenáři rozvážit si to). V tomto článku uvedeme alternativní popisy 2-souvislých grafů. Než začneme, zavedeme označení pro několik grafových operací, které zjednoduší zápis a budou se hodit i v budoucnu. 4.7.2 Definice (Některé grafové operace). Nechť G = (V, E) je graf. Defínujeme • (odebrání hrany) (■■ < n'./:,M). kde e G E je hrana grafu G, • (přidání nové hrany) G + e' = (Pu{c'}); kde e' G Q \ E je dvojice vrcholů, která není hranou, • (odebrání vrcholu) G-v = (V\{v}t{eeE]vČe}), kde v G V (odebereme vrchol v a všechny hrany do něj zasahující), G + e Obrázek 4.3: Příklady grafových operací. (dělení hrany) G%e = ( V U {z}, (E \ {{x, y}}) U {{x, z}, {z, y}} ), kde {x, y} G E je hrana, azgV je nový vrchol (na hranu {x, y} „přikreslíme" nový vrchol z). Řekneme, že graf G' je dělení grafu G, pokud G' je isomorfní grafu vytvořenému z grafu G postupným opakováním operace dělení hrany. Příklady právě zavedených operací jsou na obr. 4.3. Vraťme se nyní ke 2-souvislosti. První význačná ekvivalentní charakterizace je následující: 4.7.3 Věta. Graf G je 2-souvislý, právě když pro každé dva jeho vrcholy existuje kružnice v grafu G, která je obsahuje (tj., G je 2-souvislý, právě když každé dva vrcholy leží na společné kružnici). Důkaz. Uvedená podmínka je zřejmě postačující, neboť leží-li dva vrcholy v, v' na společné kružnici, potom mezi nimi existují dvě cesty, 150 Kapitola 4: Grafy: úvod 4.7 2-souvislost 151 které nemají žádné společné vrcholy mimo koncové, a tedy odebráním jednoho vrcholu se v a v' nemohou nikdy octnout v různých komponentách. Dokážeme nyní obrácenou implikaci. Existenci společné kružnice pro vrcholy v, v' ukážeme indukcí podle (Ig(v,v'), vzdálenosti vrcholů v a v'. Nejdříve nechť da(v, v') = 1, to znamená, že {v,v'} = e € E (G). Díky 2-souvislosti G je graf G — e také souvislý (kdyby byl G — e nesouvislý, byl by aspoň jeden z grafů G — v, G — v' také nesouvislý). Proto existuje v grafu G — e cesta z v do v', a ta spolu s hranou e tvoří kružnici obsahující v i v'. Předpokládejme nyní pro nějaké k > 2, že každá dvojice vrcholů ve vzdálenosti menší než k leží na společné kružnici, a uvažme dva vrcholy v,v' 6 V ve vzdálenosti k. Nechť P = (v = WQ,ei,Di,..., e.fc,Vh = v') je cesta nejkratší délky z v do v'. Poněvadž dcj{v,Vk-i) = k — 1, existuje kružnice obsahující v i Vk-i- Tato kružnice je tvořena dvěma cestami, P\ & P%, z v do Vk-i- Uvažme nyní graf G — Ten je souvislý, a tedy v něm existuje cesta P z vrcholu v do vrcholu v1. Tato cesta tedy neobsahuje vrchol Ufc-i- Uvažme poslední vrchol na cestě P (směrem od vrcholu v) náležející některé z cest Pi,P%, a označme jej w. viz obrázek: Předpokládejme (bez újmy na obecnosti), že w je vrcholem cesty P\. Potom hledaná kružnice obsahující vrcholy v a v' bude tvořena cestou Pz, úsekem cesty Py mezi v a w, a úsekem cesty P mezi w a v' (na obrázku vyznačena silně). □ 4.7.4 Tvrzení. Graf G je 2-souvislý, právě když libovolné jeho dělení je 2-souvislé. Obrázek 4.4: Příklad syntézy 2-souvislčho grafu. Důkaz. Stačí dokázat, že G je 2-souvislý, právě když G%e je 2-souvislý (pro libovolnou hranu e G E (G)). Je-li v G V{G) libovolný vrchol grafu G, je snadno vidět, že G — v je souvislý právě když (G%e) — v je souvislý. Dále využijeme jednoduchého pozorování, zmíněného v předchozím důkazu: (vrcholově) 2-souvislý graf zůstane souvislý i po odebrání libovolné hrany. Přitom je-li z nově přidaný vrchol v grafu G%e, je (G%e) — z souvislý právě když G — e je souvislý. Proto je 2-souvislost G a G%e ekvivalentní. □ Následující charakterizace 2-souvislých grafů je obzvlášť výhodná pro důkazy. Ukážeme totiž, jak lze 2-souvislé grafy konstruovat z grafů jednodušších. 4.7.5 Věta (Syntéza 2-souvislých grafů). Graf G je 2-souvislý, právě když jej lze vytvořit z trojúhelníku (tj. z K3) posloupností dělení hran a přidávání hran (viz obr. 4.4). Důkaz. Každý graf, který lze vytvořit z Ks uvedenými operacemi, je zřejmě 2-souvislý. Chceme tedy ukázat, že můžeme vyrobit libovolný 2-souvislý graf. 152 Kapitola 4: Grafy: úvod 4.7 2-souvislost 153 Obrázek 4.5: Konstrukce 2-souvislého grafu přilepováním uší. Budeme ve skutečnosti dokazovat možnost trochu jiného vytvoření. Začneme s nějakou kružnicí Gq, a byl-li již vytvořen graf Gj_i, graf G-i vznikne přidáním nějaké cesty Pí spojující dva vrcholy grafu Gj_i; přitom cesta Pí má s G^-i společné pouze své koncové vrcholy (tedy žádné hrany ani žádné vnitřní vrcholy). Ke grafu tedy postupně „přilepujeme uši", viz obr 4.5. Protože přidávání cesty lze zaměnit přidáním hrany a jejím opakovaným dělením4, stačí zřejmě ukázat, že každý 2-souvislý graf G můžeme dostat opakovaným přidáváním uší. Zvolme kružnici Go v grafu G libovolně. Předpokládejme, že jsme již definovali grafy G j = (Ej, V j) pro j < i s vlastnostmi jako výše. Pokud Gí = G, jsme hotovi; předpokládejme tedy, že E{ ^ E(G). Protože G je souvislý, existuje hrana e € E(G)\Ej, taková, že eDUj ^ 0. Jestliže dokonce oba vrcholy hrany e náleží Ví, položme Gj+i = G?; + e. V opačném případě nechť e = {v, v'}, kde v £ Ví, v' 0 Ví. Uvažme nyní graf G — v. Ten je souvislý (neb G je 2-souvislý), takže existuje cesta P spojující vrchol v' s nějakým vrcholem v" G Ví, přičemž v" je jediný vrchol cesty P náležející V{ (pro to stačí vzít např. nejkratší 4Musí se dát malinko pozor: jsou-li v,v' G V(Gí-i) již spojeny hranou a spojujeme-li je novou cestou, nemůžeme začít přidáním hrany {v, v'} (aspoň nepřipouštíme-li násobné hrany). Musíme nejdříve hranu {v, v'} podrozdělit, potom znova přidat hranu {v, v'} a pak případně pokračovat v prodlužování cesty dělením. cestu mezi v' a V, v grafu G — v). Pak můžeme definovat graf Gl+\ přidáním hrany e a cesty P ke grafu Gí, tj. VS+i - V, U V (P), El+l = Ei U {e} U E(P). Viz obrázek: IJ Cvičení 1. Dokažte, že pro každé dvě hrany 2-souvislého grafu existuje kružnice, která je obsahuje. 2. Buď G kritický 2-souvislý graf, to znamená, že G je 2-souvislý, ale žádný z grafů tvaru G — e pro e e E(G) není 2-souvislý. (a) Dokažte, že aspoň jeden vrchol G má stupeň 2. (b) Pro každé n uveďte příklad kritického 2-souvislého grafu s vrcholem stupně aspoň n. (c) * Pro každé n uveďte příklad kritického 2-souvislého grafu s vrcholem stupně aspoň n, jenž je od všech vrcholů stupně 2 vzdálen aspoň n. 3. (a)* Je pravda, že libovolný kritický 2-souvislý graf (viz cvičení 2) lze dostat 7. nějaké kružnice postupným přilepováním „uší" (cest připojených za koncové vrcholy) délky aspoň 2? (b)* Je pravda, že libovolný kritický 2-souvislý graf lze dostat z nějaké kružnice postupným přilepováním „uší" tak, aby všechny mezistupně (po přilepení několika prvních uší) byly kritické 2-souvislé grafy? 4* Dokažte, že každý 2-souvislý graf má silně souvislou orientaci (pojmy viz část 4.6). 154 Kapitola, 4: Grafy: úvod 4.8 Grafy bez trojúhelníků: extremální úloha poprvé 155 4.8 Grafy bez trojúhelníků: extremální úloha poprvé Nechť graf G má n vrcholů. Co můžeme tvrdil, o jeho počtu hran? To je snadná otázka a odpověď již známe: počet, hran může být libovolné přirozené číslo mezi 0 a (fj). Maximální („extremální") počet hran grafu s n vrcholy je tedy (o) a jediný graf s tímto počtem hran je isomorfní úplnému grafu K„. V tomto článku vyřešíme složitější, opravdovou extremální úlohu. Kolik hran může mít graf G s n vrcholy, jestliže víme, že neobsahuje trojúhelník (tedy podgraf isomorfní grafu Kz)'? Opět nás zajímá maximální počet hran takového grafu. Označme toto číslo T(n). Zřejmě T(l) = 0, T(2) = 1 a T(3) = 2. Snadno se rovněž přesvědčíme, že T(4) — 4: Pro platnost nerovnosti T(4) > 4 stačí uvážit kružnici C4 délky 4. Nerovnost T(4) < 5 dokážeme například tak, že graf se 4 vrcholy a 5 hranami je až na isomorfismus jednoznačně určen a obsahuje trojúhelník. Kolik je T(5)? Kružnice C5 délky 5 ukazuje, že T(5) > 5. Tento graf se zdá být nejlepší možný, protože libovolným přidáním hrany již vytvoříme trojúhelník. Ale zdání klame. Ve skutečnosti T (5) > 6, jak ukazuje graf na obrázku. Jak uvidíme, tento graf již nejlepší možný opravdu je. V následující větě ukážeme, že platí T(5) = 6, a číslo T(n) určíme dokonce pro každé n. 4.8.1 Věta. Pro každé přirozené číslo n platí T(n) = |_ifj • Připomeňme, že symbol [x\ (pro reálné číslo x) označuje největší celé číslo nepřevyšující x. Důkaz. Nejprve ukážeme platnost (podstatně snadnější) nerovnosti T(n) > L^J ■ Na to stačí najít vhodné grafy bez trojúhelníků. V tomto případě je výhodné postupovat poněkud obecněji. Nechť A' a V jsou disjunktní množiny. Označme Kx.y graf s množinou vrcholů lUľ a s množinou hran {{x,y}yx G X, y G Y}. Graf K x,y se nazývá úplný bipartitní a pro ]A| = a, |A| = b je Kx.y isomorfní grafu Ka,b, který jsme zavedli v části 4.1. Úplný bipartitní graf neobsahuje trojúhelník (neboť hrany jsou pouze „mezi" množinami A a ľ). Stejně snadné je nahlédnout, že graf Ka,b má a ■ b hran. Všimněme si, že graf na předchozím obrázku, dosvědčující T(5) > 6, je isomorfní grafu iv2,3- Pro náš důkaz tedy stačí najít hodnoty a, b tak, aby platilo a+b = n a a ■ b — Lif-I- Ověříme, že vyhovují hodnoty a = |_§J a b = n — a. Rozlišíme dva případy: n liché a n sudé. Nejdřív nechť je n liché, tj. n = 2k + 1. V tomto případě a = k, b = k + 1 a ab = k2 + k. Na druhé straně [^J = = L^2 + k + \\ = k2 + k = ab. Druhý, snazší případ n = 2k přenecháváme čtenáři. Ukázali jsme tedy 2 platnost nerovnosti T(n) > [\\- 2 Nyní ukážeme těžší nerovnost T(n) < Lij~J. Protože T(n) je celé 2 číslo, stačí dokázat T{n) < ?V. Toto tvrzení ukážeme (trochu neobvyklou) indukcí dle n. Víme již, že tvrzení platí pro n < 4. V indukčním kroku dokážeme platnost implikace: T(„, do(x), takže nerovnost z věty platí pro všechna x G X. Dále si všimneme, že žádné dva vrcholy z Y nejsou spojeny hranou, protože všechny vrcholy z Y jsou sousedy vrcholu xq a G neobsahuje trojúhelníky. Tedy všichni sousede každého y G V leží v X a máme de (y) < \X\ < dxx Y (y). □ 158 Kapitola 4: Grafy: úvod Cvičení 1. Určete, kdy výraz a ■ b nabývá maximální hodnoty pro přirozené čísla a, b splňující a + b = n. 2. Určete, kdy součin ai ■ a% ■ ... ■ ak nabývá maximální hodnoty pro přirozené čísla oi, 0,2 ■ ■ ■, ak splňující J2í=i a» = n {k ň, n jsou přirozená čísla). 3* Formulujte analogii tvrzení 4.8.1 pro grafy neobsahující K4. Jaké jsou možné extremální grafy? 4. Úplný k-partitní graf K (Vi, V2, ■ • ■, Vk) na množině V je určen rozkladem Vi,..., Vk množiny V a jeho hrany jsou ty dvojice, které nejsou obsaženy v žádné z tříd rozkladu. Formálně K(Vi, ■ ■ ■, Vk) = (V, E), kde {x,y} e E právě když x 7^ y a \{x,y} n Vi\ < 1 pro každé i = 1,..., k. Dokažte (použitím cvičení 2), že maximálni počet hran úplného fc-partitního grafu odpovídá rozkladu na skoro stejné velké části, tj. na části, jejichž velikosti se liší nejvíce o 1 (o rozkladech obecně viz část 1.6). Kolik má takový graf K(Vi,..., Vk) hran? 5* Použitím cvičení 2 ukažte, že pro každé fc > 1 a pro každý graf G = (V, E) neobsahující úplný graf Kk+i existuje rozklad Ví, ■ ■., Vjt množiny V tak, že stupeň libovolného vrcholu a; v G je menší nebo roven stupni vrcholu x v K(Vi, ■ ■ ■, Vk) (což je analogie věty 4.8.3). Dostanete tak analogii věty 4.8.1 pro každý úplný graf, což je slavná Turánova věta. 5 Stromy 5.1 Definice a charakteristika stromů Strom je jeden z nej přirozenějších útvarů jak v přírodě, tak v matematice. Stromy v přírodě jsou košaté, rozmanité a nesmírně složité. Stromy v teorii grafů jsou téměř nejjednodušší ze všech grafů, ale přesto jejich studium tvoří bohatou a zajímavou oblast. V teorii grafů se stromem rozumí konečný graf, který vypadá podobně jako na následujících obrázcích: Jak tento pojem vystihnout? Pokuste se o to sami dřív, než budete pokračovat ve čtení. Z hlediska teorie grafů lze pojem stromu definovat mnoha rozdílnými způsoby. Uvidíme to za okamžik, kdy podáme dokonce pět na- 160 Kapitola 5: Stromy 5.1 Dennice a charakteristika stromů 161 prosto rozdílných charakteristik. Snad nejběžnější je však následující definice: 5.1.1 Definice. Strom je souvislý graf neobsahující kružnici. Z mnoha hledisek je tato definice trochu nešikovná. Například není jasné, jak jednoduše zkontrolovat, že daný graf jc strom. Souvislost lze ověřit snadno, s neexistencí kružnic je to však horší. Proto jsou důležité alternativní popisy stromů, které budou následovat. Začneme téměř zřejmým pozorováním: 5.1.2 Lemma (O koncovém vrcholu). Každý strom s alespoň dvěma vrcholy obsahuje alespoň dva vrcholy stupně 1. Vrchol stupně 1 se nazývá koncový vrchol nebo list. Důkaz. Nechť P = (vq, e\, íii, ..., e^, vt) je cesta maximální možné délky ve stromu T = (V, E) (strom se v teorii grafů zpravidla označuje písmenem T). Zřejmě délka cesty P je aspoň 1. Tvrdíme, že jak vq, tak vt jsou koncové vrcholy T. To můžeme nahlédnout sporem: Není-li např. vq koncový vrchol, pak existuje ještě jiná hrana e =ŕ e\ obsahující vrchol Vq; označme e = {vq,v}. Potom buď je v některým z vrcholů cesty P, tj. v = c,-, i > 2 (v tom případě e spolu s úsekem cesty P od vq do Ví tvoří kružnici), anebo v £ {vq, ... ,vt\ tehdy bychom mohli cestu P prodloužit o hranu e. V obou případech dostaneme spor. □ Poznamenejme, žc lemma o koncovém vrcholu neplatí pro nekonečné stromy (právě předvedený důkaz selže pro nekonečné stromy na tom, že nejdelší cesta nemusí existovat): například jednostranně nekonečná cesta má jen jeden koncový vrchol a oboustranně nekonečná cesta nemá dokonce žádný: My však uvažujeme jen konečné grafy. Výstavba stromů. Připomeňme značení ze sekce 4.7: jedí G graf a v jeho vrchol, potom G — v označuje graf, který vznikne z G vynecháním v a všech hran, které vrchol v obsahují. V případě, že v je koncový vrchol stromu T. vznikne T — v odebráním v a jediné hrany jej obsahující. 5.1.3 Tvrzení (Postupná výstavba stromů). Pro daný graf G a jeho koncový vrchol v jsou následující dvě tvrzení ekvivalentní: (i) G jc strom. (ii) G — v je strom. Důkaz je velmi snadný. Dokážeme nejprve implikaci (i) => (ii). Graf G je tedy strom, a chceme dokázat, že i G — v je strom. Jsou-li x, y dva vrcholy grafu G různé od v. uvažme (nějakou) cestu z x do y. Tato cesta nemůže obsahovat vrchol stupně 1 mimo x a y, a tedy neobsahuje v. Proto je celá obsažena také v G — v, čili G — v je souvislý. Protože G neobsahuje kružnici, očividně ani G — v neobsahuje kružnici, a je to tudíž strom. Zbývá dokázat implikaci (ii) (i). Nechť G — v je strom. Přidáním koncového vrcholu v nemůžeme zjevně vytvořit kružnici. Zbývá nahlédnout souvislost G, ale ta je též zřejmá: mezi libovolnými dvěma vrcholy různými od u vedla cesta už v grafu G — v, a cesta z nějakého vrcholu x do vrcholu v se dostane prodloužením cesty spojující x s v' o hranu {V, v}, kde v' je (jediný) soused vrcholu v v grafu G. □ Toto tvrzení umožňuje postupně převádět daný strom na menší a menší stromy. Ukazuje, že graf G je strom právě když ho lze převést na jeden vrchol postupným odebíráním koncových vrcholů. Přitom v každém kroku můžeme odebrat libovolný koncový vrchol. Následující věta shrnuje základní poznatky o stromech. Větu formulujeme jako ekvivalenci 5 tvrzení. Jedno z nich např. ukazuje, že strom se mezi souvislými grafy pozná podle počtu vrcholů a hran. 5.1.4 Věta (Charakterizace stromů). Pro graf G = (V, E) jsou následující podmínky ekvivalentní: 162 Kapitola 5: Stromy 5.1 Dennice a, charakteristika stromů 163 (i) G je strom. (ii) (jednoznačnost cesty) Pro každé dva vrcholy x, y G V existuje právě jediná cesta z x do y. (iii) (minimální souvislost) Graf G je souvislý, a vynecháním libovolné hrany vznikne nesouvislý graf. (iv) (maximální graf bez kružnic) Graf G neobsahuje kružnici, a každý graf vzniklý z G přidáním hrany (tj. graf tvaru G + e, kde e G {\)\E) již kružnici obsahuje. (v) (Eulerův vzorec) G je souvislý a \V\ = \E\ I 1. Toto je pozoruhodná věta, která vlastně popisuje pojem stromu pomocí čtyř dalších způsobů, které jsme se pokusili pojmenovat v záhlaví jednotlivých bodů. Tyto popisy jsou velmi různorodé a zakládají širokou použitelnost pojmu strom. Důkaz. Důkaz je poměrně snadný, jde jen o to jej vhodně zorganizovat. Dokážeme, že každé z tvrzení (ii)—(v) je ekvivalentní (i) (tím je ovšem dokázána i ekvivalence všech tvrzení navzájem). Důkazy povedeme většinou indukcí podle počtu vrcholů grafu G (přitom pro jediný graf s jedním vrcholem všechna tvrzení platí), a budeme využívat postupné výstavby stromu odebíráním koncového vrcholu. Nejdříve nahlédneme, že z (i) plyne (ii)-(v). Buď tedy G strom na aspoň 2 vrcholech, v jeho koncový vrchol, v' jediný soused vrcholu v, a nechť pro graf G — v už platí (ii) (v). Platnost (ii), (iii) a (v) pro G je pak téměř zřejmá (přenecháváme detailní rozmyšlení čtenáři). Co se týče (iv), nepotřebujeme ani indukci: poněvadž G je souvislý, mezi libovolnými dvěma vrcholy x, y G V {G) vede cesta, a pokud {x,y} 0 E(G), potom hrana {x.y} spolu se zmíněnou cestou tvoří kružnici. Teď budeme dokazovat, že z každé z podmínek (ii)-(v) plyne (i). U (ii), (iii) již předpokládáme souvislost, a dále graf G splňující (ii) nebo (iii) nemůže obsahovat kružnici, protože kružnice sama již (ii) ani (iii) nesplňuje. Tím už jsme dokázali ekvivalenci (i)-(iii). Pro platnost implikace (iv)=^(i) stačí ověřit, že G je souvislý. Na to se použije argument, jímž jsme dokazovali (i)=>(iv), obrácený naruby: Jsou-li x, y G V (G) dva vrcholy, pak buď jsou přímo spojeny hranou, nebo graf G + {x, y} obsahuje kružnici, a z té po odebrání hrany {x, y} vznikne cesta z x do y v G. Trochu těžší je důkaz poslední zbývající implikace (v)=>(i). Postupuje se opět indukcí podle počtu vrcholů. Mějme tedy souvislý graf G na aspoň dvou vrcholech splňující |F| = \E\ + 1. Potřebujeme ukázat, že v G existuje koncový vrchol, což se udělá počítáním stupňů. Součet stupňů všech vrcholů je dvojnásobek počtu hran, tj. 2|V*| — 2. Kdyby všechny vrcholy měly stupně 2 a více, byl by součet stupňů aspoň 2\V\, tudíž nějaký vrchol v má stupeň nejvýš 1. Stupeň 0 ale mít nemůže, poněvadž by G nebyl souvislý, takže má stupně právě 1. Tak jsme našli koncový vrchol. Graf G' = G - v je opět souvislý a splňuje |y(č?')| = \E(G')\ +1, je to tedy podle indukčního předpokladu strom, a tudíž i G je strom. □ Cvičení 1. Nakreslete všechny stromy na množině {1, 2, 3, 4}, a všechny navzájem neisomorfní stromy na 6 vrcholech. 2. Dokažte, že graf G = (V, E), který nemá kružnice a pro nějž |V| = 'E\ + 1, je strom. 3. Dokažte, že graf na n vrcholech s c komponentami má aspoň n — c hran. 4. Nechť strom G obsahuje vrchol stupně k. Ukažte, že G obsahuje alespoň fc vrcholů stupně 1. 5. " Nechť T je strom s n vrcholy, n > 2. Pro kladné celé číslo i označme Pi počet vrcholů T, které mají stupeň i. Dokažte, že Pi -P3 ~ 2pn ~ ■ ■ ■ - (n - 3)p„_i = 2. (To dává jiný důkaz lemmatu o koncovém vrcholu.) 164 Kapitola 5: Stromy 5.2 Isomorňsmus stromů 165 6* Dokážte, že následující dvě podmínky pro posloupnost (di,... ,d„) kladných přirozených čísel jsou navzájem ekvivalentní: (i) Existuje strom T sc skórem (di,..., dn). (ii) Platí YZ=l di = 2n - 2' 5.2 Isomorfismus stromů Jak jsme se zmínili v části 4.1, není znám žádný rychlý algoritmus, který by pro dva dané grafy rozhodl, zda jsou isomorfní nebo nc. Pro některé speciální třídy grafů však rychlé algoritmy existují. Jedna z takových (jednoduchých) tříd jsou stromy. Ostatně velmi mnoho - asi dokonce většina - algoritmických úloh, které jsou pro obecné grafy obtížné, se dá pro stromy vyřešit poměrně snadno. V tomto odstavci předvedeme rychlý a snadný postup, který pro dva stromy T a T' rozhodne, zda T a T' jsou isomorfní či nikoliv. Každému stromu T na n vrcholech přiřadíme posloupnost nul a jedniček délky In. zvanou kód stromu T, a to tak, že isomorfním stromům se přiřadí týž kód, zatímco neisomorfní stromy budou mít různé kódy. Tím bude isomorfismus stromů převeden na prosté porovnání posloupností. Následuje řada speciálních pojmů, každý se zvláštním názvem. To je běžné v hraničních oblastech teorie grafů a, informatiky, kde mnoho pojmů vzešlo z praxe a kde je terminologie velmi různorodá. Kořenový strom je dvojice (T, r), kde r G V (T) je jeden zvolený vrchol T, zvaný kořen. Je-li {x,y} G E [T) hrana, a ležídi x na (jediné) cestě z y do kořene, říkáme, že x je otec y a y je syn x. Pěstovaný strom je nějaký kořenový strom (T, r), plus jeho pevně zvolené rovinné nakreslení. Přitom kořen se vyznačí šipkou směřující dolů. Komu se tato definice nelíbí, nechť si uvědomí, že rovinné nakreslení je plně popsáno1 pořadím synů každého vrcholu. Pěstovaný strom je tedy kořenový strom, kde pro každý vrchol v je dáno pořadí jeho synů. Můžeme proto pěstovaný strom zapisovat jako trojici (T,r,v), kde v je soubor lineárních uspořádání, jedno lineární uspořádání pro množinu synů každého vrcholu. Až na vhodnou spojitou deformaci roviny. Obrázek 5.1: Isomorfismy stromů. Tyto definice se zavádějí proto, že pro každý pojem se definuje isomorfismus trochu jinak. Připomeňme, že zobrazení / : V(T) —+ V(T') je isomorfismus stromů T a T', jestliže / je vzájemně jednoznačné zobrazení (tj. prosté a na) splňující {x,y} G E (T), právě když {/(.x), f {y)} G E(T'). Existenci takového isomorfismu zapisujeme T = T'. Isomorfismus kořenových stromu (T, r) a (T', r') je takový isomorfismus /' stromů T a T', pro nějž navíc f (r) = r'. Značíme to (T, r) =' (T', r'). Isomorfismus pestovaných stromu je takový isomorfismus příslušných kořenových stromů, který zachovává uspořádání synů každého vrcholu. Budeme jej značit (T.r.v) =" (T',r',v'). Definice =, =' a =" se postupně zesilují. To je nejlépe si uvědomit na malém případě na obr. 5.1. Definice pěstovaného stromu (a jeho isomorfismus) je nejvíce omezující, a proto je kódování těchto stromů nejsnazší. Následující metoda přiřadí jistý kód každému vrcholu pěstovaného stromu; kód celého stromu bude pak totožný s kódem kořene. Kl. Koncovým vrcholům (různým od kořene) přiřadíme 01. K2. Buď v nějaký vrchol, v\,... ,Vt jeho synové v pořadí zleva doprava. Má-li syn »j kód Ai, potom vrcholu v přiřadíme kód OAiAv... Atl. 166 Kapitola 5: Stromy 5.2 Isomorfismus stromu 167 Obrázek 5.2: Kódování pěstovaného stromu. Proces postupného vytváření kóduje znázorněn na obr. 5.2. Zřejmě jsme isomorfním pěstovaným stromům přiřadili stejný kód, neboť jsme při konstrukci kódu použili jen vlastností, které se zachovávají isomorfismem pěstovaných stromů. Ukážeme teď, jak ze znalosti kódu jednoznačně rekonstruovat výchozí pěstovaný strom (tím ukážeme, že neisomorfním pěstovaným stromům je přiřazen různý kód). Budeme postupovat indukcí podle délky kódové posloupnosti. Nejkratší možný kód 01 odpovídá jedinému pěstovanému stromu s jedním vrcholem. V indukčním kroku nechť je dán kód k délky 2(n + 1). Tento kód je tvaru 0A1, přičemž A = A\Ai... At je zřetězení kódů několika pěstovaných stromů. Část A\ identifikujeme jako nejkratší počáteční úsek posloupnosti A, který obsahuje stejný počet nul a jedniček. Podobně A% je nejkratší následující úsek posloupnosti obsahující stejně nul a jedniček, atd. Podle indukčního předpokladu každému A, odpovídá právě jediný pěstovaný strom. Pěstovaný strom kódovaný kódem k bude mít jeden kořen r, a k němu budou v pořadí r\....,rt připojeny hranou kořeny stromů kódovairých A\, A?, ■■■■ Tedy kód určuje jednoznačně pěstovaný strom. Dekódování metodou šipek. Ukážeme názorný - obrázkový - postup, jak pěstovaný strom z daného kódu zrekonstruovat. V daném kódu nahradíme 0 šipkou "f" a 1 šipkou "J," a kreslíme graf podle pravidla, že šipka " |" nikdy nevede po jiné šipce, zatímco šipka " J." vždy sleduje šipku v protisměru. Celý postup je patrný z obrázku 5.3. Obrázek 5.3: Dekódování metodou šipek. (Přitom se nakreslí i kořenová šipka; jednobodový strom má kód 01.) Věnovali jsme isomorfismu pěstovaných stromů pozornost proto, že isomorfismus jak kořenových tak obecných stromů se již snadno převede na tento případ. Vyšetřeme nejprve kořenové stromy. Je-li (T, r) kořenový strom, budujeme jeho kód podobně jako pro pěstovaný strom, až na to, že pravidlo K2 nahradíme jeho následující modifikací: K2' Předpokládejme, že jsme již přiřadili kód A(w) každému synu w vrcholu v. Označme syny w±,W2,...,Wt tak, aby platilo A(wi) < A(w2) < ••■ < A(wt). Vrchol v pak dostane kód 0AiA2 ... Atl, kde A{ = A(wj). Zde A < Ľ značí, že posloupnost A je menší nebo rovna posloupnosti B v nějakém pevně zvoleném lineárním uspořádání všech konečných posloupností nul a jedniček. Pro určitost můžeme např. použít tzv. lexikografického uspořádání,, viz též sekci 2.1. Dvě (různé) posloupnosti A — (ai, a2, ■ • •, an) a B = (&i,..., bm) přitom porovnáváme takto: • Je-li A počátečním úsekem B, potom A < B. Je-li B počátečním úsekem A, potom B < A. • Jinak, buď j nej menší index takový, že a j ^ bj. Potom pokud a j < bj, klademe A < B, a pokud a j > bj, klademe A > B. 168 Kapitola 5: Stromy 5.2 Isomorfismus stromů 169 Podobne, jako jsme se o tom přesvědčili výše pro pěstované stromy, nahlédneme, že dva kořenové stromy jsou isomorfní právě když mají stejné kódy. Obraťme pozornost ke kódování obecného stromu - stromu bez kořene. Úlohu bychom si zjednodušili, kdybychom nalezli vrchol, který by měl úlohu kořene. Přitom takto nalezený vrchol by se měl zachovávat isomorfismem. Je důležitou skutečností, že v případě stromů lze takový význačný vrchol vždy najít. Příslušné definice mohou být užitečné i jinde, a proto je formulujme poněkud obecněji pro grafy. Pro vrchol v grafů G označme symbolem cxg(v) maximální vzdálenost vrcholu v od jiného vrcholu grafu G. Číslo exg(v) se nazývá výstřednost (cizím slovem excentricita) vrcholu v grafu G. Vrcholy s velkou výstředností si můžeme představovat "na okraji" grafu G. Označme nyní C(G) množinu všech vrcholů grafu G, jejichž výstřednost nabývá minimální hodnoty. Množina C(G) se nazývá střed 2 (centrum) grafu G. Příklad kružnic (a dalších grafů) ukazuje, že střed grafu může splývat s množinou všech vrcholů. Pro stromy však platí: 5.2.1 Tvrzení. Pro každý strom T má C(T) nejvýše dva vrcholy. Je-li C(T) tvořeno dvěma vrcholy x a y, potom {x, y} tvoří hranu. Důkaz. Popíšeme postup, jak střed stromu najít. Nechť T = (V, E) je daný strom. Jestliže T má nejvýše dva vrcholy, potom střed T splývá s množinou jeho vrcholů a tvrzení platí. V opačném případě označme T' = (V, E') strom, který vznikne odstraněním všech koncových vrcholů stromu T. Explicitně V = V\{x; degT(x) = l}, E' = E\{{x,y} G E; degT(x) = 1 nebo degT(y) = 1}. Máme V(T') / 0. Dále, pro každý vrchol v jsou všechny vrcholy od něj nej vzdálenější nutně koncové, a tím pádem platí pro každý v G V vztah exp(-6') = exT<(v) + 1. 2 Výstřednost vrcholů středu se jmenuje poloměr grafu G. Speciálně z toho dostaneme C(T') = C(T). V případě, že V má alespoň 3 vrcholy, opakujeme uvedenou konstrukci, v opačném případě jsme našli střed stromu T. □ Popišme nyní vytváření kódu stromu T. • Jestliže střed stromu T tvoří jediný vrchol, v, potom mu přiřadíme kód jako kořenovému stromu (T, v). • Jestliže střed stromu T je tvořen hranou e = {xi,X2}, potom uvažme graf T - e. Tento graf má právě dvě komponenty T\ a T2 (kde X{ G V (Ti)). Označme kód kořenového stromu (T\,X\) písmenem A, a kód kořenového stromu (T2.X2) písmenem B. Jestliže v lexikografickém uspořádání platí A < B, kódujeme strom T kódem kořenového stromu (T,xi), a pro A > B kódem kořenového stromu (T, £2). Tím je procedura kódování ukončena. Dekódování se provádí ve všech případech stejně jako pro pěstované stromy. Poněvadž isomorfismus zřejmě převádí střed na střed, a protože jsme již nahlédli, že kódování funguje pro zakořeněné stromy, je už snadno patrné, že dva stromy mají stejný kód právě když jsou isomorfní. Algoritmy pro isomorfismus stromů uvedené v této části lze implementovat tak, že počet elementárních kroků je omezen lineární funkcí počtu vrcholů vstupních stromů. Jsou známy i další třídy grafů, pro než lze problém isomorfismu řešit. Snad nejvýznamnějším takovým příkladem je třída rovinných grafů; zde jsou ale algoritmy na isomorfismus již značně složité. Cvičení 1. (a) Najděte nějaký asymetrický strom s aspoň dvěma vrcholy (tj. strom jen s jediným automorfismern, viz cvičení 4.1.4). (b) Jaký jc nejmenší možný počet vrcholů asymetrického stromu (s nejméně 2 vrcholy)? 170 Kapitola 5: Stromy 5.3 Problém minimálni kostry 171 2. Zakořeněný strom se nazývá binární, jestliže každý vrchol kromě koncových má právě dva syny. (a) Nakreslete všechny neisomorfní binární stromy s < 9 vrcholy. (b) Popište, jak mohou vypadat kódy binárních stromů. 3. Dokažte podrobně, že isomorfní stromy (nczakořeněné) dostanou uvedenou metodou stejný kód, a neisomorfní různé kódy. 4* Buďte Ai,Á2,...,At posloupnosti nul a jedniček (mohou být různě dlouhé). Označme součet jejich délek n. Navrhněte algoritmus, který tyto posloupnosti lexikograficky setřídí v 0{n) krocích (přičemž jeden krok smí manipulovat jen s jediným členem některého Al, nikoliv s celou posloupností 0 a 1 najednou). 5. Dokažte, že existuje nejvýš 4" navzájem neisomorfních stromů na n vrcholech. 6. Buď T = (V, E) strom, v jeho vrchol. Označme t (v) číslo inax(|V"(Ti)|, |V"(T2)|,..., \V(Tk)\), kde 1\,... ,Tk jsou všechny komponenty grafu T — v. Centroid stromu T je množina všech vrcholů v (z V s minimální hodnotou t(v). (a) * Dokažte, že centroid každého stromu je buď jeden vrchol, nebo dva vrcholy spojené hranou. (b) Musí centroid vždy splývat se středem stromu? (c) Dokažte, že je-li v vrchol centroidu, potom t(v) < ||V(T)|. 5.3 Problém minimální kostry Představme si mapu jižní Moravy. Máme na ní vyznačeno 30 40 měst a vesniček. Naším úkolem bude tato města navzájem propojit (třeba elektrickým vedením) tak, aby délka spojení nebyla příliš velká. Řekněme dokonce, že bychom chtěli, aby celková délka propojení byla co nejkratší. Komu tento příklad připadá, příliš umělý a dnes už neaktuální (což je pravda), ať si představí návrh letecké sítě nějaké společnosti, lákové úlohy se řeší dosud. Navíc se rozhodneme, že naše síť se nebude větvit nikde mimo spojované obce, tj. nebudou v ní situace typu takže tato 4 místa by se musela propojit takto3: Tím dostáváme zadání důležité úlohy, známé pod názvem problém minimální kostry. Tento oddíl je věnován jejímu řešení. Úloha vyžaduje malého obohacení pojmu graf: Budeme uvažovat grafy G = (V, E) spolu s ohodnocenými hranami. Tím míníme, že pro každou hranu e € E je dáno číslo w(e), které nazýváme váha hrany e. - takovou situaci jsme již uvažovali v části 4.3. (Váha je zpravidla kladné číslo.) Graf spolu s ohodnocením w, kde w : E - > R, se nazývá síť. Formulujme tedy problém propojení v grafové formě: Pro souvislý graf G = (V, E) s nezáporným ohodnocením hran w nalezněte souvislý podgraf (V,E') takový, že výraz w{E') = ]T w(e) (5.1) nabývá minimální hodnoty. Je snadno vidět, že mezi řešeními této úlohy je vždy nějaký strom (je-li ohodnocení všech hran kladné, může být dokonce řešením jenom strom). Například, jestliže ohodnocení w splňuje w(e) = 1 pro každou hranu e, úlohu řeší libovolný podgraf, jenž obsahuje všechny vrcholy a jenž je strom (a tedy má | V\ - 1 hran). Pro takové podgrafy se zavádí zvláštní název: 3Vynecháme-li právě zavedené omezení, dostaneme problém minimálního Steinerová alromu. To je zcela jiná úloha, pro niž nejspíš neexistuje efektivní algoritmus, a která se v praxi zpravidla řeší pouze přibližně. 172 Kapitola, 5: Stromy 5.3 Problém minimální kostry 173 5.3.1 Definice. Nechť G = (V, E) je graf. Libovolný strom tvaru (V. E'), kde E' C E, nazveme kostra4 grafu G. Je zřejmé, že kostra může existovat pouze tehdy, je-li graf G souvislý. Je snadné ukázat, že každý souvislý graf má kostru, a vyplyne to i z našich dalších úvah. Uvažovanou úlohu můžeme určitěji formulovat takto: 5.3.2 Úloha (Problém minimální kostry). Pro souvislý graf G = (V, E) s nezáporným ohodnocením hran w nalezněte kostru T = (V, E') grafu G s nejmenší možnou hodnotou w(E'). Daný graf může mít velmi mnoho koster (viz kapitolu 8) a nalézt tu nejlepší z nich se může zdát obtížné. Není tomu tak: Tento problém je algoritmicky velmi dobře zvládnutý. V tomto oddílu vysvětlíme jeden oblíbený a jednoduchý postup. 5.3.3 Algoritmus (Kruskalův čili „hladový" algoritmus). Je dán souvislý graf G = (U, E) s n vrcholy, m hranami a s ohodnocením w. Očíslujme hrany ŕ-j. ('■>..... em tak, aby w(eL) < w(e2) < ■■■ < w(em). (Tento krok tedy vyžaduje setřídění vah.) Nyní budeme postupně konstruovat množiny hran E(j, E\. E-2----. K,,, C E. Položme Eq = 0. Byla-li již nalezena množina Ej-i, spočítáme množinu Ei následovně: y í U {e,;} neobsahuje-li graf [V. E, i U {&,;}) kružnici 1 \ Ei-i jinak. Algoritmus se zastaví po m-tém kroku. Nechť T značí graf (V.Em). 5.3.4 Příklad. Aplikujme hladový algoritmus na graf na obr. 5.4 s naznačenými ohodnocením hran. Ohodnocení tvoří posloupnost 1, 1, 2, 2. 3, 3, 4, 4. Jeden možný průběh algoritmu je na obrázku vyznačen. Obrázek 5.4: Hledání minimální kostry hladovým algoritmem. 5.3.5 Tvrzení (Správnost Kruskalova algoritmu). Kruskalův algoritmus řeší problém minimální kostry. To znamená, že vždy vydá minimální kostru G vzhledem k ohodnocení w (přesněji, pokud má G více minimálních koster. T bude některá z nich). Důkaz. Algoritmus určitě pokaždé skončí. Nejdříve ověříme, že výsledný graf T je kostra grafu G. Podle pravidla, vytváření množin E{ neobsahuje graf T kružnici. Předpokládejme pro spor, že je je nesouvislý. Zvolme vrcholy x a y v různých komponentách grafu T. Označme C komponentu T obsahující vrchol x, a uvažme nějakou cestu (x = x{),ei,xi,e2, ■. ■ , xg = y) z x do y v grafu G. Nechť i je poslední index, pro nějž je vrchol x{ obsažen v komponentě C. Zřejmě i < í, a tedy x'l4i f? C. Hrana e — {xí,Xí+i} tudíž nepatří do grafu T, a musela proto někdy v průběhu algoritmu tvořit spolu s již vybranými hranami kružnici. Proto i graf 7' - c obsahuje kružnici, to ale není možné, protože e spojuje různé komponenty grafu T. To je spor ukazující, že T je opravdu kostra. 4Tonto morbidní název je zaveden v češtině - anglicky se kostře grafu říká optimističtěji spanning tree. 174 Kapitola 5: Stromy 5.3 Problém minimálni kostry 175 Teď se dáme do dokazování, že T je minimálni kostra. Uvažme libovolnou jinou kostru T; potřebujeme dokázat, že w(E(T)) < w(E(T)). Přeznačme hrany kostry T jako e'1: e'2,..., e'n_1 tak, že w(ei) < w(e'2) < ■ • ■ < w(e'n x) (každá hrana kostry T má teď dvě označení, čárkované a nečárkované). Podobně nechť ě\,... ,ěn-\ jsou hrany kostry T, uspořádané taky vzestupně podle vah. Dokážeme, že pro i = 1,... , n — 1 platí dokonce ?i;(e':) < w(ě,i). (5.2) Odtud samozřejmě plyne, že T jc minimální kostra. Předpokládejme tedy pro spor, že (5.2) neplatí a zvolme nejmenší i takové, že w(e'i) > w(ěi). Zřejmě i > 1. Uvažme množiny E' = {([,...,<■', .,}. Ě = {<■>.....- . ], Grafy (V, E1) a (V, E) neobsahují kružnice a navíc \E'\ = i—l, \E\ = i. K hledanému sporu stačí ukázat, že existuje hrana e G E, pro niž graf (V, E' U {e}) nemá kružnici. Potom totiž w(e) < w(čt) < u'(e-) a v tom okamžiku, kdy se v algoritmu rozhodovalo o hraně e, jsme učinili chybu, protože nebylo díivodu ji zamítnout; např. jsme ji měli vybrat místo hrany pí. Stačí tedy ukázat toto: Jsou-li E',Ě C (^) dvě množiny hran, přičemž (V,Ě) neobsahuje kružnici a \E'\ < \E\, potom nějaká hrana e G E \ E' spojuje vrcholy dvou různých komponent grafu {V,E'). Nechť Vi,... , Vs je rozklad množiny V na komponenty grafu (V, E'). Platí E' H (Vj) > \Vj\ — 1, a proto \E'\ > n s. Na druhé straně, ježto E neobsahuje kružnice, máme En <\Vj\ -1, tudíž nanejvýš n—s hran z Ě jc obsaženo v nějaké z komponent V}. Protože ale \Ě\ > \E'\, některá hrana e G E jde mezi dvěma různými komponentami. □ Pozor, právě dokončený důkaz je velmi snadné poplést (jak vědí oba autoři z vlastní zkušenosti)! Složitost algoritmu. Tím jsme ukázali, že hladový algoritmus skutečně vždycky spočítá to, co má, tj. minimální kostru grafu G. Kdybychom ale doopravdy potřebovali nacházet minimální kostry nějakých (velkých) grafů, máme zvolit zrovna tento algoritmus a trávit čas tím, že ho budeme programovat, případně utratit své peníze za program již hotový? Odpověď není jednoduchá a algoritmy se porovnávají na základě různých (a mnohdy navzájem protichůdných) kritérií. Je např. vhodné si všímat přehlednosti algoritmu (přehlednost vede k lepšímu pochopení a méně chybám), jeho robustnosti (jak se průběh řešení změní při malé změně dat), jeho paměťové náročnosti. Snad nejrozpracovanější mírou je však časová složitost algoritmu, to znamená počet operací (jako například sčítání, násobení, porovnání dvou čísel, atd.), které algoritmus potřebuje na vyřešení dané úlohy. Zpravidla se uvažuje časová složitost v nejhorším případě, tj. počet operací potřebných k vyřešení nejhorší možné (nejnaschválnější) úlohy při dané velikosti vstupu. Velikost vstupu by se v našem případě - počítání kostry - mohla měřit jako počet vrcholů plus počet hran grafu G. Místo „časová složitost v nejhorším případě" budeme v dalším říkat krátce „složitost", poněvadž o jiných typech složitosti hovořit nebudeme. Složitost algoritmu lze jen velmi zřídka určit přesně. Aby byla vůbec naděje to udělat, museli bychom v první řadě přesně stanovit, co jsou povolené elementární operace, tj. v podstatě se vázat najeden konkrétní počítač, a potom také algoritmus popsat do nejmenších detailů, včetně různých rutinních operací, tj. vycházet z konkrétního naprogramování. I kdybychom obě tyto věci udělali, určení přesné složitosti je velmi pracné i pro jednoduché algoritmy. Z těchto důvodů se v teoretické analýze algoritmů složitost odhaduje pouze asymptoticky, třeba že nějaký algoritmus má složitost 0(n3''2), jiný O(nlogn), a podobně (n je přitom míra velikosti vstupu). Při skutečném posuzování algoritmů je vhodné (a někdy nutné) takovou asymptotickou analýzu doplnit testováním algoritmu pro konkrétní data na konkrétním počítači. Dá-li totiž např. asymptotická analýza pro jeden algoritmus složitost 0(n2) a pro druhý 0(nlog4 n), vypadá druhý podle toho jasně lepší (funkce n log4 n roste mnohem pomaleji než n2). Kdyby však přesná složitost prvního algoritmu byla třeba n'2 — 5n a druhého 20n(log2 n)4, projeví se převaha druhého algoritmu až od zhruba n — 5 X 106, a taková převaha je z praktického hlediska dosti iluzorní. Pokusme se nějak odhadnout asymptotickou složitost Kruskalova algoritmu. První část algoritmu spočívá v třídění m vah. To je velmi dobře 176 Kapitola 5: Stromy 5.3 Problém minimální kostry 177 prostudovaná úloha, o níž se zpravidla podrobně pojednává v základních kursech programování a algoritmů. Ví se, že m reálných čísel se dá setřídit pomocí O(mlogm) operací, a pokud bychom předpokládali, že váhy jsou třeba, celá čísla mezi lam, pak třídění je možné dokonce v čase O(rn). V dalším se budeme zabývat jenom zbývající částí algoritmu, kdy již máme hrany seřazeny podle vah. Algoritmus jsme ovšem popsali na „vysoké úrovni", čímž se nemíní společenská prestiž, ale to, že jsme při popisu užívali např. test, zda daná množina hran obsahuje kružnici, což ani při liberálním pojetí nelze považovat za elementární operaci. Složitost algoritmu tedy bude záviset na tom, jak efektivně umíme takovou komplikovanou operaci realizovat operacemi elementárními. U Kruskalova algoritmu je vidět, že nemusíme uchovávat všechny množiny E,;, a všechny tedy mohou být reprezentovány jednou proměnnou, např. seznamem hran, která postupně nabývá hodnot Eq, E\,.... Jediná složitější otázka je, jak efektivně testovat, jestli přidání nové hrany e, k již vybraným hranám vytvoří kružnici. Kružnice zřejmě vznikne, právě když koncové vrcholy hrany e» náleží téže komponentě grafu (V. Ei-i). Takže potřebujeme řešit následující úlohu: 5.3.6 Úloha (Udržování ekvivalence).5 Uvažujeme množinu vrcholů V = {1, 2,..., n). Na. počátku je rozdělena do jednoprvkových tříd ekvivalence, tj. žádné dva vrcholy nejsou ekvivalentní. Navrhněte algoritmus, který uchovává ve vhodné datové struktuře ekvivalenci na V (neboli rozdělení V do tříd) tak, aby mohl efektivně vykonávat operace následujících dvou typů: (i) (Sjednocení tříd - UNION) Učinit dané dva neekvivalentní vrcholy i, j E V ekvivalentními, tj. nahradit třídy obsahující i a j jejich sjednocením. (ií) (Testování ekvivalence - FIND) Pro dané dva vrcholy i, j e V rozhodnout, zda jsou momentálně ekvivalentní. Přitom každá další operace je algoritmu zadána až poté. co vykonal operaci předchozí. Kruskalův algoritmus potřebuje nejvýš n — 1 operací sjednocení tříd a nejvýš m, operací testování ekvivalence. Jednoduché řešení úlohy 5.3.6 je následující: Vrcholům z množiny V 6V literatuře čtenář tuto úlohu najde nejspíš pod jménem UNJON-FIND problém. přiřadíme na počátku různé značky, třeba 1,2,..., n. Značky nyní i v budoucnosti budou splňovat podmínku, žc dva vrcholy budou mít tutéž značku, právě když jsou ekvivalentní. Testování ekvivalence je pak triviální porovnání značek. Při sjednocení dvou tříd je třeba přeznačit vrcholy jedné z nich. Pokud prvky každé třídy zároveň uchováváme v seznamu, je čas potřebný na takovou operaci úměrný velikosti přeznačované třídy. Při hrubém odhadu můžeme říci, že každá třída má vždy nejvýš n prvků, tedy jedna operace sjednocení tříd nezabere nikdy více než 0{n). Pro n — 1 operací sjednocení a m operací testování ekvivalence potom vychází odhad 0(r? + rn). Jedno nenápadné vylepšení je, že uchováváme také počty prvků tříd a přeznačujeme vždycky menší třídu. Pro takový algoritmus se dá ukázat celkový odhad 0(n log n + m), viz cvičení 9. Nejlepší známé řešení úlohy 5.3.6 potřebuje na m testů a n — 1 sjednocení čas nejvýš 0(nct{n) +m) (viz např. [1]), kde a(n) je jistá funkce. Definici této funkce zde neuvedeme; poznamenejme jen, žc a(n) roste sice do nekonečna pro n —> oo, ale nepředstavitelně pomalu, mnohem pomaleji než např. funkce jako log log n, log log log n, atd. Pro praktické použití jc však výše naznačené řešení (s přeznačováním menší třídy) zcela dostačující. Hladové algoritmy obecně. Kruskalův algoritmus je prototypem tzv. hladového algoritmu: vzhledem k platným omezením (zde „neobsahovat kružnici") vybereme v každém okamžiku tu nejlacinější hranu. Hladový algoritmus se tedy snaží vždycky „urvat co se dá", a přitom nehledí do budoucnosti. Pro četné problémy může taková krátkozraká strategie úplně selhat. To není příliš překvapivé: Např. hladový algoritmus aplikován na šachovou hru by odpovídal strategii, kdy by hráč pokud možno bral v každém okamžiku, a to tu nejcennější figuru. A také by snadno při dodržování tak naivního postupu prohrál. V této souvislosti je spíš překvapivé, žc pro problém minimální kostry najde hladový algoritmus optimální řešení. I pro mnoho jiných úloh je hladová strategie užitečná (zejména nevíme-li nic lepšího); mnohdy dává aspoň dobré přibližné řešení. Úlohy, pro něž hladový algoritmus vždy najde optimální řešení, se studují v tzv. teorii raatroidů. Poznámka historická. Příklad z jižní Moravy, kterým jsme uvedli tento oddíl, si autoři nevymysleli. Ve skutečnosti to je první případ úspěšného řešení problému minimální kostry, které našel v roce 1928 Otakar 178 Kapitola 5: Stromy 5.3 Problém minimální kostry 179 Borůvka. Značně tak předběhl dobu; mimo Československo na jeho výzkumy navázal až v roce 1956 M. Kruskal. Téma se v té době stalo velmi aktuální v rámci celkového zvýšeného zájmu o algoritmické a výpočetní metody. Od té doby jsou problému minimální kostry věnovány stovky prací. Borůvkův postup byl složitě napsán (v duchu tehdejšího stylu psaní matematických článků), jeho algoritmus není však složitý a je odlišný od Kruskalova hladového algoritmu. Výstižný popis událostí provázejících Borůvkův objev i celkové ovzduší předválečného brněnského akademického života čtenář najde v práci [5]. Cvičení 1. (a) Nechť úplný graf Kn na množině vrcholů {1,2, ...,n} má hranu {i,j\ ohodnocenou číslem max(í, j'). Nalezněte minimální kostru a spočtěte její váhu. (b) Řešte podobný problém s ohodnocením i + j. 2. Podobně jako jsme definovali problém minimální kostry, definujte problém, maximální kostry. Formulujte hladový algoritmus pro tento problém a ukažte, že najde optimální řešení. 3. Dokažte, že je-li w prosté zobrazení, je minimální kostra souvislého grafu G s ohodnocením w určena jednoznačně. 4. Dokažte, že je-li (V, E') kostra grafu G = (V, E), potom graf (V. E' U {e}), kde e je libovolná hrana z E\E'. obsahuje právě jedinou kružnici. 5. Dokažte, že je-li (V, E') kostra grafu G — (V, E), potom pro každé e e EXE' existuje e' G E' tak, že (V, (E' \ {e'}) U {e}) je opět kostra grafu G. (Tato vlastnost, tzv. výměnný axiom, je klíčová pro správnost hladového algoritmu.) 6. Nechť u> a w' jsou dvě ohodnocení hran grafu G = (V, E). Předpokládejme w(ei) < w(ť2) právě když w'(ei) < w'fa), pro libovolné hrany e.\, e% G E. Dokažte, že (V, E') je minimální kostra G pro ohodnocení w, právě když (V, E') je minimální kostra G pro ohodnocení U)'. (Tedy: řešení problému minimální kostry závisí jen na uspořádání vah na hranách grafu G.) 7. Uvažme n-bodovou množinu V v rovině. Definujme ohodnocení hran úplného grafu na V: ohodnocením hrany {x,y} bude vzdálenost bodů x a y. (a) * Ukažte, že maximální stupeň vrcholu v libovolné minimální kostře je nejvýš 6. (b) * Ukažte, že existuje minimální kostra, jejíž hrany se navzájem nekříží. 8* Nechť V je množina n bodů ve čtverci o straně 1. Dokažte, že existuje kostra na V s celkovou délkou hran nejvýš lO^/n (uvažujeme všechny kostry úplného grafu na V, a váha hrany {x, y} je euklidovská vzdálenost bodů x a y). Konstantu 10 lze podstatně zlepšit, ale nej-lepší možná hodnota není známa (jaký nejlepší odhad se podaří najít vám?). 9. Dokažte, že řešíme-li úlohu 5.3.6 popsaným algoritmem (přeznačujícím vždy menší ze sjednocovaných tříd), je celková složitost n — 1 operací sjednocení nejvýš O(nlogn). 10. Buď G = (V, E) graf, w nezáporné ohodnocení jeho hran. (a) * Každá množina E' C E navzájem disjunktních hran se nazývá párování v grafu G. Označme vw{G) maximální možnou hodnotu w(E') pro párování E' C E. Hladový algoritmus pro maximální párování funguje podobně jako algoritmus Kruskalňv pro maximální kostru, jenže zamítá hrany protínající některou dříve vybranou hranu. Ukažte, že takový algoritmus vždy najde párování váhy nejméně vw(G)/2. (b) Ukažte, že odhad v (a) nelze zlepšit, tj. že pro libovolné a > \ existuje zadání, pro nějž hladový algoritmus najde párování váhy menší než o: vw(G). 11. Množinu C C £ v grafu G = (V, E) nazveme hranovým, pokrytím, pokud každý vrchol v e V je obsažen aspoň v jedné hraně e G C. Hledejme malé hranové pokrytí hladovým algoritmem (dokud existuje hrana, pokrývající dva dosud nepokryté vrcholy, vybereme libovolnou takovou, jinak libovolnou hranu pokrývající jeden dosud nepokrytý vrchol). Ukažte, že velikost takto nalezeného hranového pokrytí je vždy (a) nejvýše dvojnásobek velikosti optimálního pokrytí, (b) ** dokonce nejvýš | velikosti optimálního pokrytí. 12.** Množinu D C V v grafu G = (V, E) nazveme dominující, pokud Uee-E- enD^m e = ^■ Hledejme malou dominující množinu hladovým algoritmem (vždy vybereme vrchol, který je spojen s největším počtem dosud nepokrytých vrcholů). Ukažte, že pro každé číslo C existuje graf takový, že \Du\ > C\Dm\, kde D h je dominující množina 180 Kapitola 5: Stromy vybraná hladovým algoritmem a Dm je nejmenší dominující množina. 5.4 Jarníkův algoritmus a Borůvkův algoritmus Název „Jarníkův algoritmus", ani v poangličtěné podobě, anglickému nebo americkému čtenáři nejspíš mnoho neřekne, a to i když příslušný algoritmus ve skutečnosti zná - zná ho totiž pod jménem Primův algoritmus. Protože však Jarník bezprostředně reagoval na průkopnickou Borůvkovu práci již v roce 1930 (Primová práce je z roku 1957) a protože jeho postup je elegantní a precizní (jako veškerá Jarníkova matematická produkce), domníváme se, žc jc na čase vrátit algoritmu jeho pravé jméno. 5.4.1 Algoritmus (Jarníkův algoritmus). Je dán souvislý graf G = (V, E) s n vrcholy, m hranami a nezáporným ohodnocením hran w. Budeme postupně vytvářet množiny vrcholů vq, ví,. .. C V a množiny hran £<).E\.... C E, přičemž Eo = 0 a Vo = {v}, kde v je libovolně zvolený vrchol. Jsou-li již V_i a Ei-i vytvořeny, uvážíme množinu F,; všech hran {■'V//..} G E(G), kde Xi G V-i a Ví G V \ V-i- Pokud F, = 0, algoritmus končí (grafem (Vt, Et) = T). Jinak zvolíme hranu e.,; G Fí, jejíž váha je nejmenší mezi všemi hranami Fj, a položíme V = V-i U {w}, Ei = /•... i U {e,,}. 5.4.2 Tvrzení (Správnost Jarníkova algoritmu). Jarníkův algoritmus nalezne minimální kostru pro každý souvislý graf G s libovolným ohodnocením w. Důkaz. Graf T vypočteným Jarníkovým algoritmem je strom, protože je souvislý a má správrrý počet vrcholů a hran. Má-li n vrcholů, potom je to kostra. Předpokládejme opak, nechť V(T) ^ V. Poněvadž G je souvislý, existuje aspoň jedna hrana spojující nějaký vrchol z množiny V(T) s nějakými vrcholem mimo V(T). Tudíž množina Fj v posledním kroku algoritmu nemohla být prázdná a algoritmus nemohl skončit. Tento 5.4 Jarníkův algoritmus a Borůvkův algoritmus 181 spor dokazuje, že algoritmus najde nějakou kostru grafu G, a zbýrvá ověřit její minimalitu. Označme E' množinu hran kostry T, a nechť pořadí, v němž byly hrany E' algoritmem vybrány, je e±, 62,..., e-n-l- Předpokládejme pro spor, že T není minimální kostra.. BuďT" nějaká minimální kostra. Symbolem k(T') označme index k takový, že hrany ei,<=2, • • • ,ek náležejí do E (ľ1), ale e^+x UŽ nikoliv. Vyberme mezi všemi minimálními kostrami takovou, pro niž je tento index k maximální, a označme ji T = (V. E). Nyní uvažme ten okamžik algoritmu, kdy byla ek+i vybrána do T. Nechť 7fc = (V&, Ek) je strom tvořený hranami &\,..., Potom ek+i Je tvaru {x, y}, kde x G V(T^) a y £ V(T^). Podívejme se na graf T + efe+i. Ten obsahuje nějakou kružnici C (neboť jc souvislý a má více než n — 1 hran), a C musí nutně obsahovat hranu f>_ i (viz též cvičení 5.3.4). Kružnice C sestává z hrany e^+i = {x,y} a z cesty F z vrcholu x do y v kostře Ť. Alespoň jedna hrana cesty P má jeden vrchol v množině 14 a druhý vrchol mimo V- Označme e některou takovou hranu. Zřejmě e ^ efc+i, a dále víme e k(T). Vzniklý spor s volbou T dokazuje tvrzení 5.4.2. □ Poznámka. Detaily právě probraného Jarníkova algoritmu se dají navrhnout tak, že pracuje v čase 0(n + m). Borůvkův algoritmus. Na závěr zmiňme ještě algoritmus, který byl historicky prvním postupem pro řešení problému minimální kostry. Jak už to bývá, tento postup je složitější - jak Kruskalův, tak (zvláště) Jarníkův algoritmus jsou koncepčně jednodušší. V poslední době se však právě 182 Kapitola 5: Stromy 5.4 Jarníkův algoritmus a Borůvkův algoritmus 183 14 •—A T P Obrázek 5.5: K důkazu správnosti Jarníkova algoritmu. Borůvkův algoritmus stal koncepčním základem nejrychlejšího známého algoritmu pro problém minimální kostry [17]. Tento algoritmus najde minimální kostru v čase 0(n + m), kde n je počet vrcholů a m počet hran sítě. Je poměrně složitý a používá ještě řadu dalších myšlenek (do nichž sc zde ovšem pouštět nebudeme). 5.4.3 Algoritmus (Borůvkův algoritmus). Je dán graf G — (V, E) s ohodnocením hran w. Předpokládáme navíc, že různým hranám, jsou přiřazena různá čísla, tj. že funkce w je prostá. (Tento předpoklad není příliš omezující; každé ohodnocení můžeme libovolně malými změnami některých vah převést na prosté ohodnocení, a váha minimální kostry se přitom změní libovolně málo.) Algoritmus postupné vytváří množiny hran Eq,E\,... C E, přičemž /•!, 0. Předpokládejme, že jsme již spočítali množinu a nechť (Ví. V*2,..., Vt) je rozklad množiny V podle komponent souvislosti grafu (V,Ei-i) (přísně vzato, měl by tento rozklad mít ještě index i, protože bude v každém kroku jiný, ale pro zjednodušení zápisu index i vynecháme). Pro každou třídu Vj tohoto rozkladu vyhledáme hranu = ••'>.'/,} (kde :3 e Vj) y j ^ Vj), jejíž váha je minimální mezi hra- nami tvaru {x,y}, x G Vj, y G V \ Vj (přitom se může stát e j = Bj> pro j ^ j'). Definujeme E( = Eí-\ U {ei,...,et}. Algoritmus končí, má-li graf (V, E i) jedinou komponentu. Algoritmus by sc také mohl nazývat bublinkový. Graf G pokrýváme souborem „bublinek" (kterých je jak borůvek v lese). Nacházíme mezi nimi nejkratší spojení a každé takové spojení vede k tomu, že sc bublinky spojí v jednu. Nebudeme dokazovat správnost algoritmu. Ukážeme pouze, že zkonstruovaný graf T = (V, E1) je skutečně strom. Podle definice je tento graf souvislý; stačí tedy ukázat, že nemá kružnici. Předpokládejme pro spor, že v nějakém kroku i kružnice vznikla. To znamená, že existují navzájem různé indexy j(l),j(2),... ,j(k), pro něž platí xm ^ V?(2)' VXD e vj(2) y-j(k-i) e vj(k) vm e v'j(i)- Vzhledem prostotě w a k volbě hran ey — {x,j,y.j} dostáváme následující nerovnosti: TO je však spor, a Borůvkův algoritmus tedy nalezne kostru grafu G (ve skutečnosti nalezne minimální kostru). □ Příklad. Uvažme následující síť (ohodnocení jsou připsána k příslušným hranám): 8 2 16 12 13 5 4 10 6 9 17 3 1 15 14 11 Jarníkův algoritmus použitý na tuto síť proběhne takto (začínáme v levém horním rohu): 184 Kapitola 5: Stromy 5.4 Jarníkúv algoritmus a Borůvkův algoritmus 185 r Kruskalův algoritmus by probíhal v 17 krocích (ale jenom v 10 z nich by přibyly hrany kostry). Borůvkův algoritmus je oproti tomu krátký: V každém kroku však musíme vykonat více práce. Cvičení 1* Uvažme takovýto algoritmus pro hledání minimální kostry: Vstupem je souvislý graf g = (v, E) s ohodnocením w. Položíme Eq = 0. Nechť Ej-i bylo již definováno. Zvolme libovolně některou komponentu Ví grafu (V,Ei i), vyberme hranu minimální váhy s jedním vrcholem ve Ví a druhým mimo Ví, a položme E{ = Ei-i U {e,}. Dokažte, že (V, En-i) je minimální kostra (upravte důkaz správnosti Jarníkova algoritmu). Ověřte, že tím se naráz dokazuje správnost jak Kruskalova, tak Jarníkova algoritmu. 2* Uvažme následující algoritmus. Vstupem je souvislý graf g = (V, E) s ohodnocením hran w. Seřadíme hrany do pořadí C\,..., em tak, aby u>{ci) > ■ • • > w(em). Položíme Eo = E, a / Ek-i \ {e»} je-li (V, E^L \ {er}) souvislý graf jinak. Dokažte, že (V,Em) je minimální kostra. g. 3* Dokažte správnost Borůvková algoritmu. 4. Navrhněte podrobnosti Jarníkova algoritmu tak, aby měl časovou složitost 0((m + n)logn) (toto cvičení patrně vyžaduje aspoň základní znalost datových struktur). 5. (a) Ukažte, že Borůvkův algoritmus má nejvýš O(logn) fází, tj. že (V, Ei) je souvislý graf již pro nějaké i — O(logn). (b) Navrhněte podrobnosti Borůvková algoritmu tak, aby měl časovou složitost 0((m + n) log jí). 6 Rovinné kreslení grafů 6.1 Úvod do rovinných grafů Grafy je výhodné kreslit. Ostatně většina grafů v tomto textu je zadána obrázkem (místo seznamu vrcholů a hran nebo nějakého jiného způsobu vhodného pro počítače). Dosud jsme však studovali vlastnosti grafu, které závisely pouze na vztahu jeho množiny vrcholů a množiny hran, a nikoli na tom, jak byl graf znázorněn. Obrázky měly funkci pouze pomocnou. V teto kapitole podrobíme bližší analýze právě kreslení grafů. Nakreslení grafu se nazývá rovinné, pokud se v něm žádné hrany nekříží. Rovinný graf je graf, který má nějaké rovinné nakreslení. Rovinný graf je snadné poznat, když dostaneme jeho rovinné nakreslení. Pokud ovšem máme graf nakreslený třeba takto, je to poněkud složitější. Než otočíte stránku, schválně zkuste najít rovinné nakreslení. 188 Kapitola 6: Rovinné kreslení grafů 6.2 Proč a jak dcfínovat rovinné nakreslení grafu 189 Zde je tentýž graf překreslený bez křížení hran: o 4 3 Rovinné nakreslení je výhodné pro znázornění grafu - při ncrovin-ném nakreslení by se například průsečíky hran mohly plést s vrcholy. Při některých aplikacích, kdy má nakreslení grafu fyzikální význam, může být křížení hran přímo nežádoucí - třeba při návrhu j ednovrstev-ných integrovaných obvodů. Obecně se dá říct, že rovinné grafy tvoří jednu z nejdůležitějších tříd grafů, a to jak v teorii, tak v praxi (další takovou významnou třídou jsou stromy, které jsme probírali v předchozím) . Setkání s geometrií. Pojem rovinného grafu je definován geometricky, pomocí kreslení v rovině, a tudíž teorie rovinných grafů není „čistou" diskrétní matematikou (na rozdíl od studia eulerovských grafů, stromů a řady dalších tříd grafů). Proto má trochu neobvyklé, mezioborové postavení. Důkazy základních výsledků o rovinných grafech mají zpravidla kombinatorickou část a geometrickou část. V kombinatorické části se pracuje podobně jako v jiných odvětvích teorie grafů, například se postupuje indukcí podle počtu hran či vrcholů, počítají se stupně vrcholů a podobně. V geometrické části se dokazují výsledky o kreslení v rovině, které se většinou zdají být zřejmé z obrázku, nicméně jejich logicky přesné důkazy jsou někdy dlouhé a složité. V této kapitole nejdříve zavedeme přesnou definici nakreslení grafu a pojednáme o Jordánově větě o kružnici, což je jedno ze zmíněných zřejmě vypadajících tvrzení s nesnadným důkazem. Ukážeme, že pokud se omezíme na kreslení lomenými čarami, je Jordánova věta zvládnutelná i prostředky středoškolské geometrie. Teprve potom se pustíme do základních vět o rovinných grafech. Uvicem 1. Najděte (a) rovinný graf, jehož všechny vrcholy mají stupeň 5, (b) * pro všechna přirozená čísla n souvislé grafy jako v (a) s více než n vrcholy. 2* Buď G rovinný eulerovský graf, a mějme nějaké jeho rovinné nakreslení. Ukažte, že existuje uzavřený eulerovský tah, který v daném nakreslení nikde nekříží sama sebe (může se dotýkat ve vrcholech, ale nikdy nepřejde „na druhou stranu"). 6.2 Proč a jak definovat rovinné nakreslení grafu Nerovinný graf? Pokud chceme dokázat, že nějaký graf je rovinný, stačí předvést jedno konkrétní rovinné nakreslení. Možná ho nebude snadné najít, ale když už ho budeme mít, mělo by přesvědčit každého soudného člověka, dokonce i hodně skeptického. Jak ale někoho přesvědčit, že určitý graf rovinný není? Uvažme například úplný bipartitní graf na 3 + 3 vrcholech: Rádi bychom dokázali, že není rovinný - to je matematická formulace problému se třemi domy a třemi studnami z oddílu 1.1. Když budete zkoušet kreslit ^3,3 bez křížení hran, po několika pokusech to pravděpodobně vzdáte a uvěříte, že to nejde. Určitě nejste jediní nakreslit Kz,z bez křížení hran se zatím nepodařilo nikomu. To se ale v matematice nepovažuje za důkaz. Co kdyby třeba nějaká mimozemská či nadpřirozená bytost, mnohem chytřejší než všichni lidé. uspěla tam, kde lidé selhali, a nakreslila Ä'3.3 bez křížení hran? Možná nějakým způsobem pro nás zcela nepředstavitelným. Také bychom měli mít na paměti, že se lidem často podaří věci, které byly dříve považovány za nemožné nebo nemyslitelné, jako postavení létajícího stroje, uběhnutí 100 m pod 10 vteřin, nošení bikin na veřejnosti nebo snížení stavů některých ryb v oceánech na desetinu. Navíc jevy zdánlivě nemožné, nebo 190 Kapitola 6: Rovinné kreslení grafů 6.2 Proč a jak definovat rovinné nakreslení grafu 191 aspoň v rozporu s představivostí, byly odhaleny i v oblasti rovinné geometrie: například spojitá, křivka procházející všemi body roviny, či spojitá reálná funkce, která není diferencovatelná v žádném bodě, nebo množina („zahrada") v rovině libovolně malé plochy, ve které lze obrátit úsečku jednotkové délky („žebřík"; během obracení se s úsečkou smí všelijak posunovat, ale musí zůstat stále uvnitř množiny).1 Abychom věděli jistě, že Ks,s rovinný není, potřebujeme matematický důkaz, který nějak vezme v úvahu všechna možná nakreslení najednou. A hned narazíme na první citlivý bod: co přesně nakreslení grafu je? Co je nakreslení grafu? Z mnoha již uvedených obrázků by čtenář měl mít dobrou představu, co se nakreslením grafu myslí. V části 4.1 jsme uvedli i neformální definici: vrcholům grafu se přiřadí různé body v rovině a hrany se kreslí jako rovné nebo křivé čáry spojující odpovídající dvojice bodů. S takovou „definicí" nejspíš vystačíme při vlastním kreslení grafů, ale pokud potřebujeme doopravdy dokázat, že nějaký graf rovinný není, narazíme na problém: čára je pojem neformální, pro nějž jsme matematickou definici nepodali. Pro ilustraci možných obtíží si uvědomíme, že křivá čára se určitě může vlnit jako na levém obrázku, ale může se například vlnit nckonečněkrát, jak je naznačeno na obrázku pravém? Může vypadat třeba jako Kochova křivka, což je vhodně definovaná limita nekonečné posloupnosti stále složitějších lomených čar jako na obrázku? Musíme povolený způsob kreslení hran definovat exaktně, a to na základe jiných přesných matematických pojmů. 1 Pokud by vás tyto příklady zajímaly, najdete je pomocí klíčových slov Peanova křivka, nikde, nedifercncovatelná funkce, a Kakeyůu-Bezikovičův problém. V této sekci podáme dokonce dvě různé definice. Každá popisuje jiný matematický pojem, ale obě docela dobře vystihují intuitivní pojem „křivé čáry". Pro logicky přesné budování teorie rovinných grafů se tak naskýtají dvě cesty, podle toho, ze které z těchto dvou definic vyjdeme. Kreslení oblouky: cesta přirozená, elegantní, ale trnitá. Intuitivní představu křivé čáry jako něčeho, co vznikne spojitým pohybem tužky po papíře, odráží následující pojem oblouku. 6.2.1 Definice. Oblouk je podmnožina roviny tvaru 7 = /([0,1]) = {/(.x); x e [0,1]}, kde f : [0,1] —> R2 je nějaké prosté spojité zobrazení2 uzavřeného intervalu [0,1] do roviny. Přitom body /(O) a /(l) se jmenují koncové body oblouku 7. Tato definice, ač může vypadat nepřístupně, má velmi blízko k pojmu kreslení. Interval [0,1] si můžeme představovat jako časový úsek, v němž kreslíme čáru z bodu /'(0) do bodu /(l). Potom f(t) vyjadřuje polohu hrotu tužky v čase t. Spojitost zobrazení / znamená souvislý pohyb po papíře, a prostota vyjadřuje, že čára nikde sama sebe ne-protíná. Na základě pojmu oblouku můžeme přesně definovat i rovinné nakreslení grafu. 6.2.2 Definice. Nakreslením grafu G = (V. E) rozumíme přiřazení, které 2Připomeňme. že spojitost / znamená následující: Pro všechna xo 6 [0,1] a pro všechna e > 0 existuje 5 > 0 takové, že pro všechna x € [0,1] splňující \x — xo\ < ô je vzdálenost bodů f(x) a f(xo) menší než e. Vzdáleností se myslí obvyklá eukleidovská vzdálenost: bod o souřadnicích {x\,yi) má od bodu o souřadnicích (3:2,2/2) vzdálenost y/(x\ - x2)2 + (yi - í/2)2- 192 Kapitola 6: Rovinné kreslení grafů 6.2 Proč a jak defínovat rovinné nakreslení grafu 193 - každému vrcholu v grafu G přiřazuje bod b(v) roviny - a každé hraně c = {u. v} G E přiřazuje oblouk j(e) v rovině s koncovými body b(u) a b(v). Přitom předpokládáme, žc - zobrazení b je prosté (různým vrcholům odpovídají různé body) - a žádný z bodů tvaru b(v) není nekoncovým bodem žádného z oblouků 7(e) (hrany se vyhýbají vrcholům). Nakreslení grafu G = (V, E), v němž oblouky odpovídající různým hranám mají společné nanejvýš koncové body, se nazývá rovinné nakreslení. Graf G je rovinný, má-li alespoň jedno rovinné nakreslení. Když hovoříme o grafech a jejich nakresleních, často nerozlišujeme mezi hranou e a obloukem j(e), který hraně odpovídá v uvažovaném nakreslení. Mluvíme tedy někdy o hraně v nakreslení, i když samozřejmě myslíme příslušný oblouk. Nemělo by to však způsobit žádné nedorozumění. Dnešní matematika je celá vybudována z několika primitivních pojmů a axiomů teorie množin - nebo přinejmenším se většina matematiků snaží ji takovou mít. Tak například pojem „roviny" se modeluje jako kartézský součin R x R, přitom reálná čísla se zavádějí jako jisté podmnožiny čísel racionálních, racionální čísla se vytvářejí z čísel přirozených, a ta se konečně definují jako jisté speciální množiny vybudované z množiny prázdné. (To je v každodenní matematice vidět málokdy, ale když se podíváte do nějaké knihy o základech matematiky, určitě to tam najdete.) Předchozí definice ilustruje, že i pojem nakreslení grafu se dá zavést takto logicky přesně a lze jej tudíž zahrnout do logické konstrukce matematiky. Tak, teď máme přesnou definici rovinného grafu. Jak se na jejím základě dokáže, že třeba graf x33 není rovinný? Přesný důkaz vyžaduje některé pojmy a výsledky týkající se křivek v rovině, které patří do odvětví matematiky zvaného topologie. (Topologie se dá považovat za součást geometrie, pokud geometrii pojmeme dostatečně široce.) Topologie je krásný a důležitý obor matematiky, ale v běžných úvodních kurzech matematiky sc z ní obvykle probere jen velmi málo, takže bychom museli zavádět poměrně rozsáhlý a složitý technický aparát. Navíc, jak už jsme říkali, důkazy některých „intuitivně zřejmých" tvrzení jsou překvapivě dlouhé a obtížné (o nejdůle-žitějším z takových tvrzení budeme mluvit v příští sekci). Potíže v právě zmíněných důkazech pramení hlavně ze značné obecnosti pojmu oblouk. Teorii rovinných grafů lze vystavět i jiným, technicky o dost jednodušším způsobem, kdy se omezíme na nakreslení pomocí lomených čar (tedy přinejmenším pokud bereme v úvahu jen konečné grafy). Kreslení lomenými čarami: cesta méně přirozená, ale snazší. Uvažme lomenou čáru spojující dva body x a y v rovině, která je tvořena konečným počtem úseček a sama sebe neprotíná. Viz příklady na obrázku: Pro stručnost takové lomené čáře říkejme lomenice. Lomenice je speciálním případem oblouku, ale protože sestává z konečně mnoha úseček, je to podstatně jednodušší matematický objekt než oblouk. Nyní můžeme definovat lomenicové nakreslení grafu tak, že v definici 6.2.2 všude nahradíme oblouky loinenicemi. Podobně můžeme zavést lomenicové, rovinný graf a lomenicové analogie dalších pojmů. Z praktického hlediska není mezi kreslením obecnými oblouky a kreslením loinenicemi rozdíl. Nepoznáme, jestli je oblouk nakreslený na papíře opravdu zakřivený nebo jestli je ve skutečnosti tvořen mnoha maličkými úsečkami - nemluvě o tom, že třeba oblouk v tištěném obrázku je udělán z drobných teček a na ještě mikroskopičtější úrovni se každá kresba rozpadá na jednotlivé atomy. Z teoretického hlediska je příjemný následující výsledek. 194 Kapitola 6: Rovinné kreslení grafů 6.3 Jordánova věta o kružnici 195 6.2.3 Fakt. Z každého rovinného nakreslení grafu (tj. nakreslení pomoci oblouků) lze získat i lornenicově rovinné nakreslení téhož grafu. Tudíž třída všech lornenicově rovinných grafů splývá s třídou všech rovinných grafů. Důkaz zde podávat nebudeme. Dá se najít například v článku [29] a čtenář, znalý základů matematické analýzy, se o něj může sám pokusit ve cvičení 1. Je tedy lepší definovat rovinné grafy pomocí oblouků, nebo pomocí lomenic? Obě cesty mají výhody i nevýhody. Kreslení pomocí oblouků je definice elegantní, standardní a všeobecně přijatá. Všechna geometrická tvrzení, potřebná k vybudování teorie rovinných grafů, byla řádně dokázána a důkazy jsou k dispozici v literatuře, i když nejsou úplně jednoduché. Této definice se budeme držet i v naší kapitole o rovinných grafech. Kreslení pomocí lomenic je šikovné pro rychlé a přitom logicky přesné vybudování teorie rovinných grafů na elementární úrovni. V následující sekci předvedeme ukázku geometrického důkazu s lomenicemi. Cvičení 1* Dokažte fakt 6.2.3 podle následujícího návodu. Vezmeme rovinné nakreslení pomocí obecných oblouků a pro každý vrchol v v tomto nakreslení zvolíme kruh Kv se středem ve v a s poloměrem tak malým, že do Kv nezasahují žádné jiné vrcholy ani žádné hrany s výjimkou těch, které mají ve v koncový bod. Nyní části hran mimo sjednocení všech Kv aproximujeme lomenicemi (s využitím spojitosti oblouků) a části hran uvnitř Kv nahradíme úsečkami, spojujícími v s příslušným bodem hranice Kv. 6.3 Jordánova věta o kružnici Jordánova věta o kružnici praví, zhruba řečeno, že každé rovinné nakreslení grafové kružnice rozděluje rovinu na dvě oblasti. Než ji vyslovíme přesně, připravíme si několik definic. Topologická kružnice^ je uzavřená křivka v rovině neprotínající sebe sama. Formálně se topologická kružnice definuje jako oblouk, jehož koncové body splývají, tj. spojitý obraz intervalu [0,1] při zobrazení / : [0,1] —► R2, které je prosté až na to, že /'(O) = /(l). Nebude-li hrozit nedorozumění, budeme místo topologická kružnice říkat jenom kružnice. Dále buď U C R2 množina, zatím libovolná. Definujeme relaci ~ na U tak, že x ~ y právě tehdy, když existuje oblouk 7 C U s koncovými body x a y (tedy z y se dá dojít do x. aniž by se opustila U). Dá se ověřit, že ~ je ekvivalence (cvičení 1). Potom definujeme komponenty obloukové souvislosti množiny U jako třídy ekvivalence «. 6.3.1 Věta (Jordánova věta o kružnici). Nechť k je topologická kružnice. Potom její doplněk R2 \ k má právě dvě komponenty obloukové souvislosti, z nichž jedna je omezená množina a druhá neomezená množina, a k je hranicí4 obou těchto množin. Jak souvisí tato věta s rovinným kreslením grafů? Jednoduše -kružnicím v grafů odpovídají v rovinném nakreslení topologické kružnice. Přesněji řečeno, srovnáním definic je snadné ověřit, že je-li G graf a C C E (G) množina hran nějaké kružnice v G, potom pro každé rovinné nakreslení G tvoří sjednocení všech oblouků y(e) pro e e C topologickou kružnici. Obtíže s Jordánovou větou. Jordánova věta jistě nepatří k nej-těžším výsledkům v matematice, ale žádný opravdu jednoduchý důkaz pro ni znám není. Zatím nejjednodušší je patrně důkaz Thomassenův z článku [29]. Proč by měl být důkaz obtížný, když věta vypadá na první pohled tak zřejmá? Pro některé kružnice v rovině je tvrzení evidentní, Jiný používaný název je jednoduchá uzavřená křivka, nebo taky Jordánova křivka,. ^Hranice množiny x C R2 je množina všech bodů x £ R2, ke kterým existují iibovolně blízké body z X a zároveň i libovolně blízké body z R2 \ x. 196 Kapitola 6: Rovinné kreslení grafů 6.3 Jordánova věta o kružnici 197 pro jiné už méně evidentní (zkuste najít oblouk mezi body o a, •, který neprotíná kružnici): Nemohlo by se stát, že když bude kružnice ještě mnohem složitější, tvrzení platit přestane? Takové případy, kdy zdánlivě zřejmá tvrzení ve skutečnosti neplatí, se v matematice vyskytují. Ukazuje to například tvrzení uvedené níže, které Jordánovu větu trochu připomíná. V Jordánově větě o kružnici je rovina rozdělena do tří množin U\, ř/2, a X, kde X je topologická kružnice a U\ a f/2 jsou dvě komponenty obloukové souvislosti R2 \ X takové, že X je společnou hranicí U\ a (72. Uvažme teď následující tvrzení: „Rovina se nedá rozdělit na čtyři neprázdné množiny U\, f/2, í/3 a X tak, že hranice každé Í7< je přesně X (celá X a nic než X).u Intuitivně zřejmé? Možná, ale nepravdivé - takové množiny existují a krásné příklady se přirozeně vyskytují v komplexní dynamice v souvislosti s Newtonovou metodou a Juliovými množinami vhodných mnohočlenů. Pokud by to někoho zajímalo, doporučujeme tato hesla vyhledat třeba na Internetu. Tento příklad s Jordánovou větou o kružnici přímo nesouvisí, ale ilustruje, že v rovině se mohou dít věci, které by člověk na první pohled nečekal. Obecnou Jordánovu větu zde nedokážeme (nedokazuje se ani v jiných učebnicích teorie grafů - výjimkou potvrzující pravidlo je monografie Mohara a Thomassena, [22] o rovinných grafech). Dokážeme ale verzi pro kreslení lomenými čarami, což je i první a důležitý krok v důkazech obecné Jordánovy věty. Lomenicová Jordánova věta. Definujeme lomenicovou kružnici jako uzavřenou lomenou čáru, která je tvořena konečně mnoha úsečkami a sama sebe neprotíná. Lomenicová kružnice odpovídá grafové kružnice v lomenicovč rovinných nakresleních, podobně jako topologické kružnice odpovídá grafové kružnici v rovinných nakresleních. Abychom se úplně vyhnuli pojmu oblouku, nebudeme také používat ekvivalenci ~, ale zavedeme novou ekvivalenci £2. Pro danou množinu U C R2 a body x, y G R2 \ U platí x ~ y, právě když se x a y dají uvnitř U spojit lonienicí. Poznamenejme, že v případech, které nás budou zajímat, bude U otevřená množina (tj. s každým svým bodem obsahuje i nějaké jeho malé okolí) a v takovém případě jsou ekvivalence ~ a ~ totožné - viz cvičení 2. 6.3.2 Věta (Jordánova věta pro lomenicové kružnice). Nechť k je lomenicová kružnice. Potom její doplněk R2 \ k má právě dvě komponenty lomenicové souvislosti (tj. třídy ekvivalence ~_), z nichž jedna, je omezená množina a druhá, neomezená množina, a k je hranicí obou těchto množin. Důkaz. Podle definice sestává k z konečně mnoha úseček, které označíme u\,U2, ■ ■ ■ , w-ti v pořadí, jak následují za sebou při obcházení k. Koncové body úsečky Uj nechť jsou an a Oí+i, přičemž bod «.„.. t je totožný s :>) atd., a tedy i ind(x) = ind(y). Uvažme bod z, který se po úsečce xy pohybuje od x k y, a zkoumejme, jak se mění počet vhodných průsečíků polopřímky p-, s lomeni-covou kružnicí n. Tento počet se může měnit jedině v (konečně mnoha) okamžicích, kdy pz prochází některým z bodů a,;. Přesněji řečeno, počet vhodných průsečíků se mění jedině tehdy, když pz projde vrcholem tvořícím nevhodný průsečík, a při průchodu každým takovým nevhodným průsečíkem dva vhodné průsečíky buď přibudou, nebo ubudou. Tudíž počet vhodných průsečíků se může měnit jen o sudé číslo, a proto se ind(z) nemění vůbec. Takže ind(x) = ind(y). Nyní víme, že pokud x ~ y, potom ind(x) = ind,(y). Zbývá, dokázat, že funkce ind nabývá na R2 \ k, obou možných hodnot. Uvažme třeba střed m úsečky U], necht' xq je bod svisle nad m takový, že úsečka rnxQ protíná k jedině v bodě m, a podobně nechť yo je bod „těsně pod" m: Potom pyo má právě o jeden vhodný průsečík s n více než pXQ, totiž o m, a tedy ind(xo) ^ ind(yo). Tudíž ekvivalence ~ má aspoň dvě třídy a první část důkazu je hotova. Nejvýš dvě komponenty. Zvolíme kladné číslo e tak malé, že každá z úseček «,,• má od všech bodů oj, 0,1,..., o„ s výjimkou svých koncových bodů a, a o,i+í vzdálenost, větší než e. (Takové e existuje, protože každý bod a3, j 7^ i,i + 1, má od iii nějakou kladnou vzdálenost, a tedy stačí e vzít menší než minimum z konečně mnoha kladných vzdáleností.) Označme Ni množinu všech bodů x G R2 \ k, které mají od úsečky uí vzdálenost nejvýš e, a položme N = Nx U A*2 U • • ■ U Nn (to je 200 Kapitola 6: Rovinné kreslení grafů 6.4 Stěny a Eulerův vztah 201 vlastně ..otevřené e-okolí" množiny k). Každá Nj má tvar (protáhlého) stadiónu, z něhož je vyňata úsečka u,; a části úseček a tíj+i: Je důležité si všimnout, že díky volbě e žádná jiná z úseček Uj do množiny N.t zasahovat nemůže - to doporučujeme promyslet pořádně. Každá z množin JVj má dvě části, označené v obrázku Aj a £>,, které jsou lomenicově souvislé (kdybychom to chtěli dokázat opravdu přesně, mohli bychom prostředky eukleidovské geometrie explicitně popsat lomenici z maximálně tří úseček, která spojí dva dané body uvnitř Ai, a podobně pro Bi). Dále A.L i BL obě protínají jak Ni-\, tak Ni+i. Z toho dostáváme, že i množina N má nanejvýš dvě komponenty lomenicové souvislosti. Na závěr ověříme, že každý bod x G R2 \ k lze spojit s nějakým bodem y E N úsečkou neprotínající k. Pokud x G N, není co dokazovat. Pro x g" N vezmeme libovolný bod z G k. Když postupujeme po úsečce xz z bodu x směrem k z, narazíme na nějaký bod y z množiny N dříve, než na množinu k, poněvadž N obsahuje všechny body, které mají od k vzdálenost nejvýš e. Tudíž R2 \ k má skutečně nejvýš dvě komponenty lomenicové souvislosti a druhá část je hotova. Ještě zbývá maličkost: dokázat, že k tvoří hranici každé z komponent. Malou obměnou argumentu na konci první části se snadno ukáže, že je-li z libovolný vnitřní bod některé z úseček Ui, najdeme libovolně blízko k z jak body x splňující ind(x) = 0, tak body y splňující ind(y) = 1. Jak víme, takové body leží v různých komponentách R2 \ k. □ Cvičení 1* Buď U množina v rovině a nechť x,y,z G U jsou body takové, že x a y se dají spojit obloukem v U a y a z se dají spojit obloukem v U. Dokažte, že x a z se také dají spojit obloukem v U. (Na to jsou potřeba jisté základy z analýzy.) 2* (I toto cvičení patří spíše do analýzy.) Buď U C R2 otevřená množina. Dokažte, že pokud body x.y E U lze uvnitř U spojit obloukem, lze je spojit i lomenici. Návod: oblouk je potřeba pokrýt konečně mnoha kruhy, z nichž každý je obsažen v U. 6.4 Stěny a Eulerův vztah V dalším textu budeme rovinným nakreslením myslet rovinné nakreslení pomocí oblouků, jako v definici 6.2.2 (a jak to naznačují i naše obrázky grafů). Tato definice se používá ve všech pokročilejších pracích o rovinných grafech a je matematicky i esteticky elegantnější a pro praxi vhodnější než alternativní definice pomocí lomenic. Potom ale nemůžeme dokázat všechna tvrzení, potřebná v geometrické části důkazů, jako například Jordánovu větu - jak jsme už zmiňovali, nemáme na to prostor ani matematické prostředky. Proto budeme v dalším výkladu postupovat poněkud neformálně. Budeme spoléhat na intuitivní představu a některá (platná!) geometrická tvrzení budeme jen předkládat k uvěření (na rozdíl od všech ostatních kapitol této knihy, kde výsledky řádně dokazujeme). Naštěstí intuitivní představa v teorii kreslení grafů téměř nikdy nezavádí na scestí. Všechna potřebná tvrzení jsou také přesně dokázána v literatuře (viz například knihu Mohara a Thomassena [22]). Tyto důkazy do diskrétní matematiky vlastně ani nepatří a nejsou z jejího hlediska příliš zajímavé. Při studiu pokročilejší matematiky prakticky ani nelze projít důkazy všech potřebných výsledků. Dnešní matematik občas spoléhá na práci svých předchůdců, aniž by ji celou ověřoval. Zájemci o přesné vybudování základů teorie rovinných grafů se také mohou pustit alternativní cestou lomenicových nakreslení. Lome-nicovou Jordánovu větu jsme již dokázali a u tvrzení, která budeme probírat v dalším, zpravidla není nijak zvlášť těžké dokázat příslušné lomenicové verze. 202 Kapitola 6: Rovinné kreslení grafů 6.4 Stěny a Eulerův vztah 203 Stěny rovinného nakreslení. Nechť G — (V. E) je rovinný graf s daným rovinným nakreslením. Uvažme množinu všech bodů roviny, které neleží v žádném z oblouků nakreslení. Tato množina se rozpadne na konečný počet souvislých oblastí (představte si, že rovinu podél nakreslených hran rozstříháme): Tyto oblasti budeme nazývat stěny uvažovaného rovinného nakreslení grafu G. Oblast rozprostírající se do nekonečna, jako je S\ na našem obrázku, se nazývá vnější stěna (nebo neomezená stěna ) nakreslení a všechny ostatní stěny se nazývají vnitřní stěny (nebo omezené stěny). Definice stěny se dá formálně vyslovit na základě definic z částí 6.2 a 6.3. Pro dané rovinné nakreslení G = (V, É) buď X — UeeE7(e) sjednocení všech oblouků nakreslení. Potom stěny nakreslení jsou komponenty obloukové souvislosti množiny R2 \ X. Jordánovu větu o kružnici můžeme nyní přeformulovat následovně: každé rovinné nakreslení (grafové) kružnice má právě dvě stěny, přičemž sjednocení všech oblouků nakreslení je jejich společnou hranicí. Zdůrazněme ještě, že stěny jsou definovány pro dané 'rovinné nakreslení. Pro nerovirmé grafy se stěny většinou vůbec nedefinují, a ani pro rovinný graf bychom neměli mluvit o stěnách, aniž bychom zvolili nějaké rovinné nakreslení. Eulerův vztah. Existuje v podstatě jediný základní kvantitativní vztah pro rovinné grafy; dá se říci, že všechny ostatní výsledky tento vztah ve větší či menší míře využívají. Je to zároveň vztah nejstarší, Euler jej znal v roce 1752, a někdy se tvrdí, že pochází dokonce od Dc-scartesa z r. 1640. Původní tvrzení se ovšem týkalo mnohostěnů místo rovinných grafů (vztah mezi rovinnými grafy a mnohostěny probereme v části 6.6). 6.4.1 Věta (Eulerův vzorec). Nechť G = (V, E) je souvislý rovinný graf a nechť s je počet stěn nějakého rovinného nakreslení G. Potom platí \V\ - \E\ + s = 2. Speciálně počet stěn nezávisí na způsobu rovinného nakreslení. Předpoklad souvislosti G je důležitý. Jednoduchým zobecněním následujícího důkazu se dá ukázat, že když graf má k komponent souvislosti, potom |V| — |£ľ| + s — k + 1 (viz cvičení 1). Důkaz. Postupujme indukcí podle počtu hran grafu G. Je-li E = 0, potom G jakožto souvislý graf má jediný vrchol, tudíž \ V\ = 1 a s = 1, a vzorec platí. Nechť \E\ > 1; rozlišíme dvě možnosti: 1. Graf G neobsahuje kružnici. Potom je to strom a tedy máme \V\ — \E\ + 1 (viz větu 5.1.4). Přitom s = 1, jelikož rovinné nakreslení stromu má jedinou (neomezenou) stěnu. 2. Nějaká hrana e G E je obsažena v kružnici. V tom případě je graf G — e souvislý. Podle indukčního předpokladu pro něj platí Eulerův vzorec (přitom bereme nakreslení G — e, které vznikne z uvažovaného nakreslení G vymazáním hrany e). Hrana e v nakreslení G sousedí se dvěma různými stěnami S a 5", neboť kružnice obsahující e rozděluje rovinu na dvě části (podle Jordánovy věty o kružnici!). Tyto stěny se po vymazání e stanou stěnou jedinou. Takže vrácením hrany e zpět do nakreslení se počet hran i stěn zvýší o 1 a počet vrcholů se nemění, pročež Eulerův vzorec platí i pro G. □ O geometrické části důkazu. Právě uvedený důkaz je příkladem důkazu zčásti neformálního, kde používáme některá intuitivně zřejmá geometrická tvrzení, aniž bychom je přesně zdůvodnili. Všimněme si například, že z Eulerova vztahu jiné vyplývá, že rovinné nakreslení kružnice má právě dvě stěny, což je hlavní tvrzení Jordánovy věty o kružnici. Takže při opravdu přesném důkazu Kulérová vztahu se nemůžeme vyhnout dokazování této věty. 204 Kapitola 6: Rovinné kreslení grafů Dalším speciálním případem Kulérová vztahu je tvrzení, že rovinné nakreslení stromu má jen jedinou stěnu. To jsme přijali jako zjevné, ale ve skutečnosti není důkaz o mnoho lehčí než důkaz Jordánovy věty o kružnici. Navíc jsme indukční krok založili na skutečnosti, že hrana e obsažená v kružnici sousedí s právě dvěma stěnami. Pokud by celý graf sestával pouze z této kružnice, potom nám Jordánova věta o kružnici říká, že existují právě dvě stěny a e je částí hranice jich obou. Ale co když tam jsou mimo tuto kružnici další hrany? Nemohla by e třeba ležet na hranici tří (nebo nekonečně mnoha) stěn? Dále, i když e sousedí s právě dvěma stěnami, jak se tvrdí, proč se tyto po odstranění e spojí v stěnu jedinou? Jak jsme uvedli na začátku sekce, důkazy těchto tvrzení existují v literatuře (a pro matematika trochu zkušeného v topologii roviny nepředstavují zásadní problém). Řádně dokázat jejich lomenicové verze by po průpravě s lomenico-vou Jordánovou větou nemělo být příliš těžké a čtenář se může aspoň o některý z takových důkazů sám pokusit. Cvičení 1. Zobecněte důkaz věty 6.4.1 a dokažte, že pro jakékoli rovinné nakreslení grafu G = (V, E) s k komponentami souvislosti platí \V\ \E\ I / = fc + 1. 2* Dokažte, že každé lomenicové rovinné nakreslení stromu má jen jedinou stěnu (můžete se inspirovat druhou částí důkazu Jordánovy věty pro lomenicové kružnice). 6.5 Maximální počet hran rovinného grafu Velmi důležitou vlastností rovinných grafů je to, že mohou mít jen poměrně málo hran: rovinný graf na n > 3 vrcholech nikdy nemá víc než 3n — 6 hran. 6.5.1 Věta. (i) Nechť G = (V, E) je rovinný graf s aspoň třemi vrcholy. Potom \E\ < 3IVI -6. 6.5 Maximální počet hran rovinného grafu 205 (ii) Neobsahuje-li uvažovaný rovinný graf trojúhelník (tj. K3 jako podgraf) a má-li aspoň 3 vrcholy, potom \E\ < 2\V\ — 4. Následuje jeden důležitý a často využívaný důsledek této věty: 6.5.2 Důsledek. Každý rovinný graf má nějaký vrchol stupně nejvýš 5. Každý rovinný graf bez trojúhelníků má vrchol stupně nejvýš 3. □ První důkaz věty 6.5.1. Začneme částí (i) a po malé změně důkazu dostaneme také (ii). Zvolíme nějaké rovinné nakreslení grafu G. Rozlišíme dva případy: buď G neobsahuje žádné kružnice, nebo obsahuje kružnici aspoň jednu. V prvním případě je G strom nebo disjunktní sjednocení stromů (les), takže \E\ < \V\ — 1. Vzhledem k tomu, že pro všechna n > 3 máme n — 1 < 3n — 6, tvrzení (i) v tomto případě platí. V dalším tedy předpokládáme, žc G obsahuje aspoň jednu kružnici, a tedy jeho rovinné nakreslení má aspoň dvě stěny. Pro stěnu S uvažovaného rovinného nakreslení označme Es C E množinu těch hran grafu G, které leží na její hranici. Viz následující obrázek, kde jsou hrany z Es vytaženy tučně. Ted chceme ukázat, že každá stěna S má na hranici aspoň 3 hrany, tj. \Es\ > 3 (všimněme si, že v předchozím případě, G bez kružnice, by toto platit nemuselo - proto jsme onen případ diskutovali zvlášť). Zhruba řečeno, Es nemůže mít méně než 3 hrany, protože 2 hrany nestačí na oddělení S od ostatních stěn. Přesněji se to dá říct následovně. Když z uvažovaného rovinného nakreslení G vymažeme všechny hrany, které nepatří do Es, dostaneme rovinné nakreslení grafu Gs = 206 Kapitola, 6: Rovinné kreslení grafů 6.5 Maximální počet hran rovinného grafu 207 (V, Es), v němž je S stále stěnou (vymazání hrany totiž nemůže žádnou stěnu zmenšit a vymazání hrany mimo Eg nemůže ke stěně S ani nic přidat). Protože nakreslení grafu G mělo aspoň dvě stěny, má nakreslení grafu Gs také aspoň dvě stěny, a tudíž obsahuje kružnici. Každá kružnice má aspoň 3 hrany, a tedy skutečně \Eg\ > 3. Nyní nerovnosti \Eg\ > 3 sečteme přes všechny stěny S a dostaneme \E-s\ > 3s, kde s je počet stěn. Vzhledem k tomu, že každá hrana náleží jedné nebo dvěma stěnám, máme také Y2s \^s\ 5- 2\E\. Tedy platí nerovnost s 3, a tedy odhad \E\ < 2\V\ — 4 v tomto případě platí. V opačném případě, když G kružnici obsahuje, dostaneme \Es\ > 4 pro všechny stěny S. protože kružnice v Gs nemůže být trojúhelník. Potom místo (6.1) získáme nerov nost s < \\E\ a po dosazení za s do Eulerova vzorce spočítáme, že \E\ < 2\V\ — 4, jak jsme tvrdili. □ Druhý důkaz. Teď si ukážeme ještě jiný důkaz věty 6.5.1, který je sice delší než ten první, ale v jistém smyslu přirozenější a dokazuje i trochu silnější tvrzení. Začneme s výsledkem, který je zajímavý sám o sobě. 6.5.3 Tvrzení. Nechť G je 2-souvislý rovinný graf. Potom jc každá stěna v libovolném nakreslení grafu G ohraničena nějakou kružnicí grafu G, tedy množina hran ležících na hranici stěny tvoří kružnici v grafu G. Důkaz. Postupujeme matematickou indukcí podle počtu hran grafu G, přičemž použijeme tvrzení 4.7.5 - charakterizaci 2-souvislých grafů. Je-li G trojúhelník, potom tvrzení zřejmě platí (podle Jordánovy věty o kružnici). Nechť G = (V, E) je souvislý rovinný graf s aspoň 4 vrcholy. Podle tvrzení 4.7.5 buď existuje hrana e E E taková, že graf G' = G — e je 2-souvislý, nebo existuje 2-souvislý graf G' = (V, E') a hrana e G E' tak, že G = G'%e, kde % značí operaci dělení hrany. Protože G jc rovinný graf, je graf G' v obou případech opět rovinný. Protože graf G' je 2-souvislý, můžeme použít indukčního předpokladu. Každá stěna v libovolném rovinném nakreslení grafu G' je tedy ohraničena nějakou kružnicí grafu G'. Uvažme první případ, kdy G' = G — e, e = {v, v'}. Máme-li dáno libovolné rovinné nakreslení grafu G, dostaneme z něj vynecháním hrany e i rovinné nakreslení grafů G'. Vrcholy v a v' jsou v grafu G spojeny hranou e, a tedy leží na hranici nějaké stěny S v uvažovaném nakreslení G'. Označme ks kružnici v G' ohraničující stěnu S. Jak je vidět na následujícím obrázku, hrana e rozděluje S na dvě nové stěny S' a S": Stěny S' a S" jsou oblastmi kružnic k' U {e} a k" U {e}, kde k' a tz" jsou oblouky, které spojují v s v' a dohromady tvoří kružnici Kg. Tudíž jsou všechny stěny v libovolném rovinném nakreslení G ohraničeny kružnicemi, jak jsme tvrdili. Tím je dokončen indukční krok v prvním případě, kdy G = G' + e. Druhý případ je snazší: Jestliže G = G'%e a každá stěna G' je oblastí nějaké kružnice, potom G má tutéž vlastnost, jak plyne bezprostředně z definice operace dělení hrany. Tím je důkaz ukončen. □ 208 Kapitola 6: Rovinné kreslení grafů Z tvrzení 6.5.3 vyplývá, že se 2-souvislé rovinné grafy chovají svým způsobem lépe než rovinné grafy obecné. Ale ještě mnohem lépe se chovají vrcholově 3-souvislé rovinné grafy. Ty mají v podstatě jednoznačné nakreslení na sféře (až na spojitou deformaci sféry a zrcadlem) a v mnoha směrech se s nimi lépe pracuje. Když se dokazují věty nebo navrhují algoritmy týkající se rovinných grafů, je většinou vhodné nejprve vyřešit 3-soirvislc grafy a potom se snažit zpracovat obecný případ s využitím rozkladu daného grafu na 3-souvislé části. To zde ale nebudeme dále rozebírat. Říkáme, že G = (V, E) je maximální rovinný graf, pokud G je rovinný graf, ale po přidání jakékoli hrany graf rovinný být přestane, tj. pro žádnou e G (2) \ E není G + ě rovinný. Druhý důkaz věty 6.5.1 je založený na následujícím lemmatu: 6.5.4 Lemma. Nechť G je maximální rovinný graf na n > 3 vrcholech. Potom je každá stěna (včetně vnější) ve všech rovinných nakresleních G trojúhelník (tj. je ohraničena, kružnicí délky 3). Proto se maximální rovinné grafy někdy nazývají také triangulace. Než začneme lemma dokazovat, podíváme se, jak z něj vyplývá věta 6.5.1 (i). Postupuje se stejně jako v závěru prvního důkazu. Vzhledem k tomu, že chceme omezit počet hran shora, můžeme předpokládat, že daný rovinný graf G = (V, E) je maximální rovinný (pokud ne, můžeme hrany přidávat, dokud graf maximální rovinný nebude). Potom uvážíme nějaké rovinné nakreslení G a písmenem 6' označíme počet stěn. Protože všechny stěny jsou trojúhelníky, patří každá hrana do právě dvou stěn a 2\E\ = lis. Protože je G (zjevně) souvislý, platí pro něj Eulerův vzorec \E\ = |Pj + s — 2, z čehož po dosazení s = ^\E\ dostaneme \E\ = 3|Vj — 6. Všimněte si, že jsme dokázali dokonce víc než jen větu 6.5.1 (i): víme ještě také, že nerovnost \E\ < 3\V\ — 6 platí s rovností právě tehdy, když je G maximální rovinný graf. Důkaz lemmatu 6.5.4. Nejdříve dokážeme (sporem), že maximální rovinný graf musí být vrcholově 2-souvislý. Pokud je G nesouvislý, můžeme zřejmě dvě různé komponenty souvislosti spojit novou hranou, takže G není maximální rovinný. 6.5 Maximální počet hran rovinného grafu 209 Pokud je G souvislý, ale není 2-souvislý, je v něm nějaký vrchol v, po jehož odstranění se graf rozpadne na komponenty souvislosti V\, V2, ■ ■ ■, V/,., k > 2 (zde využíváme předpoklad, že G má aspoň tři vrcholy!). Zvolíme dvě hrany e a é, které v spojují se dvěma různými komponentami souvislosti Ví, Vj tak, že e a e' jsou nakresleny vedle sebe (v cyklickém uspořádání okolo v). Jejich koncové vrcholy se dají spojit novou hranou ě, aniž by se narušila rovinnost: Maximální rovinný graf s aspoň třemi vrcholy je tedy 2-souvislý a podle tvrzení 6.5.3 je každá stěna ohraničena kružnicí. Zbývá dokázat, že každá stěna je ohraničena trojúhelníkem. Předpokládejme pro spor, že hraniční kružnice nějaké stěny S má t > 4 vrcholů v\,... ,Vf Není-li vrchol V\ spojen hranou s vrcholem V3, můžeme hranu {«1,^3} přikreslit dovnitř stěny S. Je-li {^1,^3} € E(G), musí jít nakreslení této hrany vnějškem stěny S. Proto {v%, va} ^ E(G) (jinak by {v-y, v$} i {1-2, V4} musely obě být vně stěny S a křížily by se). Můžeme tedy přikreslit hranu {«2,^4} dovnitř stěny S, viz obrázek: □ Druhý důkaz věty 6.5.1(ii). Tentokrát definujeme maximální rovinný graf bez trojúhelníků jako graf, který je rovinný a neobsahuje trojúhelník, ale přidáním libovolné hrany vznikne trojúhelník, nebo graf přestane být rovinný, nebo obojí. 210 Kapitola 6: Rovinné kreslení grafů Stačí dokázat, že každá stěna v libovolném rovinném, nakresleních maximálního rovinného grafu G bez trojúhelníků je ohraničena kružnicí délky aspoň 4 - potom budeme vědět, že 2\E\ < 4s a po stejném výpočtu z Eulerova vzorce jako v důkazu části (i) budeme hotovi. Opět ověříme, že G je (vrcholově) 2-souvislý. Můžeme zase předpokládat, že G je souvislý. Není-li G 2-souvislý, má nějaký vrchol v, jehož odstraněním se G rozpadne na komponenty V],..., Výt, k > 2. Jistě můžeme přidat nějakou hranu jdoucí mezi různými komponentami tak, aby G zůstal rovinný; pro některé hrany by tím však mohl vzniknout trojúhelník - to v případě, že bychom spojovali vrcholy, které oba sousedí s v. Musíme tedy postupovat obezřetněji. Jsou-li všechny komponenty Ví jednobodové, je G strom, a pro něj vzorec platí. Předpokládejme tedy, že |Vi| > 2, a uvažme stěnu S takovou, která, má na hranici nějaký vrchol V\ i vrchol nějaké jiné komponenty Ví jako na obrázku: v (Na tomto obrázku je S vnější stěna, i = 2 a komponenta V% má jediný vrchol.) Komponenta V\ ale musí mít na hranici stěny S aspoň jednu hranu, nazvěme ji {t'i,^], a protože G nemá trojúhelník, nemohou oba vrcholy v\ i v% být zároveň spojeny s v. Takže můžeme uvnitř S spojit nějaký vrchol Ví s v\ nebo s v-2, aniž bychom vytvořili trojúhelník. Tudíž můžeme předpokládat, že G je 2-souvislý graf. V takovém případě je každá stěna ohraničena kružnicí. Každá taková kružnice má délku aspoň 4 a jsme hotovi. □ Typický chybný důkaz. Řekněme, že máme rovinné nakreslení grafu s n > 3 vrcholy, v němž je každá stěna ohraničena třemi hranami, a 6.5 Maximální počet hran rovinného grafu 211 chceme dokázat, že takový graf má 3n—6 hran. Studenti někdy přicházejí s (chybným) řešením podobným následujícímu. *** Chybně *** Postupujeme indukcí podle n. Pro n = 3 se jedná o jediný trojúhelník s třemi hranami a třemi vrcholy, tvrzení tedy platí. Dále předpokládejme, že tvrzení platí pro všechny rovinné grafy G na n vrcholech. Do takového grafu G přidáme vrchol do nějaké stěny a spojíme jej s třemi vrcholy té stěny jako na následujícím obrázku: Tak dostaneme graf G' na n + 1 vrcholech. Počet hran grafu G je podle indukčního předpokladu 3« - G a přidali jsme 3 hrany nové. Tudíž G' má 3(tí+ 1) - 6 hran a tvrzení platí i pro grafy na n ! 1 vrcholech. *** konec chybného důkazu *** Problém je ale v tom, že ne všechny možné rovinné grafy G' na n + 1 vrcholech a s trojúhelníkovými stěnami se dají zkonstruovat z nějakého G pomocí uvedené operace. Například všechny vrcholy grafu pravidelného osmistěnu (viz obr. 6.1 na str. 216) mají stupeň 4, kdežto v grafech vytvořených uvedenou operací z menších grafů je vždy aspoň jeden vrchol stupně 3. Cvičení 1. Ukažte, že odhad \K\ < 2\V\ - 4 pro rovinné grafy bez trojúhelníků je obecně nejlepší možný. Tedy pro nekonečně mnoho n zkonstruujte rovinné grafy bez trojúhelníků s n vrcholy a 2n — 4 hranami. 2. (a) Ukažte, že libovolné nakreslení rovinného grafu s n > 3 vrcholy má nejvýš 2n — 4 stěn. (b) Ukažte, že pokud uvažovaný graf navíc neobsahuje trojúhelníky, je počet stěn maximálně n — 2. 3. Řádně odvoďte důsledek 6.5.2 z věty 6.5.1. 4. Dokažte, že rovinný graf, jehož každý vrchol má stupeň aspoň 5, musí mít nejméně 12 vrcholů. 212 Kapitola 6: Rovinné kreslení grafů 6.5 Maximální počet hran rovinného grafu 213 5. Množinou vrcholů úplného k-partitního grafu Kni „2.....„ je sjednocení V = I4ŮV2Ú • • ■ ŮVfc disjunktních množin Vi,...,Vk, kde \V,\ = nt. Každý vrchol v fc Ví je spojen se všemi vrcholy V\Vi pro i = 1,2,..., fc. Popište všechny fc-tice přirozených čísel (m,n2, • • •, rifc), fc = 1,2,..., pro které je graf Knin,2.....nk rovinný. 6'.* Mějme maximální rovinný graf G = (V, E) bez trojúhelníků (tj. takový rovinný graf bez trojúhelníků, že pro každou dvojici ěin(^) \ E je graf G + ě nerovinný nebo obsahuje trojúhelník). Dokažte, že každá stěna je čtyřúhelník nebo pětiúhelník. 7. Nechť G = (V. E) je 2-souvislý rovinný graf s nejméně 3 vrcholy. Označme m počet vrcholů stupně i, a .l j>3 neboli 5ni + 4ri2 + 3na + 2n4 I- n5 — - 2n»----— 12 + 2s4 I 4s5 + 6*6 H----. (b) Z toho odvoďte, že každý rovinný graf s aspoň 3 vrcholy obsahuje aspoň 3 vrcholy stupně nejvýš 5. 8* Pro jaké hodnoty fc umíte dokázat následující tvrzení? Existuje no takové, že každý rovinný graf na. alespoň n0 vrcholech obsahuje aspoň k vrcholů stupnč maximálně 5. Mohlo by platit pro všechna fc? 9. (Hra „šprouti") Následující hru vynalezli J. H. Conway a M. S. Pater-son. Anglicky se nazývá sprouts („výhonky"). Na papíře je na začátku nakresleno n puntíků (hraje zajímavá už pro malá n, třeba 5). Hráči se střídají v tazích, kdo nemá tah prohraje. V každém tahu hráč spojí dva puntíky obloukem, a někam na tento oblouk nakreslí nový puntík. Puntík se smí použít jako konec nového oblouku jen, pokud z něj vycházejí nanejvýš 2 již nakreslené čáry, a nový oblouk nesmí protnout již nakreslené oblouky (v každém okamžiku máme tedy rovinné nakreslení grafu s maximálním stupněm 3; puntík na nově přidaném oblouku má už stupeň 2). Například: 0 12 3 4 (a) Dokažte, že pro n počátečních puntíků má hra nanejvýš 3n - 1 tahů (při jakékoli strategii hráčů). (b) * Dokažte, že pro n počátečních puntíků má hra nejméně 2n tahů (při jakékoli strategii hráčů). (c) * („Podvodní šprouti"6) Modifikujme hru následovně: Místo puntíků se kreslí křížky, a nové oblouky se připojují k ramenům křížků (vrcholy mohou tentokrát mít maximální stupeň 4). Na nový' oblouk se křížek přikresluje přeškrtnutím. Viz obrázek: ©,<©»' <@>'<@> 5 6 7 8 Dokažte, že tato hra má vždy přesně 5n — 2 tahů (takže se dá snadno předem určit kdo vyhraje). 10. Uvažme množinu L sestávající z n přímek v rovině (žádné 2 nejsou rovnoběžné, ale mnoho jich může procházet jedním bodem). Nakreslením těchto přímek vzniknou vrcholy (průsečíky přímek), hrany (části přímek mezi průsečíky, včetně nekonečných polopřímek), a stěny (souvislé části roviny po odebrání přímek). (a) * Vyjádřete počet hran pomocí počtu vrcholil a počtu stěn. (b) Dokažte, že pokud všechny přímky neprocházejí jediným bodem, potom existuje nejvýš n stěn ohraničených jen dvěma hranami. (c) * Dokažte, že pokud všechny přímky neprocházejí jedním bodem, pak existuje aspoň jeden průsečík, jímž procházejí právě 2 přímky (to je takzvaný Sylvestcrův problém). 6V originále „Brussels sprouts1'; pro čtenáře, který by se chtěl věnovat překladům z angličtiny, může být užitečné vědět, že to znamená růžičková kapusta. 214 Kapitola 6: Rovinné kreslení grafů 6.6 Platónská tělesa 215 11.** Uvažme libovolné rovinné nakreslení grafu. Předpokládejme, že každé hraně je přiřazena jedna ze dvou barev (červená nebo modrá). Dokažte, že existuje vrchol následujícího typu: modré hrany (červené hrany tvoří jeden souvislý úsek při obcházení vrcholu, a podobně modré hrany; jedna ze skupin hran může být i prázdná). 6.6 Platónská tělesa Antická škola myslitelů spojovaná s Platónovým jménem měla v obzvláštní vážnosti vysoce pravidelné geometrické útvary, takzvané pravidelné mnohostěny, které hledala dokonce i v základech stavby vesmíru. (Ostatně i Kepler považoval za jeden ze svých nej důležitějších objevů teorii patrně chybnou podle níž jsou rozestupy mezi drahami planet určeny geometrií pravidelných mnohostěnů.) Pravidelný mnohostěn je trojrozměrné konvexní7 těleso, ohraničené konečným počtem stěn — shodných pravidelných mnohoúhelníků, jichž se v každém vrcholu stýká stejný počet. Jednou z příčin zmíněného zájmu o pravidelné mnohostěny je patrně jejich výlučnost. Už ve starověku se vědělo, že jich je jen 5 typů: pravidelný čtyřstěn, krychle, pravidelný osmistěn, dvanáctistěn a dvacetistěn (čtenář jistě pozná, který jc který). ▲ - ' t ____ lili l!Í "ii:^ tli i..... \ > Ty znali již staří Rekové. 7Konvexita znamená, že jsou-li x, y libovolné dva body tělesa, leží i celá úsečka xy uvnitř tělesa, tedy žc povrch není nikde „prohnutý dovnitř". Pokud podmínky pravidelnosti trochu zmírníme (nebudeme trvat na konvexitě, povolíme dva typy stěn atp.), nebo pokud přejdeme do vyšší dimenze, můžeme se setkat s mnoha dalšími zajímavými a krásnými geometrickými ;útvary. Výzkum v této oblasti je stále aktivní. Pomocí Eulerova vzorce ukážeme, že kromě pěti platónských těles žádné jiné pravidelné mnohostěny existovat nemohou. (To, že zmíněné pravidelné mnohostěny skutečně existují, není samozřejmé a musí se to ověřit geometrickou konstrukcí, čímž se zde zabývat nebudeme.) Mnohostěny a rovinné grafy. Prvním krokem v dokazování neexistence jiných pravidelných těles bude převedení mnohostěnu na rovinný graf. Umístíme zkoumaný mnohostěn dovnitř koule tak, aby střed koule ležel uvnitř mnohostěnu. Promítneme jej ze středu na povrch koule (představte si, žc hrany mnohostěnu jsou vyrobeny z drátu a doprostřed namontujeme žárovičku). Tak dostaneme nakreslení nějakého grafu na povrchu koule, čili na sféře, bez křížení hran. Nyní ukážeme, že graf je rovinný, právě když jej můžeme bez křížení hran nakreslit na povrch koule Opět použijeme vhodnou projekci, tentokrát to bude stereografteká projekce. Kouli umístíme v třírozměrném prostoru tak, aby se dotýkala promítací roviny p, a bod koule nej vzdálenější od roviny p („severní pól") označíme o: Potom stereografická projekce přiřazuje každému bodu i / o na povrchu koule bod x! v rovině p, kde x' je průsečík přímky ox s rovinou p. (Pro bod o se projekce nedefinuje.) Toto je bijekce mezi povrchem koule bez bodu o a rovinou p. Uvažme nějaké nakreslení grafu G na povrchu koule bez křížení hran. Můžeme předpokládat, že o neleží na žádném z oblouků nákres- 216 Kapitola. 6: Rovinné kreslení grafů 6.6 Platónska tělesa 217 d = k = :s 3, h d = 4, k d = 3, k = 5 d = 5, k = 3 Obrázek 6.1: Grafy platónských těles. lení (pokud by ležel, můžeme sféru vhodně pootočit). Pak stereografic-kou projekcí dostaneme rovinné nakreslení G - křížení hran nemohou vzniknout díky bijektivitě. Obráceně, z každého rovinného nakreslení vznikne zpětnou projekcí nakreslení na sféře bez křížení hran. Takto můžeme každý trojrozměrný konvexní mnohostěn převést na rovinné nakreslení grafu. Vrcholy mnohostěnu přejdou na vrcholy grafu, hrany mnohostěnu na hrany grafu, a stěny mnohostěnu na stěny tohoto grafu (odtud také termíny „vrcholy" a „hrany" grafu a „stěny" rovinného nakreslení pocházejí). Pro 5 vyjmenovaných pravidelných mnohostěnů tak obdržíme grafy na obr. 6.1. Pro každý pravidelný mnohostěn je ve vzniklém rovinném nakreslení zřejmě stejný stupeň d u všech vrcholů (přičemž d > 3) a každá stěna má na hranici stejný počet vrcholů k > 3. Neexistence dalších pravidelných mnohostěnů tedy vyplyne z následujícího: 6.6.1 Tvrzení. Nechť G je graf s rovinným nakreslením, kde každý vrchol má stupeň d > 3 a každá stěna má k > 3 vrcholů. Potom G je isomorfní jednomu z grafů na obr. 6.1. Důkaz. Označme n počet vrcholů, m počet hran, a s počet stěn rovinného grafu G = (V, E). Nejprve využijeme vztah ]>J.(... v degf;(í)) = 2|£ľ| (tvrzení 4.4.1), který se v našem případě konkretizuje na Podobně získáme rovnost dn = 2m. ks = 2 to. (Dvěma způsoby počítáme počet uspořádaných dvojic (e,S), kde 5 je stěna grafu G a e £ B je hrana ležící na její hranici. Každá hrana přispěje 2 takovými dvojicemi, poněvadž je každá stěna je ohraničena kružnicí, a každá stěna přispěje k dvojicemi.) Z právě odvozených vztahů vyjádříme n a s pomocí m a dosadíme do Eulerova vzorce: n — to + s to + 2 to 2m ~d~ k K rovnici přičteme TO, vydělíme ji 2m a máme 1 1 d + k 1 1 2 m Jsou-li tedy d, i k známa, jsou ostatní parametry (to, n a s) již určeny jednoznačně. Zjevně min(d, k) = 3, protože jinak | + | < |. Jestliže d = 3, potom i — 4 = i > 0, tedy k G {3,4, 5}. Podobně pro k = 3 dostaneme d G {3,4, 5}. Tedy nastane jedna z následujících možností: d ä; n TO / 3 3 4 6 4 3 4 8 12 6 3 5 20 30 12 4 3 6 12 8 5 3 12 30 20 218 Kapitola 6: Rovinné kreslení grafů 6.7 Kuratowského věta 219 Nyní je snadné se přcsvčdčit, že v každém z uvedených případů je graf hodnotami d, k, n, rn, s určen jednoznačně a je isomorfní jednomu z grafů na obr. 6.1. □ Poznamenejme ještě, že vztah mnohostěnů v trojrozměrném prostoru a rovinných grafů je těsnější, než by se mohlo zdát. Jak jsme viděli, z každého (konvexního) mnohostěnu dostaneme rovinný graf. Dosti těžká Stei-nitzova věta tvrdí, že pro libovolný vrcholově 3-souvislý rovinný graf G (tj. graf, který po vymazání libovolných 2 vrcholů zůstává souvislý) existuje konvexní trojrozměrný mnohostěn, jehož grafem je právě G. Velmi pěkné shrnutí teorie konvexních mnohostěnů podává Zicglcr [31]. Cvičení 1. Najděte příklad (jiný než platónská tělesa) třídimenzionálního konvexního mnohostěnu, jehož všechny stěny jsou shodné s týmž pravidelným mnohoúhelníkem. *Dokážete najít všechny možné příklady? 6.7 Kuratowského věta Úplně na začátku našeho výkladu o rovinných grafech a vlastně i na, úplném začátku celé knihy jsme zkoumali otázku, proč ^3.3 není ro-virmýr graf. Teď na ni můžeme snadno odpovědět pomocí obecného výsledku, věty 6.5.1. Skutečně, Ä33 je graf bez trojúhelníků se 6 vrcholy, takže kdyby měl být rovinný, mohl by mít maximálně 8 hran podle části (ii) zmíněné věty, ale přitom má hran 9. Dalším malým příkladem nerovinného grafu je Ks, úplný graf na 5 vrcholech. Jeho nerovinnost plyne z věty 6.5.1(i), jelikož rovinný graf s pěti vrcholy může mít hran maximálně 9, zatímco K$ jich má 10. Ale K~3^ a K5 nejsou jen tak nějaké náhodné příklady nerovinných grafů. V jistém smyslu jsou to ty nejdůležitější příklady: vystupují v pozoruhodné kombinatorické charakterizaci rovinných grafů, charakterizaci, která je čistě grafovč-tcoretická a nepoužívá naprosto žádné geometrické pojmy. Abychom mohli tento vý'sledek formulovat, připomeňme pojem dělení grafu z oddílu 4.7 a učiňme následující jednoduché pozorování: Graf G je rovinný, právě když jeho libovolné dělení je rovinný graf. 6.7.1 Věta (Kuratowského věta). Graf G je rovinný, právě když žádný jeho podgraf není isomorfní dělení grafu K^^ ani dělení grafu K§. Větu je snadno ukázat v jednom směru (pokud G je rovinný, tak nemůže obsahovat dělení nerovinného grafu), opačná implikace je však složitější a v tomto textu ji dokazovat nebudeme. Z této věty plyne, že nerovinnost libovolného neroviímého grafu můžeme prokázat tím, že v něm najdeme nějaké dělení K5 nebo K^-j. Z algoritmického hlediska,, tj. chceme-li skutečně testovat rovinnost grafu na počítači a případně hledat rovinná nakreslení, takový způsob ale příliš vhodný není. Jsou sice známy algoritmy pro testování, zda vstupní graf obsahuje dělení nějakého pevně daného (malého) grafu, ale ty jsou velmi složité a poměrně nepraktické. Pro testování rovinnosti a hledání „pěkných" rovinných nakreslení byla vynalezena řada efektivních metod, i když jsou také komplikované. Takovými metodami se například dá testovat rovinnost grafu na, n vrcholech v čase O(n). Co se týče „pěkných" nakreslení, je známo, že se každý rovinný graf na n vrcholech dá, nakreslit tak, že všechny vrcholy mají celočíselné souřadnice mezi 1 a n a všechny hrany jsou úsečky. Shrnutí výsledků z této oblasti spolu s dalšími odkazy sepsal Kant [16]. Mnoho zajímavých problémů souvisejících s kreslením grafů také ale zůstává otevřených. Neví se například (v době, kdy tuto knihu píšeme), zda se každý rovinný graf dá nakreslit tak, že všechny hrany jsou úsečky s celočíselnými délkami. (To uvádíme jako příklad, jak snadno se někdy v diskrétní matematice dají formulovat i těžké problémy.) Kuratowského věta charakterizuje rovinné grafy tím, že vymezuje dvě „překážky rovinnosti", konkrétně přítomnost dělení Ä'5 nebo dělení K-^^. V posledních desetiletích bylo objeveno mnoho výsledků v podobném duchu, popisujících různé třídy grafů pomocí konečné množiny „překážek". Překážkami obvykle nebývají zakázaná dělení nějakých grafů, ale spíš takzvané zakázané minory (viz cvičení 6.8.9). Tímto a podobnými postupy byly vyřešeny mnohé významné problémy teorie grafů včetně četných otázek týkajících se efektivity algoritmů a v současnosti tato oblast, 220 Kapitola 6: Rovinné kreslení grafů 6.8 Barvení map - problém čtyř barev 221 zvaná strukturální teorie grafů, tvoří jedno z nejdynamičtějších a najúspešnejších odvětví moderní teorie grafů. Příkladem pokroku v tomto oboru jc práce Robertsona, Seymoura a Thomase [26], ve které byl podobnými metodami vyřešen dlouhodobě otevřený problém. Cvičení 1. (a) V grafu na obr. 4.2 (str. 130) vlevo nalezněte bud dělení grafu K3, nebo dělení grafu A's.3. (b) Jc graf na obr. 4.2 uprostřed rovinný? (e) Je graf na obr. 9.1(b) (str. 284) rovinný? 2* Uvažme (ne nutně rovinné) nakreslení úplného grafů Kn, kde všechny hrany jsou nakresleny jako úsečky. Ukažte, že aspoň |(") dvojic hran sc protíná. (Využijte nerovinnosti grafu K5.) 6.8 Barvení map - problém čtyř barev Uvažme politickou mapu, na níž jsou vyznačeny hranice států: Předpokládejme, že každý stát tvoří souvislou oblast ohraničenou nějakou topologickou kružnicí (proto jsme na naši schematickou mapu nenakreslili ostrovy jako Sardinie, Sicílie, Korsika atd. a taky jsme vynechali Rusko v době psaní této kapitoly stát nesouvislý!). Dvě oblasti pokládáme za sousední, jestliže mají společný aspoň kousek hranice, tj. nestačí, když se hranice dotýkají jen v jednom nebo několika bodech (takové případy se na mapách stejně vyskytují jen velmi vzácně). Každý stát na mapě chceme vybarvit nějakou barvou, a to tak, že sousedící státy nikdy nedostanou stejnou barvu (jak je na politických mapách zvykem). Kolik barev budeme určitě potřebovat? Pro uvedenou mapu stačí 4 barvy (zkuste takové obarvení najít!). Jedním z nejznámějších kombinatorických problémů jc následující otázka,: 6.8.1 Úloha (Problém čtyř barev). Je možno každou mapu obarvit 4 barvami? Čtyři je určitě minimální počet barev, který připadá obecně v úvahu. To jc ilustrováno výše uvedenou mapou (uvažte např. Lucembursko nebo Rakousko) a následujícími příklady: Zde dokážeme, že každou mapu lze obarvit 5 barvami. Přesto, že je tento výsledek znám už od konce 19. století, problém čtyř barev byl rozřešen (kladně) teprve roku 1976. Všechny známé důkazy toho, že každou mapu lze obarvit 4 barvami, jsou obtížné a podstatně závisí na probírání mnoha případů počítačem. Zatím se nikomu nepodařilo důkaz udělat ručně, i když původní důkaz byl velmi zjednodušen v roce 1995 (Robertson a spol. [25]). V roce 2004 Gonthier [11] zkonstruoval dťikaz, který je plně ověřitelný 222 Kapitola, 6: Rovinne kreslení grafů 6.8 Barvení map - problém čtyř barev 223 počítačem: Větu zapsal v jistém formálním jazyce, a v temže jazyce vygeneroval i důkaz, jehož správnost se dá plně automaticky ověřit pomocí poměrně jednoduchého obecného programu. Jedině to, že formální zápis skutečně vyjadřuje znění věty, musí v tomto postupu stále zkontrolovat člověk. Některé základní myšlenky důkazů věty o čtyřech barvách se objevují i ve dvou důkazech „věty o pěti barvách", jež vzápětí popíšeme. Problém čtyř barev vypadá jako otázka geometrická, ale dá se přeformulovat ryze kombinatoricky. Barvení map totiž jednoduše souvisí s barvením grafů. Nejdřív definujeme barevnost pro libovolný graf. 6.8.2 Definice (Barevnost grafu). Buď G = (V. E) graf, k přirozené číslo. Zobrazení b : V —> {1.2,..., /.:} nazveme obarvením grafu G pomocí k barev, pokud pro každou hranu {x, y} G E platí b(x) ^ b(y). Barevnost grafu G, označovaná v(G), je minimální počet barev potřebný pro obarvení G. Barevnost grafu patří mezi základní kombinatorické pojmy, v našem úvodním textu se o ní však zmíníme pouze v tomto článku. Matematicky můžeme mapu chápat jako nakreslení nějakého rovinného grafu, přičemž státy na mapě jsou stěny tohoto grafu (vrcholy grafu budou body ležící na hranici alespoň 3 států a hranami budou odpovídající části oblouků mezi jednotlivými vrcholy): Je vidět, že přitom mohou vzniknout i násobné hrany. Abychom převedli problém barvení mapy, čili barvení stěn rovinného nakreslení grafu, na barevnost grafu ve smyslu právě uvedené definice, zavedeme tzv. duální graf. Představte si, že bychom v každém státě tečkou označili hlavní město. Hlavní města sousedních států by spojovala dálnice vedoucí po území těchto dvou států a překračující jejich společnou hranici. Potom by hlavní města byla vrcholy duálního grafu a dálnice by tvořily jeho hrany. Budeme také obecně potřebovat násobné hrany a smyčky; připomeňme si tedy jeden způsob jejich zavedení. Graf s násobnými hranami můžeme chápat jako trojici (V, E, s), kde V, E jsou nějaké (disjunktní) množiny a e : E —> (ľ) U V" je zobrazení přiřazující hraně dvojici jejích konců, příp. smyčce její jediný vrchol (podrobněji se tento způsob reprezentace násobných hran a smyček probíral v části 4.5). Ted' můžeme pokročit k matematické definici duálního grafu: 6.8.3 Definice (Duální graf). Nechť G je graf s daným rovinným nakreslením, s množinou vrcholů V, množinou hran E a množinou stěn S. Defínujmc graf tvaru (S,E,e), kde e se deůnuje předpisem e(e) = {Si,Sj}, jestliže hrana e je společnou hranicí stěn Si a Sj (přičemž se může stát, že Sí = Sj, jestliže z obou stran hrany e je táž stěna). Tento graf (S, E, s) nazýváme (gcomctrickjun) duálem grafu G a značíme jej G*. Zde je příklad grafu a jeho duálu: Jak jsme již naznačili neformálním popisem s městy a dálnicemi, můžeme graf G* znázornit společně s nakreslením grafu G. Uvnitř každé stěny S grafu G zvolíme bod bs, a každé hraně e přiřadíme oblouk, protínající hranu e a spojující body bs a bg', kde S a S' jsou stěny přiléhající k hraně e. Tento oblouk leží celý ve stěnách S a S'. Tím získáme nakreslení grafu G*: 224 Kapitola 6: Rovinné kreslení grafů 6.8 Barvení map - problém čtyř barev 225 Z tohoto způsobu kreslení duálního grafu plyne jeho rovinnost. Další příklady najde čtenář na obr. 6.1 (str. 216): grafy krychle a pravidelného osmistěnu jsou navzájem duální, podobně grafy dvanáctistěnu a dvacetistěnu, a konečně graf pravidelného čtyřstěnu (čili K4) je duální sám k sobě. Máme-li tedy mapu, již chápeme jako nakreslení nějakého grafu G, potom je otázka obarvitelriosti mapy pomocí k barev ekvivalentní s obarvitelností duálního grafu G* pomocí k barev. Na druhé straně platí, že každý rovinný graf se vyskytne jako pod-graf vhodného duálního grafu. Důkaz naznačíme pouze obrázkem. Například graf je obsažen v duálu grafu (Jinak by se také dalo argumentovat tím, že každý rovinný graf je isomorfní duálu svého duálu.) Takto lze převést problematiku barvení map na na otázky týkající se barevnosti rovinných grafů. Speciálně můžeme přeformulovat: 6.8.4 Úloha (Problém čtyř barev podruhé). Platí x(G) < 4 pro každý rovinný graf G ? Dokážeme slabší výsledek: 6.8.5 Tvrzení (Věta o 5 barvách). Pro každý rovinný graf G platí X(G) < 5. První důkaz. Postupujeme indukcí dle počtu vrcholů grafu G = (V, E). Pro \V\ < 5 je tvrzení triviální. Podle důsledku 6.5.2 víme, že v každém rovinném grafu existuje vrchol v stupně nejvýš 5. Jestliže degG(v) < 5, potom uvažme graf G' = G — v a použijme pro něj indukčního předpokladu: je-li graf G' obarvený pomocí barev 1, 2, ..., 5, potom v přiřaďme nějakou barvu i E {1, 2,..., 5}, jež se nevyskytuje mezi barvami (nejvýš 4) sousedů vrcholu v. Tak dostaneme obarvení grafu G pěti barvami. Velmi podobná argumentace vlastně již dokazuje, že barevnost rovinného grafu je nejvýš 6, takže se ve zbytku důkazu budeme snažit těchto 6 zlepšit na 5. Také je poučné na základě tohoto důkazu sestavit algoritmus na barvení rovinných grafů nejvýš 6 barvami (nebo s vylepšením z následujícího nejvýš 5 barvami). Uvědomte si, že takový algoritmus obarvuje vrchol v s malým stupněm až nakonec, když jsou všechny ostatní vrcholy už obarveny! 226 Kapitola 6: Rovinné kreslení grafů Zbývá vyšetřit případ, kdy degG(v) = 5. Uvažme graf G s pevně zvoleným rovinným nakreslením a nechť t, u, x, z, y jsou vrcholy spojené s vrcholem v hranou, vypsané v pořadí, v němž příslušné hrany vycházejí z vrcholu v (např. vc směru hodinových ručiček). Uvažme opět obarvení b' : V((!') —> {1, 2,... , 5} grafu G' = G ~ v pomocí 5 barev (zaručené indukčním předpokladem). Jestliže se mezi barvami sousedů vyskytují maximálně čtyři barvy, můžeme vrcholu v přiřadit barvu různou od barev jeho sousedů. Předpokládejme tedy, že sousedi v mají všech 5 různých barev. Uvažme vrcholy x a y, a nechť Vxy je množina všech vrcholů grafu 6Y/, které mají buď barvu b'(x) nebo barvu b'(y). Zřejmě x,y G Ux>2/, Rozlišíme dva případy podle toho, zda v grafu G' existuje cesta z x do y používající jen vrcholy z množiny VXiV, nebo neexistuje. 1. Taková cesta neexistuje. Označme Dx,y množinu těch vrcholů s G V (G1), které jsou v grafu G' spojeny s vrcholem x cestou, používající pouze vrcholy z množiny Vx,y (D jako dosažitelné vrcholy). Speciálně platí y ^ Dx,y Definujme nové obarvení b grafu G' předpisem: Íb'(s) pokud s i DXtV b'(y) pokud s G Dx.y a b'(s) = b'(x) b'(x) pokud s G Dx.y a b'(s) = b'(y) (to znamená, že na množině Dx,y zaměníme barvy). Zřejmě b je opět obarvení, a protože b(x) = b(y) = b'(y), můžeme položit b(v) = b'(x). Tedy b je obarvení grafu G pěti barvami. 2. Nyní předpokládáme, že z x do y existuje cesta P, jejíž všechny vrcholy jsou prvky množiny VXiV. V tom případě uvážíme dvojici 6.8 Barvení map - problém čtyř barev 227 vrcholů z, t a definujeme množinu VZ)t jako množinu všech těch vrcholů, které jsou obarveny pomocí barev b'(t) a b'(z). Množiny VT,y a Vz>t jsou disjunktní. Nakreslení cesty P spolu s hranami {e, x} a \v,y} tvoří kružnici: Ta má jeden z bodů z, t uvnitř a druhý vně, a proto každá cesta ze z do t musí používat některý vrchol zmíněné kružnice. Tudíž neexistuje cesta ze z do i používající pouze vrcholy množiny Vz t a můžeme zkonstruovat obarvení grafu G pěti barvami stejně jako v případě 1, jenom místo vrcholů x, y začneme s vrcholy í, z. Tím je první důkaz věty o pěti barvách hotov. □ Kontrakce hran. Než začneme s druhým důkazem, zavedeme další důležitou grafovou operaci. Buď G = (V, E) graf (ne nutně rovinný) a e G E jeho hrana. Kontrakce hrany e znamená, že oba vrcholy hrany e „slepíme" do jednoho nového vrcholu a odstraníme případné násobné hrany, které při lepení vznikly. Výsledný graf budeme značit G.e a formálně bude definován takto: G.e. = {V\E'), kde e = {x, y} a V = (V \ {x, y}) U {z} E' = {e G E; e D {x, y} = 0} U {{zA}; L G V\{x,y}, {t,x} G E nebo {t,y} G E}; 228 Kapitola 6: Rovinné kreslení grafů 6.8 Barvení map - problém čtyř barev 229 přitom z 0 V značí nový vrchol. Lemma. Je-li G rovinný graf a e. £ E(G), je graf G.e opět rovinný. Neformální důkaz. Viz obrázek: □ Druhý důkaz tvrzení 6.8.5. Postupujeme opět indukcí podle počtu vrcholů uvažovaného rovinného grafu G = (V. E). Začneme stejně jako v prvním důkazu. Můžeme tedy předpokládat, že G = (V, E) je rovinný graf s alespoň 6 vrcholy, v němž každý vrchol má stupeň alespoň 5. Zvolme vrchol v stupně 5. Protože je graf G rovinný, neobsahuje K§ jako podgraf, a tedy existuje dvojice sousedů vrcholu v, jež netvoří hranu. Označme nějakou takovou dvojici sousedů %,y, a zbývající tři sousedy t,u a z. Uvažme graf G' vzniklý z G kontrakcí hran {x,v} a {y,v} (tj. trojice vrcholů x, y, v je nahrazena jediným novým vrcholem w, což zobecňuje definici kontrakce hrany zjevným způsobem). Tento graf je opět rovinný, a má méně vrcholů než G, tedy podle indukčního předpokladu existuje nějaké jeho obarvení b' pomocí 5 barev. V této situaci definujeme obarvení b grafu G takto: (b'(s), pro s {x,y,v}, V{w), pro s C {x,y}, i G {1,... , 5} \ {b'(w),b'(u), b'(t), b'(z)}, pro s = v. Viz obrázek: situace v G' situace v G Je snadné nahlédnout, že takto definované zobrazení b je skutečně obarvením grafu G. □ Ve cvičení 11 je nastíněn ještě další důkaz. Cvičení 1. Dokažte, že X(G) < 1 + max{degG(a:); x e V{G)} pro každý (konečný) graf G = (V, E). 2. Pro graf G položte 6(G) = min{degG(t>); v e V} (minimální stupeň v G). Dokažte y(G) < 1 + max{<5(G'); G' C G}, kde G' C G značí, že G' je podgrafem G. 3* Graf G nazveme vnějškově rovinným, existuje-li jeho nakreslení, v němž hranice některé zc stčn obsahuje všechm' vrcholy (můžeme předpokládat, že tuto vlastnost má stěna vnější). Dokážte, že každý vnějškově rovinný graf má barevnost nejvýš 3. 4. Buď G rovinný graf, který neobsahuje Ä3 jako podgraf. Dokazte, že X\G) < 4. (Grôtsch dokázal těžkou větu, která říká, že pro všechny rovinné grafy bez trojúhelníka platí dokonce x(G) < 3.) 5. Na základě některého ze dvou uvedených důkazů sestavte algoritmus pro obarvení daného rovinného grafu 5 barvami. Můžete předpokládat, že jeho rovinné nakreslení je zadáno následovně: pro každý vrchol v grafu G máme cyklický seznam sousedů v sepsaný podle pořadí, jak odpovídající hrany v nakreslení vycházejí z v. 6. (a) Uvažme hladový algoritmus pro barvení grafů. Zvolíme libovolně jeden z dosud neobarvených vrcholů a obarvíme nejmenší barvou (barvy jsou přirozená čísla 1,2,...), která není použita na žádném z dosud 230 Kapitola 6: Rovinné kreslení grafů 6.9 Kreslení grafů na plochách 231 obarvených sousedů. Pro všechna čísla K nalezněte graf G, pro který existuje obarvení dvěma barvami (tj. je bipartitní), ale právě popsaný algoritmus jej někdy (tj. při nešikovném pořadí barvení vrcholů) obarví alespoň K barvami. (b) Dokážete najít rovinný graf G s vlastnostmi jako v (a)? (c) Algoritmus můžeme vylepšit následujícím způsobem: ze zatím nco-barvených vrcholů vybereme ten, který má nejvyšší stupeň a obarvíme jej stejně jako v (a). Ukažte, že pořád existují grafy G jako v (a). (d) Můžete si zahrát i liru na toto téma. Hráči navrhují verze hladového algoritmu na barvení grafů a protivníci se snaží nacházet grafy, které algoritmus obarví nešikovně. 7. Dokažte, že každý graf G má aspoň ( g ) nran- 8. (a)* Uvažme rovinný graf, jehož všechny stupně jsou sudé. Ukažte, že mapa vzniklá jeho rovinným nakreslením se dá obarvit dvěma barvami. (b)* Pomocí (a) ukažte, že neexistuje žádné rovinné nakreslení grafu, kde všechny stupně vrcholů jsou sudé, všechny vnitřní stěny jsou trojúhelníky (tj. ohraničené kružnicemi délky 3) a vnější stěna je pětiúhelník. 9* Řekněme, že graf H je minor grafu G. pokud je možné z grafu G vytvořit graf isomorfní grafu H opakovaným použitím následujících operací: vymazání hrany, vymazání izolovaného vrcholu, kontrakce hrany. Z Kuratowského věty odvoďte: Graf G je rovinný právě tehdy, když ani Ks, ani Kst3 není mínorem G. 10. (Výběrová barevnost) Nechť G = (V, E) je graf a předpokládejme, že pro každý vrchol v G V je dán konečný seznam přirozených čísel L(v). Zobrazení b : V —> N se nazývá výběrové obarvení (vzhledem k daným seznamům L(v), v e V), pokud pro všechny vrcholy v G V platí b(v) G L{v) a pro všechny hrany {v, v'} G E platí b(v) ý b(v'). Výběrová barevnost grafu G (označovaná xe{G)) je iiejmenší číslo k takové, že pro libovolný systém seznamů L (v), v G V, splňující |£(t')| > k pro všechna v G V, má G výběrové obarvení. (a) Nalezněte příklad grafu s Xf{G) > x{G). (b) * Pro všechna přirozená čísla k zkonstruujte bipartitní graf G, pro který xÁG) > k. Poznámka. Existuje rovinný graf G s Xi(G) = 5. Tedy „výběrová verze" věty o čtyřech barvách neplatí. 11* Pojem výběrového obarvení z předchozího cvičení se používá v krátkém a pozoruhodném Thomasseiiově důkazu věty o pěti barvách 6.8.5, který naznačíme v tomto cvičení. Dokažte následující tvrzení indukcí dle počtu vrcholů: Nechť G — (V, E) je graf s daným rovinným nakreslením a nechť L(v), v G V, jsou seznamy, přičemž platí následující: • Hranicí neomezené stěny je kružnice C s vrcholy v\, v%,..., vy-(číslováno po obvodu). • Všechny omezené stěny jsou trojúhelníky. . L(«1) = {1},L(«2) = {2}- • \L(ví)\ — 3 pro i = 3,4,..., k. • = 5 pro všechny ostatní vrcholy kromě (tj. ležící uvnitř hraniční kružnice C). Potom G má výběrové obarvení vzhledem k seznamům L(v). Tento důkaz nevyužívá ani Eulerův vzorec, ani přítomnost vrcholu s malým stupněm. Je to příklad matematické indukce par excellence. 6.9 Kreslení grafů na plochách Graf G můžeme nakreslit i na jiné „plochy", než je rovina, např. na sféru (tj. povrch koule), na anuloid (někdy zvaný též torus), na Mobiův list, 232 Kapitola. 6: Rovinné kreslení gratú 6.9 Kreslení grafů na plochách 233 na sféru s „dvěma ušima' (což je po vhodné deformaci totéž jako povrch „tlusté osmičky"), nebo na tzv. Kleinovu láhev: Takové plochy se dají vytvářet „slepováním" a vhodnou deformací z rovinného mnohoúhelníka. Ve výše uvedených příkladech, s výjimkou sféry se dvěma ušima, vyjdeme vždy z obdélníka a vhodně ztotožníme (slepíme) jeho strany. Tento postup je i základem přesné definice těchto ploch (již zde neuvádíme). Tak například anuloid lze vytvořit následujícím způsobem: neboli ztotožníme protější hrany obdélníka abed, přičemž strana ab se slepí se stranou dc a strana ad se stranou bc. Orientace při lepení se obvykle vyznačuje šipkami; šipky na následujícím obrázku znamenají, že při slepování stran ad a bc přijde bod a k bodu b a bod d k bodu c. a b A A Mobiův list vyrobíme takhle: A V (ztotožníme pouze hrany označené šipkou tak, že směr obou šipek souhlasí). Kleinova láhev vznikne následovně: A M 1-3»- 234 Kapitola 6: Rovinné kreslení grafů 6.9 Kreslení grafů na plochách 235 Tohle ve skutečnosti není poctivý návod na výrobu Kleinovy láhve, protože ve třídimenzionálním eukleidovském prostoru se podle něj postupovat nedá. Naznačené lepení nelze realizovat v R3, aniž by obdélník protínal sám sebe (jako na našem obrázku Kleinovy láhve). Matematicky nicméně definice Kleinovy láhve poslepováním smysl dává a například v R4 se tato plocha vytvořit dá. Platí obecná věta, která zaručuje, že se každá uzavřená plocha (která nemá žádné „hraniční body" a nikde „neutíká do nekonečna", čemuž se odborně říká „kompaktní 2-dimenzionální varieta bez okraje") dá vytvořit pomocí vhodného poslepování a deformace pravidelného konvexního mnohoúhelníka. Navíc, pokud má uvažovaná plocha dvě strany (Mobiův list i Kleinova láhev mají jenom jednu stranu!), potom ji lze spojitě deformovat na nějakou sféru s konečně mnoha ušima. Velmi pěkně a názorně jsou základy této teorie a řada souvisejících věcí popsány například v knize [28]. Grafy můžeme rozlišovat podle plochy, na niž je lze nakreslit bez křížení hran. Jak víme, ani graf A'5 (úplný graf na 5 vrcholech), ani graf A'3,3 (úplný bipartitní graf na 3 + 3 vrcholech) není rovinný. Přitom ale například K5 lze nakreslit na torus: a K3 s na Mobiův list: Jak jsme řekli, tyto plochy můžeme vyrábět vhodným slepováním hran obdélníků. Abychom nemuseli přepínat svou prostorovou představi- vost, můžeme kreslení na plochách převést na modifikované rovinné kreslení, kde hrany mohou „přeskakovat" mezi slepovanými stranami. Právě uvedená nakreslení lze potom znázornit takto: ixra Poznamenejme, že na torus lze nakreslit dokonce graf a b cd a b c d (K7 se dá nakreslit také, viz cvičení 1). Obecně platí 6.9.1 Tvrzení. Každý graf lze nakreslit 11a sféru s dostatečným počtem „uší". (Toto tvrzení je třeba chápat intuitivně, neb jsme přesnou definici sféry s ušima nepodali.) Neformální důkaz. Nakresleme graf G = (V, E) na povrch koule, třeba i s křížením hran. Nechť e\,... ,en jsou všechny hrany, které se kříží s nějakou jinou hranou. Pro každou hranu ej přidejme „ucho", které pro ni bude sloužit jako „most" přes ostatní hrany. Tyto mosty přidáváme tak, aby byly disjunktní a přitom hrany nakreslené na příslušných přemostěních se již nekřížily: 236 Kapitola 6: Rovinné kreslení grafů Vzhledem k tornu, že máme co činit pouze s konečným počtem hran, takové mosty snadno najdeme. □ Následující definice má tedy smysl: 6.9.2 Definice. Minimální počet „uší", které je třeba přidat ke sféře, aby na vzniklou plochu bylo možno nakreslit graf G bez křížení hran, nazýváme rod8 grafu G. V oddílu 6.8 jsme se zabývali otázkou barvení rovinných grafů. Jak jsme ukázali v oddílu 6.6, rovinné grafy jsou právě ty, které sc dají nakreslit na sféru bez křížení hran, tedy grafy rodu 0. Viděli jsme, že se vrcholy každého rovinného grafu dají obarvit pěti barvami, aniž by sousední vrcholy někdy byly obarveny stejnou barvou, a zmínili jsme se o velmi těžké větě o čtyřech barvách, která říká, že čtyři barvy vždycky stačí. Podobně můžeme zkoumat otázku barevnosti grafů i na jiných plochách. Tato otázka je dnes beze zbytku vyřešena: maximální barevnost grafu G rodu k je rovna číslu 7 + V1 + 48A: Je pozoruhodné, že případ rodu 0, neboli rovinných grafů, je zdaleka nej těžší - pro ostatní rody je tento výsledek (Heawoodův vzorec) mnohem snazší a byl dokázán dávno před vyřešením problému čtyř barev. Cvičení 1. (a) Přesvědčte se, že obrázek v textu skutečně dává nakreslení K^ na anuloid. (b) Nalezněte nakreslení grafu Kg na anuloid. (c) * Nakreslete K-j na anuloid. sPojem rodu se primárně používá, pro plochy. Například rod sféry s ušima je roven počtu uší. Je zajímavé, že 2-dimenzionálrií plochy se začaly systematicky studovat v souvislosti s algebraickými rovnicemi! Množina všech nulových bodů (v komplexním oboru) mnohočlenu ve dvou proměnných je typicky 2-dimenzionální plocha, jejíž rod je pro různé vlastnosti mnohočlenu zásadní. Náročná oblast matematiky, která v tomto duchu zkoumá algebraické rovnice, se nazývá algebraická geometrie. (Pěkný úvod do tohoto předmětu napsali Cox, Little a O' Shea [8].) Počítání dvěma způsoby Počítání dvěma způsoby používali například účetní, když ještě neměli počítače. Když chtěli bezchybně sečíst tabulku čísel, sčítali jednou napřed po sloupcích a jednou napřed po řádcích; pokud počítali správně, vyšlo totéž. Matematicky vyjádřeno, je-li A libovolná matice n x m, platí n m m n z=l j=l í=li-1 schematicky Jinak řečeno, v takovéto dvojité sumě můžeme podle potřeby zaměnit pořadí sumace. Na této prosté myšlence je založeno mnoho matematických triků a důkazů; v těch složitějších jsou pochopitelně navíc další nápady a obraty, hlavně se většinou musí přijít na to, co vlastně počítat dvěma způsoby. 238 Kapitola 7: Počítání dvěma způsoby 7.1 Princip sudosti 239 7.1 Princip sudosti V části 4.4 jsme nahlédli, že libovolný graf má sudý počet vrcholů lichého stupně. (To platí i pro grafy s násobnými hranami.) Důkaz byl vlastne typické počítání dvěma způsoby (počítali jsme „konce hran"). Pomocí tohoto tvrzení jsme mohli někdy snadno vyloučit některé vektory jako možné skóre grafu, třeba vektor (3,3,3,3,3). Tvrzení lze však použít i mnohem zajímavěji, například na důkaz existence nějakého objektu. K takovému účelu je vyslovíme v takovémto tvaru: Víme-li. že graf G má aspoň jeden vrchol lichého stupně, potom musí mít aspoň 2 takové vrcholy. Aplikace následuje. Nakresleme do roviny velký trojúhelník s vrcholy označenými A\, A%, A-s a rozdělme jej libovolně na konečný počet menších trojúhelníčků (jako na obr. 7.1 (a)). Žádný trojúhelníček nesmí mít vrchol uvnitř strany jiného trojúhelníčku, tj. díváme-li se na obrázek jako na nakreslení rovinného grafu, jsou všechny vnitřní stěny trojúhelníky. Přiřaďme dále každému vrcholu velkého i malých trojúhelníků jedno z čísel 1,2,3: vrchol A; dostane vždy číslo i, i — 1, 2, 3, a všechny vrcholy ležící na straně AjAj velkého trojúhelníka dostanou jen čísla i a j; mimo těchto pravidel je přiřazení naprosto libovolné. 7.1.1 Tvrzení (Spernerovo lemma — rovinná verze). V popsané situaci vždy existuje trojúhelníček, jehož vrcholy dostanou čísla 1, 2 a 3. Důkaz. Definujeme pomocný graf G, viz obr. 7.1(b). Jeho vrcholy budou stěny nakreslené triangulace, tj. všechny trojúhelníčky a také vnější stěna. Na obrázku jsme vrcholy znázornili kroužky zakreslenými do příslušných stěn; vrchol vnější stěny je označen v. Dva vrcholy, tj. stěny, budou spojeny hranou, pokud spolu hraničí přes stranu některého trojúhelníčku, a pokud koncové vrcholy této strany mají čísla 1 a 2. To se týká i vnějšího vrcholu v: ten bude spojen se všemi trojúhelníčky přiléhajícími k obvodu velkého trojúhelníka stranou 12. Stupeň trojúhelníčku v grafu G je nenulový pouze tehdy, je-li jeden z vrcholů očíslován 1 a jeden 2. Má-li zbývající vrchol také číslo 1 nebo (b) Obrázek 7.1: Situace ve Sperncrovč lemmatu (a), odpovídající graf stěn (b). 2, je stupeň 2. Pokud zbývající vrchol má číslo 3, je stupeň 1, a to je jediný případ, kdy je stupeň lichý. Ukážeme nyní, že vrchol v (vnější stěna) má v grafu G lichý stupeň; tím pádem existuje v G ještě jiný vrchol lichého stupně, a to je hledaný trojúhelníček očíslovaný 1,2,3. Hrany grafu G mohou zřejmě křižovat pouze stranu A\A^ velkého trojúhelníka. Podle pravidel očíslování jsou na této straně povoleny jen vrcholy trojúhelníčků s čísly 1 a 2. Napíšeme-li libovolnou posloupnost jedniček a dvojek začínající 1 a končící 2, potom počet míst, kde končí úsek jedniček a začíná úsek dvojek nebo obráceně je lichý (jdeme-li odleva doprava, po sudém počtu změn mezi jedničkami a dvojkami jsme v jedničce). Proto je stupeň v je lichý. □ Spernerovo lemma není jen samoúčelná hříčka, s jeho pomocí se dá dokázat tzv. Brouwerova věta o pevném bodě. Než řekneme, co tvrdí, uvedeme velmi jednoduchou větu o pevném bodě jako motivaci. 7.1.2 Tvrzení. Pro každou spojitou funkci f : [0,1] —* [0, 1] existuje bod x € [0,1] takový, že f(x) — x. Takové x se jmenuje pevný bod funkce /. Tvrzení můžeme dokázat 240 Kapitola 7: Počítání dvěma způsoby 7.1 Princip sudosti 241 takto: funkce g(x) = f(x)—x je spojitá, 0. g(l) < 0 a intuitivně se zdá celkem zřejmé, že graf spojité funkce g nemůže osu x nijak přeskočit a tedy ji musí protnout, čili g nabývá někde v intervalu [0,1] hodnoty 0. Odvodit, to logicky přesně z vlastností reálných čísel dá trochu práce, příslušné tvrzení se jmenuje Darbouxova věta. Obecně, věty o pevném bodě tvrdí, že za jistých okolností má nějaká funkce / pevný bod, tj. existuje x takové, že /(x) = x. Taková tvrzení jsou klíčová v mnoha oblastech matematiky (i aplikované). Odvozují se z nich různé výsledky zaručující, že nějaká rovnice má řešení a podobně, a hrají dokonce roli například i v teorii sémantiky programů. V Brouwerově větě o pevném bodě je jednorozměrný interval z tvrzení 7.1.2 nahrazen trojúhelníkem v rovině, čtyřstěnem v třídimenzionálním prostoru nebo jejich analogií ve vyšších dimenzích. Zde dokážeme pouze dvoudimenzionální verzi (protože jsme dokázali jenom dvoudimen-zionální Spernerovo lemma, ale viz cv. 2). Důkaz patří spíše do matematické analýzy. Zde se jej pokusíme formulovat tak, abychom z analýzy potřebovali co nejméně; věci, které potřebovat budeme, připomeneme. Nechť A označuje trojúhelník v rovině. Pro určitost vezmeme pravoúhlý rovnoramenný trojúhelník s vrcholy A\ = (0,1), A2 = (1,0) a = (0,0) (jako na obr. 7.1(a)). Funkce / : A —> A, jak je nejspíš čtenáři známo, se nazývá spojitá, pokud pro každé a G A a pro každé e > 0 existuje S > 0 tak, že je-li b e A libovolný bod vzdálený od a nejvýš o 6, potom f (a) a f(b) mají vzdálenost nejvýš e (heslovitě: / zobrazuje blízké body na blízké body). 7.1.3 Věta (Brouwerova věta o pevném bodě v rovině). Každá spojitá funkce f : A —*■ A má pevný bod. Důkaz. Zavedeme tři pomocné reálné funkce pi, p\, /3g na trojúhelníku A: Je-li a S A bod o souřadnicích (x,y), bude Pi(a) = y, p2(a) = %, Äs(o) = l-x-y. Podstatné vlastnosti těchto funkcí, které si hned napíšeme, jsou /3j(a) > 0 a Pí (a) + fh(a) + p\{a) = 1 pro každé a e A. Dále definujeme 3 množiny M\,M2, M3 C A: Mi = {a e A; fo(a) > A(/(o))}, i = 1,2,3. Pro představu, M, je množina těch bodů, které funkce / nevzdálí od strany protilehlé vrcholu At. Obrázek 7.2: Zjemňování triangulace. Všimneme si, že každý bod p G Mj fl M2 í~l M3 je pevným bodem funkce /. (Pokud by funkce / bodem p někam pohnula, vždy jej vzdálí od některé ze stran; formálně přesný důkaz přenecháváme čtenářově píli.) Naším cílem je tedy najít bod ve zmíněném průniku. Uvažme posloupnost jemnějších a jemnějších triangulací trojúhelníku A (první 3 triangulace jsou nakresleny na obr. 7.2). Pro každou triangulaci očíslujeme vrcholy trojúhelníčků čísly 1,2,3. Budeme požadovat, aby vrchol očíslovaný i patřil do množiny Mi, a dále aby očíslování bylo podle pravidel ve Spernerově lemmatu. Musíme se přesvědčit, že to vždy jde udělat. Vrchol Ai je vůbec nej vzdálenější od své protilehlé strany, takže funkce / jej nemůže ještě vzdálit. Proto A-\ & M\, takže tomuto vrcholu můžeme přidělit číslo 1 (podobně pro .42,^3). Každý bod a na straně A1A2 má (3i(a) + p%{a) = 1, tedy f (a) nemůže zároveň splňovat íh (/(«)) > /m«) a P'Áfi0)) > Odtud a e Mi U M2, neboli nic nám nebrání očíslovat vrcholy na straně A\A2 jen jedničkami a dvojkami (podobně pro ostatní strany). Konečně každý bod A patří do aspoň jedné z množin M», protože žádný bod nelze vzdálit od všech tří stran současně (formální ověření opět vynecháme). Tím jsme připraveni aplikovat Spernerovo lemma 7.1.1. Každá z triangulací má tedy trojúhelníček očíslovaný 1,2,3. Označme vrcholy nějakého takového trojúhelníčku pro j-tou z oněch zjemňujících se triangulací symboly "•7,1 í "'7.2 ^ ČI7 3j to ještě tak, že vždy ajj G Mj. Uvážíme posloupnost bodů (014.02,1,03,1,...). Tady potřebujeme, že z této posloupnosti můžeme vybrat nějakou nekonečnou konvergentní podposloupnost. Ale z každé posloupnosti bodů v trojúhelníku se dá vybrat nekonečná konvergentní podposloupnost (tato vlastnost trojúhelníka - sdílená například i každou omezenou a uzavřenou podmnožinou roviny se nazývá kompaktnost). Řekněme, žc jsme vybrali takovou pod- 242 Kapitola 7: Počítání dvěma způsoby 7.1 Princip sudosti 243 posloupnost {djl!i, Oj2,i, fljs.i, • • -)i Ji < J'2 < h < ■ • •, a bod, k němuž konverguje, pojmenujeme p. Bod p náleží do množiny M\. Podle definice Mj totiž pro každé aJfe,i máme A(ojfc,i) > Ä(/(ojfc,i)), a podle základních vět o limitách se taková neostrá nerovnost mezi spojitými funkcemi zachovává přechodem k limitě. Poněvadž průměr trojúhelníčků v použitých triangulacích se zmenšoval k nule, musí i posloupnosti ostatních vrcholů, to znamená (ojlta, o,-2,2, cíj3,2, • • •) a (oj.,,3, Oj'2,3) 0}3,3, • • •) konvergovat k bodu p, takže také p € AÍ2 a p G M3. Bod p je kýžený pevný bod funkce /. □ Složitější věty podobného typu (jako například, že zobrazíme-li povrch koule spojitě do roviny, nějaké dva protilehlé body se musí zobrazit na sebe) se dokazují v odvětví matematiky zvaném algebraická topologie. Potřebuje se k tomu většinou poměrně složitý technický aparát, ale v jádru takových důkazů je často nějaký argument založený na sudo-sti/lichosti apod. Ukážeme ještě jeden pěkný příklad úvahy pomocí principu sudosti. Budeme analyzovat jednu hru (podobnou hře HEX). Na hracím plánu, jaký je nakreslen na obr. 7.3 (ale triangulace uvnitř čtverce může být libovolná), se hraje následující hra. Hráči pro sebe zabírají políčka (tj. kroužky na hracím plánu); např. A je zamalovává světlejší barvou -na našem obrázku šedou a 13 černě. Na začátku má A zabraná a a c, B má b a d, střídají se v tazích, A začíná, a v jednom tahu může hráč zabrat jedno libovolné dosud nezabrané políčko. Hráč A vyhraje, podaří-li se mu obsadit všechna políčka nějaké cesty z a do c, B usiluje o cestu z b do d. Kdyby se stalo, že hráč, který je na tahu, už nemá kam táhnout, ale ani jeden z hráčů svoji cestu nedokončil, hra by končila remízou. 7.1.4 Tvrzení. Tato hra na hracím plánu uvedeného typu (vnější stěna čtverec, všechny vnitřní trojúhelníky) nemůže skončit remízou. Důkaz. Pro spor předpokládejme, žc remíza nastala, nechť A je množina políček zabraných hráčem A a B množina políček zabraných hráčem B. Obrázek 7.3: Hrací plán. Označíme políčka čísly 1,2,3 podle takovéhoto pravidla: Jedničkou bude označeno políčko, které je v A a vede z něj cesta do políčka o, jejíž všechna políčka leží v A. Dvojkou označíme políčka z B, která lze spojit s b cestou ležící celou v B, a trojka připadne zbývajícím políčkům. Podle předpokladu pak budou c i d mít označení 3 (jinak by jeden z hráčů býval vyhrál). Nyní se ukáže, že existuje některá vnitřní trojúhelníková stěna, jejíž políčka jsou označena 1,2 a 3. To bude spor: Políčko s číslem 3 nemůže být v A, protože sousedí s políčkem označeným 1, do kterého tedy vede cesta z a používající jen políček v A, a takovou cestu bychom mohli protáhnout do onoho políčka s číslem 3 (a to by správně mělo 244 Kapitola 7: Počítání dvěma způsoby 7.2 Spernerova včta o nezávislém systému množin 245 mít číslo 1). Z podobného důvodu není políčko s číslem 3 ani v B -spor. Jak se ukáže existence trojúhelníka označeného 1,2,3? Přesně jako Spernerovo lemma. Ještě jedno velmi podobné tvrzení je ve cvičení 1. □ Poznamenejme, že uvedený důkaz podstatně využívá toho, že všechny vnitřní stěny hracího plánu jsou trojúhelníkové, a vnější stěna má jen 4 vrcholy a, b, c, d. Povolíme-li například čtyřúhelníkové vnitřní stěny, remíza v principu nastat může. Cvičení 1. Mějme nakreslený rovinný graf, jehož každá stěna včetně vnější je trojúhelník (tj., má 3 vrcholy). Každému vrcholu přiřadíme, zcela libovolně, některé z čísel 1,2,3. Dokažte, že existuje sudý počet, stěn, jejichž vrchol}^ mají všechna 3 čísla. 2. (Spernerovo lemma v dimenzi 3) (a) Uvažme čtyřstěn a1a2a3a4, a nějaké jeho rozdělení na malé čtyřstěny tak, že každá stěna každého z malých čtyřstěnů buď leží na stěně velkého čtyřstěnu, nebo tvoří zároveň stěnu ještě jednoho malého čtyřstěnu. Očíslujeme vrcholy malých čtyřstěnů čísly 1,2,3,4 tak, že .4, dostane i, na hraně AlAJ se vyskytují pouze i a j, a ve stěně AiAjAk jenom i, j a k. Dokažte, že potom existuje malý čtyřstěn očíslovaný 1,2,3,4. (b) Vyslovte a, dokažte 3-dimcnzionální verzi Brouwerovy věty o pevném bodě (o zobrazení čtyřstěnu do sebe). 3. K tématu vět o pevném bodě náleží dosti známá úloha o turistovi stoupajícím na horu. Turista tedy jednoho dne ráno v 6:00 začne stoupat na horu. Na vrchol dorazí v 0:00 večer, přenocuje tam (v budce k tomu účelu tam vystavěné, řekněme) a druhý den zase v 6:00 vyrazí po přesně stejné trase zpět, cestou se zastavuje, rozhlíží a podobně, takže do výchozího místa přijde zase v 6 večer. Má se dokázat, že na některém místě trasy byl v oba dny přesně ve stejný čas. 4. Uvažme hru jako v tvrzení 7.1.4. (a)" Dokažte, že vždy buď hráč A nebo hráč B má vyhrávající strategii (tj., pokud neudělá chybu, vyhraje, ať už druhý hraje jakkoli). (b) Najděte příklad hracího plánu (splňující podmínky jako v tvrzení 7.1.4) takového, že vyhrávající strategii má hráč B. (c) * Dokažte, že je-li hrací plán symetrický vzhledem k otočení o pravý úhel kolem středu (tj. jeví se stejně z pohledu hráče A i hráče B), potom má vyhrávající strategii vždy hráč A. 5. Hru HEX, jak možná čtenář ví, vynalezl Piet Hein. Hrací plán vypadá zhruba následovně: Hráči střídavě obsazují prázdná políčka svými figurkami. Cílem hráče A je spojit jeho dvě strany souvislým řetězcem políček, a podobně B chce spojit své dvě strany. Objevte a vysvětlete souvislost této hry s verzí hry HEX diskutované v textu. 7.2 Spernerova věta o nezávislém systému množin Ano, v této kapitole potkáváme jméno Sperner už podruhé, ale Spernerova věta, již dokážeme, bude o něčem zcela jiném než Spernerovo lemma z předchozí části. Bude o n-prvkové množině X a nějakém systému A4 jejích podmnožin. Systém M nazveme nezávislý, pokud v něm nejsou žádné dvě různé množiny A, D takové, že A C B. Než budete číst dál, zkuste najít nezávislý systém množin na čtyřprvkové množině. Jaký největší počet množin může takový systém obsahovat? 7.2.1 Věta (Spernerova věta). Libovolný nezávislý systém podmnožin n-prvkové množiny má nejvýš (|ři/2|) množin. 246 Kapitola 7: Počítaní dvěma způsoby 7.2 Spernerova věta o nezávislém systému množin 247 To je vlastne věta o částečně uspořádaných množinách. Uvažme totiž množinu 2X (tj., systém všech podmnožin množiny X). Relace C, „býti podmnožinou", je částečným uspořádáním na množině 2A ; je to dokonce jeden z nej důležitějších příkladů částečně uspořádaných množin, viz část 2.3. Nezávislý systém podmnožin je množinou po dvou neporovnatelných prvků v uspořádané množině (2 , C). Množina po dvou neporovnatelných prvků v částečně uspořádané množině se nazývá nezávislé, množina nebo též antířetězec . Spernerova věta tedy omezuje «(2X,C), tj. maximální možnou velikost nezávislé množiny v(2*C). Spernerova věta dává nejlepší možný horní odhad, neboť opravdu existují nezávislé systémy s právě (ira"2j) množinami. Jeden takový nezávislý systém je systém všech podmnožin množiny X velikosti právě [n/2j. Důkaz věty 7.2.1. Nejprve definujeme, co je to řetězec podmnožin množiny X: je to každá posloupnost podmnožin množiny X, která je tvaru A\ C A% C • • • C A^. V řeči uspořádání na 2X je to prostě lineárně uspořádaná podmnožina částečně uspořádané množiny (2 , C). Základní pozorování je, že každý řetězec má s libovolným nezávislým systémem podmnožin společnou nejvýš jednu množinu. Kdyby se nám například podařilo ukázat, že celá uvažovaná uspořádaná množina se dá vyjádřit jako sjednocení nejvýš r řetězců, potom žádná nezávislý systém nemá více než r množin. V našem důkazu nicméně využijeme uvedené pozorování trochu složitějším způsobem. Uvažme množinu všech maximálních řetězců v (2X, C), kde maximální řetězec je řetězec, ke kterému už nelze nic přidat tak, aby zůstal řetězcem. Je snadné nahlédnout, jak maximální řetězce vypadají: obsahují jednu podmnožinu X každé z možných velikostí, tj., mají tvar 0 C {xi} C {x'i,x2} C {x'i,x2,x-3} C ... C {x't,x-2,... ,xn}, (7.1) kde X\, X2, ■ ■ •,xn jsou všechny prvky X vypsané v nějakém pořadí. Každý takový maximální řetězec tudíž určuje pořadí prvků X, a obráceně, z každého pořadí dostaneme právě jeden maximální řetězec. Proto maximálních řetězců je stejně jako permutací, neboli n\. Nechť Á4 je libovolný nezávislý systém množin. Utvořme všechny uspořádané dvojice (71,M), kde M G Ái a 71 je maximální řetězec, obsahující M. Budeme počet takových dvojic počítat dvěma způsoby. Z jedné strany, podle zmíněného pozorování, každý řetězec obsahuje nejvýš jednu M 6 Aí, takže uvažovaných dvojic (7Z, M) není více než maximálních řetězců, tedy než n\. Z druhé strany, vezmeme jednu množinu MeMa ptáme se, v kolika maximálních řetězcích je obsažena. Maximální řetězec tvaru (7.1) obsahuje M jako jednu ze svých množin, právě když {x\, x2,..., x%} = M, kde k = \M\. Prvky množiny M můžeme stále ještě uspořádat k\ způsoby, čímž volíme počátečních k množin řetězce, a prvky mimo M můžeme uspořádat (n — fc)! způsoby, čímž je dán zbytek řetězce. Celkem je tedy M obsažena v k\(n — k)\ maximálních řetězcích. Počet uvažovaných uspořádaných dvojic (71, M) je proto roven ]T \M\\(n-\M\)\, M e M přitom podle předchozího způsobu počítání je tento počet nejvýš nl. Vydělíme-li vzniklou nerovnost číslem n\, dostaneme E \M\\(n - \M\)\ 1 71 z2 (" \ MeM \\M\J < 1. Využijeme toho, že (^/2j) je aspoň tak velké jako libovolné kombinační číslo tvaru (^') (viz část 3.5). Proto MeM MMI- odtud |-M|<([n;2j). □ Ještě jeden důkaz Spernerovy věty. Spernerova veta se dá dokazovat několika podstatně odlišnými metodami. Popíšeme ještě dvě z nich. První z nich chytře pokrývá 2 řetězci speciálního typu. Mějme nějaký řetězec v (2X,C), j. posloupnost do sebe zařazených množin 248 Kapitola 7: Počítaní dvěma způsoby 7.2 Spernerova věta o nezávislém systému množin 249 Mi C M'2 C ■ ■ • C M t . Nazveme takový řetězec symetrickým, jestliže pro nejaké k obsahuje množiny velikostí právě k, k + 1,..., n — k. Rozklad na symetrické řetězce bude pak vyjádření 2X jako disjunktního sjednocení několika symetrických řetězen. Je vidět, že libovolný rozklad na symetrické řetězce (existuje-li vůbec) sestává z přesně ([„%]) symetrických řetězců, jelikož každý symetrický řetězec obsahuje právě jednu množinu velikosti [_Ji/2j. Každý řetězec má s nezávislým systémem množin nejvýš jednu společnou množinu (na tom byl založen i předchozí důkaz Spernerovy věty). Spernerova věta tudíž vyplývá z následujícího: Tvrzení. Pro každou konečnou množinu X existuje rozklad na symetrické řetězce. Důkaz. Předpokládejme, že X — {1,2. kováto konstrukce: Každé podmnožině M C X přiřadíme posloupnost (mi,ni2 levých a pravých závorek „(" „)" předpisem n}. Základem důkazu je ta- mn) „(" jestliže i e M „)" jestliže i £ M. Tak například pro n = 7 a množinu M = {2, 6} máme (ma,...,m7) = „)()))(/"■ Posloupnost závorek je zcela obecná (tedy ne správně uzávorkovaná). Můžeme ji však „částečně uzávorkovat": nejdříve spárujeme všechny dvojice „()" stojící bezprostředně vedle sebe, a dále pokračujeme v párování dosud nepoužitých závorek stejným způsobem (přičemž již spárované závorky ignorujeme). Dva příklady: )))((() o )(• Při tomto postupu samozřejmě mohou některé závorky zůstat nespáro-vány. Z pravidla částečného závorkování nicméně plyne, že posloupnost zbývajících závorek má na začátku jen pravé závorky a potom, od jistého místa, už jen levé závorky. Řekneme, že dvě posloupnosti závorek mají stejné částečné uzávorkováni, pokud spárované závorky jsou v obou posloupnostech stejné (i na stejných pozicích). Tak je tomu například pro posloupnosti tří následujících množin: (podmnožin množiny {1, 2,. . ., 11}): M, = {4,5,6,8,11} M2 = {5,6,8,11} M3 = {5,6,8} )))((()())( ))))(()())( ))))(()())) Jediný způsob, jak se mohou dvě posloupnosti závorek se stejným částečným uzávorkováním lišit, je že jedna z nich má zleva více nespárovaných levých závorek, nebo zprava více nespárovaných pravých závorek. Z toho je snadno vidět, že dvě množiny se stejným částečným uzávorkováním (příslušných posloupností) musí být jedna podmnožinou druhé. Definujeme nyní na množině 2X ekvivalenci ~ předpisem M ~ M' právě když M i M' mají stejné částečné uzávorkování. Tvrdíme, že třídy této ekvivalence jsou symetrické řetězce. Ověření nechá-váme jako cvičení. Tím jsme ještě jednou dokázali Spernerovu větu. □ Nakonec předvedeme ještě jeden důkaz Spernerovy věty. Ten je zajímavý tím, že se v něm vlastně vůbec nepočítá s kombinačními čísly, ačkoliv Spernerova věta o nich hovoří. Místo toho se využívá značné symetrie uspořádané množiny (2X, C). Začneme trochu obecnější definicí. Mějme nějaké uspořádané množiny (X, <) a (Y, <). Zobrazení / : X —> Y nazveme isomorfismem, uspořádaných množin, jestliže / je bijekce a pro každé dva prvky x.y C X platí x < y právě když f(x) ■< f(y). Isomorfismus uspořádané množiny [X, <) s ní samotnou se jmenuje automorfism.us. Automorfismus zachovává všechny vlastnosti, které můžeme definovat pomocí relace <. Tak například x je největším prvkem nějaké podmnožiny A C X, právě když f(x) je největším prvkem množiny f (A). Třetí důkaz Spernerovy věty. Nechť X je daná konečná množina s n prvky. Každá permutace / : X<-»X indukuje zobrazení f#:2x-*2x, dané předpisem f*(A) = {f(x); x 6 A}. Je zřejmé, že f* je bijekce1 2X —> 2X, a dokonce automorfismus uspořádané množiny (2X, C). Uvažme nyní nějaký systém M podmnožin množiny X. Pro každou permutaci / množiny X můžeme uvážit systém {/'*(M); M e M}, tedy lV části 1.5 jsme přijali konvenci, podle níž se pro obraz množiny může použít stejné formy zápisu jako pro obraz prvku, tj. v našem případě bychom mohli množinu {f(x); x e .4} zapsat též jako f (A). Momentálně ale bude lepší přísněji rozlišovat mezi obrazem prvku a obrazem množiny. Proto jsme zavedli odlišné značení, /*, pro zobrazení množin 250 Kapitola 7: Počítám dvěma způsoby 7.2 Spernerova věta o nezávislém systému množin 251 systém obrazů množin z M při zobrazení Definujeme tak vlastně nové zobrazení /## : 22X -> 22X (tj. množinovým systémům přiřazuje množinové systémy) předpisem f**{M) = {f*(M); M e M}. Zobrazení /## je opět bijekce. Na systémech množin, tj. na množině 22 , zavedeme teď relaci < následujícím předpisem: M pro každé M e A4 existuje AT e Af tak, že M C AT. Všimněte si, že relace < jc něco jiného než inkluze mezi systémy množin. Je to relace větší (tedy z M C A/" plyne A4 < A/). Čtenář může sám ověřit, že relace <3 jc reflexivní a transitivní. Nemusí to však být relace antisymetrická (najděte příklad na tříprvkové množině X, abyste se přesvědčili, že pojmu rozumíte). Písmenem S budeme značit množinu všech nezávislých systémů na množině X (tedy S C 22 ). Tvrdíme, že relace < zúžená na množinu E již antisymetrická je, a tudíž to je částečné uspořádání. Když totiž M a Af jsou nezávislé systémy a platí M M a .Mmax > M'■ Zbývá ověřit |A4max| = |A4J. Všimneme si, že z nezávislosti M a TM' pijme .Ad DM' C M min H A"ímax. Proto lA-íminl + Abnax = |A4min U Aímax| + |Atmin H A4max| I A/ť l l A//' i I A/í o A/f'l — I A/fl _1_ I A > \M U M'\ + \Mf\M'\ = \M\ + \M'\ a tedy kdyby \Mmax\ < \M\ = |Ať|, potom bychom měli !A4min| > |A4|, a systémy A4 a Aí' by neměly maximální velikost. Tím je lemma dokázáno. Zbývá dokončit důkaz Spernerovy věty. Uvažme největší prvek Afo množiny (Hq, <). Pro každou permutaci / množiny X zobrazuje příslušný indukovaný automorfismus /*# množinu 50 (nezávislé systémy maximální velikosti) na ni samotnou, a tedy zobrazuje i její maximální prvek Au na něj samotný: /##(Ao) = A/q. Odtud však plyne, že jestliže do Afo patří aspoň jedna fc-prvková množina, potom tam už musí patřit všechny fe-prvkové množiny, neboli (*) c A/q. K systému (*) už nejde přidat žádnou množinu tak, aby zůstal nezávislým, takže Aío = (fc). Z maximality kombinačních čísel (i,) a (rn%-i) pak vyplývá, že A/o = (rn/2].)- n Cvičení 1. Řekneme, že systém .'V podmnožin X je polonezávislý, neobsahuje-li žádné 3 množiny A, B, C takové, že A C B C C. (a) Podobnou metodou jako v důkazu Spernerovy věty dokažte, že \Af\< 2^), kde n = \X\. (b) Ukažte, že pro liché n odhad z (a) nelze zlepšit. 252 Kapitola 7: Počítání dvěma způsoby 7.3 Extrcmální věta: grafy bez čtyřcyklů 253 2. Pro přirozené číslo n definujte uspořádanou množinu (Dn, |). kde Dn značí množinu všech dělitelů čísla n a | je relace dělitelnosti. (a) Jaký je nejdelší řetězec v této množině pro n = 10! ? (b) Kolik má tato množina maximálních řetězců (tj. takových, které již nejdou prodloužit) pro n = 10! ? (c) Kolik prvků má největší antiřetězec v této množině pro n — 720? 3. Ověřte, že třídy ekvivalence ~ definované ve druhém důkazu Sperne-rovy věty jsou doopravdy symetrické řetězce. 4* Dokažte, že množinové systémy (|^y2j) a (\n/2l) jsou jediné nezávislé systémy na n-prvkové množině s největším možným počtem množin. 5. Určete, kolik má množina (2X,C) automorfismů. 6. Dokažte, že pro každou konečnou částečně uspořádanou množinu (P, <) existuje nezávislá množina maximální možné velikosti, který se všemi automorfismy množiny (P, <) zobrazuje sama na sebe (je jejich pevným bodem). 7* Nechť ai,..., a„ jsou reálná čísla, |a(j > 1. Nechť p(fli,..., an) značí počet vektorů (ei,... ,en), kde el = ±1, pro něž n -1 < ^EiCli < 1. í=l Dokažte, že p(oi,a„) < (p"2|) Pro každé a,,..., a„, a že pro jistou volbu di nastane rovnost. (Toto je jedna z prvních aplikací Spernerovy věty - tzv. Littlewoodův-Offordův problém.) 8. Nechť n je přirozené číslo, které není dělitelné žádnou druhou mocninou přirozeného čísla. Určete maximální možnou velikost množiny dělitelů čísla n. které se navzájem nedělí (tj., max |Mj, kde x é M => x\n ax,ye M, x + y x fy). 7.3 Extremální věta: grafy bez čtyřcyklů V oddílu 4.8 jsme zjišťovali, jaký je největší možný počet hran grafu s n vrcholy, který neobsahuje jako podgraf žádný trojúhelník. Zde budeme vyšetřovat velmi podobně vypadající úlohu: Jaký je největší možný počet hran grafu s n vrcholy, který neobsahuje žádný podgraf isomorfní grafu K22 (neboli kružnici délky 4)? Podgraf zde uvažujeme v neindukovaném smyslu, takže například úplný graf na 4 vrcholech zakázaný podgraf Ä'2,2 obsahuje. Mohlo by se zdát, že zakázat Ä'2,2 bude mít podobný účinek jako zakázat trojúhelník, ale kupodivu se odpovědi na tyto dvě otázky zásadně liší. Graf neobsahující trojúhelník může mít až [n2/4\ hran, tedy přibližně polovinu z Q) (to je počet hran úplného grafu na n vrcholech, tedy maximální možný počet hran beze všech omezení). Naproti tomu, jak brzy uvidíme, zakázáním Ä'2,2 omezíme počet hran mnohem více, zhruba na n3'2. To je pro velká n počet nepatrný v porovnání s (5) (nebo i s n2/4). Obě úlohy náležejí do extremální teorie grafů, která v obecnosti vyšetřuje maximální možný počet hran grafu na n vrcholech, který neobsahuje daný zakázaný podgraf, nebo obecněji žádný podgraf z dané zakázané množiny grafů. V kapitole o stromech jsme se také setkali s úlohou tohoto typu: Viděli jsme, že graf na n vrcholech neobsahující žádnou kružnici (tedy les) má nanejvýš n — 1 hran. Teď přistoupíme k hlavnímu výsledku této části. 7.3.1 Věta. Buď G graf s n vrcholy. Neobsahuje-li G graf K^,2 jako podgraf, potom má nejvýše ^(n3//2 + n) hran. Důkaz. Pišme V = V(G). Budeme dvěma způsoby počítat velikost množiny M všech dvojic ({u,ii'},v), kde v G V, {»,?/} G (V2) a v je spojen hranou jak s u tak s u'. Jinými slovy, počítáme (neindukované) podgrafy tvaru Pro pevnou dvojici {u, u'} může existovat pouze jediný vrchol v G V spojený s u i s u' (kdyby byly dva takové vrcholy, v a v', seděl by na vrcholech u,u',v,v' podgraf isomorfní Ä'2,2)• Proto \M\ < Q). Nyní uvážíme všechny prvky (\u,u'},v) z množiny M pro jeden pevný vrchol v G V. Každá dvojice {u, u'} sousedů vrcholu v přispěje jeden prvek M, proto vrchol v stupně d přispěje (íj) prvky. 254 Kapitola 7: Počítání dvěma způsoby 7.3 Extremální věta: grafy bez čtyřcyklň 255 Označíme-li tedy d\, d%, ■. •, dn stupně jednotlivých vrcholů z V, dostáváme |M| = ÍXi (*)■ Spojením s předchozím odhadem máme *=i < (7.2) Přitom počet hran uvažovaného grafu je E = h Y17=i d>- Zbytek důkazu je již čistě manipulace s nerovnostmi, která se dá dělat mnoha různými způsoby. Zde ukážeme jeden důkaz, další je naznačen ve cvičení 5 (ten je trochu složitější, ale snáze se zobecní). Nejdříve potřebujeme jednu (důležitou) nerovnost: 7.3.2 Tvrzení (Cauchyho-Schwarzova nerovnost). Pro libovolná reálná čísla x\,...,xn a yi,..., yn platí E XiVi - \ i=l \ Cauchyho-Schwarzova nerovnost má názorný geometrický význam. Interprctujcme-li totiž x — (x\,..., xn) a y = (yi,..., yn) jako vektory v n-dimenzionálním euklidovském prostoru, je levá strana nerovnosti jejich skalární součin, zatímco pravá strana je součin jejich délek. Přitom dobře známý vzorec z vektorového počtu říká, že kosinus úhlu dvou vektorů je roven jejich skalárnímu součinu dělenému součinem jejich délek. Cauchyho-Schwarzova nerovnost tedy vyjadřuje, že kosinus úhlu je vždy nejvýš 1 (rozmyslete si to aspoň pro případ n. = 2, tj. v rovině). Cauchyho-Schwarzova nerovnost se většinou probírá v analýze i v lineární algebře, ale proč neuvést dva hezké důkazy? První důkaz: z AG nerovnosti. Pišme X = Yh=i xi a ^ = 52ľ=i Vi-Pokud X = 0, pak všechna x; jsou 0 a nerovnost platí, a podobně pro Y = 0. Mějme teď X > 0 a Y > 0 a definujme a, = xf/X, h = yf/Y. Nerovnost mezi aritmetickým a geometrickým průměrem, viz důkaz věty 3.4.1, praví \/aj6j < («i + č>i)/2. Sečtením těchto nerovností pro i — 1,2,... ,n vychází na levé straně i=l zatímco pravá strana dává ■ i=l i=l ;(1 + 1) = 1. Takže J2í=i Ítw - h a p° vynásobení výrazem VXY máme Cauchyho- /xy Schwarzovu nerovnost. □ Druhý důkaz: kouzlo s diskriminantem. Považujme čísla Xi a yt za pevně zvolená, a definujme funkci p proměnné t předpisem n p(í) = y^íx, + tWf. i=l Po umocnění závorek a sloučení členů se stejnou mocninou t je vidět, že p(t) je kvadratická funkce tvaru p(ť) = ar + bt + c, kde a = ]C"=i yf, b = ]C™=1 2xiVi a c = E)ľ=l xí • Na druhé straně je hodnota p(t) součtem čtverců, a tedy nezáporná pro všechna t. Kdyby měla kvadratická rovnice at2 + bt + c — 0 kladný diskriminant, měla by dva reálné kořeny, a byla by na části reálné osy záporná. Tudíž diskriminant je nekladný, neboli b2 - áae. < 0. Kdo si do tohoto vztahu dosadí za a, b, c, zjistí, že vyjde přesně Cauchyho-Schwarzova nerovnost. □ Tím nejsou důkazy Cauchyho-Schwarzovy nerovnosti zdaleka vyčerpány další jsou například ve cvičení 4. Dokončení důkazu věty 7.3.1. Zřejmě můžeme předpokládat, že náš graf nemá izolované vrcholy, tedy di > 1 pro každé i. Potom platí (2') ^ (di ~ 1)2/2' takže z (7-2) dostaneme 7-1 Použijeme nyní Cauchyho-Schwarzovu nerovnost s xl — di — 1, yi — 1. Dostaneme i = l J^(dj - l)2v^ < Vn^Vn \j <=i 3/2 takže E=\ Y™=1 di < |(n3/2 + n). 256 Kapitola 7: Počítání dvěma způsoby 7.3 Extremální věta: grafy bez čtyřcyklů 257 Cvičení 1. Dokažte, že pro libovolné t > 2 jc maximální počet hran grafu neobsahujícího K-zj jako podgraf nejvýš \{\/t — 1 n3/2 + n). 2. Nechť Si, S2, • • •, Sn jsou nějaké podmnožiny nějaké n-prvkovc množiny X. Předpokládejme, že platí \Si D Sj\ < 1 pro každé i.j, í < i < j < n. Ukažte, že některá z množin Si má nanejvýš 0{\/n) prvků. 3. Nechť A je n-prvková množina, B je rn-prvková množina, a nechť G je bipartitní graf na A U B, jehož každá hrana spojuje vrchol z A s vrcholem z i?. Dokažte, že neobsahuje-li G graf K2,2 jako podgraf, potom má nejvýš 0(m.y/n + n) hran. 4. (a) Dokažte Cauchyho-Schwarzovu nerovnost indukcí podle n (napřed ji umocněte na druhou). (b) Dokažte Cauchyho-Schwarzovu nerovnost přímo: vyjděte z nerovnosti Yľi,j=i(xiyj - xjVi)2 > 0 a upravte. 5. (a) Nechť / : R —> R je konvexní funkce, tj. pro pro libovolné x, y G R a A G [0,1] platí f(Xx + (1 - A)j/) < A/(x) + (1 - X)f(y). Geometricky to znamená, že spojíme-li libovolné dva body na grafu této funkce úsečkou, leží část grafu mezi těmito body pod zmíněnou úsečkou: x Are + (1 - X)y y Dokažte indukcí, že potom pro libovolná reálná čísla x,\,X2, ■ ■ ■,x, platí + fr2 + - • • + ix„) < I/(sx) + i/(x2) + ■ ■ ■ + íf(xn). (b) Definujte funkci / předpisem f ( ,\ _ / 0 Pro x — 1 ~ \ x(x - l)/2 pro x > 1. Dokažte, že / je konvexní. (c) Dokažle ze vztahu (7.2) větu 7.3.1 pomocí (a) a (b) (napřed odvoďte nf(2E/n) < (£)). 6* Podobnou metodou jako ve cvičení 5 odvoďte, že neobsahuje-li graf na n vrcholech ^3,3 jako podgraf, má nejvýš const.n5'3 hran. _ 8 Počet koster 8.1 Cayleyho formule Pro daný graf G označme k(G) počet všech koster G. V této kapitole předkládáme čtenáři několik důkazů následujícího výsledku: 8.1.1 Věta (Cayleyho formule). Pro každé n > 2 je k(Kti), tj. počet stromů na daných n vrcholech, roven nn 2. Ačkoli pro k(Kti) vyjde taková pěkná jednoduchá formule, není znám žádný úplně přímočarý způsob, jak její správnost nahlédnout. Postupem času se přišlo na celou řadu důkazů, jejichž základní myšlenky se od sebe podstatně odlišují, ale každý z nich je založen na umném triku nebo vyplývá z netriviální teorie. Shromáždili jsme několik důkazů do této kapitoly, hlavně jako ilustraci myšlenkového bohatství matematiky. Rozhodně nechceme tvrdit, že věta 8.1.1 patří k vůbec nejdůleži-tějším v matematice. Na druhé straně, počet koster grafu (a související teorie) má řadu teoretických i praktických aplikací, a začal se studovat v souvislosti s elektrickými obvody. Jako ilustraci uvedeme bez důkazu „elektrotechnický" význam počtu koster. Představme si, že daný graf G je elektrický obvod, kde každá hrana je vodič s jednotkovým odporem (a vrcholy znamenají prostě spojení konců dohromady). Jsou-li x,y vrcholy spojené hranou, potom odpor, který bychom mezi nimi v tomto obvodu naměřili, je roven počtu 260 Kapitola 8: Počet koster 8.2 Důkaz přes skóre 261 koster G obsahujících hrami {./;,(/}, dělenému celkovým počtem koster k(G). Přímo tento výsledek není ovšem pro přímou aplikaci příliš užitečný (málokdy máme všechny odpory stejné), ale existuje příslušné zobecnění na grafy s ohodnocenými hranami. V celé kapitole bude množina V vrcholů uvažovaného úplného grafu rovna {1,2,..., n}. Cvičení 1. Dokažte, že počet navzájem neisomorfních stromů na n vrcholech je nejméně en/n3 (viz též cvičení 5.2.5!). 2* Předpokládejte platnost věty 8.1.1, a určete počet koster úplného grafu na n vrcholech bez jedné hrany. 3. Označme Tn — /t(J\n). Dokažte rekurentní vzorec (n - 1)T„ = k(-n ~ fcH Ä - 1 )TkTn-k- Poznámka: také z této rekurence se dá věta 8.1.1 odvodit, ale není to jen tak. 4* Spočítejte k(A'ÍIj?í1) (počet koster úplného bipartitního grafu). Pokuste se aplikovat některou z metod z následujících oddílů (např. 8.5, 8.2). 8.2 Důkaz přes skóre Ukážeme 8.2.1 Tvrzení. Nechť d\, d%,..., dn jsou kladná celá čísla se součtem 2n — 2. Potom počet koster grafu Kn, v nichž každý vrchol i má stupeň právě dj (pro i 1.2..... n) jc roven (n - 2)! (dl-i)}(d2-iy....(dn-iy.' Důkaz. Indukcí podle n. Pro n • 1,2 je tvrzení triviální, nechť tedy n > 2. Protože součet dj je menší než 2n, existuje i takové, že dj = 1. Po případném přejmenování vrcholů můžeme předpokládat, že dn = 1. (Jinak řečeno: když dokážeme tvrzení za předpokladu dn = 1, bude pak dokázáno i pro libovolnou hodnotu dn.) Buď T množina všech koster grafu Kn. v nichž rná každý vrchol i stupeň dj. Rozdělme kostry z T do n — 1 skupin: Tj budou ty kostry z T, ve kterých je vrchol n spojen s vrcholem j. Nyní uvažme kostru z nějakého Tj, a vymažme z ní vrchol n společně s (jedinou) hranou do něj zasahující. Tím dostaneme kostru grafu Kn—i, v níž je stupeň vrcholu i roven dj pro i ^ j a d,j — 1 pro i = j. Je snadno vidět, že to definuje bijekci mezi množinou koster Tj a množinou T- všech koster grafu Kn-i se stupni di,d2, , (íj-i, dj l.d. , d 71—1 (protože různé kostry z Tj dávají různé kostry z TJ, a z každé kostry z Tj můžeme dostat kostru z T tím, že přidáme vrchol n a spojíme jej s vrcholem j). Podle indukčního předpokladu pak máme ("-3)1 I7?' " " I7/' (di-l)!-^-!-!)!^—2)l(^+1-l)!-(ri« (n mdj í) -1)! - {di-%M0 [1 + 1+ --- + 1)""2 = nn~2. I I Cvičení 1. (a)* Najděte počet stromů (na daných n vrcholech), v nichž každý vrchol má stupeň 1 nebo 3. (b)* Co když připustíme stupně 1,2 a 3? 8.3 Důkaz s obratlovci Definujeme, co je obratlovec na množině vrcholů V uvažovaného úplného grafu Kn (viz obr. 8.1 (a)): je to kostra, u níž navíc je jeden vrchol označen čtverečkem a jeden vrchol kroužkem (nevylučujeme, že týž vrchol je označen čtverečkem i kroužkem). Označme množinu všech obratlovců písmenem O. Z každé kostry můžeme stvořit právě n2 různých obratlovců, proto počet všech koster je roven \0\/n2. Ukážeme nym 8.3.1 Lemma. Existuje bijekce F mezi množinou O všech obratlovců a množinou všech zobrazení množiny V do sebe. Počet zobrazení n-prvkové množiny do sebe je n", obratlovců je podle lemmatu stejně, a tudíž koster je nn~2. (a) 11 13 17 16 Obrázek 8.1: (a) Obratlovec na 19 vrcholech, (b) jemu odpovídající graf zobrazení. Důkaz lemmatu. Konstrukci bijekce F ukážeme na příkladu na obr. 8.1. Vyjdeme z obratlovce O nakresleného na obrázku (a). Označené vrcholy □ a o Jsou aP°jeny jedinou cestou, kterou nazveme páteř. Vypišme si čísla vrcholů páteře do řádky v pořadí podle velikosti, a potom do další řádky znovu v pořadí, jak jdou od Q k O: 3 4 7 8 9 14 15 8 4 14 9 3 7 15 Definujeme nyní na vrcholech páteře pomocný orientovaný graf P: uděláme šipku z každého vrcholu z horní řádky do vrcholu napsaného pod ním v dolní řádce. Poněvadž z každého vrcholu vychází právě jedna šipka a také do každého vrcholu jedna šipka vchází, je graf P disjunktním sjednocením orientovaných cyklů (případně samotných vrcholů se smyčkou). Můžeme také říci, že páteř definuje permutaci svých vrcholů a P sestává právě z cyklů této permutace, viz část 3.2. V našem příkladu jsou posloupnosti vrcholů těchto cyklů, srovnané v pořadí podle šipek, (3,8,9), (4), (7,14) a (15). Podíváme se nyní zpátky na obratlovce O. Odebereme-li z něj na chvíli všechny hrany páteře, rozpadne se na jednotlivé komponenty (opět stromy). Orientujme hrany každé komponenty tak, že směřují k (jedinému) vrcholu páteře v této komponentě. Tím vznikne další 264 Kapitola 8: Počet koster 8.4 Důkaz pomocí Priiferova kódu 265 množina orientovaných hran na množině V. Definujeme nyní orientovaný graf G na množině V, jehož hranami budou jednak právě definované orientované hrany komponent, jednak všechny hrany pomocného grafu P. Na obrázku je to velmi názorné: nakreslíme cykly grafu P, a potom ke každému vrcholu (původně z páteře) přikreslíme strom, který přes něj byl zavěšen na páteři obratlovce, viz obrázek (b). Tvrdíme nyní, že výsledný orientovaný graf G jc grafem zobrazení, to znamená, že z každého vrcholu vychází právě jedna hrana. Pro vrcholy páteře jsme to již konstatovali. Pro ostatní vrcholy je to proto, že v obratlovci O z nich vede jediná cesta do páteře. Definujeme tedy konečně zobrazení / = F (O) : {1,2,..., ti} —» {1,2,..., n}, příslušející obratlovci O: pro každé i, což je vrchol grafů G, položíme f (i) = j, kde j je ten vrchol G, do nějž jde šipka z i. V našem konkrétním příkladě bychom dostali zobrazení 1 i-» 7, 2 i—* 15, 3 h> 8, 4 h» 4, 5 h> 2, 6 i y 5, 7 i * 14, 8 i * 9, 9 i ^ 3, 10 i > 4, 11 h-> 10, 12 h-» 4, 13 ^ 12, 14 k-» 7, 15 i ► 15, 16 i-> 7, 17 i-» 16, 18 i-* 1 a 19 h> 8. Takto každý obratlovec určuje zobrazení. Zbývá ještě ukázat, že z takto sestrojeného zobrazení lze původního obratlovce zpětně rekonstruovat, a že každé zobrazení se dostane z nějakého obratlovce. To ponecháme do cvičení. □ Cvičení 1. Pro dané zobrazení / konečné množiny V do V definujeme graf f, což je orientovaný graf s množinou vrcholů V a hranami z každého i e V do f (i) (takový graf jsme používali v důkazu výše). Dokažte, že každá komponenta takového grafu je orientovaným cyklem, na jehož vrcholy jsou případně přivěšeny stromy s hranami orientovanými směrem k tomuto cyklu. 2. Popište, jak se ze zobrazení / = F (O) : {1,2,..., n} -* {1, 2,..., n} zpětně získá výchozí obratlovec O, a dokažte, že každé zobrazení / : {1, 2,.... n} —► {1,2,----n} se dostane jako F(0) pro nějakého obratlovce O (s využitím cvičení 1). 3* Nechť / : {1, 2,...,n} —> {1. 2,..., n] jc funkce. Navrhněte algoritmus, který pro dané i najde délku periody posloupnosti (i, f (i), /(/(*)), • • •) (tj. v řeči grafu zobrazení /, délku cyklu, do nějž se dostaneme po šipkách z bodu i), přičemž používá jen konstantní velikost paměti (nezávislou na délce periody). Přitom máte k dispozici podprogram (černou skříňku), vypočítávající hodnoty /. 8.4 Důkaz pomocí Priiferova kódu Ukážeme, jak každou kostru grafu Kn zakódovat (n — 2)-člennou posloupností, jejíž každý člen je některé z čísel 1,2,... ,n. Toto kódování bude definovat bijekci mezi všemi kostrami a všemi posloupnostmi uvedeného typu. Poněvadž takových posloupností je zřejmě n'"~2, bude tím dokázána věta 8.1.1. Mějme danou kostru T; příklad viz obr. 8.2(a). Popíšeme, jak sestrojit posloupnost P = P (T) = (p\,P2, ■ ■ ■ ,pn-2), tzv. Pruferův kód kostry T. Základní myšlenka1 je, že ze stromu T budeme postupně otrhávat listy, dokud z něj nezbude jen jediná hrana. Budeme tedy konstruovat pomocnou posloupnost stromů To = T,T\,T%,..., T.n 2 = K'ž a přitom vyrábět posloupnost P. Předpokládejme, že už jsme zkonstruovali Ti-i (na začátku máme Tq = T). Jak víme, má aspoň 1 list (vrchol stupně 1). Vezmeme nejmenší z listů Tj_i (připomeňme, že vrcholy T jsou čísla 1, 2,... , n), a utvoříme T,; odstraněním tohoto listu z TJ_], spolu s příslušnou hranou. Přitom definujeme í-tý člen, pl, konstruované posloupnosti jako souseda právě utrženého listu (tedy nikoliv jako list sám, to je hlavní trik!). Uděláme-li toto pro i — 1,2,..., n— 2, definovali jsme posloupnost P — P(T). Předpokládejme teď, že daná posloupnost P vznikla yýše uvedenou konstrukcí z nějaké (nám dosud neznámé) kostry T. Odvodíme, jak zpětně vytvořit T. Ptejme se nejdříve, jak z posloupnosti P poznat, který vrchol kostry T byl utržen jako první; označme jej í\ (musel to být list). Zřejmě l\ se nesmí vyskytovat nikde v posloupnosti P (protože do P se zapisují jen vrcholy dosud přítomné v otrhaném stromě). Dále, každý vrchol, který není obsažen v množině {pi,P2, • • • ,Pn-2\, musí být listem stromu T (jinak bychom od něj v některé fázi odtrhli list, a tím by se octl v posloupnosti P). Podle pravidla otrhávání listů 1 Trochu vandalská. 266 Kapitola 8: Počet koster 8.4 Důkaz pomocí Priiíerova kódu 267 (a) (b) Obrázek 8.2: (a) Kostra s kódem (5,1,1,4, 5,1), (b) postup její rekonstrukce z kódu. je tudíž í\ minimum z množiny {1, 2,... ,«} \ {pi,P2, ■ • • -Pn-2}- Tato množina je vždy neprázdná, a proto jc minimum dobře definováno. Můžeme nyní l\ nakreslit jako první vrchol kostry, a připojit k němu hranou vrchol p\ (viz obr. 8.2(b)). Dále postupujeme podobně; znánie-li již listy l\A-2-.--- utržené v krocích 1 až i — l, budeme určovat list l-t. Nemůže to být žádný z vrcholů pi,pi+i,... ,pn-2, a ovšem ani z ty,..., l-^y - bude to tedy minimum z množiny {1,2,... ,n}\ {pi,pi+\,... ,pn-2,č\,&2, ■ ■ ■, h-i} (ta je zase neprázdná). Takto určený list li připojíme hranou k vrcholu pí. Není-li ti dosud nakreslen, nakreslíme jej ovšem také, podobně pro pí. Prvních 5 kroků konstrukce je znázorněno na obr. 8.2(b), v 6. kroku bychom dokreslili hranu {1,5}. Po n — 2 krocích jsme nakreslili n — 2 hran kostry T, jmenovitě všechny, které byly při otrhávání odstraněny, a zbývá určit, která byla poslední zbývající hrana. Jeden její konec musí ovšem být pn-2, tedy soused posledně odtrženého listu, a druhý konec je ten vrchol, který se nevyskytuje mezi všemi odtrženými listy í\,...,l„.-2 a je různý od Pn-2- Na obr. 8.2 to bude hrana {1,8}. Tím je metoda rekonstrukce popsána. Ještě ji pro přehlednost jednou shrňme. Použijeme dvouřádkového zápisu. Do prvního řádku zapíšeme čísla Pii P2t ■ ■, Pn-3, pn-2, Pn-2 (tedy n — 1 čísel, přičemž pn-2 na konci se opakuje - tímto opakováním se elegantně zahrne poslední, výjimečný krok do obecného pravidla). Do druhého řádku postupně vyplňujeme čísla li, Í2,- ■ ■, in-i- Byla-li již vyplněna l\ až t\, \, pak číslo l-t je nejmenší takové, jež se nevyskytuje mezi předchozími čísly v dolním řádku ani mezi čísly v horním řádku od řté pozice (včetně) vpravo: Pl P2 ■ ■ ■ Pi-1 I Cl C2 fl Pr, .1 Pi- 2 Pn-2 Na silně orámovanou pozici přijde nejmenší číslo, které není mezi čísly vyznačenými šedě. Hrany ©i, e-2,... rekonstruované kostry spojují vždy vrchol z horního řádku s vrcholem napsaným pod ním. Pro libovolnou (n — 2)-člennou posloupnost P vytvoří právě uvedený algoritmus nějaký graf G na množině vrcholů {1,2,..., n} s n — 1 hranami. Též víme, že pokud posloupnost P pocházela z nějaké kostry T, platí G = T. Náš úkol ale ještě nekončí: Musíme se přesvědčit, že vzniklý graf G je vždycky strom, a že jeho zpětným překódováním do posloupnosti dostaneme tu posloupnost, z níž jsme vyšli. Označme Gt = ({1,2,..., ??,}, {ež, ei+i,... , en_i}). Z algoritmu vyplňování dolního řádku je vidět, žc do vrcholu lt zasahuje hrana eř a žádná z hran Cj+i,..., en_i už do ti zasahovat nemůže, takže £j má v G'i stupeň 1. Tedy Gz vznikne z Gt+t přidáním listu, a z tvrzení 5.1.3 o postupné výstavbě stromu vidíme, že G je strom. Obecněji, G,; je strom plus i — 1 izolovaných vrcholů. Zbývá ověřit, že lt je nejmenší z listů grafu G i. Podle definice ít by menší list mohl být jedině mezi í\,... %íi-\ nebo mezi pt,... ,pn-2-První skupina nepřichází v úvahu (poněvadž £i, ■ ■ ■ ,£í-i mají v G, stupně 0). Uvažme vrchol pk, i < k < n — 2. V grafu G^ je to soused listu lk, a protože G k sestává z izolovaných vrcholů a jedné další komponenty, která má aspoň 2 hrany, má pu v grafu Gk stupeň minimálně 2. Takže ani v G,; není p^ listem. Tudíž li je nejmenší list v G;, a Gí+i opravdu vznikne z G,, podle procedury Priiferova kódování kostry Důkaz věty 8.1.1 je hotov. □ 268 Kapitola 8: Počet koster 8.5 Důkaz pracující s determinanty 269 8.5 Důkaz pracující s determinanty Dva důkazy věty 8.1.1 uvedené v tomto oddílu jsou založeny na lineární algebře, a ilustrují pěkný kombinatorický význam determinantu matice. Jsou o něco těžší než předchozí důkazy (a potřebují se v nich základní věty o determinantech), zato ale určují počet koster pro libovolný graf. Buď G libovolný graf s vrcholy 1,2,..., n, n > 2, a hranami e.y, e2, ..., em. Zavedeme n x n matici Q, zvanou Laplaceova matice grafu G, jejíž prvky c/i?- jsou určeny následujícím předpisem: m = m = clegG(i) -1 pro {i,j} G E(G) 0 jinak i = 1,2,... ,n i, j 1,2..... n. i ■/ j. Brzy se nám bude hodit pozorování, že součet všech řádků Laplaceovy matice je vždy nulový vektor. Dále nechť Qíj značí matici (n — 1) x (n — 1), která vznikne z matice Q vyškrtnutím i-tého řádku a j-tého sloupec. Platí následující pozoruhodná 8.5.1 Věta. Pro každý graf G platí k(G) = det Qn. Věta ve skutečnosti říká, že k(G) = det Qu pro libovolný vrchol i grafu G, neboť vrcholy grafů si můžeme očíslovat jak chceme. Obecněji dokonce platí k(G) = | det Qíj\ pro libovolná i a j. To tady nebudeme dokazovat, důkaz je naznačen ve cvičení. Než začneme větu dokazovat, odvoďme z ní větu 8.1.1. Pro G = Kn má Laplaceova matice na diagonále všude čísla n—l, a mimo diagonálu — 1. Vymažeme-li první řádek a první sloupec, dostaneme (n — 1) x (n — 1) matici tvaru 1 1 n -1 1 \ n - 1 / Determinant spočítáme šikovnými řádkovými a sloupcovými úpravami: odečteme-li od všech řádků kromě prvního první řádek, a potom k prvnímu sloupci přičteme součet všech ostatních, vznikne matice, která na diagonále má 1. //. //.;/..... ,n a všude pod diagonálou nuly. Determinant je pak součin diagonálních prvků, čili nn . Větu 8.5.1 dokážeme dvěma způsoby. První z nich je kratší a gra-fovější. Druhý využívá víc lineární algebry a asi je z něj trochu lépe vidět, proč věta platí. První důkaz věty 8.5.1. Dělá se indukcí, a aby fungovala, potřebujeme tvrzení věty zesílit. Budeme je dokazovat i pro multigrafy, neboli grafy s násobnými hranami. Ty jsme zmiňovali v oddílu 4.5: každá dvojice vrcholů může být spojena libovolným počtem hran (žádnou, jednou, nebo několika). Jsou-li vrcholy u a v spojeny více hranami, potom kostry odlišujeme podle toho, kterou z nich užijí. Následující multigraf má kupříkladu 6 koster: Smyčky v našich grafech připouštět nebudeme, poněvadž nemají na počet koster vliv. Jak vypadá Laplaceova matice multigrafu? Jsou-li vrcholy u a v spojeny m hranami, potom quv = —in. Diagonální prvek quu je pak stupeň vrcholu u včetně násobností hran (například prostřední vrchol grafu na předchozím obrázku má stupeň 5). Dále budeme spoléhat na vzoreček k{G) =K(G-e)+k(G:e), kde e je libovolná hrana grafu G, G — e je graf po jejím odebrání, a G : e značí graf po kontrakci hrany e. To znamená, že hrana e se z G vynechá a její koncové vrcholy se pak slepí do jednoho vrcholu. Touto operací se mohou objevit nové násobné hrany — to je rozdíl proti operaci kontrakce hrany zavedené v části 6.8. Pokud ale byly slepené vrcholy spojeny více hranami než jenom e, tyto hrany se zruší (mohly by se místo toho stát smyčkami na slepeném vrcholu, ale zde smyčky neuvažujeme). Na obrázku je příklad kontrakce: 270 Kapitola 8: Počet koster 8.5 Důkaz pracující s determinanty 271 G G : e Abychom nahlédli vzoreček (8.1), všechny kostry grafu G rozdělíme do dvou skupin. První skupina jsou kostry neobsahující hranu e, které přesně odpovídají kostrám grafu G — e a přispějí člen k(G — e). Druhá skupina jsou kostry obsahující e, a ty jsou ve vzájemně jednoznačné korespondenci s kostrami G : e, jak naznačuje obrázek a jak si čtenář může v klidu rozvážit, a je jich tedy n(G : e). Ještě potřebujeme rozmyslet, co operace odebrání hrany a kontrakce hrany udělají s Laplaceovou maticí. Přesněji řečeno, předpokládáme, že hrana e má koncové vrcholy 1 a 2, a podíváme se, jak se změní matice Qu. Pro odebrání hrany je to velmi jednoduché: označíme-li Q' Laplaceovu matici grafu G — e, pak Q'u vznikne z Q\\ zmenšením prvku v levém horním rohu o 1 (protože odebrání e ovlivní jedině pozice (1,1), (1,2), (2,1) a (2,2) v Laplaccově matici, a nás zajímá Laplaceova matice po vymazání prvního řádku i sloupce). Při kontrakci hrany e vrcholy 1 a 2 zaniknou a místo nich se objeví nový vrchol, vzniklý jejich slepením. Očíslujme vrcholy grafu G : e třeba tak, že slepený vrchol má číslo 1 a starý vrchol číslo i > 3 teď má číslo i — 1, a necht! Q" značí Laplaceovu matici G : e při tomto očíslování. Je snadno vidět, že Q"ľ — Q\\;n, což značí matici Q po vymazání prvního a druhého sloupec a prvního a druhého řádku. Například pro graf G na předchozích dvou obrázcích máme Q ( 5 0 -1 -1 0 2 -1 0 -1 -1 3 0 V -i 0 0 1 ) Qii = -i o 3 0 0 1 Teď zahájíme vlastní důkaz indukcí. Budeme dokazovat, že pro každý multigraf G s nanejvýš m hranami platí n(G) = det Qu, indukcí podle ni.. Pokud v multigrafu G z vrcholu číslo 1 nevychází žádná hrana, máme k(G) = 0. První řádek Laplaceovy matice je celý nulový, a jelikož řádky Laplaceovy matice mají vždy nulový součet, má i matice Qu nulový součet řádků. Proto detQn = 0 a dokazované tvrzení platí. Speciálně tím dostáváme platnost případu m, = 0 jako základ indukce. Zajímavější je druhý případ, kdy z vrcholu číslo 1 vychází aspoň jedna hrana. Jednu takovou hranu zvolíme a pojmenujeme ji e, a zvolíme očíslování ostatních vrcholů tak, aby druhý koncový vrchol byl 2. Značí-li Q, Q' a Q" po řadě Laplaceovy matice grafů G, G — e a G : e jako v předchozím, podle vzorečku (8.1) a podle indukčního předpokladu máme k(G) = k(G -e)+ k(G : e) = = det Q'n + det Q'{x = det Q'n + det Qn,%2- Jak známo, determinant matice je lineární funkcí každého řádku, a matice Qu vznikne z Q'n přičtením vektoru e\ = (1,0,0,... , 0) k prvnímu řádku. Tedy detQn = detQ'11 + det i?, kde R má v prvním řádku vektor c\ a ostatní řádky se shodují s Q\\. Nyní podle vzorce pro rozvoj determinantu podle řádku platí det R = detQii.227 takže det Q'u + det Q\\;n = det Q'n + det R, = det Qu. To je konec indukčního kroku a také prvního důkazu věty 8.5.1. Ještě podotkněme, že jsme potřebovali jen velmi speciální případ vzorce pro rozvoj determinantu podle řádku, kdy v tom řádku je jedna jednička a jinak sarné nuly, a tento případ je ihned vidět z definice determinantu. □ 272 Kapitola 8: Počel koster 8.5 Důkaz pracující s determinanty 273 Druhý důkaz věty 8.5.1. Nejdříve pevně zvolíme libovolnou orientaci G grafu G, tj. pro každou hranu vybereme jeden její vrchol jako začátek a druhý jako konec (terminologie pro orientované grafy se probírá v části 4.6). Příslušnou orientovanou hranu budeme značit také e/u. Jc zajímavé, žc pro důkaz nějakou orientaci potřebujeme, přestože výsledek na ní nebude záležet! Definujeme teď pomocnou matici D = Dg (zvanou matice incidence pro zvolenou orientaci G). Bude mít n řádků (odpovídají vrcholům grafu G) a rn sloupců (odpovídají hranám G), a bude zadána takto: {—1 jc-li i začátek hrany 1 je-li i konec hrany tk 0 jinak, tedy pro i £ Všimněme si, že matice D má v každém sloupci právě jednu 1, jednu — la zbytek 0, speciálně tedy součet všech řádek je nulový vektor. Připomeňme, že je-li A matice, značí AT matici k ní transponovanou, tj. AT má na místě prvek a jí. Označme dále B matici vzniklou z D odebráním prvního řádku. Nejprve uvedeme do souvislosti matici D a Laplaceovu matici grafů G: 8.5.2 Lemma. Platí DDT = Q a BBT = Qn (kde D = Dč pro nějakou libovolnou orientaci G grafu G). Důkaz. Podle definice násobení matic je prvek v pozici (i, j) v součinu DDT roven Yľk!=i dikdjk- Pro * = j Je ^ife^jfc = dfk rovno 1, pokud i je začátek nebo konec hrany e^, a 0 jinak, tedy uvedený součet je právě stupeň vrcholu i v grafu G. Pro i ^ jje součin 2), a T nějaká jeho orientace. Buď D,p matice incidence orientovaného grafu T, a nechť C označuje matici vzniknou z matice vynecháním jejího prvního řádku. Potom det G má jednu z hodnot 0, 1, —1, a je nenulový právě když T je strom (tj. kostra úplného grafu na {1, 2,... , n}). Důkaz povedeme indukcí podle n, počtu vrcholů. Pro n — 2 je situace jednoduchá - T má jedinou hranu a je tedy kostrou, a jediný prvek matice G je 1 nebo —1. Uvažme tedy obecné n > 2, a rozlišme dva případy podle toho, jestli některý z vrcholů 2,3,..., n má v grafu T stupeň 1. Nejprve předpokládejme žc takový vrchol stupně 1 existuje. Můžeme případně přečíslovat vrcholy tak, aby stupeň 1 měl vrchol n. To znamená, že matice G má v posledním řádku jediný nenulový prvek (rovný 1 nebo —1), a sice v fc-tém sloupci. Podle vzorce z lineární algebry pro rozvoj determinantu podle řádku matice, použitého na i-tý řádek naší (n — 1) x (n — 1) matice G, můžeme psát n-í det G = 1)'' V,; detdj, y=i (Cij je matice G po vynechání i-tého řádku a j-tého sloupce). Speciálně, vezmeme-li i = n—1, máme pouze jediný nenulový člen (protože pouze prvek v fc-tém sloupci je nenulový): det G = (-l)n-1+*cB_1,Jfe detG„ u.. a tedy |detG| = j det Cn-\tk\- Tuto zmenšenou matici G' = Gn_i f~ můžeme dostat vymazáním prvního řádku z incidenční matice D.p, menšího orientovaného grafu T', vzniklého z T vynecháním vrcholu n a hrany e&. Podle indukčního předpokladu tedy víme, že | det C'\ je 1 nebo 0 podle toho, je-li T" (tj. „neorientovaná verze" T') kostra nebo ne. Protože jsme ale z T odstranili vrchol stupně 1 (list), je T' kostra právě když T je kostra. Tím 274 Kapitola 8: Počet koster 8.5 Důkaz pracující s determinanty 275 jsme udělali indukční krok pro případ, že některý z vrcholů 2,3,... , n má v T stupeň 1. Přejděme k druhému případu, kdy žádný z vrcholů 2,3,..., n nemá v T stupeň 1. Nejprve nahlédneme, že za této situace má T izolovaný vrchol (kdyby tomu tak nebylo, rná vrchol 1 stupeň aspoň 1 a ostatní vrcholy stupeň aspoň 2, tedy součet stupňů je aspoň 2n — 1, na což n — 1 hran grafu T nestačí). Z existence izolovaného vrcholu vyplývá, že T není kostra; k završení důkazu potřebujeme ukázat, že detC = 0. Je-li izolovaným vrcholem některý z 2,3,... , n, určuje v matici C nulový řádek. Je-li izolovaným vrcholem 1, je součet všech řádků matice C roven nulovému vektoru (protože součet všech řádek matice je nulový). V obou případech máme det C = 0. □ Podle právě dokázaného lemmatu teď víme, že počet koster grafu G je přesně roven počtu čtvercových (n —1) x (n —1) podmatic matice D s nenulovým determinantem. K dokončení důkazu věty 8.5.1 využijeme jednoho tvrzení o determinantech. 8.5.4 Věta (Binetova-Cauchyho věta). Nechť A je libovolná matice s n řádky a rn sloupci. Potom det{AAT) = Vdet(Aj)2, i kde se sčítá přes všechny n-prvkové podmnožiny I G (^1,2'.^-'m^), a kde Aj značí matici vzniklou z A vyškrtáním všech sloupců, jejichž indexy neleží v I. Pro úplnost uvedeme důkaz této věty, ale nejdříve se podíváme, jak z ní plyne věta 8.5.1. S tím, co už víme, je to velmi prosté. Podle lemmatu 8.5.2 a potom podle věty 8.5.4 je detQu = det(BBq E det(^) {1,2,... ,m} a podle lemmatu 8.5.3 vidíme, že posledně uvedený výraz je právě počet koster G. □ Důkaz věty 8.5.4. Označme M = AAT. Rozvineme determinant matice M podle definice, tedy det M = E sgn(7r) m.ij7r(í), i=i kde se sčítá přes všechny permutace n množiny {l,2,...,n}, a kde sgn(vr) značí znaménko permutace ir (pro každou permutaci je +1 nebo —1). Definice znaménka zde nebudeme přímo potřebovat, proto si připomeneme pouze následující 8.5.5 Fakt. Pro libovolnou permutaci n množiny {l,2,...,n} a indexy i, j, 1 < i < j < n, označme symbolem rr^j permutaci, jejíž hodnota pro i je 7r(j), hodnota pro j je n (i) a hodnoty pro všechna ostatní čísla se shodují s hodnotami ir. Potom platí sgn(yr) = — sgn(7r,;^J). □ Do rozvoje determinantu M dosadíme hodnoty prvků my, tedy rnij = z~2T=i llikajk, a roznásobíme každý ze součinů. Dostáváme m n det M = sgn(?r) ]jT J~J a^a^^. Přejdeme nyní k zápisu, který bude v dalším lépe vyhovovat. Volbu n-tice sumačních indexů k\,...,kn ve vnitřní sumě můžeme chápat jako volbu zobrazení / : {1,2,.... n} —* {1,2,..., m}, kde /(/) = kj. V tomto novém zápisu tedy máme det M = E sgn(yr) ^ YlaiJ(i)arr(i)J(í)- t> /:{l,2,...,n}->{l,2,....m} i=l 276 Kapitola 8: Počet koster 8.5 Důkaz pracující s determinanty 277 V uvedené sumě dále zaměníme pořadí sumace; napřed budeme sčítat podle funkce /, a potom podle permutace ir. Přitom ještě pro pohodlnější zápis zavedeme označení S(/) = J>gn(7r)P(/,7r) a potom máme detM= S(f)- /:{l,2,...,n}^{l,2,...,m} Klíčové pro celý důkaz je následující 8.5.6 Lemma. Pokud funkce f : {1,2,..., n} —> {1, 2,... , m} není prostá, potom S(f) = 0 (pro libovolnou volbu matice A). Důkaz lemmatu: Nechť i, j jsou indexy takové, že f (i) = f(j). Potom pro libovolnou permutaci tt jsou součiny P(f, ir) a P(f, 7tú ,j) (kde užíváme označení z faktu 8.5.5) stejné. Probíhá-li tv všechny permutace, potom také it^j probíhá všechny permutace, takže máme S(f) = X^n(^,.,)/'(/■ -,. tj) = J]-sgn(7r)P(/,7r) = -S(f), tt tt tedy S(f) — 0 jak tvrdí lemma. □ Dokončení důkazu věty 8.5.4. Podle lemmatu můžeme psát det(AAT) = £ S(f), /:{l,2,...,n}^{l,2,...,m} kde se sčítá přes všechny prosté funkce z {1, 2,..., n] do {1,2,... , rn}. Zvolme nyní nějakou množinu / G (^1'2'^'m^), a počítejme det(^lj)2 = det(A7)det(.4f) = dct(AiAj). Tento determinant můžeme rozvinout přesně stejným postupem, jak jsme to udělali pro determinant AÁ1'; tentokrát dostaneme dct^Áf) = J2 W /:{l,2,...,n}^J Máme tedy £ det(^)2 = Y! E S{f) = Y S(f) = det(AAT) /:{l,2,...,n}^{l,2,...,m} (předposlední rovnost plyne z toho, že prostá funkce /: {1,2.....n\ -{1.2.....m} jednoznačně určuje n-prvkovou množinu / svých hodnot). Tím je věta 8.5.4 dokázána. □ Cvičení 1. V tomto cvičení G je graf na n vrcholech, Q jeho Laplaceova matice, a Q* značí matici, jejíž prvek v pozici (i.j) je roven (—l)l+Jdet Q.ir (a) Ukažte det Q = 0. (b) Ukažte, že je-li graf G souvislý, má jeho Laplaceova matice hodnost n — 1. (c) * Ukažte, že pro nesouvislý graf G má Laplaceova matice hodnost nejvýš n—2, Z toho odvoďte, že pro nesouvislý G je Q* nulová matice. (d) Ukažte, že je-li G souvislý a x G R" je libovolný vektor, pak Qx = 0 právě když x je násobkem vektoru (1,1,...,1). (e) * Dokažte, že součin QQ* je nulová matice. Pomocí (d) pak odvoďte, že všechny prvky matice Q" jsou stejné. 2. Řešte cvičení 2 k úvodu této kapitoly pomocí věty 8.5.1. 278 Kapitola 8: Počet, koster 8.6 Důkaz zatím asi nejjednodušší 279 3* Buď G (neorientovaný) graf, a AI jeho matice incidence; tj., má-li G vrcholy V\,V2, ■ ■ ■, vn a hrany e.i,e,2, ■ ■ ■, ěfc, pak AI je n x m matice splňující f 1 jestliže Vi G e* = \ 0 jinak. Dokažte, že následující dvě podmínky jsou ekvivalentní: (i) G je tripartitní. (ii) Libovolná čtvercová podmatice AI (vzniklá z AI vypuštěním některých řádků a sloupců) má determinant 0,1 nebo —1 (matice AI s touto vlastností se jmenuje unimodulární). 8.6 Důkaz zatím asi nejjednodušší I v dobře prozkoumaných oblastech matematiky je stále co objevovat. Tak například zcela nedávno našel matematik-statistik Jim Pitman z Kalifornské university v Berkeley nový, velmi jednoduchý důkaz Ca-yleyho formule. Zazáří v něm počítání dvěma způsoby, zdánlivě velmi jednoduchý trik, o jehož užitečnosti jsme se již přesvědčili v předchozí kapitole. Nepoužije sc přímo, ale na vhodné zjemnění původní úlohy. V tomto důkazu Cayleyho formule budeme dvěma způsoby počítat povykosy. Co je to povykos? Zkrácený název pro postup výroby kořenového stromu (o kořenových stromech viz část 5.2). Formálně je povykos definován jako uspořádaná trojice (T, r, č), kde T je strom na množině vrcholů V = {1,2,..., n}, r G V je jeho kořen, a č je očíslování hran, neboli bijekce č : E(T) —► {1,2,.,., n — 1}. Na obrázku je příklad povykosu: kořen ® ~ž> • Můžeme si představovat, že začneme s prázdným grafem na množině vrcholů V a vyrábíme kořenový strom postupným přidáváním hran; očíslování č kóduje pořadí přidávání hran. Pro každý strom T můžeme kořen r volit n způsoby a pro očíslování hran č je (n — 1)! možností, takže počet povykosů je n(n — 1)1 n(Kn). Pro druhý způsob počítání povykosů budeme kořenový strom uvažovat jako orientovaný strom, kde všechny šipky směřují ke kořenu: Naopak, každá orientace stromu, pro niž existuje právě jeden vrchol, který není počátkem žádné šipky, odpovídá jednoznačně kořenovému stromu (zmíněný jediný vrchol je kořen). I povykos teď budeme interpretovat v této orientované podobě, a budeme počítat, kolik povykosů můžeme dostat, začneme-li z prázdného orientovaného grafu a budeme postupně přidávat šipky v n — 1 krocích. První šipka musí spojovat dva různé vrcholy, a tudíž ji můžeme přidat n{n — 1) způsoby. Pro druhou šipku máme ještě další omezující podmínku: nesmí vycházet z téhož vrcholu jako šipka první. Jaká jsou obecně omezení na přidání další šipky? (A) Nesmíme vytvořit kružnici (v neorientovaném smyslu), tedy nová šipka musí spojovat dvě různé komponenty již vytvořeného grafu (komponenty se opět myslí bez ohledu na orientaci). (B) Na konci musí z každého vrcholu až na jediný vycházet nějaká šipka, přičemž máme k dispozici celkem n — 1 šipek. Nesmíme tedy promarnit ani jedinou, a každá nová šipka musí vycházet z vrcholu, z nějž dosud žádná šipka nevycházela. Klíčové pozorování je, že v každé komponentě již vytvořeného grafu je právě jeden vrchol, z nějž nevychází žádná šipka. To je proto, že komponenta má nějakých m vrcholů a m — 1 hran, a z každého vrcholu vychází nejvýš jedna šipka, neboť jsme i v předchozím postupu dodržovali podmínku (B). 280 Kapitola 8: Počet koster Po přidání k šipek s dodržením (A) a (B) má graf n - k komponent (ověřte). Obrázek ukazuje situaci po přidání čtyř šipek podle povykosu na prvním obrázku: Další šipka, číslo k + l. může nyní vést do libovolného vrcholu v nějaké z komponent, a vycházet musí z kořene některé jiné komponenty, a pro její přidání máme proto n(n - k - 1) možností. Každý takový postup dává po n - 1 krocích právě jeden povykos. Proto povykosů je n—2 [\n(n k I) • (n \)\v" '. fe=0 Porovnáním obou výrazů pro počet povykosů dostáváme Cayleyho vzorec n(Kn) = nn~2. 1=1 9 Konečné projektivní roviny Matematika se často zajímá o objekty, vyznačující se v nějakém smyslu velkou pravidelností, mnoha symetriemi atd. (viz například pravidelné mnohostěny v části 6.6). V této kapitole se budeme zabývat jistými hodně pravidelnými systémy konečných množin, tzv. konečnými projektivními rovinami, a s nimi úzce souvisejícími čtvercovými tabulkami čísel, tzv. ortogonálními latinskými čtverci. 9.1 Definice a vlastnosti konečné projektivní roviny Konečná projektivní rovina bude množinový systém s jistými speciálními vlastnostmi. 9.1.1 Definice (Konečná projektivní rovina). NechťX je nějaká konečná množina, a nechť V je systém podmnožin množiny X. Dvojice (X, V) se nazývá konečná projektivní rovina, pokud splňuje následující axiomy: (PO) Existuje čtyřhodová množina C C X taková, že \P n C\ < 2 pro každou množinu P € V. (Pl) Každé dvě různé množiny P\, P2 £ V se protínají právě v jednom bodě, tj. \Pi nP2| = I- 282 Kapitola 9: Konečné projektivní roviny 9.1 Dennice a vlastnosti konečné projektivní roviny 283 (P2) Pro každé dva různé body X\,x-2 e X existuje právě jedna množina P e V taková, že x\ G P a X2 £ P- Je-li (X, V) konečná projektivní rovina, budeme prvkům X říkat body a množinám z V přímky. Vztah x G P (kde x e X a P G V) budeme vyjadřovat obratem „bod x leží na přímce PÍC nebo taky „přímka P prochází bodem x". Vyjádříme-li axiomy (P0)-(P2) v této řeči, začnou se podobat povědomým geometrickým tvrzením. Axiom (Pl) říká, že každé dvě (různé) přímky se protínají právě v jednom bodě, a (P2) praví, že každými dvěma různými body prochází právě jediná přímka. Axiom (PO) potom požaduje existenci 4 bodů, z nichž žádné 3 neleží na přímce. Jsou-li a, b G X dva body konečné projektivní roviny, budeme jedinou přímku P e V obsahující a i b značit symbolem ab. Jsou-li P,P'eV dvě přímky, budeme jediný bod jejich průniku nazývat jejich průsečíkem. Konečné projektivní roviny jsou konečnou analogií tzv. projektivní roviny (přesněji reálné projektivní roviny známé z geometrie. Zmíněná terminologie („projektivní rovina", „přímky") poukazuje na tuto analogii. Krátce tedy odbočíme a nastíníme, co je reálná projektivní rovina (což beztak patří k všeobecnému matematickému vzdělání). V obvyklé (euklidovské) rovině se každé dvě přímky protínají v jednom bodě, až na jednu výjimku - rovnoběžky se neprotínají nikde. V mnoha geometrických úvahách je taková výjimka dosti nepříjemná, neboť vyžaduje rozbor různých speciálních případů v důkazech i v analytických výpočtech. Reálná projektivní rovina je vhodné rozšíření euklidovské roviny o množinu dalších bodů, nazývající se body v nekonečnu. Populárně řečeno, každému směru přímek v rovině odpovídá jeden bod v nekonečnu, v němž se všechny přímky rovnoběžné s tímto směrem protínají. Všechny body v nekonečnu leží na jedné společné přímce v nekonečnu. Tím se dosáhne toho, že nyní se skutečně každé dvě přímky protínají právě v jednom bodě (který ovšem může ležet v nekonečnu). Body v nekonečnu zde nejsou nějakou filosofickou záhadností, projektivní rovina je matematickou konstrukcí trochu podobného typu, jako třeba konstrukce racionálních čísel z celých čísel nebo reálných čísel z racionálních, tedy jakési zúplnění. Zájemci najdou tuto konstrukci v části 9.2. Každé dvě přímky v reálné projektivní rovině se protínají právě v jednom bodě (to je podmínka (Pl)), a každými dvěma body prochází právě jedna přímka (to je podmínka (P2)). Mnoho geometrických úvah a kon- strukcí v reálné projektivní rovině (zhruba řečeno ty konstrukce, které lze provést samotným pravítkem) se opírá pouze o tyto dva axiomy. Analogie konečných projektivních rovin s reálnou projektivní rovinou je užitečná jako motivace pojmů a často i pro intuici. Nesmí se však zapomínat, že přísně vzato konečná projektivní rovina je pouze systém konečných množin s vlastnostmi (P0)-(P2), a nelze na ni automaticky přenášet různé další geometrické pojmy a představy. Nejdůležitější rozdíl asi je, že zatímco body na obyčejné geometrické přímce jsou přirozeně uspořádány „podél" přímky, v konečné projektivní rovině žádné takové přirozené uspořádání nemáme. 9.1.2 Příklad. Nejmenší konečná projektivní rovina má 7 bodů a 7 přímek (všechny přímky jsou tříbodové) a nazývá se Fanova rovina. Je znázorněna na obrázku 9.1(a): body jsou vyznačeny puntíky 1-7, a, trojice bodů každé přímky je spojena, úsečkou, v jednom případě kruhovým obloukem1; tyto spojnice jsou označeny a g. Fanova rovina je užitečný matematický objekt, často je nejmenším protipříkladem na různě domněnky apod. Dokážeme teď několik tvrzení, která ilustrují, žc při konstrukci projektivní roviny máme mnohem menší svobodu, než je na první pohled patrné. 9.1.3 Tvrzení. Buď (X.V) konečná projektivní rovina. Pak všechny její přímky mají stejný počet bodů, tj. \P\ = \P'\ pro každé P, P'e V. Důkaz. Zvolme libovolné 2 přímky P, P' e V. Nejprve dokážeme pomocné tvrzení: Existuje bod z e X, neležící na P ani na P'. Důkaz pomocného tvrzení. Uvažme množinu C C X jako v axiomu (PO); máme \P D Ů\ < 2, \P' D C\ < 2. Pokud C není obsaženo v P U P', jsme hotovi. Jediná zbývající možnost je, že P protíná C ve dvou bodech (označme je a, 6), a P protíná C ve dvou zbývajících bodech (označme je c, d). Uvážíme potom přímky P\ =ač a P% = bd. Nechť z je bod, v němž se P\ a P^ protínají. *Dá se ukázat, že sedmici bodů nelze nakreslit do roviny tak, aby každá trojice odpovídající přímce ve Fanově rovině ležela na euklidovské přímce - viz cvičení 6. 284 Kapitola 9: Konečné projektivní roviny 9.1 Dennice a vlastnosti konečné projektivní roviny 285 5 (a) (b) Obrázek 9.1: Fanova rovina (a), a její graf incidence (b). Následující geometrický obrázek situaci ilustruje: Musíme ale dávat dobrý pozor, abychom v našem důkazu používali jedině podmínek (P0)-(P2), a na intuitivní geometrickou představu podle obrázku nespoléhali - koneckonců konečné projektivní roviny vypadají v mnoha ohledech úplně jinak než „obyčejná" rovina. Tvrdíme, že z ^ P U P'. Přímky P & P} se protínají v jediném bodě, totiž v a, takže kdyby z G P, muselo by být z = a. To ale není možné, poněvadž pak by přímka P2 obsahovala body z = a, b a d, tedy 3 body z C, což je zakázáno podmínkou (PO). Proto z $ P, a analogicky se ukáže z G' P'. Tím je dokázáno pomocné tvrzení. Ukážeme teď, že přímky P a P' jsou stejně velké; za tím účelem definujeme zobrazení ip : P —+ P', o němž se pak ověří, že je to bijekce. Obraz ip(x) bodu x G P definujeme jako průsečík přímek z~x a P', kde z je bod jako v pomocném tvrzení. Obrázek tomu opět dodá názornosti: Podle axiomů (PI) a (P2) je bod 10, \P\ > 10, a každá P e P má aspoň 2 body. 2. Nechť X je konečná množina a P systém jejích podmnožin, splňující podmínky (Pl), (P2) a následující (PO'): Existují aspoň 2 různé přímky Pi, P2 G P, z nichž každá má aspoň 3 body. Dokažte, že potom (X, P) je konečná projektivní rovina. 3* Popište všechny množinové systémy (X,P) (kde X 7^ 0 je konečné), splňující (P1),(P2), ale nikoli (PO). 4. Dokažte část (iii) tvrzení 9.1.5 přímo, bez použití duality. 5* Nechť n > 2 a X je množina s n2 + n + 1 prvky a P je systém tvořený n2 + n + 1 jejími (n + l)-prvkovými podmnožinami, z nichž každé 2 se protínají nejvýš v jednom bodě. (a) Dokažte, že každá dvojice bodů z X je obsažena v právě jedné množině z P. (b) Dokažte, že každým bodem prochází nejvýš n + 1 množin. (c) Dokažte, že každým bodem prochází právě n + 1 množin. (d) Dokažte, každé 2 množiny z P se protínají. (e) Ověřte, že (X, P) je projektivní rovina řádu n. (V tomto cvičení se hojně využije počítání dvěma způsoby.) 6. Ukažte, že Panovu rovinu nelze vnořit do „obyčejné" (euklidovské) roviny, to znamená, že neexistuje 7 přímek a 7 bodů v euklidovské rovině tak, že každá dvojice bodů leží na jedné z přímek a každá dvojice přímek má průsečík v jednom z bodů. Využijte cvičení 6.5.10. 9.2 Konstrukce projektivních rovin Projektivní roviny řádu 2,3,4 a 5 existují, ale žádná projektivní rovina řádu 6 neexistuje! (Dokázat to je dost pracné, musí se rozebrat velmi mnoho případů nebo použít nesnadnou větu.) Projektivní roviny řádů 7,8, a 9 opět existují, řádu 10 nikoliv. Kde je v tom nějaká pravidelnost? Konečná projektivní rovina řádu n existuje, kdykoliv existuje konečné těleso3 s přesně n prvky, což je právě když n je mocninou nějakého prvočísla. Speciálně tedy existují projektivní roviny libovolně velkých řádů. 3V algebraickém smyslu, tj. množina s operacemi sčítání, odčítání, násobení a dělení splňující jisté podmínky; viz dodatek o algebře. 290 Kapitola 9: Konečné projektivní roviny 9.2 Konstrukce projektivních rovin 291 Pro n dčlitelné aspoň dvěma různými prvočísly sice n-prvkové těleso neexistuje, ale neví se, zda nemůže přesto existovat nějaká projektivní rovina řádu n. Je známo, že pokud číslo n dává při dělení 4 zbytek 1 nebo 2 a přitom se nedá napsat jako součet dvou čtverců celých čísel, potom projektivní rovina řádu n neexistuje (je to dost těžká věta). To například vylučuje existenci projektivní roviny řádu 6 nebo 14 a mnoha dalších řádů, ale zdaleka nepokrývá všechny možné řády, např. o n — 10 nebo 12 to nic neříká. Existence konečné projektivní roviny řádu 10 je také vyloučena. Tyto výsledky mají zajímavou historii. Pro řád 6 se neexistenci projektivní roviny pokoušel dokázat už Euler, ale podařilo se to až kolem roku 1900 G. Tarrymu. Pro řád 10 se to prokázalo nedávno neobyčejně rozsáhlými výpočty na počítačích (dokonce armádních, totiž armády Spojených států). Pro nejbližší vyšší řád, 12, je existence projektivní roviny stále otevřený problém. Je sice jasné, že takový problém se dá vyřešit probráním konečně mnoha poměrně malých konfigurací, nicméně počet konfigurací je pro soudobou výpočetní techniku příliš obrovský. Algebraická konstrukce projektivní roviny. Pro zájemce uvedeme, jak se zkonstruuje projektivní rovina. Obzvlášť nás samozřejmě budou zajímat konečné projektivní roviny, ale půvab konstrukce je i v tom, že přesně stejně funguje pro reálnou projektivní rovinu. Nejdříve konstrukci popíšeme formálně, což může vypadat trochu složitě, protože body výsledné projektivní roviny budou třídy jisté ekvivalence na množině uspořádaných trojic. Když si ale člověk na tyto definice trochu zvykne, ověřit axiomy projektivní roviny není zvlášť těžké. V reálném případě má konstrukce docela názornou geometrickou interpretaci, již zmíníme na závěr. Někomu může geometrická představa pomoci lépe se ve formální konstrukci orientovat, jiného může třeba ještě víc zmást, takže necháváme na čtenáři, jak moc se na ni spolehne. Konstrukce vychází z nějakého tělesa K. Pro reálnou projektivní rovinu (tj. vhodné rozšíření obvyklé euklidovské roviny o body v nekonečnu) se vezme za K těleso R všech reálných čísel. Budeme-li za K volit n-prvkovc těleso, zkonstruujeme konečnou projektivní rovinu řádu n. Průběžně budeme konstrukci ilustrovat pro tříprvkové těleso K, tj. množinu {0,1,2} s operacemi sčítání a násobení modulo 3. Nejprve uvážíme množinu T — K3 \ {(0,0,0)}, čili množinu všech uspořádaných trojic (x, y, ť), kde x,y,t E K a x,y,t nejsou všechna zároveň rovna nule. Na T definujeme ekvivalenci takto: (2:1,1/1, ti) ~ {x2,2/2,^2) právě když existuje nenulové A E K takové, že X2 = Xxi, ?/2 = Aj/i a i,2 ~ Xti (není těžké ověřit, že to opravdu je ekvivalence). Body konstruované projektivní roviny budou třídy této ekvivalence. Takto vyrobená projektivní rovina4 se v literatuře zpravidla označuje PK2, kde místo K se případně píše konkrétní těleso; např. reálná projektivní rovina se značí PR2. Abychom získali o projektivní rovině lepší představu, vybereme si z každé třídy ekvivalence « jednu trojici jako reprezentanta. Jako reprezentanty vezmeme ty trojice, jejichž poslední nenulová složka je rovna 1. Budou to tedy trojice tvaru (x, y, 1), (x, 1.0) (x, y G K) a trojice (1,0,0): je snadné si rozmyslet, že každá jiná trojice je ekvivalentní některé z uvedených, a naopak že žádné dvě trojice zmíněných tvarů nemohou být ekvivalentní. Bylo by nepohodlné mluvit stále o třídách ekvivalence. Proto nadále budeme říkat „bod (./;, y, ŕ)" pro nějakou trojici z T, a budeme tím myslet celou třídu ekvivalence « obsahující tento bod. Je-li K n-prvkové těleso, můžeme spočítat, kolik dostaneme bodů. Bodů tvaru (x,y, 1) je n2, bodů tvaru {z, 1,0) je n a navíc jeden bod (1, 0, 0) - dohromady tedy n2+n+l jak to má být. Pro n = 3 jsou všechny body nakresleny na obr. 9.3 vlevo; body tvaru (x, y, 1) jsou popsány hodnotami 2;, y na souřadnicových osách, ostatní body přímo příslušnými trojicemi. Teď je třeba definovat přímky. Pro každou trojici (a, b, c) G K3 \ {(0,0,0)} definujeme přímku P(a, b,c) jako množinu bodů {x.y,ť) naší projektivní roviny, splňujících rovnici ax + by + ct = 0. (9.1) Dvě ekvivalentní trojice (x,y,t) a {.Xx,Xy,Xt) tuto rovnici buď obě zároveň splňují nebo obě zároveň nesplňují, tedy jsme skutečně definovali jistou množinu bodů projektivní roviny. Je také vidět, že pro každé nenulové A G K, trojice (Au, Xb, Ac) definuje stejnou přímku jako trojice (a, 6, c). Na trojicích definujících přímky tedy máme přesně stejnou ekvi- 4Pro konečné těleso jsme ještě nedokázali, že touto konstrukcí dostaneme projektivní rovinu ve smyslu definice 9.1.1, dokonce jsme ještě ani nedefinovali, co jsou přímky, takže přísně vzato bychom neměli konstruovaný objekt nazývat projektivní rovinou. Ale k takové přísnosti zde snad není důvod. 292 Kapitola 9: Konečné projektivní roviny 9.2 Konstrukce projektivních rovin 293 010 Obrázek 9.3: Ilustrace ke konstrukci projektivní roviny řádu 3. valenci jako na trojicích, definujících body, a můžeme pro tyto trojice vybrat stejné reprezentanty, jako jsme to udělali pro body, tj. trojice s poslední nenulovou složkou rovnou 1. Na obrázku 9.3 vpravo jsou vyznačeny a popsány příslušnými trojicemi všechny přímky, procházející bodem (0,0,1). Abychom ukázali, že pro n-prvkové těleso jsme opravdu zkonstruovali projektivní rovinu řádu n, je třeba ověřit podmínky (PO) (P2). Začneme podmínkou (Pl) (2 přímky se protínají v 1 bodě). Nechť tedy (<2i,6i,ci) a (a2,b2.c2) jsou dvě trojice definující přímky, a předpokládejme, že nejsou ekvivalentní, tj. jedna není násobkem druhé. Mohli bychom teď přímo vypočítat bod, který je jejich průsečíkem, a ověřit jeho jednoznačnost. Uvedeme jiný důkaz, pomocí základních výsledků z lineární algebry (zkusí-li si čtenář udělat důkaz přímým výpočtem, bude si pak možná lineární algebry cenit více než předtím). Dívejme se na trojice ci) a [o.2,b2,c.'i) jako na třírozměrné vektory nad tělesem K. Oba jsou nenulové, a to, že jeden není násobkem druhého, tedy znamená, že jsou lineárně nezávislé. Proto matice ( «1 In Cl \ V °2 b2 c2 ) má hodnost 2. Podívejme se nyní na sloupec teto matice jako na dvourozměrné vektory. Především víme, že všechny tři jsou lineárně závislé; existují tedy nějaká 3 čísla x,y,t € K, aspoň jedno z nich nenulové, taková, že x(a1,a2) + y(bl,b2) + L{cuC2) = (0,0). (9.2) Rozcpíšcmc-li to po složkách, znamená to přesně to, že bod (x,y,t) leží na obou uvažovaných přímkách. Na druhé straně, protože hodnost matice je 2, musí existovat 2 sloupcové vektory, které jsou lineárně nezávislé; nechť jsou to třeba (01,02) a {bi, b2). Z toho plyne, že pro každý vektor (u, v) má rovnice x(ai, a2) + y{b\,b2) — {u,v) jen jediné řešení. Jinými slovy, předepíšeme-li hodnotu t v rovnici (9.2), jsou x a y už dána jednoznačně, a tedy všechna řešení této rovnice jsou násobky jediného vektoru, což znamená, že uvažované přímky se protínají v jediném bodě. Uvedený argument se dá říci ještě trochu učeněji a stručněji: Zobrazení přiřazující vektoru (x,y,t) G KA vektor z(ai,o2) + y(buh) + t(cuc2) e K2 má hodnost 2, čili je na a tedy jeho jádro je 1-dimenzionáhií. Tak jsme dokázali (Pl). Podmínku (P2) bychom mohli dokazovat podobně, nebo můžeme rovnou říci, že v rovnici (9.1) jsou role trojice (x, y, ť) a trojice (a, b, c) zcela symetrické, tedy mezi body a přímkami máme (opět) dualitu. Konečně ověření (PO) přenecháváme čtenáři. □ Geometrická interpretace. Jak jsme zmiňovali na začátku kapitoly, základní myšlenka konstrukce reálné projektivní roviny je doplnit obyčejnou euklidovskou rovinu o body v nekonečnu, přičemž každému směru přímek v euklidovské rovině odpovídá jeden bod v nekonečnu (ne dva!), kde se všechny tyto rovnoběžné přímky protínají. Teď si představme, že ona obyčejná euklidovská rovina, již chceme doplňovat o body v nekonečnu, je umístěna v trojrozměrném prostoru se souřadnicovým systémem (x,y,ť) jako vodorovná rovina t = 1, na obrázku znázorněná šedě: / / Každý bod a této roviny odpovídá jedné přímce p = 0a procházející počátkem trojrozměrného prostoru, například bodu Oi na obrázku je přiřazena přímka p\. Obráceně, každá přímka procházející počátkem trojrozměrného prostoru odpovídá právě jednomu bodu šedé roviny, ovšem s výjimkou vodorovných přímek, jako je třeba p^. Dále si všimneme, že 294 Kapitola 9: Konečné projektivní roviny 9.3 Ortogonální latinské čtverce 295 když přímku p\ začneme naklánět do polohy P2 a dále směrem k vodorovné poloze ps, ubíhá odpovídající bod v šedé rovině do nekonečna. Není tedy nepřirozené si představovat, že vodorovné přímky jako p3 odpovídají bodům v nekonečnu, které bychom rádi k naší euklidovské rovině přidali. A zde se udělá jeden z typických triků moderní matematiky -místo abychom vysvětlovali, co jsou to ty body v nekonečnu, jimž odpovídají ony vodorovné přímky, zapomeneme na původní euklidovskou rovinu a řekneme, že body projektivní roviny jsou přímky v trojrozměrném prostoru procházející počátkem. (V popsané konstrukci jsme to úplně tak neřekli, ale bod projektivní roviny tam byla množina tvaru {(A.t, Xy. Arj); A E K \ {0}}, což geometricky je přesně přímka v K3 procházející počátkem, až na to, že počátek sám jsme z ní pro technické pohodlí odebrali.) Přímky projektivní roviny pak odpovídají rovinám v trojrozměrném prostoru procházející počátkem, to už necháme k do-rozmyšlení čtenáři. Prohlašovat přímky za body může znít podivně, ale čtenář, který svědomitě absolvoval například úvodní kurs analýzy, už mohl na podobné podivnosti přivyknout, například když mu vysvětlili, že reálné číslo je množina racionálních čísel, případně že racionální číslo je třída ekvivalence na množině uspořádaných dvojic celých čísel, a podobně. Poznámko,. Uvedená konstrukce může vzbudit dojem, že body v nekonečnu se nějak odlišují od ostatních. Ve skutečnosti jsou všechny body rovnocenné, a nekonečno můžeme v jistém smyslu umístit kam chceme projektivní rovina vypadá „lokálně všude stejně". Cvičení 1.** Dokažte neexistenci projektivní roviny řádu 6. (Můžete si pomoci počítačovým programem, který probere a vyloučí konfigurace přicházející v úvahu. Musí se postupovat obratně, protože např. probírání všech systémů 43 sedrnic na 43 bodech by trvalo příliš dlouho.) 9.3 Ortogonální latinské čtverce Latinský čtverec řádu n je čtvercová tabulka n x n, v níž v každém políčku je zapsáno jedno číslo z množiny {1,2,... , n} a taková, že každé číslo se v každém řádku i sloupci vyskytuje právě jednou. Dva latinské čtverce 3x3 jsou znázorněny na obr. 9.4(a). 1 2 3 2 3 1 3 1 2 1 2 3 3 1 2 2 3 1 (a) 1 1 2 2 3 3 to co [O 3 2 1 3 2 1 (b) Obrázek 9.4: Dva ortogonální latinské čtverce řádu 3 (a), a jejich položení přes sebe (b). Nyní řekneme, co to znamená, že dva latinské čtverce téhož řádu jsou ortogonální: Představme si, že jeden ze čtverců je nakreslen na průhledné fólii, a že jej položíme přes druhý čtverec tak, že odpovídající políčka jsou nad sebou (obr. 9.4(b) znázorňuje takové položení čtverců z (a) přes sebe). Tím vznikne n2 uspořádaných dvojic, každá z nich je tvořena číslem ze spodního čtverečku a odpovídajícím číslem z horního čtverečku. Čtverce jsou ortogonální, pokud se žádná dvojice neopakuje. Protože všech možných uspořádaných dvojic čísel od 1 do n je také n2, musí se dokonce každá dvojice objevit právě jednou. 9.3.1 Věta. Nechť M jc množina latinských čtverců řádu n, z nichž každé dva jsou navzájem ortogonální. Potom \M\ < n — 1. Důkaz. Nejdříve jedno pozorování. Nechť A, B jsou dva ortogonální latinské čtverce řádu n, a nechť n je nějaká permutace čísel 1,2,..., n. Utvořme nový latinský čtverec A', který v políčku (i, j) bude mít číslo tt(qíj), kde (lij je číslo v políčku čtverce A. Z definice ortogo- nality není těžké nahlédnout, že potom \ A' a B budou ortogonální latinské čtverce. Toto pozorování můžeme vyjádřit heslem „ortogona-lita latinských čtverců se nezmění přejmenováním symbolů v jednom z nich". Mějme nyní latinské čtverce A\,A2, ■ ■ ■ , Aj, z nichž každé 2 jsou ortogonální. Pro každé Ai zvolíme tu permutaci čísel 1,2,... ,n, je- 296 Kapitola 9: Konečne projektivní roviny 9.3 Ortogonální latinské čtverce 297 jíž aplikací na čísla v políčcích A,t se dosáhne toho, že v první řádce budou stát čísla. 1,2,... ,n v pořadí podle velikosti; výsledný čtverec označíme A\, Podle uvedeného pozorování budou A[,... ,A[ stále po dvou ortogonální. Podívejme se nyní, jaká čísla mohou stát v prvním políčku druhé řádky čtverců A\, ■ ■ ■, A't. Především tam nemůže být číslo 1, protože to už je v prvním sloupci použito. Dále, žádné dva čtverce A\, A1- nemohou mít v uvažované pozici (2,1) stejná čísla. Kdyby totiž měly, položením A^.A'- přes sebe vznikne v pozici (2,1) dvojice stejných čísel, řekněme (k,k), ale tato dvojice také vznikne na fc-tém místě prvního řádku! Tedy každé z čísel 2,3,... , n může na pozici (2,1) stát jen v jednom z A[, a proto t < n — 1. □ Následující věta dává do souvislosti konečné projektivní roviny a latinské čtverce. 9.3.2 Věta. Pro n > 2, projektivní rovina řádu n existuje právě když existuje soubor n— 1 po dvou ortogonálních latinských čtverců řádu n. Poznamenejme jen, že existence projektivní roviny řádu 10 byla vyloučena právě přes hledání ortogonálních latinských čtverců řádu 10. Důkaz nebudeme dělat do detailů, ale popíšeme si příslušnou konstrukci. Řekněme, že máme dáno n — 1 ortogonálních latinských čtverců Li, Ln, .... Ln_i řádu n, budeme vyrábět projektivní rovinu řádu n. Zvolíme 2 body projektivní roviny, r a s, přímku B je spojující, a zbývající body na přímce B označíme t\,..., in-i ■ Potom nazveme R\,..., R„ zbývající přímky procházející bodem r (mimo B) a S\. . .., Sn zbývající přímky bodem s. Nyní každý z dosud neoznačených bodů je průsečíkem některé dvojice přímek Rt a Sj. Schematicky je situace znázorněna na obr 9.5 (pro n — 3). Body konstruované projektivní roviny mimo bodů r, s, £%„ ti,..., £n-i máme sestaveny do čtverce n x n; pozice bodu v tomto čtverci bude odpovídat pozici políčka v latinském čtverci; tak např. 2. políčko v 3. řadě latinského čtverce odpovídá v projektivní rovině průsečíku přímek S2 a R3. To, co jsme dosud označili a zakreslili, musí být stejné v každé projektivní rovině řádu n; nyní podle latinských čtverců doplníme přímky procházející body £1,... ,£n-i; jak označení napovídá, přímky procházející Obrázek 9.5: Konstrukce projektivní roviny z latinských čtverců bodem £j budou určeny čtvercem Lj. Přímky bodem £,; budou odpovídat jednotlivým číslům (symbolům) v latinském čtverci L{. Kdyby např. L\ byl latinský čtverec na obr. 9.4 vlevo, potom bodem í\ budou procházet takovéto přímky: přímka odpovídající číslu 1 v latinském čtverci, ta obsahuje mimo í\ body /či íl Si, R2 H S3 a R3 n S2, tj. body odpovídající políčkům s 1, dále přímka odpovídající číslu 2, s body Ri ľl S2, R2 H Si a J?,3 n S3, a konečně podobně utvořená přímka odpovídající číslu 3. Tím jsme popsali konstrukci projektivní roviny, zbývá ověřit axiomy. Snadno spočteme, že celkový počet bodů i přímek je n2 + n + 1. Podle cvičení 5 v části 9.1 stačí ověřit, že každé 2 přímky se protínají nejvýš v 1 bodě. Přitom se využije jak toho, že každý L,; je latinský čtverec, tak toho, že každé 2 z použitých čtverců jsou ortogonální; přenecháváme to do cvičení. Obrácený postup, konstrukce n — 1 ortogonálních latinských čtverců z projektivní roviny, sleduje totéž schéma. V projektivní rovině libovolně zvolíme body r, s, a zafixujeme další označení jako na obr. 9.5. Potom i-tý latinský čtverec Li vyplníme podle přímek procházející bodem £[. Tolik k důkazu věty 9.3.2. □ 298 Kapitola 9: Konečné projektivní roviny 9.4 Použití konečných projektivních rovin 299 Cvičení 1. Projděte konstrukci v důkazu věty 9.3.2 pro n — 2 (kdy existuje jen 1 latinský čtverec), ověřte, že vznikne Fanova rovina. 2. Ověřte, že každé 2 přímky zkonstruované v důkazu věty 9.3.2 se protínají nejvýš v 1 bodě, a uveďte, kde se využije vlastnosti latinského čtverce a kde ortogonality. 3. Ukažte, že obrácená konstrukce v důkazu věty 9.3.2 opravdu dává n— 1 ortogonálních latinských čtverců. 4. Definujme osvobozený čtverec řádu n jako čtvercovou tabulku n x n, v jejímž každém políčku je některé z čísel 1,2,..., n. Ortogonalitu pro osvobozené čtverce definujeme stejně jako pro čtverce latinské. Pro nějaké číslo t > 0, uvažme následující dvě podmínky: (i) Existuje t navzájem ortogonálních latinských čtverců řádu n. (ii) Existuje t + 2 navzájem ortogonálních osvobozených čtverců řádu n. (a) Dokažte, že z (i) plyne (ii). (b) * Dokažte, že z (ii) plyne (i). 5. Buď T konečné těleso s n prvky, které označíme íq, t\,..., t„_j, přičemž to = 0, íj = I. Pro k -1,2,..., n J definujme n x n matice L^k>, přičemž prvek matice L^k' v pozici (i,j), je roven í,;tfc + f; (násobení a sčítání v tomto vzorci je v tělese T). Dokažte, že L^L\ ..., iJ" jsou navzájem ortogonální latinské čtverce řádu n. (Tím se pomocí věty 9.3.2 podá také jiná konstrukce projektivní roviny řádu n.) 6. Pro m < n definujme latinský m x n obdélník jako obdélníkovou tabulku m x n, v jejímž každém políčku je zapsáno jedno číslo z množiny {1.2.....n) tak, že v žádném řádku ani sloupci se čísla neopakují. Spočítejte počet všech možných latinských 2 x n obdélníků. 9.4 Použití konečných projektivních rovin Konečné projektivní roviny mají řadu aplikací v matematice i mimo ni; několik jich zmiňme. Projektivní rovina je velmi stejnorodá, to znamená, že každé dva body (nebo i např. každé dvě dvojice bodů) jsou zcela rovnocenné. Proto se konečné projektivní roviny a jejich zobecnění, tzv. bloková, schémata, používají jako schémata organizace různých pokusů, viz část 13.1. Podobná použití mají i latinské čtverce. Motocyklové závody jednotlivců na ploché dráze se rozepisují podle schématu daného projektivní rovinou řádu 4 (k čemuž však nejspíše organizátoři závodů dospěli empiricky); podrobněji se o této souvislosti lze dočíst v knížce [15]. Konečné projektivní roviny se objevují v teorii šifer a kódů, tzv. kryptografii. V samotné matematice slouží konečné projektivní roviny jako příklady množinových systémů s mnoha pozoruhodnými vlastnostmi. Hle-dáme-li pro nějakou domněnku o množinových systémech protipříklad nebo naopak chceme-li příklad množinového systému cosi splňujícího, často neprohloupíme, zkusímc-li jako jeden z prvních pokusů nějakou konečnou projektivní rovinu (to trochu připomíná situaci v teorii grafů, která má také svoji zásobárnu zajímavých grafů sloužících jako „notorické protipříklady"). 9.4.1 Příklad (Barvení dvěma barvami). BuďX konečná množina bodů a XI nějaký systém podmnožin X. Řekneme, že (X, XI) je 2-obar-vitelný, pokud můžeme každý bod z X obarvit jednou ze dvou barev (např. červenou nebo bílou) tak, že v každé množině z Xi se vyskytují body obou barev. Ncjmcnší počet tříbodových množin, z nichž lze utvořit systém, jenž není 2-obarvitelný, je 7, a jediný takový systém je projektivní rovina řádu 2. Více o tom v příkladu 10.1.3 9.4.2 Příklad. Věta 7.3.1 praví, že je-li G graf na m vrcholech neobsahující K'2,2 jako podgraf, potom G má nejvýš A(m3/2 + m) hran. Pomocí konečných projektivních rovin ukážeme, že tento odhad je obecně téměř nejlepší možný: pro nekonečně mnoho hodnot m existuje graf na m vrcholech s aspoň 0.35 m3'2 hranami neobsahující K2,-2 jako podgraf. Důkaz. Vezmeme projektivní rovinu řádu n, a uvážíme její graf incidence (jako v odstavci o principu duality v části 9.1). Budeme tedy mít celkem m = 2(n2 + n + 1) vrcholů. Každá z n2 + n + 1 přímek má n + 1 bodů, takže tento graf má (n2 + n + l)(n + 1) > (n2 + n + 1)3/2 = m3/2/23/2 p» 0.35m3/2 hran. 300 Kapitola 9: Konečné projektivní roviny Co bj' znamenalo, kdyby uvažovaný graf incidence obsahoval Ki^'-V pojmech projektivní roviny by to říkalo, že existují dva body x, x' a dvě přímky P, P' takové, že {x, x'} C P n P', to ale v projektivní rovine není možné. □ Poznámka. Konstanta 0.35 se dá ještě poněkud vylepšit, viz cvičení 2. Cvičení 1. Dokažte tvrzení z příkladu 9.4.1: Fanova rovina není 2-obarvitelná. 2. Nechť n je mocnina prvočísla, a nechť K je n-prvkové těleso. Uvažte třídy ekvivalence ss na množině všech trojic z Ks \ {(0,0,0)} (zavedené v části 9.2). Tyto třídy budou vrcholy grafu G, a vrcholy (a, b, e) a (x, y, z) budou spojené hranou právě když ax + by + cz = 0. Ověřte (a) že tato definice jc korektní, (b) * že definovaný graf neobsahuje K22 jako podgraf, (c) že každý vrchol má aspoň n sousedů (d) a že jc-li rn = n2 + n + 1 počet vrcholů, potom počet hran je aspoň |m ' — m. 10 Pravděpodobnostní důkazy čtenář asi zná nějaké úlohy na počítání pravděpodobnosti nějakého jevu (v jiných kapitolách je ostatně několik takových také roztroušeno). Nejčastěji to asi budou příklady, které jsou takzvaně „ze života" nebo to aspoň předstírají: ve školských úlohách se nejčastěji hovoří o hracích kostkách, kartách, mincích, v učebnicích z let padesátých bychom možná našli otázky o zmetcích mezi hutními výrobky, apod. V téhle kapitole chceme ukázat pozoruhodnou matematickou aplikaci, totiž jak se některá tvrzení dají dokazovat pomocí pravděpodobnosti, ačkoli v nich o pravděpodobnosti ani náhodnosti není ani zmínka. 10.1 Důkazy počítáním Ve dvou úvodních příkladech se zatím o pravděpodobnosti mluvit nebude. 10.1.1 Příklad. Uvažme balíček 32 karet srovnaných tak, jak přišly z továrny. Budeme ho míchat tzv. řezáním: rozdělíme jej na 2 stejně velké části, a smísíme karty z jedné části s kartami z druhé části, přičemž pořadí karet z každé části se zachová. Dokážeme, že opakujeme-li to nejvýš 4x, nemůžeme dostat všechna, možná, pořadí karet (což naznačuje, že takové míchání nemůže dát opravdu náhodné pořadí). 302 Kapitola 10: Pravděpodobnostní důkazy 10.1 Důkazy počítáním 303 Důkaz. Celkem je 32! možných pořadí karet. Spočítáme, kolika pořadí se dá dosáhnout popsaným mícháním. Kolika způsoby můžeme smísit oddělené poloviny (říkejme jim třeba levá a pravá polovina) balíčku? Známe-li pořadí v levé i pravé polovině, a udáme-li, které z karet smíšeného balíčku pocházejí z levého balíčku, můžeme již rekonstruovat pořadí ve smíšeném balíčku. Možných pořadí po prvním smísení je tedy (3g), a, po 4 smíseních můžeme dostat maximálně (^) pořadí. Výpočtem se můžeme přesvědčit, že toto číslo je menší než 32!, a tedy určitě existuje nějaké pořadí, které čtyřmi smíseními nedostaneme. □ Uvedený výsledek ovšem nepraví, že 5 smíseními bychom už všechna pořadí dostat mohli. To už je komplikovanější otázka, o které už zde dále nic neřekneme. 10.1.2 Příklad. Booleovská funkce n proměnných je libovolné zobrazení / : {0,1}" —> {0,1}, tj. každé možné kombinaci n nul a jedniček přiřazuje 0 nebo 1. Můžeme ji zadat tabulkou hodnot, ale i všelijakými jinými způsoby. Například libovolný počítačový program, který přečte n bitů ze vstupu a na jejich základě vydá jednu z odpovědí ANO/NE, realizuje jistou booleovskou funkci n proměnných. Zde se budeme zabývat zadáním booleovských funkcí formulemi, jaké čtenář patrně zná z výrokového počtu. Logická formule v n proměnných bude utvořena ze symbolů proměnných x±,x%,..., xn (každý z nich se může několikrát opakovat), logických spojek & (konjunkce), V (disjunkce), =£• (implikace), <=> (ekvivalence), -i (negace) a závorek. Ne každá posloupnost těchto symbolů je ovšem logická formule; formule musí splňovat jednoduchá syntaktická pravidla, správné uzávorkování apod., přesná podoba těchto pravidel pro nás nebude podstatná. Jedna taková formule ve třech proměnných je třeba (xi&a^) V (x$lk,-*x\). Každá logická formule v n proměnných definuje booleovskou funkci n proměnných, a není příliš těžké dokázat, že každá booleovská funkce se dá definovat formulí. Otázka nyní je, jak musí být taková formule dlouhá. Ukážeme, že existuje booleovská funkce n proměnných, která se nedá definovat žádnou formulí s méně než 2"/log2(n + 8) symboly. Skutečně, všech možných funkcí n proměnných je 22", zatímco formulí v n proměnných složených z nejvýš rn symbolů není více než (n + 8)m, protože na každém z m pozic ve formuli je jeden z n + 7 možných symbolů nebo případně mezera (tím jsme započítali i spoustu nesmyslných řetězců symbolů, ale hrubý horní odhad postačí). Pokud 22™ > (n + 8)m, existuje nějaká funkce, která se nedá vyjádřit formulí s nejvýš rn symboly; po logaritmování této nerovnosti vyjde m > 2ř7log2(n + 8). □ Podobně můžeme uvažovat definici funkce pomocí programu v nějakém programovacím jazyce, nebo pomocí tzv. logického obvodu (integrované obvody tvořící např. procesory počítačů jsou v podstatě takové logické obvody). Ve všech takových případech se dá počítáním jednoduše dokázat, že existují funkce exponenciální složitosti (např. vyžadující exponenciálně dlouhý text programu). Uvedené příklady mají společné schéma. Máme nějakou množinu objektů, a chceme ukázat, že mezi nimi existuje nějaký „dobrý" objekt (s nějakou požadovanou vlastností). Spočítáme, kolik je všech objektů, a odhadneme shora, kolik je špatných objektů (nemajících požadovanou vlastnost). Pokud vyjde, že špatných objektů je méně než všech, musí existovat nějaký dobrý objekt. Pozoruhodným rysem této metody je, že žádný dobrý objekt nesestrojíme, ani se nic nedozvíme o tom, jak vypadá, pouze víme, že existuje je to tedy metoda nekonstruktivní. V příkladu 10.1.1 jsme dokázali, že nějaké pořadí se čtyřmi smíseními nedostane, ale žádné konkrétní takové pořadí jsme nenašli. V příkladu 10.1.2 jsme nezjistili, jak by „složitá" booleovská funkce (nemající krátkou formuli) měla vypadat. To je dost častá situace u důkazů tohoto typu. Argument o dobrých a špatných objektech můžeme přeformulovat do řeči pravděpodobnosti. Představme si, že náhodně zvolíme jeden objekt z uvažované množiny. Ukážeme-li, že s nenulovou pravděpodobností bude dobrý, znamená to, že aspoň jeden dobrý objekt existuje. Ve složitějších případech se řeč pravděpodobností stává přehlednější než počítání objektů, a můžeme použít různých pokročilejších metod teorie pravděpodobnosti, jejichž vyjádření v řeči počítání objektů by 304 Kapitola JO: Pravděpodobnostní důkazy 2 0.1 Důkazy počítáním 305 bylo nesmírně neohrabané. Řeč pravděpodobnosti použijeme v následujícím příkladu. Pokud by byl čtenář na rozpacích nad některými pojmy týkajícími se pravděpodobnosti, může si napřed přečíst další sekci. 2-barvení. Buď X konečná množina bodů a KA nějaký systém podmnožin X. Řekneme, že KA je 2-obarvitelný, pokud můžeme každý bod z X obarvit jednu ze dvou barev (např. černou nebo bílou) tak, že v každé množině z .Ad se vyskytují body obou barev (viz též příklad 9.4.1). Otázka, které systémy množin jsou 2-obarvitelné, souvisí s řadou aplikací a intenzívně se studuje. Zde se budeme zabývat následující situací. 10.1.3 Úloha. Předpokládejme, že každá množina z KA má přesně k prvků. Jaký je nejmenší počet, m(k), množin v systému KA, který není 2-obarvitelný? Tak například pro k — 2 jsou množiny dvojice bodů, takže uvažované systémy nejsou nic jiného než grafy. Snadno zjistíme, že m(2) = 3; jediný příklad systému 3 dvojic, který nejde 2-obarvit, je úplný graf na 3 vrcholech. Už pro k = 3 už je ale otázka daleko těžší. Příklad 9.4.1 ukazuje systém 7 trojic, který není 2-obarvitelný, proto m(3) < 7. Ve skutečnosti m(3) = 7: abychom to dokázali, musíme demonstrovat, že každý systém tvořený 6 nebo méně trojicemi lze 2-obarvit. Ukážeme to pravděpodobností metodou. Začneme obecným tvrzením, které pro k = 3 dá slabší výsledek, a potom pro speciální případ k = 3 postup vylepšíme. 10.1.4 Věta. Platí m(k) > 2fc_1, tj. každý systém k-prvkových množin tvořený méně než 2k~l množinami lze 2-obarvit. Důkaz. Nechť KA je systém fe-prvkových podmnožin nějaké množiny X, \KA\ = m. Obarvíme každý bod X černě nebo bíle následujícím náhodným postupem: pro každý bod x E X jednou hodíme mincí (na které padá rub i líc se stejnou pravděpodobností), padne-li líc, obarvíme x bíle, padne-li rub, obarvíme x černě. Buď M E KA některá z fe-tic v uvažovaném systému. Jaká je pravděpodobnost, že v našem náhodném obarvení dostanou všechny body M stejnou barvu? Pravděpodobnost, že všech k bodů množiny M bude zároveň bílých, je zřejmě 2~k, a zrovna tak pravděpodobnost, že všechny body M budou černé, je 2~k. Celkem tedy pravděpodobnost, že M je jednobarevná, je rovna 2 x 2~k = 21_fe, a proto pravděpodobnost, že aspoň jedna z množin v KA je jednobarevná, je nejvýš m 21~k. Pokud toto číslo je ostře menší než 1, čili m, < 2k 1, znamená to, že s nenulovou pravděpodobností naše náhodné obarvení bude 2-obarvení systému KA. Proto zcela určitě existuje aspoň jedno 2-obarvení (kdyby žádné neexistovalo, nemůže se při náhodném obarvení objevit s nenulovou pravděpodobností). Tím je věta dokázána. □ Jak dobrý je dohad na m(k) v právě dokázané větě? Ví se, že pro velká k funkce m{k) roste řádově zhruba jako 2k, takže tato věta dává celkem správnou představu. Na druhé straně pro k = 3 dostaneme jenom odhad m(k) > 4, což má k správné hodnotě 7 ještě dosti daleko. Dvěma dalšími triky postup vylepšíme. 10.1.5 Věta. m(3) > 7. Důkaz uděláme ve dvou krocích, jen první z nich je pravděpodobnostní. 10.1.6 Lemma. Nechť X je nejvýš 6-prvková množina, nechť KA je systém nejvýš 6 trojic na X. Potom KA je 2-obarvitelný. Důkaz. V případě potřeby přidáme ke X další body tak, aby měla přesně 6 bodů. Náhodně zvolenou trojici bodů z X obarvíme bíle, zbývající 3 body obarvíme černě, existuje tedy (g) = 20 možností obarvení. Je-li M libovolná trojice, pouze 2 z možných obarvení ji ponechají jednobarevnou, tedy pravděpodobnost, že M bude jednobarevná, je jq. Pravděpodobnost, že některá ze 6 množin bude jednobarevná, tedy není větší než ^ < 1, proto existuje 2-obarvení. □ Týž důkaz ukazuje, že i každých 9 trojic na 6 bodech lze 2-obarvit. 306 Kapitola 10: Pravděpodobnostní důkazy 10.2 Konečné pravděpodobnostní prostory 307 Pro další krok potřebujeme definici. Nechť (X, M) je nějaký systém množin, a nechť x, y jsou dva prvky z X. Řekneme, že x a y jsou spojené, pokud existuje množina M 6 M obsahující zároveň x i y. Jsou-li x, y dva nespojené body, definujeme nový systém množin (X\A4r) vzniklý „slepením" bodů x a y. Neformálně, body x a y ztotožníme do jediného nového bodu, z, a z dáme do všech množin, do nichž předtím patřil x nebo y. Formálně zapsáno: X' = (X\{x,y})U{z}, M' = {M e M; M n {x, y} = 0} U U{(M\{xíy})U{z};Mn{x,y}^%}. Všimněme si, že jsou-li body x a y nespojené, potom (X', A4') bude opět systém trojic, a množina X' má o jeden bod méně než X. Dále tvrdíme, icje-li (X', M') 2-obarvitelný, potom i (X, M) je 2-obarvitelný: Vezmeme totiž 2-oba.rvení množiny X'. a obarvíme X stejně, přičemž x i y dostanou tu barvu, již měl „slepený" bod z. Je snadné si rozmyslet, že nemůže vzniknout žádná jednobarevná množina. K dokončení důkazu věty 10.1.5 stačí tedy ukázat následující: 10.1.7 Lemma. Nechť (X,M) je systém 6 trojic, \X\ > 7. Potom v X existují 2 nespojené body. Důkaz. Jedna trojice M £ M způsobí, že 3 dvojice bodů budou spojené, takže 6 trojic dá nejvýš 3 x (i = 18 spojených dvojic. Přitom ale na 7-bodové množině je (^) = 21 dvojic bodů, takže některá z nich je nespojená (dokonce aspoň 3). □ Poznamenejme ještě, že přesná hodnota m(4) již známa není, jsou k dispozici jen horní a dolní odhady. Přitom je snadné si rozmyslet, že tento problém se v principu dá vyřešit probráním konečného počtu konfigurací (systémů čtveřic). Jejich počet, je ale tak obří, že je to nad síly všech superpočítačů. Cvičení 1* Na koleji A na následujícím obrázku stojí vlak s n vagóny (srovnanými v jistém pořadí). Vagóny se postupně přesunují na kolej B, přičemž každý vagón může nebo nemusí zajet na některé z postranních kolejí; požadujeme však, aby žádný vagón nepřejel žádnou z výhybek přiléhajících ke kolejím A,B,C,D více než jednou (předpokládáme, že na každou postranní kolej se v případě potřeby vejdou v najednou). vagony .4 I C II III D P, Dokažte, že pro dost velké n nelze na koleji B docílit každé možné pořadí vagónů. 2. (a) Dokažte, že každou booleovskou funkci n proměnných lze vyjádřit logickou formulí. (b) Ukažte, že formuli v (a) lze volit délky nejvýš Cn2n, pro vhodnou konstantu C. * Podaří se vám tento odhad ještě řádově zlepšit? 3. Dokažte, že každý systém nejvýš 14 čtveřic lze 2-obarvit: (a) Pro systém na nejvýš 14 bodech použijte náhodné obarvení (7 bílých a 7 černých bodů). (b) Pro systém na aspoň 15 bodech ukažte, že existuje nespojená dvojice. 4. Máme 27 pravých mincí a 1 falešnou, o trochu těžší než pravé mince. Ukažte, že na určení falešné mince potřebujeme aspoň 4 vážení na rov-noramenných vahách (bez použití závaží, tj. můžeme pouze porovnávat celkovou hmotnost některých k mincí s celkovou hmotností jiných k mincí; neobsahuje-li ani jedna skupina falešnou minci, výsledkem je rovnováha). 10.2 Konečné pravděpodobnostní prostory Nyní je čas pohovořit o základních pojmech matematické teorie pravděpodobnosti. Omezíme se přitom jen na to, co budeme pro naše příklady potřebovat. V žádném případě není cílem nahradit kurs z teorie pravděpodobnosti, matematicky nebo informatický vzdělaný člověk by o pravděpodobnosti určitě měl vědět podstatně více, než co uvedeme zde. 308 Kapitola 10: Pravděpodobnostní důkazy 10.2 Konečné pravděpodobnostní prostory 309 Pravděpodobnost je jeden z pojmů, který vystupuje jak v matematice, tak mimo matematiku, tj. „ve skutečném životě", „v praxi", nebo jak jinak ještě se to ještě může nazývať. Definovat „skutečnou" pravděpodobnost je obtížné, a je to otázka filosofická. Matematika se ovšem jejímu řešení v podstatě vyhne: sestrojí totiž matematický model „skutečné" pravděpodobnosti, který je čistě matematickým objektem. Tento model má ve sobě zabudováno (jako axiomy) několik jednoduchých vlastností, odpozorovaných ze „skutečné" pravděpodobnosti (jako např. že pravděpodobnost, že nějaký jev nastane, plus pravděpodobnost, že tento jev nenastane, je dohromady 1), dále se s ním ale pracuje jako s jinými, matematickými objekty, tedy všechny jeho vlastnosti, všechna tvrzení o něm a všechna pravidla pro počítání pravděpodobnosti jsou logicky odvozena z axiomů. Tento model je velmi užitečný a, jeho předpovědi se shodují s chováním pravděpodobnosti v praxi, což ale to neznamená, že „skutečná" a matematická pravděpodobnost jsou totožné pojmy. Nadále budeme mluvit o pravděpodobnosti v matematickém smyslu, budeme se však odvolávat na příklady se „skutečnou" pravděpodobností jako motivaci jednotlivých pojmů a axiomu. Základním pojmem v teorii pravděpodobnosti jc pravděpodobnostní prostor. Omezíme se na konečné pravděpodobnostní prostory. 10.2.1 Definice. Konečným pravděpodobnostním prostorem rozumíme dvojici (Q,P), kde íž je konečná množina, a P : 2n —► [0,1] je funkce, přiřazující každé podmnožině Q číslo z intervalu [0,1], taková, že (i) P(0) = 0 (ii) P(Í2) = 1 (iii) P(AuB) A, B c O. P {A) + P{B) pro libovolné dvě disjunktní množiny Množinu Sž si můžeme představovat jako množinu všech možných výsledků nějakého náhodného pokusu. Její prvky se nazývají elemen- *I v mimomatemat.ickcm významu myslíme ovšem pravděpodobnost jako veličinu, jako ve větě „Pravděpodobnost toho. že na hrací kostce padne šestka, je nikoli jako ve třeba ve větě „Ten člověk pravděpodobně neví, že tramvaje teď jezdí jinudy.". tární jevy. Kdyby tento pokus byl třeba jeden hod hrací kostkou, elementární jevy by byly „padla jednička", „padla dvojka",. .., „padla šestka" (pro větší stručnost je můžeme např. označit lo\, ... ,ljq). Podmnožiny fž se jmenují jevy, tak třeba jeden jev by byl „padlo sudé číslo", neboli {cj2,^4,c^e}- Z pochopitelných důvodů se prázdné množině říká jev nemožný, celému Q jev jistý. Teorie pravděpodobnosti má své názvy i pro různé množinové pojmy a operace. Tak „u> £ A* můžeme číst „nastal jev Au nebo obšírněji „elementární jev lú je příznivý jevu A"; „uj E A fl Ba interpretujeme jako „nastaly zároveň jevy A i Bíl; „Af]B = 0" můžeme vyjádřit jako Jevy A a B jsou neslučitelné" a podobně. Je-li A C íl jev, číslo P (A) se nazývá pravděpodobnost jevu A. Axiomy (i)-(iii) vyjadřují vlastnosti, které od pravděpodobnosti přirozeně očekáváme. Z vlastnosti (iii) jc snadno vidět, že hodnotu P stačí zadat na všech jednoprvkových jevech (množinách), a pravděpodobnost libovolného jevu je rovna součtu pravděpodobností jeho prvků, tedy elementárních jevů (přesněji, součtu pravděpodobností všech jeho jednoprvkových podmnožin, ale dovolíme si toto zkrácené vyjádření). Nej jednodušším a možná nej důležitějším konečným pravděpodobnostním prostorem jc takový, v němž všechny elementární jevy mají stejnou pravděpodobnost, tj. funkce P je dána předpisem P(A) IOI Takový prostor odráží tzv. klasickou definici pravděpodobnosti. V této definici (formulované Laplacem) se předpokládá, že všechny možné výsledky určitého náhodného pokusu jsou, na podkladě symetrie a homogenity, stejně možné. Je-li všech možných výsledků pokusu (elementárních jevů) n a výsledků příznivých nějakému jevu A je m, potom pravděpodobnost jevu A se definuje jako mjn. To se někdy heslovitě vyjadřuje rčením, že pravděpodobnost je počet případů příznivých ku počtu případů možných. Jako definice toho, co pravděpodobnost je, to není příliš uspokojivé (potíž je v obratu „stejně možné"), navíc to nezahrnuje nekonečné pravděpodobnostní prostory, ale v mnoha konkrétních případech jc to přinejmenším užitečný návod, jak pravděpodobnost počítat. 310 Kapitola 10: Pravděpodobnostní důkazy 10.2 Konečné pravděpodobnostní prostory 311 O nekonečných pravděpodobnostních prostorech. Tím, že jsme se omezili na konečné pravděpodobnostní prostory, jsme si situaci matematicky značně zjednodušili. Pro modelování mnoha zajímavých jevů je však nejpřirozenější pracovat s nekonečnými prostory. Tak například se můžeme ptát, zvolíme-li 5 náhodných bodů z intervalu [0,1], jaká je pravděpodobnost, že každé dva budou od sebe vzdáleny aspoň o i (a tisíce jiných otázek podobného typu). Potřebovali bychom především definovat pravděpodobnostní prostor, vystihující pojem „náhodný bod z intervalu [0,1]". Body, tj. elementární jevy, budou všechny body [0,1]. Přitom pravděpodobnost každého jednotlivého bodu musí být stejná, a protože bodů je nekonečně, musí být nulová! Funkci P tedy už nelze definovat jen jejím zadáním na jednoprvkových množinách, pravděpodobnost jevu A musí být jeho „míra" ve vhodném smyslu. To již je složitější pojem, který úzce souvisí s integrováním funkcí a dalšími otázkami matematické analýzy. S jinými nekonečnými pravděpodobnostními prostory operujeme (aniž je tak nazýváme) v částech 12.5 a 12.6. Následují důležité konkrétní exempláře konečných pravděpodobnostních prostorů. 10.2.2 Definice (Náhodná posloupnost n nul a jedniček). Tento prostor budeme ziměit Cn. Jeho prvky (elementární jevy) jsou všechny n-prvkové posloupnosti nul a jcdniěek, jinak řečeno, množina {0, l}n, a všechny mají stejnou pravděpodobnost. Protože \Cn\ = 2". je pravděpodobnost každého jevu A rovna \A\/2n. Takový prostor modeluje třeba posloupnost n hodů mincí (rozumí se symetrickou mincí, kde rub i líc padají se stejnou pravděpodobností); padne-li v i-tém hodu líc, resp. rub, napíšeme na i-té místo posloupnosti jedničku, resp. nulu. Příkladem jevu by mohl být třeba jev A =„Líc padne právě lOx", jehož pravděpodobnost je (1í|))/2rí. 10.2.3 Definice (Náhodná permutace). Prvky tohoto prostoru, označovaného Sn, budou všechny permutace (tj. prostá zobrazení na) množiny {1,2, ...,n}, a pravděpodobnost jevu (podmnožiny) A je rovna \A\/n\. Tento prostor je modelem rozložení nějakých n různých předmětů v náhodném pořadí, třeba dobře zamíchaného balíčku karet. 10.2.4 Úloha. Jaká je pravděpodobnost, že v náhodném pořadí karet bude červené eso předcházet červené sedmě? Přeformulováno v našem pravděpodobnostním modelu, jaká je pravděpodobnost jevu A = {n € Sn; tt(1) < 7r(2)}? Mohli bychom ovšem poctivě spočítat permutace, pro něž vr(l) < tt(2), ale můžeme také tuto pravděpodobnost určit jednoduchou úvahou: díky symetrii není možné, aby jeden zjevů ,,7r(l) < 7r(2)" a „7r(l) > 7r(2)" byl pravděpodobnější než druhý, a tedy hledaná pravděpodobnost je rovna |. Přesněji bychom takovou úvahu měli říci asi takto: mezi množinou A a A' = {tt 7r(2)} můžeme sestrojit bijekci, permutaci 7T e A přiřadíme permutaci tt', která číslu 1 přiřazuje číslo 7r(2), číslu 2 přiřazuje tt(1) a jinak se shoduje s tt. Proto \A\ = \A'\, a jelikož Sn = AO-A' (disjunktní sjednocení), je P {A) = \. Teď jeden příklad pro oživení, možná s překvapivým řešením. 10.2.5 Úloha. Představme si, že hrajeme následující hru. Protivník má 100 prázdných kartiček, a napíše na každou nějaké, zcela libovolné číslo podle svého uvážení. Potom je dobře zamíchá (nebo to může udělat nestranný pomocník), a zamíchaný balíček položí na stůl čísly dolů. Začneme si odebírat shora z balíčku jednu kartičku po druhé, a díváme se na jejich čísla. Po otočení kterékoli kartičky máme možnost hru ukončit. Přitom vyhrajeme, pokud na posledně otočené kartičce je napsáno nejvčtší číslo ze všech kartiček (vůbec všech, tedy jak již otočených, tak dosud neotočených!), jinak vyhraje soupeř. Je pro nás výhodné vsadit si na výhru v poměru 4:1 (např. vyhrajeme-li, bereme 400, prohrajeme-li, platíme 100 j ľ Na první pohled se zdá, že to je v uvedeném poměru sázek velice nevýhodná hra. Ukážeme však, že při vhodné strategii je šance na výhru aspoň 1 a tedy náš průměrný zisk v dlouhé sérii her je aspoň 1 x 400 - 3 4 4 100 = 25. Přidržme se takovéto strategie: prvních 50 kartiček otočíme v každém případě, jenom si pamatujeme, jaké na nich bylo největší číslo označme jej M. Potom otáčíme další kartičky, a jakmile na některé bude číslo větší nebo rovné M, hru ukončíme. Když na žádné takové nenarazíme, skončíme až poslední kartičkou. Kapitola 10: Pravděpodobnostní důkazy 10.2 Konečné pravděpodobnostní prostory 313 Tvrdíme, že pravděpodobnost výhry při této strategii je větší než \. Pro jednoduchost předpokládejme, že všechna čísla na kartičkách jsou navzájem různá (modifikaci pro zcela libovolná čísla si může čtenář v případě zájmu rozmyslet sám). Potom uvedená strategie jistě vede k výhře, pokud • největší číslo není mezi prvními 50 kartičkami • a druhé největší číslo je na některé z prvních 50 kartiček. Při uvedené strategii záleží očividně jen na pořadí čísel na kartičkách podle velikosti, a tedy můžeme předpokládat, žc na kartičkách je náhodná permutace množiny {1,2,..., 100}, tj. elementární jev z výše definovaného prostoru <í>ioo- Zajímat nás pak bude jev A — {ti€ Sioo; tt(IOO) > 50 a tt(99) < 50}. Tady bude užitečné dívat se na permutaci jako na pořadí. Pozici čísla 100 můžeme zvolit 50 způsoby, pozici 99 nezávisle na tom 50 způsoby, a pro každou takovou volbu pak zbývající čísla můžeme na zbývající pozice rozestavit 98! způsoby. Proto P(A) = 50 x 50 x 98! 100! 50 x 50 . n n.nr 1 -= 0.2o25 > -. 99 x 100 4 Ještě několik poznámek. Jev A není jediná situace, kdy naše strategie vyhrává, proto pravděpodobnost A je jen dolní odhad pro šanci na výhru. Číslo 50 v popsané strategii optimalizuje pravděpodobnost jevu A, ale vezmeme-li v úvahu i jiné možnosti výhry, dostaneme poněkud lepší výsledky s jiným „prahovým" počtem kartiček; zde podrobnější analýzu už dělat nebudeme. 10.2.6 Definice (Náhodný graf). Graf (obyčejný, neorientovaný) na množině vrcholů V ■■■■ {1,2,----n} je zadán tím, že pro každou dvojici {i,j} e (Y) specifikujeme, zda tvoří hranu nebo ne. Existuje tedy 2© grafů (mnohé z nich jsou ovšem isomorfní, to nás zde ale nebude zajímat). Vybíráme-li náhodný G graf na V, přičemž všechny grafy jsou stejné pravděpodobné, můžeme na to nahlížet též jako na (^j .hodů symetrickou mincí - pro každou dvojici vrcholů hodíme mincí, zda se má stát hranou nebo ne. Příslušný pravděpodobnostní prostor Qn bude mít jako prvky všechny možné grafy na V, a všechny budou -ín) mít stejnou pravděpodobnost, totiž 2 V2J. Jako příklady jevů můžeme studovat nejrůznčjší grafové vlastnosti, jako jev S =„graf G je souvislý" nebo B =„graf G je bipartitní", a podobně. Vypočítat pravděpodobnosti takových jevů přesně je někdy obtížné, ale většinou nás zajímá jen nějaký přibližný odhad. Pro dva zmíněné jevy lze ukázat, že pro n —> oo se pravděpodobnost P(S) velmi rychle blíží 1, zatímco pravděpodobnost P(B) se velmi rychle blíží 0. To se někdy vyjadřuje frázemi „náhodný graf je skoro jistě souvislý" a „náhodný graf skoro jistě není bipartitní". 10.2.7 Úloha. Dokažme, že náhodný graf skoro jistě není bipartitní, tj. limn^P(B)=0. Důkaz. Následující postup je poučný i pro mnoho jiných tvrzení tohoto typu. Jak víme, množinu vrcholů V bipartitního grafu lze rozdělit na dvě části, U a W, tak, že všechny hrany jsou mezi U a W. Pro danou podmnožinu U C V označme Bv jev, že všechny hrany grafu G spojují vrcholy z U s vrcholy z W = V \ U. Je-li k = \U\, máme k(n - k) dvojic {u,w\ s u e U, w e V \ U, tedy jev (množina) Bv sestává z 2fc("~fc) grafů, a proto P(Bu) = 2k{n~k)~^). Není těžké se přesvědčit, že funkce k i ^ k(n - k) nabývá maxima pro k = n/2, a toto maximum je rovno n2/4. Proto můžeme pro každé U odhadnout P(B,j) < 2"2/4-(í) = 2-n("-2)/4. Každý bipartitní graf patří některému Bu (pro vhodnou množinu U). Pro různé volby U nemusí být jevy Bu navzájem disjunktní, avšak pravděpodobnost sjednocení jevů je vždy nejvýš rovna součtu jejich pravděpodobností, a proto P(B)< E ucv P(Bu) < 2n2~"'t"~2^4 = 2' ™(n-6)/4 0. □ V uvedeném výsledku jsme se zajímali o jistou kvalitativní vlastnost „velkého" náhodného grafu. To trochu připomíná např. otázky fyziky pevných látek; tam se totiž studují nějaké makroskopické vlastnosti souboru velkého množství mikroskopických částic. Předpokládá se přitom, že jednotlivé částice si vedou ve vhodném smyslu náhodně, a makroskopické vlastnosti jsou výslednicí jejich náhodného chování. I matematické metody studia takových souborů částic jsou příbuzné metodám pro náhodné grafy. 314 Kapitola 10: Pravděpodobnostní důkazy 10.2 Konečné pravděpodobnostní prostory 315 Nezávislé jevy. Musíme probrat ještě jeden klíčový pojem. Dva jevy A. B v nějakém pravděpodobnostním prostoru (O, P) se nazývají nezávislé, platí-li B(AnB) = B{A)B{B). Nezávislost znamená, že rozdělíme-li O na 2 části, A a jeho doplněk, jev B „rozřízne" obě tyto části v temže poměru. Jinak řečeno, kdybychom prvek iú G volili náhodně nikoliv ze všech prvků fž, ale jenom mezi prvky z A, byla by pravděpodobnost toho, že oj G B, přesně rovna P(B) (za předpokladu ť (A) + 0). S nezávislými jevy sc nejčastěji setkáme v takovéto situaci: prvky íž, tj. elementární jevy, si můžeme představovat jako uspořádané dvojice, neboli í\ modeluje výsledek jednoho „složeného" experimentu, sestávajícího ze dvou experimentů konaných jeden po druhém. Předpokládejme, že průběh prvního experimentu nijak neovlivní průběh experimentu druhého. Je-li A C íž nějaký jev, závisející jen na výsledku prvního experimentu (tj., známe-li tento výsledek, můžeme rozhodnout, zda A nastal nebo ne) a podobně B závisí jen na výsledku druhého experimentu, potom jevy A a B budou nezávislé. Prostor Cn (náhodná posloupnost 0/1) je typickým zdrojem situací tohoto druhu. Zde máme složený experiment sestávající z n po sobě jdoucích hodů mincí, o nichž předpokládáme, že se navzájem nijak neovlivňují. Závisí-li tedy jev A např. jen na hodech se sudým pořadovým číslem („v suchých hodech nepadl žádný líc") a jev B jen na hodech s lichým pořadovým číslem („v lichých hodech padly aspoň 3 ruby"), budou takové jevy nezávislé. Podobně v prostoru Qn (náhodný graf) jsou jednotlivé hrany nezávislé, a např. jevy „graf G má aspoň jeden trojúhelník na vrcholech 1,2,... ,10" a „graf G obsahuje nějakou lichou kružnici s vrcholy mezi 11,12,... , n" jsou nezávislé. Subtilnější situace mrižeme demonstrovat na pravděpodobnostním prostoru Sn (náhodná permutace). Jevy A = = 1} a B = {7r(2) = 1} zjevně nezávislé nejsou (protože P(A),P{B) > 0, ale A n B = 0, a tudíž P(A n B) = 0). Budc-li jev C = {tt(2) = 2}, je vidět, že B a C určitě nejsou nezávislé, ale možná už není tak zřejmé, že ani A a C nejsou nezávislé: máme P{A) = P{C) = A ale P(A H G) = n(nl_1) ^ P(A)P(C). Intuitivně, víme-li, že nastal A, tj. že 7r(l) = 1, vyloučili jsme tím zároveň jednu z n možností pro 7r(2), a tedy 7r(2) má malinko větší šanci být rovno 2. Naproti tomu jevy A a D = {vr(2) < tt(3)} jsou nezávislé, jak se lze přesvědčit výpočtem příslušných pravděpodobností. Pojem nezávislosti můžeme rozšířit i na více jevů A\, A%3..,, An. 10.2.8 Definice. Jevy Ai,...,An C íl se nazývají nezávislé, pokud pro každou množinu indexů I C {1,2,... , n} platí \iGl Speciálně tato definice požaduje, aby každé dva z těchto jevů byly nezávislé, ale musíme varovat, že z nezávislosti všech dvojic obecně neplyne nezávislost! V prostorech Cn (náhodná posloupnost 0/1) i Qn (náhodný graf) máme typické situace s mnoha nezávislými jevy. Definujme jev Aj v prostoru Cn, tvořený všemi posloupnostmi s jedničkou na i-tém místě. Pak jevy .4j,..., An jsou nezávislé. Obecněji, závisejí-li nějaké jevy na po dvou disjunktních skupinách složek posloupnosti, jsou nezávislé (důkaz vynecháme, není obtížný). V různých pravděpodobnostních výpočtech a důkazech se příslušné pravděpodobnostní prostory zpravidla výslovně nepopisují, jen se s nimi mlčky pracuje. Přesto je samozřejmě důležité mít jasno v těchto základních pojmech. Na závěr tohoto oddílu uvedeme ještě jeden pěkný pravděpodobnostní důkaz. 10.2.9 Úloha. Uvažme turnaj 'ti hráčů, řekněme v tenisu, v němž každý hraje s každým (a žádná dvojice neremizuje). Mají-li jednotliví hráči velké výkonnostní odstupy, můžeme čekat, že nejlepší s nich vyhraje se všemi, druhý nejlepší se všemi kromě prvního, atd., tj., turnaj přesvědčivě určí pořadí. Turnaj s vyrovnanými hráči ovšem může dopadnout složitějším způsobem. Může například turnaj dopadnout 316 Kapitola 10: Pravděpodobnostní důkazy 10.3 Střední hodnota 317 tak, aby pro každou trojici hráčů existoval nějaký jiný hráč, který je všechny porazil? (Podobně se ovšem můžeme ptát pro libovolné k místo trojky.) Když si matematikové položili tuto otázku, dlouho se nedařilo najít řešení; konstrukce takových turnajů je obtížná. Pravděpodobnostní metodou se ukáže existence takového výsledku turnaje, pro dost velké n, poměrně snadno. Uvažme náhodný turnaj, kde si představujeme, že výsledek každého zápasu je určen nestranným losem. Podíváme se na pevně zvolenou trojici hráčů x, y, z. Pravděpodobnost, že nějaký jiný hráč w s nimi se všemi vyhraje, je 2~3 = |, tedy pravděpodobnost že w prohraje aspoň s jedním je L Jaká je pravděpodobnost, že každý z n — 3 hráčů w (různých od x, y, z) prohraje aspoň s jedním z x, y, z! Pro různé hráče w jsou výsledky jejich zápasů s x, y, z na sobě nezávislé, a tedy tato pravděpodobnost je (|)™~3. Trojici {x.y.z} lze volit Q) způsoby, proto pravděpodobnost, že pro aspoň jednu z těchto trojic x,y,z není žádný další hráč, jenž x.y i z porazil, je nejvýš (£)(|)n-3. Pro n > 91 je tato pravděpodobnost menší než 1, proto existuje nějaký výsledek turnaje n hráčů s požadovanou vlastností. □ Cvičení 1. Ukažte, že náhodný graf skoro jistě obsahuje trojúhelník (tím podáte jiné řešení příkladu 10.2.7). 2* Ukažte, že náhodný graf je skoro jistě souvislý. 3. Najděte příklad 3 jevů v nějakém pravděpodobnostním prostoru takových, že každé dva jsou nezávislé, ale všechny 3 nezávislé nejsou. 4. Ukažte, že jsou-li A, B nezávislé jevy, pak také jejich doplňky O \ A, íl \ B jsou nezávislé. 5. (a) Ukažte podle definice, že jevy A\,..., An v prostoru C„, definované v textu za definicí 10.2.8, jsou skutečně nezávislé. (b)* Buď (fž, P) konečný pravděpodobnostní prostor, v němž existuje n nezávislých jevů A\,..., An takových, že 0 < P(/l,:) < 1 pro každé i. Dokažte, že \Í1\ > 2". 6. Nechť (íž, P) je konečný pravděpodobnostní prostor, v němž všechny prvky mají pravděpodobnost l/|íí|. Ukažte, že je-li |0| prvočíslo, pak žádné dva netriviální jevy (různé od 0 a fž) nejsou nezávislé. 7. Pro jednoduchost předpokládejme, že pravděpodobnost narození kluka i holky je stejná (což ve skutečnosti není zcela tak). O jisté rodině víme, že mají přesně dvě děti, a aspoň jedno z nich je kluk. Jaká je pravděpodobnost, že mají dva kluky? 10.3 Střední hodnota 10.3.1 Definice. Nechť (Q, P) je nějaký konečný pravděpodobnostní prostor. Náhodnou veličinou na Q nazveme každé zobrazení /:!]-> R. Náhodná veličina / tedy přiřazuje každému elementárnímu jevu w G í] nějaké reálné číslo j(oj). Teď několik příkladů náhodnýrch veličin: 10.3.2 Příklad (Počet jedniček). Je-li Cn prostor všech n-prvko-vých posloupností nul a jedniček, můžeme deňnovat náhodnou veličinu fi takto: fi(s) je počet jedniček v posloupnosti s. 10.3.3 Příklad (Počet živých zajíců). Každý z n lovců zamíří na jednoho náhodně vybraného z n zajíců, a všichni naráz vystřelí. Náhodná veličina J'2 je počet přeživších zajíců (za předpokladu, že se každý lovec trefí). Formálně, pravděpodobnostní prostor zde bude množina všech zobrazení [i množiny {1,2,..., n} do sebe, každé s pravděpodobností n~n, a f2(pť) je počet bodů mino obraz ji. 318 Kapitola, 10: Pravděpodobnostní důkazy 10.3.4 Příklad (Počet levých maxim). Na pravděpodobnostním prostoru S„ všech permutací na množině {1, 2,.., , n}, definujeme náhodnou veličinu fíj.- /a(7r) jc počet levých maxim permutace tt, tj. počet i takových, že ir(i) > ir(j) pro všechna j < i. Představme si závod třeba ve vrhu koulí, a pro jednoduchost předpokládejme, že každý závodník podává stabilní výkon, tj., pokaždé hodí stejně. V první sérií hodů hází n závodníků v náhodném pořadí. Potom fa bude udávat, kolikrát se v této první sérii hodů měnil závodník s dosud nejlepším výkonem. 10.3.5 Příklad (Složitost třídicího algoritmu). A ještě jedna složitější náhodná veličina. Nechť A jc nějaký třídicí algoritmus, to znamená, A dostane jako vstup n-tici čísel x\,... ,xn, a na výstup vypíše táž čísla setříděná podle velikosti. Předpokládejme, že počet kroků výpočtu algoritmu A závisí jen na pořadí vstupních čísel podle velikosti, takže si můžeme představovat, že na vstupu je nějaká permutace it čísel {1,2,..., n} (tuto podmínku splňuje mnoho skutečně používaných algoritmů). Defínujeme náhodnou veličinu f 4 na prostoru Sni Ía^) Je počet kroků, vykonaných algoritmem A pro vstupní permutaci 71". 10.3.6 Definice. Nechť (íí, P) je konečný pravděpodobnostní prostor, f náhodná veličina na něm. Střední hodnota / bude reálné číslo, které značíme e/ a defínujeme předpisem e/=^p{m)/h (písmeno e je zkratka z anglického „expectation", v překladu „očekávání"). Střední hodnotu si můžeme představovat takto: opakujeme-li mnohokrát náhodnou volbu prvku z O, bude se průměrná hodnota / přes tyto náhodně zvolené prvky blížit e/. Jsou-li speciálně všechny elementární jevy to G íž stejně pravděpodobné (jak je tomu téměř ve 10.3 Střední hodnota 319 všech našich příkladech), je střední hodnota / prostě aritmetický průměr všech hodnot /: 1 1 u>en Pokračování příkladu 10.3.2 (Počet jedniček). Pro ilustraci vypočteme střední hodnotu náhodné veličiny f\, počtu jedniček v náhodné 7?,-členné posloupnosti nul a jedniček, podle definice. Veličina f\ má hodnotu 0 pro jedinou posloupnost (samých nul), hodnotu 1 pro n posloupností,..., hodnotu k pro (^) posloupností z Cn. Proto fc-i v y Jak se počítá v příkladu 12.1.2, je suma na pravé straně rovna n2n , takže e/i = n/2. To ovšem souhlasí s intuicí, že při n hodech mincí v průměru padne polovina líců. Hodnota e/i se dá stanovit jednodušeji, následujícím trikem. Pro každou posloupnost s G Cn uvažme posloupnost š, která vznikne ze s záměnou jedniček na nuly a obráceně. Platí fi(s) + fi(š) = n. Toho využijeme takto: EA = 2-" ]T h(s) = ~J2 (A W + M*)) = 2"n_1 \C> = \ ■ Popíšeme nyní metodu, jíž se střední hodnota často dá spočítat velmi jednoduše (viděli jsme, že výpočet podle definice je i v jednoduchých případech pracný). Potřebujeme na to definici a jednoduchou větu. 10.3.7 Definice. Buď A C íl jev v nějakém pravděpodobnostním prostoru (Ú,P). Indikátorem jevu A nazveme náhodnou veličinu, l\ : fž —* {0,1}, definovanou následovně pro u £ A pro uj $ A. 320 Kapitola 10: Pravděpodobnostní důkazy 10.3 Střední hodnota, 321 10.3.8 Pozorování. Pro každý jev A platí BIA = P {A). Důkaz. Podle definice střední hodnoty je eia = £ ^WM) = E p(M) = p(^)- □ Následující tvrzení je skoro škoda nazývat větou, jeho důkaz z definice je bezprostřední a přenecháváme jej čtenáři. Je to však tvrzení, které nám bude v dalším velice užitečné. 10.3.9 Věta (O linearitě střední hodnoty). Buďte f a g libovolné náhodné veličiny na konečném pravděpodobnostním prostoru (fi,P), a reálné číslo. Potom E(a/) = aEf, E(/ + g) = (E/) + (Eg). Zdůrazněme, že / a g mohou být naprosto libovolné, nemusí tedy být v žádném smyslu nezávislé nebo tak něco. Pokračujeme několika příklady toho, jak se 10.3.7-10.3.9 dají využít. Další pokračování příkladu 10.3.2 (Počet jedniček). Spočítáme E/i, průměrný počet jedniček, asi nej elegantnějším způsobem. Jev Aj: na prostoru Cn bude „v z-tém hodu padne líc", čili množina všech posloupností, majících na i-tém místě jedničku. Zřejmě P(A{) = 5 pro každé i. Všimněme si, že pro každou posloupnost s 6 Cn platí fi(s) = //i, (s) + Ia2(s) + • • • + I.an(s) (triviální tvrzení jsme jen zapsali v trošku komplikovanějším značení). Z linearity střední hodnoty a pak z pozorování 10.3.8 dostaneme Bf1=mAl+-EIA2 + --- + BIAn=P(A1) + P(A2) + --- + P(An) = |. □ Pokračování příkladu 10.3.3 (Počet živých zajíců). Budeme počítat E/2, střední hodnotu počtu nezastřelených zajíců. Tentokrát Ai bude jev „i-tý zajíc přežije", formálně A{ bude množina všech zobrazení u., která nic nezobrazí na i. Pravděpodobnost, že j-tý lovec střelí i-tého zajíce je ^, a protože lovci si vybírají nezávisle, je P(Ai) = (1 — í/n)n. Dále postupujeme jako v předchozím příkladě: í=í i=i ^ ' (jak známo z analýzy, (1 — l/n)n konverguje k e"1). □ Pokračování příkladu 10.3.4 (Počet levých maxim). Budeme teď počítat střední hodnotu počtu levých maxim náhodné permutace, E/3. Zde Ai bude jev „i je levé maximum tt", tj. Ai = {tt; 7r(t) > tt(j) pro j = 1,2,...,i- 1}. Tvrdíme, žc P(Aj) = i. Nejnázornější je si představit, že náhodnou permutaci n vyrábíme takovýmto postupem: Začneme s „hromádkou" čísel {1,2,... ,n}. Vytáhneme z hromádky jedno náhodně zvolené číslo, a prohlásíme jej za 7r(n). Potom ze zbývajících čísel v hromádce vytáhneme další náhodné číslo, to bude n(n — 1), atd. Hodnota n(i) se volí v okamžiku, kdy v hromádce zbývá právě i. čísel. Pravděpodobnost, že jako n (i) zvolíme největší z těchto i čísel (což je právě jev Ai), je tudíž i. Zbytek výpočtu je jako v předchozím: n n E/3 = E BIAi = £ P(AA = ! + - + - + ••• + -. i—l i=l Hodnota součtu převrácených hodnot, k němuž jsme dospěli, je přibližně ln n, viz cvičení 3.4.12. □ Cvičení 1. Ukažte na příkladech, že pro libovolné náhodné veličiny f,g obecně neplatí ani jedna z rovností e(fg) = (Ef)(E (E/)2. 3. Nechť f(ir) je počet pevných bodů permutace n (viz část 3.7). Spočtěte E/ pro náhodnou permutaci iv ď Sn. 4. Buď 7t náhodná permutace množiny {1,2...., n}. (a) * Určete střední délku cyklu ir obsahujícího číslo 1. (b) * Určete střední počet cyklů ir. 5. Hodíme nx po sobě desetikorunovou mincí, na níž padá lev i Hradčana s pravděpodobností ^. Kolik je střední počet „sérií" (série jsou souvislé úseky, kdy padá stejná strana)? 6. Předpokládejme, že jeden z milionu lidí má místo levé nohy kopyto, a že tito lidé jsou mezi populací náhodně rozděleni. Detektiv zjistil, že pachatelem zločinné finanční machinace je člověk s kopytem místo levé nohy žijící v Praze (předpokládejme 1 milion obyvatel). Policejní inspektor pak člověka s tímto anatomickým znakem zatkl. Jaká je teď pravděpodobnost, že v Praze žije aspoň jeden další takový člověk? 7* V první nádobě je n červených kuliček a. ve druhé n modrých kuliček. Vezmeme náhodně vybranou kuličku z první nádoby, náhodně vybranou kuličku z druhé nádoby, a dáme je do opačných nádob než ze kterých jsme jc vytáhli. Dokažte, že opakujeme-li to k x, je střední hod- nota počtu červených kuliček v první nádobě rovna \n{\ + (l 10.4 Několik aplikací l)k) V této části jsou shromážděny příklady drobné matematické skvosty -na použití linearity střední hodnoty. 10.4.1 Věta (Existence velkých bipartitních podgrafů). Bud G graf sc sudým počtem, 2n, vrcholů a s m > 0 hranami. Potom množinu V = V(G) lze rozdělit na dvě disjunktní n-prvkové podmnožiny A a B tak, že více než m/2 hran G spojuje vrchol z A s vrcholem z B. Důkaz. Zvolme n-prvkovou množinu A náhodně mezi všemi n-prvkovými podmnožinami V, položme B = V \ A. Nechť X označuje počet hran grafu G jdoucích „napříč", tj. tvaru {a, b}, kde a G A, b G B. Spočteme střední hodnotu EX náhodné veličiny X. Pro každou hranu e = {u, v} G E(G) definujeme jev Are, který nastane pro všechny volby množiny A takové, že hrana, e jde napříč, to znamená \An{u, v}\ = 1. Platí X = Eee£(G) In., a tedy EX = ZeeE{G) P(Ne). Potřebujeme stanovit pravděpodobnost P(Ne). Celkem existuje (?") možností volby množiny A. Požadujeme-li, aby u € A a v A, můžeme zbývajících n — 1 prvků A zvolit (2™_Ti) způsoby, a podobně pro symetrickou situaci u $ A, v G A. Proto P(Ne (2n\ n 1 2n- 1 > 2' Odtud dostaneme EX = YleeE(G) ^*(-^e) > m/2. Střední hodnota X jc průměrem hodnot X přes všechny volby množiny A. Průměr nemůže být větší než maximum z těchto hodnot, a tedy existuje volba A, pro niž více než polovina hran jde napříč. □ Nezávislé množiny. V oddílu 4.8 jsme zjišťovali maximální možný počet hran grafu na n vrcholech, který neobsahuje žádný trojúhelník. Obecněji se můžeme ptát, kolik nanejvýš hran může mít graf na n vrcholech neobsahující jako podgraf K^, čili úplný graf na k vrcholech. Na to přesně odpovídá Turánova věta, což je jeden ze základních výsledků extremální teorie grafů. Tato věta se dá formulovat různými způsoby. Nejsilnější verze, již jsme v oddílu 4.8 dokázali pro speciální případ k = 3 (pro obecné k viz cvičení 4.8.5), přesně popisuje, jak musí graf s takovým maximálním možným počtem hran vypadat. Tady předvedeme elegantní pravděpodobnostní důkaz trošku slabšího výsledku, který jen omezuje zmíněný' počet hran. Turánova věta se nejčastěji používá v „obrácené" podobě: máli graf na n vrcholech více než jistý počet hran, pak obsahuje Kk-Vezmeme-li doplněk grafu G, tj. hrany budou právě tam, kde G hrany neměl, Turánova věta o něm tvrdí: má-li graf na n vrcholech méně než jistý počet hran, pak obsahuje nezávislou množinu velikosti aspoň k (nezávislá množina je množina vrcholů, mezi nimiž nejde žádná hrana). V této podobě zde větu zformulujeme a dokážeme. 324 Kapitola 10: Pravděpodobnostní důkazy 10.4 Několik aplikací 325 10.4.2 Věta (Turánova věta). Pro každý graf na n vrcholech platí kde a(G) značí velikost největší nezávislé množiny v grafu G. Pravděpodobnostní metodu použijeme v důkazu takovéhoto lemmatu: 10.4.3 Lemma. Pro každý graf G platí 1 a(G)> E degG(u) + 1 veV(G) (degG(v) značí stupeň vrcholu v v grafu G). Důkaz. Předpokládejme, že vrcholy grafu G jsou 1,2.... . n, a zvolme náhodnou permutaci n těchto vrcholů. Definujeme množinu M C V (G) obsahující všechny vrcholy v takové, že pro všechny sousedy u vrcholu v platí tt(u) > tt(v), tj., vrchol v jc v uspořádání podle hodnot tt menší než všichni jeho sousedi. Všimněme si, že množina M je nezávislá v grafu G, tedy \M\ < a(G) pro libovolnou permutaci, a tudíž i E)M| < a(G). Pro každý vrchol v buď Av jev „v G M". Je-li Nv množina všech sousedů vrcholu v, jsou všechna uspořádání množiny Nv U {v} permutací 7T stejně pravděpodobná, a tedy pravděpodobnost, že v bude nejmenší z této množiny, je rovna l/(|iV„| + 1) = l/(degG(u) + 1). Proto P(AV) = l/(dcgG(t>) + 1), a můžeme počítat střední hodnotu jako již několikrát: a(G)>E|M|= E EiX= E JW □ Důkaz věty 10.4.2. To už je čistě počítání s nerovnostmi. Počet hran grafu e = \E(G)\ je polovina součtu stupňů všech vrcholů. Máme 0 / l + / / Obrázek 10.1: Průsečíky úrovně 1 pro množinu přímek tedy takovouto situaci: pro nezáporná reálná čísla dy. r/o,.... dn víme £íLi ďi = a ptáme se, jaká je nejrnenší možná hodnota součtu E i=i 1 cU + 1 Lze ukázat, že tento součet jc minimální pro d\ — ■ ■ ■ = dn = 2e/n (ponecháme do cvičení), a tehdy má hodnotu ri2 /(2e+ra) jako v tvrzení věty. □ Počet průsečíků úrovně < k. Mějme množinu L sestávající z n přímek v rovině, z nichž žádné 3 se neprotínají v jednom bodě a žádné 2 nejsou rovnoběžné, a dále nějaký bod o, který neleží na žádné z přímek. Budeme se zabývat průsečíky přímek z L. Celkem je jich (™) (každá dvojice přímek určuje právě 1 průsečík). Řekneme, že průsečík v má úroveň k, pokud úsečka ov protíná, kromě dvou přímek procházejících průsečíkem v, ještě k dalších přímek (obr. 10.1 znázorňuje všechny průsečíky úrovně 1). Kolik maximálně může být průsečíků úrovně nejvýš k, pro dané n a fc? Tato otázka vzniká při analýze efektivity některých geometrických algoritmů. Následující věta dává horní odhad, který je nejlepší možný až na hodnotu konstanty úměrnosti: 326 Kapitola 10: Pravděpodobnostní důkazy 10.4 Několik aplikací 327 10.4.4 Věta. Existuje maximálně 3(k + l)n průsečíků úrovně nejvýš k. Důkaz. Nejdříve se podíváme na případ k — 0. Zjišťujeme, že průsečíky úrovně 0 jsou přesně vrcholy ohraničující konvexní mnohoúhelník, jenž obsahuje bod o. Protože každá přímka přispívá nejvýš jednou stranou tohoto mnohoúhelníka, je takových vrcholů nejvýš n. Toho využijeme v dalším. Přikročíme k obecnému případu. Nechť p označuje jisté číslo v intervalu (0,1), jehož hodnotu vhodně zvolíme na konci důkazu. Představíme si takovýto náhodný pokus: Náhodně vybereme podmnožinu přímek R C L, přičemž každou přímku ř £ i dáme do 7? s pravděpodobností p. a výběry jednotlivých přímek jsou na sobě nezávislé. Tady je asi na místě říci více o příslušném pravděpodobnostním prostoru. Je to zobecnění prostoru Cn z příkladu 10.2.2, modelujícího n hodů symetrickou mincí, na níž padá rub a líc se stejnou pravděpodobností, totiž |. V našem případě bychom používali jakousi nesymetrickou minci, na níž padá líc s pravděpodobností p a rub s pravděpodobností 1 — p. Pro každou přímku t G L bychom jednou hodili, a zahrnuli bychom ji do R jestliže padne líc. Formálně, náš pravděpodobnostní prostor je množina všech podmnožin R C L, a pravděpodobnost množiny R C L, tedy elementárního jevu, je pr(l —p)n~r, kde r = \R\ (abychom dostali právě množinu R. musí v určitých r hodech padnout líc a ve zbývajících n — r hodech rub). To je příklad pravděpodobnostního prostoru, kde elementární jevy nemají všechny stejnou pravděpodobnost. Vraťme se k naší geometrické situaci. Představme si, že bychom do roviny nakreslili jen přímky z takové náhodně vybrané podmnožiny R. Zavedeme náhodnou veličinu / = f(R), což bude počet průsečíků přímek z R úrovně 0, jinak řečeno těch průsečíků, jimž žádná přímka z R nezabraňuje ve výhledu na bod o. Budeme dvěma způsoby počítat střední hodnotu E/. Na jedné straně víme, podle poznámky na začátku důkazu, že pro každou konkrétní množinu R je f(R) < \R\, a proto E/ < E|i?,|. Lze snadno spočítat (ponecháváme do cvičení), že E|Ä| = pn. Nyní jiný způsob počítání E/. Pro každý průsečík v přímek z L definujeme jev Av, který nastane, pokud v bude jedním z průsečíků úrovně 0 přímek z i?,, tj. přispěje 1 k hodnotě f(R). Jev A nastane, právě když jsou splněny tyto dvě podmínky: • Obě přímky, určující průsečík v, padnou do R. • Žádná z přímek, protínajících úsečku ov ve vnitřním bodě (tj. zakrývající bodu o výhled na bod v) nepadne do R. Z toho je vidět, že P(AV) = p2(l — p)u(v\ kde u(v) značí tiroveň průsečíku v. Označme M množinu všech průsečíků přímek z L, a Mu Q M množinu průsečíků úrovně nejvýš k. Máme E/ = £ E/4,; = P(Ar) > £ P(AV) = £ p2(l -p)uW > veM veM veMk veMk > Y, V2{~t-V)k = \Mk\p2(l-p)k. Celkem jsme tedy odvodili np > E/ > [M^|p2(] — p)k, neboli IMJ < n p{l-p Zvolíme teď číslo p tak, abychom na pravé straně dostali co nejmenší hodnotu. Vhodná volba je například p = l/(k + 1). Je známo, že pro každé k > 1 je (1 - jij)* > e"1 > |, takže vyjde \Mk\ < 3(k + l)n, jak se tvrdí ve větě. □ Poznamenejme ještě, že problém odhadnout maximální možný počet průsečíků úrovně přesně k je mnohem obtížnější a dosud nevyřešený. Průměrný počet porovnání v algoritmu QUICKSORT. Známý třídící algoritmus QUICKSORT (česky „rychlotřídič"?), do-stane-li jako vstup posloupnost prvků (x\,x2, ■ ■ ■ ,xn), pracuje takto: porovnáním s x\ rozdělí ostatní prvky na dvě skupiny, na prvky menší než x\ a prvky aspoň tak velké jako x\ (přitom v obou skupinách zachová pořadí prvků jako bylo na vstupu). Každou skupinu pak zvlášť 328 Kapitola 70: Pravděpodobnostní důkazy 10.4 Několik aplikací 329 setřídí rekurzivním voláním sebe sama. Rekurze se zastaví u triviálně malých skupin (např. nejvýš dvouprvkových). Tento algoritmus v nejhorším případě může potřebovat řádově až n2 kroků (nejhorší, co mu můžeme provést, je dát mu již setříděnou posloupnost). V praxi je však velmi oblíben a bere se jako jeden z nej-rychlejších třídících algoritmů. Jeden z důvodů je následující výsledek o jeho průměrném chování: 10.4.5 Věta. Nechť x\ < x-2 < ■ ■ ■ < xn jsou tříděné prvky v pořadí podle velikosti. Dud n permutace množiny {1,2,... ,??,}, a nechť T(n) značí počet porovnání (dvojic čísel podle velikosti) provedených algoritmem QUICKSORT pro vstupní posloupnost (xv(í), • • • i xn(n))-Potom při náhodne volbě permutace n platí ET < 2nlnn. Důvod takového chování není těžké vidět. Jsou-li vstupní čísla srovnána náhodně, lze čekat, že první prvek většinou rozdělí ostatní na dvě zhruba stejně velké skupiny. Rekurze pak bude mít log n úrovní, a na každé úrovni se spotřebuje celkem 0(n) porovnání. To ale není pořádný důkaz. Následující elegantní analýza dává i správnou konstantu úměrnosti. Důkaz. Nechť TL je počet prvků porovnávaných s prvkem x^u) ve fázi, kdy se stane dělicím prvkem. Například T\ = n — 1, protože xtt(í) Jc první prvek na vstupu a porovnávají se s ním všechny ostatní prvky. Pokud tt(2) < tt(1), T2 bude tt(1) - 2, a pro tt(2) > vr(l) je T2 = n — tt(1) — 1. Obecně si můžeme T7; představit podle obrázku: ■Je \r \- •!• oo«o««ooo(g)o«o *ir(i) Kroužky na tomto obrázku znázorňují xi, X2,... , xn seřazené podle velikosti, plně jsou kresleny prvky s indexy 7r(l),7r(2),... ,ir(i — 1), dvojitě je označen xr^, a prázdné jsou kroužky pro ostatní prvky. Není těžké si rozmyslet, že Ti je právě počet prázdných kroužků, které „vidí" prvek xwu\, přičemž skrz plné kroužky vidět není. Budeme hledat ~ET.t. Představme si, žc indexy probíráme pozpátku a sledujeme příslušný obrázek s plnými a prázdnými kroužky. Nejprve jsou všechny kroužky plné, postupně se jeden po druhém v náhodném pořadí vyprazdňují. V okamžiku, kdy zbývá i plných kroužků, vezmeme náhodně jeden zbývající plný kroužek, x^U), a T.L bude počet prázdných kroužků, které vidí. Použijeme jednoduché počítání dvěma způsoby. Každý prázdný kroužek vidí nejvýš dva plné kroužky. Proto celkový počet dvojic (plný kroužek, prázdný kroužek), které se vidí, je nejvýš 2(n — i). Najeden z i plných kroužků tedy připadá v průměru nejvýš 2(G) nechť označuje maximální počet vrcholů úplného podgrafu G a a(G) nechť je maximální počet vrcholů nezávislé množiny vrcholů G, tj. množiny vrcholů, v níž žádné dva nejsou spojeny hranou. Dokážeme následující větu. 11.1.1 Věta. Nechť G je graf s alespoň 6 vrcholy. Potom a(G) > 3 nebo uj(G) > 3. Důkaz. Zvolme libovolně jeden z vrcholů grafů G a označme jej u. Nechť A C V(G) \ {u} je množina vrcholů, které nejsou s u spojeny hranou; formálně A = {v € V (G): v / u,{u,v} g E{G)}. Nechť B = V(G) \ Á\ {u} sestává z vrcholů, které s u spojeny jsou. Protože |U(G)| > 6, musí některá z množin A, B mít nejméně 3 prvky. Rozlišíme tedy dva případy. 1. Případ \ A\ > 3. Nechť A obsahuje vrcholy x,y,z. Jestliže každé dva z nich tvoří hranu grafu G, potom \x,y,z} je úplný pod-graf dokazující u(G) > 3. V opačném případě nechť například {x, y} 0 E{G). Potom však {u, x, y} je nezávislá množina v grafu G', a tedy a(G) > 3. 2. Případ \B\ > 3. Postupujeme obdobně: Buď žádná dvojice vrcholů z D netvoří hranu, a tudíž a(G) > 3, nebo existují dva vrcholy x.y E B, které tvoří hranu v G. Potom však množina {u, x, y} je úplný podgraf G, a tedy U)(G) > 3. □ Všimněte si, kolik možností jsme museli rozlišit, abychom dokázali větu pro grafy se 6 vrcholy. Přitom výsledek sáni zní jako hříčka. Záhy však uvidíme, že je speciálním případem obecnějších tvrzení. Uvědomte si, že v důkazu věty 11.1.1 jsme rovněž použili speciální případ (pro i = 2, ri\ = n2 = 3) následujícího tvrzení, v české literatuře nazývaného Dirichletův princip1. 11.1.2 Věta (Dirichletův princip). Nechť n\^n%,..., nt jsou přirozená čísla, nechť X je množina s nejméně 1 + Y7i=i(ni ~~ 1) Prvky, JV anglické literatuře pigeonhole principle a v německé Schubfachprinzip. 334 Kapitola, 11: Řád z nepravidelnosti: Ramseyova věta 11.2 Ramseyova věta pro grafy 335 a nechť množiny X\, Xj,..., XL tvoří rozklad množiny X. Potom existuje i takové, že X,L má velikost alespoň tíj. 11.2 Ramseyova věta pro grafy Zde je slíbené zobecnění věty 11.1.1 pro „větší večírky". 11.2.1 Věta (Ramseyova věta pro grafy). Nechť graf G má alespoň C^ly2) vrcholů. Potom lú(G) > k neho ci(G) > i. Všimněte si, že podmínka věty je symetrická v k a i, poněvadž Dosadímc-li do věty k = £ = 3, dostáváme, že každý gral G se (g) = 6 vrcholy splňuje lu(G) > 3 nebo a(G) > 3, což je právě věta 11.1.1. Pozornému čtenáři rovněž neunikne, jak je následující důkaz obdobný důkazu věty 11.1.1. Důkaz. Postupujme indukcí dle k + l. Pokud k = 1 nebo £ — 1, je snadno vidět, že tvrzení platí. (A jeho platnost není těžké nahlédnout ani pro k = 2 nebo £ = 2, ale tento případ není nutné řešit zvlášť.) Teď předpokládejme, že fc, £ > 2 a že tvrzení platí pro k, í — 1 a také pro k -1, l. Položíme n = (fc^2), m = (*£ \3) a n2 = (^-23) ■ Podle Pascalova vzorce (3.5) pro součet binomických koeficientů máme n = ni + '».'2, což přepíšeme do tvaru n — 1 + ((77,1 — 1) + (r?2 — 1) + 1), který napovídá schéma důkazu. Nechť G = (V, E) je libovolný graf s n vrcholy. Chceme ukázat, že ui(G) > k nebo a(G) > í. Zvolme některý vrchol u G V. Rozdělíme zbývající vrcholy na dvě podmnožiny A a B podle toho, zda jsou nebo nejsou spojeny s vrcholem u, viz obrázek: u Formálně A = {v £ V \ {'»,}; {u,v} g E} B = {v e V\{u}; {u,v} G E). Podle Dirichletova principu platí \A\ > n\ nebo |JB| > 7i2- Pokud \A\ > ni, použijeme indukčního předpokladu pro dvojici (kj. — 1). Dostaneme, že graf G4 indukovaný množinou A splňuje u){Ga) > k nebo o(Ga) > i — 1. V prvním případě rovněž u){G) > k. Ve druhém případě libovolná nezávislá množina Id A tvoří spolu s vrcholem u nezávislou množinu I U {u} v grafu G, a tedy a(G) > ci(Ga) + 1 > £. V případě \B\ > n2 postupujeme obdobně, a opět dostaneme, že oj{G) > k nebo ct(G) > i. Tím je učiněn indukční krok. □ Právě dokázaná věta umožňuje zavést následující definici: Označme r(k,,£) minimální číslo n takové, že každý graf G s n vrcholy splňuje u}(G) > k nebo a(G) > í. Číslo r(kj) se nazývá Ramseyovo číslo. Věta nám zaručuje, že tato definice má smysl, že r(k. £) existuje pro každé k > 1 a t > 1. Shrňme hodnoty Ramseyových čísel, které jsme odvodili nebo které je snadné nahlédnout: r(l,£) = 1, r(fe,l) = 1 r(2J) = £, r(k,2) = k r(3,3) = 6. Kromě těchto hodnot je známa jen hrstka dalších. Například platí r(4,4) = 18, zatímco r(5,5) je hodnota dosud neznámá, přes usilovnou snahu lidí i počítačů. V následujícím článku uvedeme dolní odhad čísel r(k, k). Cvičení 1. (a) Ověřte, že z věty 11.2.1 plyne následující tvrzení: Pro každé n existuje N takové, že je-li X množina s N prvky a = Ex U E2 je libovolný rozklad na 2 části, potom aspoň jeden z grafů (X,E\) a (X. Ei) obsahuje úplný podgraf s n vrcholy. (b) Dokažte předcházející cvičení pro libovolný rozklad množiny množiny (2) na r částí E\, E%,..., Er. (Návod: postupujte indukcí podle r.) 336 Kapitola 11: Rád z nepravidelnosti: Ramseyova věta 11.3 Dolní odhad Ramseyových čísel 337 2. Pro graf G definujeme f (G) = ce(G)-u>{G) a položme f (n) = min f (G), kde minimum se týká všech grafů s n vrcholy. (a) Dokažte, že pro n n. (b) Ukažte, že /(5) < 5. (c) * Pro přirozená čísla n,k, 1 < k < n/2, definujme graf Cn,k'- Začneme s Cn, tj. kružnicí délky n, a v ní pak spojíme hranami každou dvojici vrcholů, které v Cn měly vzdálenost nejvýš k. Pomocí těchto grafů (s vhodnou volbou k) dokažte, že f(n) < n pro všechna n > 7. 3. Pro funkci f(n) ve cvičení 2 dokažte, že je neklesající a že není shora omezená. 4. V článku 2.4 jsme zavedli značení a(P) a w(P) pro částečně uspořádanou množinu P. Toto značení se podobá značení zavedenému v této kapitole. Dokažte, že a(P) aw(P) lze vyjádřit jako a(Gp) a w(Gp) pro vhodný graf Gp. (Návod: G p se obvykle nazývá graf porovnatelnosti.) Tyto grafy Gp podle věty 2.4.5 (o dlouhém a širokém) splňují a(GVMGp) > \V(GP)\; srovnejte se cvičením 2. 5. Dokažte, že pokud k < k' a £ < ť, potom r (k J.) < r (k1., ť). 6.** Zkuste sami porozumět následujícímu zobecnění Ramseyovy věty pro rozklady konečných množin a dokázat je. Pro každou trojici kladných celých čísel p, r, n existuje číslo N s následující vlastností: Je-li X libovolná množina s alespoň N prvky a je-li ( ) — /li U A2 U • • • U Ar libovolný rozklad, potom existuje n-prvková podmnožina Y C X lak, že (p) je celé obsaženo v jedné třídě Ai rozkladu. (Návod: postupujte indukcí dle p.) 11.3 Dolní odhad Ramseyových čísel V tomto článku odvodíme jednu ze základních vlastností Ramseyových čísel, která ovlivňuje jejich zkoumání i použití. Ukážeme, že čísla r(k,k), která zde pro stručnost označíme r(k), rostou exponenciálně rychle. (Poznamenejme, že pro některá zobecnění Ramseyovy věty, o nichž zde nemluvíme, se dostanou ještě mnohem rychleji rostoucí funkce.) Předtím, než přistoupíme k vlastnímu výsledku, si uvědomíme, co znamená dokázat dolní odhad pro Ramseyovo číslo r(k): Tvrdíme-li r(k) > n, znamená to existenci jistého grafu G na n vrcholech, konkrétně takového, že uj(G) < k a a(G) < k. (Nestačí tedy (2k-2\ ověřit n < (X-D' protože výraz ) z věty 11.2.1 je pouze horním odhadem pro r(k), a r(k) by mohlo být ještě podstatně menší.) Například nerovnost r(3) > 5 jsme dokázali pomocí grafu C5. V předchozí sekci jsme bez důkazu zmínili, že r(4) = 18. Vztah r(4) > 17 je možno dokázat pomocí následujícího grafu: Poznamenejme, že jak v případě r (3) > 5, tak v případě r(4) > 17 jsou grafy určeny jednoznačně až na isomorfismus. To naznačuje obtížnost dolních odhadů Ramseyových čísel. Zde dokážeme dolní odhad pro r(k) pravděpodobnostní metodou, o jejíchž základech pojednává kapitola 10. Je to jedno z prvních použití pravděpodobnostních důkazů v kombinatorice a matematice vůbec. 11.3.1 Věta. Nechť k a n jsou čísla splňující QJ) • 21-(2) r(k) > n. < 1. Potom Pro jaká čísla A: a n je uvedená podmínka splněna? Jak je v pravděpodobnostní metodě obvyklé, použijeme poměrně hrubé a jednoduché 338 Kapitola 11: Řád z nepravidelnosti: Rainseyova věta 11.3 Dolní odhad Ramseyových čísel 339 odhady: )h h n n <: k\ < 2fc/2+1 (druhá nerovnost platí jen pro k > 3). Poznamenejme, že použitím přesnějších odhadů z kapitoly 3 nedostaneme výsledek o mnoho silnejší. Výraz z věty 11.3.1 tedy odhadneme takto: n) .2'-(5) < nk 2k/2+\ 2l—Aľ(fc-l)/2 _ .2k/'2 Tedy pro n = 2fc/2 jsou podmínky věty splněny a dostáváme následující: 11.3.2 Důsledek. Pro každé k > 3 platí r(k) > 2k/2. Důkaz věty 11.3.1. Jako v kapitole 10 uvažme náhodný graf G na množině V = {1,... ,n}, kde každá z Q) možných hran se objevuje s pravděpodobností I, nezávisle na ostatních. Nechť A' je libovolná fc-prvková podmnožina množiny V. Označme Ak Jev- že vrcholy K indukují úplný podgraf v G. Zřejmě pravděpodobnost P(Ak) jevu Ak je 2^(2). Podobně označíme-li D k jev, že vrcholy K tvoří nezávislou množinu v G, je P{B^) = 2^(2), Tedy pravděpodobnost jevu Cjf, že AT je buďto úplný podgraf nebo nezávislá množina, je 2-2~ (2) = 21 (2). Označme písmenem p pravděpodobnost, že v náhodném grafu G existuje A:-prvková podmnožina K vrcholů, pro niž nastane jev C-k- Tuto pravděpodobnost je obtížné určit, protože pro různé množiny K nejsou jevy Ck nezávislé. Nám ale postačí shora odhadnout pravděpodobnost p součtem pravděpodobností jevů Ck'- KCV,\K\=k Poznamenejme, že uvedený důkaz neposkytuje žádný návod, jak h sestrojit graf dosvědčující nerovnost r(k) > 22. Nejenom to: přestože uvedený (slavný) důkaz P. Erdóse pochází z roku 1947, konstrukci takových grafů se nepodařilo nalézt dodnes, a tento dolní odhad Ramseyových čísel zůstává jedním z nejpřesvědčivějších dokladů síly pravděpodobnostní metody. Cvičeni f. Dokažte, že \/2 < {/rjkj < 4. 2. Zkonstruujte graf G, který ukazuje, že r(k) > (k — 1) . 3* Graf dosvědčující r(4) > 17 může vypadat složitě, ale dá se snadno zapamatovat. Například si stačí pamatovat: 17; 1,2,4,8. Nebo také: Kvadratické zbytky modulo 17. Umíte tyto dva trochu záhadné návody objasnit? 4. Dokažte r(4) — 18 uvážením grafu na obrázku v textu a „vylepšením" důkazu věty 11.2.1. (sčítá se přes všechny A;-prvkové podmnožiny n-prvkové množiny V). Dostáváme tedy p < (^) ^"(^ a tím pádem předpoklad věty zaručuje p < 1. To ovšem znamená, že musí existovat alespoň jeden graf na množině V, pro nějž jak a, tak u jsou menší než k. □ 12 Vytvořující funkce V této kapitole probereme jednu užitečnou početní techniku. Základní myšlenkou je sdružit se studovanou nekonečnou posloupností reálných čísel jistou spojitou funkci, tzv. vytvořující funkci této posloupnosti. Úlohy o posloupnostech lze pak řešit využitím různých operací s funkcemi a poznatků o funkcích. Takový přechod je velmi nesamozřejmý a mnohé aplikace vytvořujících funkcí, ač technicky nejsou příliš hluboké, můžeme právem nazvat podivuhodnými. V tomto úvodním textu se dostaneme pouze k jednodušším příkladům, řešitelným i bez použití vytvořujících funkcí. V některých úlohách různé triky dokonce vedou k cíli rychleji než počítání přes vytvořující funkce (nemusí však být snadné na takové triky přijít). To by čtenáře nemělo odrazovat od zvládnutí technik s vytvořujícími funkcemi, nebof ty jsou mocným nástrojem i pro složitější problémy, kde jiné postupy selhávají nebo se stávají příliš složitými. IJ některých řešení jsou alternativní postupy zmíněny, jinde jsou naznačeny ve cvičeních. Někdy čtenář možná najde ještě jednodušší řešení. 12.1 Kombinatorické aplikace mnohočlenů Jak vynásobit mnohočleny p(x) = x+x'2+x3+x4 aq(x) = x+xz+x4? Třeba podle tohoto jednoduchého pravidla: vynásobíme každý člen 342 Kapitola 12: Vytvořující funkce 12.1 Kombinatorické aplikace mnohočlenů 343 z p(x) každým členem z q(x), a všechny tyto součiny sečteme, přesněji řečeno sloučíme součiny se stejnými mocninami x. Součin takto vyjde .x8 + 2x7 + 2a;6 + 3.x5 + 2x4 + x3 + x2. Ptejme se teď jinak: vybereme si nějakou mocninu x, například x5, a chceme vědět, jaký bude její koeficient v součinu, aniž bychom celý součin počítali. Člen s x5 se v součinu může objevit vynásobením nějakého členu x' z p(x) členem x5~l z q(x). Koeficient u x5 v součinu bude tedy právě počet způsobů, kterými se dá vyhovující i zvolit. Jinak řečeno, koeficient u x5 bude počet dvojic kde i G {1,2,3,4} (to je „množina exponentů" mnohočlenu p(x)), j G {1,3,4} (to jsou exponenty v q(x)) a přitom i + j = 5. To, co jsme právě řekli, vyjádříme trochu obecněji. Nechť i", J jsou konečné množiny přirozených čísel. Utvoříme mnohočleny PÍX) = zCie/ ;í;l a = )ľľ ./ (všechny koeficienty v takových mnohočlenech jsou rovny 1). Potom pro každé přirozené číslo r platí Počet řešení rovnice i + j = r splňujících i € I, j G J je roven koefícientu u xr v součinu p{x)q(x). Další a zajímavější zobecnění tohoto pozorování je na součin 3 a více mnohočlenů. Ilustrujeme jej nejdřív na příkladu. 12.1.1 Úloha. Kolika způsoby lze zaplatit částku 21 korun, máme-li 6 korunových mincí, 5 dvoukorun a 4 pětikoruny? Hledaný počet je zřejmě roven počtu řešení rovnice h + h + h = 21, kde %\ G {0,1, 2, 3, 4, 5,6}, i2 G {(), 2,4, 6, 8,10}, íg G {0, 5,10,15, 20} -i\ je částka zaplacená korunami, %2 částka zaplacená dvoukorunami a Í3 pětikorunami. Tentokrát tvrdíme, že počet řešení této rovnice je roven koeficientu u x 2! v součinu (1 + x + x2 + x3 + x4 + x5 + x6) (1 + x2 + x4 + xG + x8 + x10) (1 + x5 + X 10 ,15 »20 ^ X (samozřejmě poté, co ho roznásobíme a upravíme). Clen s x21 totiž dostáváme tak, že vezmeme nějaký člen x11 z první závorky, nějaký člen x12 ze druhé závorky a x%3 ze třetí, přičemž i] + i2 + i% = 21. Každý takový možný výběr přispěje 1 k uvažovanému koeficientu. Cím nám toto pomůže v řešení úlohy? Z čistě praktického hlediska, usnadní to použití počítače na její řešení, máme-li ovšem k dispozici nějaký program pro násobení mnohočlenů (systémů pro počítání s formulemi, které zvládnou násobení mnohočlenů i mnoho dalších rutinních matematických úloh, existuje řada, mezi nejznámější patří Reduce, Ma-plc, Mathematica, Macsyma, Derive, Mupad,...). Tak byla také zjištěna odpověď k tomuto příkladu: 9. Hledaný počet můžeme samozřejmě najít probráním všech možností (máme také jen celkem málo mincí), ale snadno se může stát, že na nějakou zapomeneme. Nejvýznamnější je však uvedený postup jako předehra ke složitějším metodám. Kombinatorický význam binomické věty. Binomická věta tvrdí (1+*)Ä=(0) + x + (12.1) Na levé straně máme součin n mnohočlenů, každý z nich jc 1 + x. Podle výše uvedeného, koeficient u xr po roznásobení bude počet řešení rovnice h + 'h H-----1- in = r, kde h,Í2, ■ ■ ■ ,in G {0,1}. Ale každé řešení takové rovnice znamená vybrat r proměnných mezi i\, %i,..., in, které budou rovny 1 - ostatní pak budou rovny 0. Takových výběrů jc stejně jako r-prvkových podmnožin n-prvkové množiny, tedy (n). To znamená, že koeficient při xr v mnohočlenu (1 + x)r je (™). Právě jsme kombinatoricky dokázali binomickou včtu! 344 Kapitola 12: Vytvořující funket; 12.2 Rozšíření na nekonečné řady 345 Pohráváme-li si šikovně s mnohočlenem (1 + x)n a jemu podobnými, můžeme odvodit hodnoty různých sum s binomickými koeficienty. Nejjednodušší příklad jsme viděli už v části 3.3, jmenovitě vzorce ELo G) = 2" a n-0í~lT x = 1, resp. x = -1 do (12.1). 12.1.2 Příklad. Platí rovnost n / fc=0 x 0, které dostaneme dosazením 77.2 rc-1 Důkaz. Tento vztah můžeme odvodit derivováním obou stran vzorce (12.1) jako funkce proměnné x. Na obou stranách musí samozřejmě vyjít týž mnohočlen. Derivováním levé strany dostaneme n(l + x)n_1, derivováním pravé strany člen po členu obdržíme Efc=o ^(fc)x _1, ^>°" sazením x — 1 vznikne požadovaná rovnost. Příklad jiného typu je založen na rovnosti koeficientů ve dvou vyjádřeních téhož mnohočlenu. Jiný důkaz tvrzení 3.3.3. Uvažme identitu [ 1 + x)"(l + x) (1 + x ,2u Koeficient při xn na pravé straně je (' ™). Na levé straně můžeme rozvinout obě mocniny (1 + x)" podle binomické věty, a potom násobit dva vzniklé mnohočleny. Koeficient u xn v jejich součinu můžeme vyjádřit jako (J) © + (") (nlx) + (3) („%) + •■•+(":) (o), a to musí být totéž jako koeficient na pravé straně, tj. EC (=0 77 n — i 2 n 71 Tím jsme znovu dokázali tvrzení 3.3.3. □ Podobným způsobem lze spočítat i řadu dalších, komplikovanějších sum. Pokusíme-li se však o nějaké složitější výpočty, brzy začneme pociťovat jako nepříjemné omezení to, že pracujeme jen s mnohočleny, jež mají jen konečný počet členů. „Správným" nástrojem pro podobné aplikace se ukazují být analogie mnohočlenů, u nichž však připouštíme nekonečný počet mocnin proměnné x, tzv. mocninné řady. Cvičení 1. V cukrárně prodávají 3 druhy zákusků - větrníky, kremrole a punčové dortíky. Kolika způsoby lze koupit 12 zákusků tak, aby se od každého druhu koupily aspoň 2 zákusky a přitom nejvýš 3 kremrole? Vyjádřete hledaný počet jako koeficient vhodné mocniny x ve vhodném součinu mnohočlenů. 2. Kolika způsoby lze rozdělit 10 stejných balónků 2 chlapečkům a 2 holčičkám, má-li každý chlapeček dostat aspoň 1 balónek a každá holčička nejméně 2? Vyjádřete hledaný počet jako koeficient vhodné mocniny x ve vhodném součinu mnohočlenů. 3. Dokažte multinomickou větu 3.3.4 podobnou úvahou, jako jsme zde dokazovali větu binomickou. 4. Spočtěte sumu v příkladu 12.1.2 vhodnou početní úpravou výrazu fc(") a použitím binomické věty. 5. Spočítejte sumu El-oH)'(")(„-,)■ 12.2 Rozšíření na nekonečné řady Vlastnosti mocninných řad. Mocninnou řadou budeme rozumět nekonečnou řadu tvaru Uq + a±x + a-^x1 + • ■ ■, kde ao,o\.a-2 - ■ ■ ■ jsou reálná čísla a x je proměnná, nabývající reálných hodnot1. Uvedenou mocninnou řadu budeme zpravidla označovat a(x). Jednoduchým příkladem mocninné řady je 1 + x + X" (12.2) (všechna a,L jsou rovna 1). Ze vzorce pro součet geometrické řady víme, že pro každé x G (—1,1) tato řada konverguje, a její součet je roven 1 Velmi užitečné je též rozšíření na komplexní čísla a aplikace metod z teorie funkcí komplexní proměnné. Tak daleko se však v tomto úvodním textu nedostaneme. 346 Kapitola 12: Vytvořující funkce 12.2 Rozšíření na nekonečné řady 347 1/(1 — x). V tomto smyslu řada (12.2) určuje funkci 1/(1 — x). Obráceně, uvedená funkce v sobě naopak obsahuje veškerou informaci o řadě (12.2), protože koeficienty řady jsou, jak se může čtenář přesvědčit, právě koeficienty Taylorova rozvoje funkce 1/(1 — x) v bodě 0. Takové převtělování nekonečné posloupnosti čísel ve funkci a zpět je klíčovým obratem v technice vytvořujících funkcí. Následující tvrzení říká, že nerostou-li členy posloupnosti (ao, «i, 02, • •.) příliš rychle, definuje příslušná nekonečná řada a(x) = (Iq + ayx + a2x2 + • • ■ skutečně funkci reálné proměnné x (aspoň na malém okolí 0), a ze znalosti hodnot této funkce můžeme posloupnost (ao, ai, a2, • • ■) zpětně rekonstruovat. 12.2.1 Tvrzení. Buď(ao, Oi, a2, ■ • ■) posloupnost reálných čísel. Předpokládejme, že pro nějaké číslo K platí \an\ < Kn pro všechna n > 1. Potom pro každé x £ (—7^,7^) řada a(x) = YľČĹoaixl konverguje (dokonce absolutně), a hodnota jejího součtu defínuje tedy funkci proměnné x na uvedeném intervalu; tuto funkci budeme označovat též a(x). Hodnotami funkce a(x) na libovolně malém okolí 0 jsou všechny členy posloupnosti (ao, a\, a%,...) jednoznačně určeny: funkce a(x) má totiž v bodě 0 derivace všech řádů, a pro n = 0,1, 2,... platí oW(0) an =-j— ni (o^n\0) značí n-tou derivaci funkce a(x) v bodě 0). Důkaz plyne z poznatků z matematické analýzy a zde jej nebudeme uvádět, podobně jako u několika dalších tvrzení v tomto oddílu. Nej-přirozenější důkazy se dostanou z teorie funkcí komplexní proměnné, která se zpravidla probírá až v pokročilejších přednáškách. Nicméně pro naše účely potřebujeme velice málo, a to se dá trochu pracněji dokázat i elementárně, ze základních vět o limitách a derivování. V následujících příkladech nebudeme pro uvažované mocninné řady předpoklad tvrzení 12.2.1 výslovně ověřovat. V mnoha případech můžeme tomu uniknout následujícím alibistickým způsobem: Najdeme-li jednou správné řešení úlohy pomocí vytvořujících funkcí jakkoli podezřelou metodou, můžeme potom ověřit správnost řešení jinak, třeba indukcí. Teď konečně řekneme, co je vytvořující funkce: 12.2.2 Definice. Nechť (ao, a3, a2,...) je posloupnost reálných čísel. Vytvořující funkcí této posloupnosti2 rozumíme mocninnou řadu a(x) = a() + a\x + a2x2 H----. Má-li posloupnost (ao, 01, a2,...) jen konečně mnoho nenulových členů, její vytvořující funkce je mnohočlen. V předchozím oddílu jsme tedy různě využívali vytvořujících funkcí konečných posloupností (aniž jsme jim tak říkali). Operace s posloupnostmi a jejich vytvořujícími funkcemi. Operace popsané dále můžeme použít pro nalezení šikovného vyjádření vytvořující funkce pro danou posloupnost (tj. pro otázky typu „Jaká je vytvořující funkce posloupnosti (1, |, |, |,. ..)?"), nebo někdy i pro hledání posloupnosti pro danou vytvořující funkci (ptáme-li se třeba „Která posloupnost má vytvořující funkci ln(l — #)?")• V dalším budou (ao, ai, a2,...) a (60, h, b2,...) posloupnosti a a(x), b(x) jejich vytvořující funkce. A. Sčítáme-li posloupnosti člen po členu, odpovídá tomu zřejmě sčítáni vytvořujících funkcí, tj. posloupnost (a0 + b0, ai +bi,a2 + b2,...) má vytvořující funkci a(x) + b(x). B. Jiná jednoduchá operace je násobení reálným číslem a: posloupnost (aa.Q, aay, aa2,. ■.) má vytvořující funkci aa(x). C. Je-li n nějaké přirozené číslo, vytvořující funkce xna(x) odpovídá posloupnosti (0,0,0. a0, «1,0.2, • • •); nx 2 Obšírnější název používaný v literatuře je obyčejná vytvořující funkce. Jak toto napovídá, používají se i jiné typy vytvořující cli funkcí, z nichž pro kombinatorické aplikace nejdůležitější jsou patrně exponenciální vytvořující funkce. Exponenciální vytvořující funkce posloupnosti (00,01,02,...) je mocninná řada J2i^o ° ljc člen s indexem k roven ^Ofe-i- 12.2.4 Úloha. Jaká je vytvořující fuiu.ee pro posloupnost druhých mocnin (l2, 22,32,...), tj. posloupnost (o0, aua2,...), Jede ak = (Jfc + l)2? Řešení. Začneme s posloupností samých jedniček, pro niž známe vytvořující funkci: 1/(1 - x). První derivace této funkce, 1/(1 - x)2, dává posloupnost (1, 2, 3, 4,...) podle bodu G. Druhá derivace je 2/(1 - x)3, a její posloupnost je (2 x 1, 3 x 2, 4 x 3,...) opět podle G; člen s indexem k je (fc + 2)(fc + l) = (k+l)2 + k+l. My ale potřebujeme ak = (k- odečteme ještě vytvořující funkci pro posloupnost (1, 2,3____ neme Cl[X) (l-x)3 (l-x)2' l)2, takže , a dosta- l 1 H. Nakonec jsme si nechali nej zajímavější operaci, totiž násobení vytvořujících funkcí. Součin a(x)b(x) je vytvořující funkcí posloupnosti (co, ci, 02, ■ ■ ■), kde čísla ck jsou dána vztahy co = ao&o ci = aQb\ + a\l>Q c2 = 0,062 + o-i^i + a2&o 350 Kapitola 12: Vytvořující funkce 12.2 Rozšíření na nekonečné řady 351 obecně můžeme napsat (-k «:i>0; i+j=k ciibj. (12.3) To se snadno zapamatuje - členy v součinu až do fc-tého jsou tytéž jako v součinu mnohočlenů (a0 + a\x----h a,kXk)(bo + bix + ■■■ + bkxk). Násobení vytvořujících funkcí má názornou kombinatorickou interpretaci, kterou nyní vysvětlíme na příkladu (pravda dětinském), přirozený příklad přijde v oddílu 12.4. Představme si, že máme zásobu stejných kostek, a že víme, že z i kostek můžeme a4 různými způsoby postavit hrad, a z j kostek můžeme bj různými způsoby zbudovat pyramidu. Máme-li celkem k kostek, pak c*- = ao^fc + Gi&fc-i H-----1" akh) bude počet způsobů, jak postavit nějaký hrad a zároveň nějakou pyramidu (přitom pyramida a hrad nemají nikdy společné kostky). Heslovitě řečeno, vytvořující funkci pro počet uspořádaných dvojic (hrad, pyramida) získáme jako součin vytvořující funkce pro počet hradů a vytvořující funkce pro počet pyramid. Výchozí funkce. K práci s vytvořujícími funkcemi je užitečné mít, kromě různých operací, k dispozici i zásobu funkcí, pro něž známe příslušné mocninné řady. Příklady mocninných řad, uváděné v kursu diferenciálního počtu, mohou patřit do takové zásoby; tak třeba někdy se může hodit poznatek, že -ln(l - x) je vytvořující funkcí pro posloupnost (0,1. \, \, |,...). My zde uvedeme jedno snadné tvrzení, které se využívá zvlášť často: 12.2.5 Tvrzení (Zobecněná binomická věta). Pro libovolné reálné číslo r a nezáporné celé číslo k defínujme kombinační číslo (£) předpisem V\ _ r(r-l)(r-2)...(r-fc + l) (speciálně klademe Q = 1). Potom funkce (1 + x)T je vytvořující funkcí pro posloupnost, (Q, ([), Q, Q,...) (přičemž mocninná řada (o) + (í)x + (l)3? H----vždy konverguje pro \x\ < 1). Důkaz je opět záležitostí matematické analýzy, a udělá se snadno pomocí Taylorova rozvoje. Pro r celé záporné můžeme binomický koeficient Q upravit na (-l)*^*"1) = (-l)*^^1) (což je „obyčejný" binomický koeficient), takže pro celé záporné mocniny (1 — x) speciálně dostaneme xt^ť - ca + (nni>+c-\v+■■■+ca v+- ■ Uvedeme jednoduchý příklad na použití vytvořujících funkcí, další jsou ve cvičeních. Pokročilejší příklady následují v samostatných oddílech. 12.2.6 Úloha. V krabici jc 30 červených, 40 modrých a 50 bílých míčků, míčky téže barvy se od sebe nepoznají. Kolik je různých možností, jak vybrat z takové krabice soubor 70 míčků? Poučeni úvahami z oddílu 12.1 zjistíme, že hledaný počet je roven koeficientu při x70 v součinu (1 + x + x2 + . . . + ,,•'•")( 1 • ,• , | ... . ,•'")(, 4-x + x2 + • ■ • + X Toto není potřeba skutečně roznásobovat, místo toho přepíšeme .31 .5Ch 1 + x + x2 + • • ■ + x30 1 1 Abychom nahlédli tuto rovnost, můžeme se rozpomenout na vztah pro součet prvních n členů geometrické řady. Kdybychom se nerozpo-mněli, můžeme si pomoci takto: začneme s vytvořující funkcí posloupnosti (1,1,1,...), což je 1/(1 - ar), a od ní odečteme vytvořující funkci posloupnosti (0,0,...,0,1,1,...), —v— 31 x což je x31/(l - x) podle bodu C. Výsledkem je (1 - x31)/(l - x), což je vytvořující funkce pro posloupnost (1,1,... ,1,0,0,. 31x 352 Kapitola 12: Vytvořující funkce 12.2 Rozšíření na nekonečné řady 353 Celý součin tedy upravíme na 1 — x 1 - : 31 1 „.41 „51 (1 - xSL)(l - x41)(l - x5i) 1 1-3 Nyní podle zobecněné binomické věty rozvineme činitel (1 a v součinu zbývajících 3 činitelů spočteme koeficienty u mocnin až do x70, což je velmi snadné. Vychází /'2\ /3\ x (1-x 31 x41-x51 + kde tečky - • • zastupují mocniny vyšší než x70. Koeficient u x70 v tomto součinu bude tedy (702+2) - (70+* 31) - {70+2f41) - (70+*-51) = 1061. Cvičení 1. (a) Určete koeficient při x 15 + ...y (b) Určete koeficient při x50 v (a;7 + a;8 + x9 + x10 + ■ • -)6. (c) Určete koeficient při x5 v (1 — 2x) . (d) Určete koeficient při x4 v ^1 + x- (e) Určete koeficient při x3 v (2 + x)H/2/{l - x). (f) Určete koeficient při x 4 v (2 + 3x)Gyl - x. (g) Určete koeficient při x3 v (1 — x + 2x2)9. 2. Najděte vytvořující funkce pro následující posloupnosti (nepoužívejte v jejich zápisu nekonečné řady!) (a) 0,0,0,0,-0,6,-6,6,-6,... (b) 1,0,1,0,1,0... (c) 1,2,1,4,1,8,... (d) 1,1,0,1,1,0,1,1,0,... 3. Zjistěte, jaká je pravděpodobnost, že při hodu 12 hracími kostkami hodíme dohromady přesně 30 ok. 4. Buď an počet uspořádaných r-tic (?ů, • • •, v) celých nezáporných čísel takových, že ii + i2 H-----h 'h- — přitom r je nějaké pevné přirozené číslo. (a) Napište vytvořující funkci pro posloupnost (a0, «i, a2, • • •)■ (b) Najděte vzorec pro a„. (To jsme jiným způsobem řešili v části 3.3.) 5. Řešte úlohu 12.2.4 bez použití derivace - místo toho využijte zobecněnou binomickou větu. 6. Bud a„ počet způsobů, jímž lze zaplatit částku n korun pomocí korunových, dvoukorunových a pětikorunových mincí. (a) Napište vytvořující funkci pro posloupnost (ao, cti, • • • )• (b) * Pomocí (a) najděte vzorec pro a„ (k odvození vzorce pomůže přečtení následujícího oddílu). 7. (a) Ověřte, že je-li a(x) vytvořující funkce pro posloupnost (a0, oi, ci2,.. •), potom a(x)/(l — x) je vytvořující funkce pro posloupnost částečných součtů (oo,oo + «i, «o + «1 + 02: ■ ■ •)• (b) Pomocí (a) a řešení úlohy 12.2.4 vypočítejte součet Yjk=i (c) Podobnou metodou vyjádřete součet VJ&=i ^3'• (d) Podobnou metodou - a pomocí zobecněné binomické věty - spočítejte Ylk-r (!) (r' n JS0U daná přirozená čísla). (c) Pro přirozená čísla n,m vypočítejte součet 2~2T=o(~^)fc(fe)- (f) Teď by se mohlo zdát, že uvedenou metodou můžeme spočítat téměř jaké sumy se nám zachce, ale není to tak jednoduché. Co se stane, budeme-li takto počítat 2^k=i I? 8* Dokažte vzorec pro součin mocninných řad, tj. ukažte, že jsou-li a(x), b(x) mocninné řady vyhovující předpokladům tvrzení 12.2.1, potom funkce a(x)b(x) je též mocninná řada, a její koeficienty jsou dány formulí (12.3). 9. Bud a(x) = ao + a±x + a2x2 + ■ ■ ■ mocninná řada s nezápornými koeficienty, tj. aj > 0 pro každé i. Definujme její poloměr konvergence jako p = sup {x > 0; a(x) konverguje}. (a) * Dokažte, že a(x) konverguje pro každé x G [0, p), a že funkce a(x) je na intervalu [0, p) spojitá. (b) Najděte příklad posloupnosti (ao, ai, a2l...), pro niž p = 1 a řada a(p) diverguje. (c) Najděte příklad posloupnosti (0,0,01,02,...), pro niž p = 1 a řada a(p) konverguje. 354 Kapitola, 12: Vytvořující funkce 12.3 Fibonacciho čísla a zlatý řez 355 10. (Varovný příklad) Definujme funkci / předpisem /(*) = e-l/a 0 pro x 0 pro x = 0 (a) * Ukažte, že všechny derivace funkce / v bodě 0 existují a rovnají se 0. (b) Odvoďte, že funkce / není v žádném okolí 0 dána mocninnou řadou. 12.3 Fibonacciho čísla a zlatý řez Budeme vyšetřovat posloupnost (F0, Fu F2,...) danou předpisem F0 = 0, Fi = 1, Fn+2 = Fn+] + F„ pro n = 0,1,2,.... Tuto posloupnost studoval ve 13. století ve svém spise Leonardo z Pisy zvaný Fibonacci, a je známa pod jménem Fibonacciho čísla. Prvních několik členů je 0,1,1, 2,3, 5, 8,13, 21, 34, 55, 89,144,.... V matematice i v teoretické informatice se tato čísla vynořují často a v rozličných souvislostech. Ukážeme, jak se najde formule pro n-té Fibonacciho číslo použitím vytvořujících funkcí. Nechť tedy F(x) značí vytvořující funkci této posloupnosti. Hlavní myšlenka je vyjádřit vytvořující funkci posloupnosti, jejíž fc-tý člen je pro k > 2 roven Fk - Fk_i - Ffe_2. Podle vztahu definujícího Fibonacciho čísla je tato posloupnost od druhého členu počínaje nulová. Na druhé straně lze takovou vytvořující funkci zkonstruovat z F(x) pomocí operací probraných v oddílu 12.2, a tím vyjde rovnice určující F(x). Konkrétně, vezmeme funkci F(x) - xF(x) - x2F(x), odpovídající posloupnosti (F0, Fi - F0, F2-Fi- F0, F3 - F2 - F,...) = (0,1,0,0,...). V řeči vytvořujících funkcí to znamená (1 - x - x2) F (x) =s,a odtud F(x) = --X—,. (12.4) 1 x — x? Kdybychom teď začali zjišťovat Taylorovu řadu této funkce derivováním, příliš neuspějeme. Musíme ještě uplatnit jeden obrat, který je dobře znám v integrálním počtu pod názvem rozklad na částečné (-parciální) zlomky. V našem případě tato metoda zaručuje, že můžeme racionální funkci na pravé straně (12.4) přepsat do tvaru x A B 1 — x — X2 X — X\ x — x% ' kde xi,x<2 jsou kořeny kvadratického mnohočlenu 1 — x — x2 a, A, B jsou vhodné konstanty. Pro naše účely se bude lépe hodit ještě trochu pozměněné vyjádření, totiž ve tvaru x 1 X 1 + Xix ' 1 — A2.x' kde A] = 1/xi, A2 = l/x2 a a. b jsou jiné vhodné konstanty (toto vyjádření se dostane z výše uvedeného dělením čitatele i jmenovatele prvního zlomku číslem —X\ a druhého zlomku -x2). Z tohoto vyjádření je už snadné napsat vzorec pro F„; jak čtenář může ověřit, vychází Fn = aAJ + bXn2. Výpočet kořenů kvadratické rovnice jakož i stanovení konstant a, b vynecháme, a. uvedeme jen výslednou formuli 1 1 +V5 1 - v/5 Je pozoruhodné, že tento výraz plný iracionálních čísel dává pro každé přirozené n celé číslo. S přibližnými numerickými hodnotami konstant vypadá tento vzorec takto: Fn = (0.4472135 ...) [(1.6180339 .. (-0.6180339.. Z toho vidíme, že pro velká n se čísla Fn chovají zhruba jako A^/v^- Také dostáváme, že poměr Fn/Fn+Í má limitu 1/Ai = 0.6180339.... Tento poměr byl znám a ceněn již v antice; nazývá se zlatý řez. Obdélník s poměrem stran rovným zlatému řezu se považoval za nej uměřenější a nejkrásnější. Oddělíme-li od takového obdélníku čtverec, zbylý obdélník má opět poměr zlatého řezu. Podobně jako s Fibonacciho čísly, se zlatým řezem se v matematice setkáme překvapivě často. 356 Kapitola 12: Vytvořující funkce 12.3 Fibonacciho čísla, a zlatý řez 357 Jiné odvození: schody. Uvažme schodiště s n stupni. Kolika způsoby je lze vyjít, když každým krokem vyjdeme jeden nebo dva schody? Jinak řečeno, kolika způsoby lze zapsat číslo n jako součet jedniček a dvojek, neboli kolik řešení má rovnice s\ + S2 H----+ sfc = n, kde Si € {1,2}, i = 1,2,...,k, fc = 0,1,2,...? Označíme-li tento počet Sn, máme S\ = 1, S2 = 2, a není těžké ověřit, že pro n > 1 splňují čísla Sn rekurentní vztah Sn+2 = Sn+i + Sn (rozmyslete si to!). Z toho je indukcí vidět, že Sn je právě Fibonacciho číslo Fn+i. Odvodíme ted vytvořující funkci pro posloupnost (S0, Si, S2,. •.) jiným způsobem. Podle návodu z části 12.1 dostaneme, že pro dané k je počet řešení rovnice si + s2 H-----h Sfe = n, kde st G {1,2}, roven koeficientu při xn v součinu (x + x2)k. My ale můžeme zvolit k libovolně (není řečeno, kolika kroky máme schody vyjít), a proto Sn bude koeficient při x11 v součtu J2T-o(x + X'2)A' takže tent0 sou^ei Je vytvořující funkcí pro čísla Sn. Tuto vytvořující funkci můžeme ještě dále upravit: uvedený součet je geometrická řada s kvocientem x + x2 (tedy pro dost malé x konverguje), a její součet je 1/(1 - x - x2). Vytvořující funkce pro Fibonacciho čísla je tudíž x/(l -x- x2), jak jsme předtím nahlédli jinou metodou. Recepty. Výše uvedenou metodou můžeme najít obecný tvar posloupnosti splňující vztah yn+k = < 3). pro ao = «i = 0-2 = 1- 6 * Kolik existuje n-členných posloupností, tvořených písmeny a, b, c. d. v nichž a nikdy nesousedí s 6? 7. Dokažte tvrzení 12.3.1 zobecněním postupu předvedeného pro Fibo-nacciho čísla (využijte obecný tvar věty o rozkladu racionální funkce na částečné zlomky z analýzy). 8. Dokažte tvrzení 12.3.1 přímo použitím lineární algebry, podle následujících bodů. (a) Ověřte, že množina y všech řešení tvoří vektorový prostor vzhledem ke sčítání posloupností po složkách a násobení komplexním číslem po složkách. (b) Ukažte, že dimenze y je rovna k. (c) * Ukažte, že v situaci části (i) tvrzení 12.3.1 posloupnosti (A°, \\, A?,...) pro i = 1,2,... ,k náleží do y, a jsou lineárně nezávislé, tj. podle (b) tvoří bázi vektorového prostoru y-, tím dokážete část (i). (d) Ověřte, že v situaci části (ii) tvrzení 12.3.1 je každá z posloupností ((™)Af )JJL0 prvkem množiny řešení y. (e) ** Dokažte, žc posloupnosti z předchozího bodu (d) jsou lineárně nezávislé v y, tj. tvoří bázi. 12.4 Binární stromy Budeme uvažovat tzv. binární stromy, takové, jaké se často používají v datových strukturách. Na obr. 12.1 je nakresleno několik různých binárních stromů s 5 vrcholy. Pro naše účely můžeme binární strom definovat krátce takto: binární strom je buď prázdný (nemá žádný vrchol), nebo sestává z jednoho význačného vrcholu (zvaného kořen) plus z uspořádané dvojice binárních stromů5(levého a pravého podstromu). 5Toto je vlastně definice indukcí; nejdříve řekneme, co je binární strom s 0 vrcholy (prázdný strom), a potom definujeme binární strom s n vrcholy pomocí již definovaných binárních stromů s menším počtem vrcholů. Tím, že připouštíme prázdný strom, se vyhneme popisu různých speciálních případů, jako když kořen má jen levý či jen pravý podstrom. 12.4 Binární stromy 361 Obrázek 12.1: Několik různých binárních stromů na 5 vrcholech. Nechť bn označuje počet binárních stromů s n vrcholy. Naším úkolem bude najít vzorec pro bn. Probráním malých případů zjistíme bo = 1> bi • 1, b-> - 2, 63 = 5; to může sloužit jako kontrola správnosti výsledků v dalším. Jako obvykle, b(x) = bQ + bíx + b2X2-\----bude příslušná vytvořující funkce. Pro n > 1, počet binárních stromů s n vrcholy je podle definice roven počtu uspořádaných dvojic tvaru (B, B'), kde B, B' jsou binární stromy s dohromady n-1 vrcholy, tj. má-li B k vrcholů, má B' n-k-1 vrcholů. Počet takových uspořádaných dvojic je bn = h)bn-i + hbn-í + ■■■ + V- 1V (12.6) To je ale podle definice násobení vytvořujících funkcí přesně koeficient při xn 1 v součinu b(x).b(x) = b(x)2 (to je příklad na kombinatorický význam násobení vytvořujících funkcí, slíbený v oddílu 12.2), a tedy koeficient při xn ve funkci xb(x)2. Tím pádem je xb(x)2 vytvořující funkce pro tutéž posloupnost jako funkce b(x), až na to, že funkce b(x) má absolutní člen 60 rovný 1, zatímco ve funkci xb(x)'2 je absolutní člen 0 (to proto, že vzorec (12.6) je správný jen pro n > 1). Můžeme tudíž napsat následující rovnost mezi vytvořujícími funkcemi: b{x) = l + xb{x)2. Na to se můžeme dívat jako na kvadratickou rovnici s neznámou b(x) (přitom x si představujeme jako libovolné, ale pevné číslo). Podle 362 Kapitola 12: Vytvořující funkce dobře známého vzorečku jsou její kořeny b{x) 1.2 1 ± v/1 - 4.x 2~ř ' To vypadá, jako by byla dvě možná řešení, my však víme, že posloupnost (bo, bi, b'2-■ ■ •) a tedy i její vytvořující funkce jsou určeny jednoznačně! Podíváme-li se však na řešení se znaménkem „+", zjistíme, že pro x —► 0+ má limitu oo, zatímco vytvořující funkce pro naši posloupnost musí mít limitu bg = 1. Toto řešení tedy vyloučíme. Řešení se znaménkem „—" se ukazuje být hledané vyjádření vytvořující funkce, zbývá určit jeho koeficienty. K tomu využijeme zobecněné binomické věty 12.2.5. Podle ní máme rozvoj Vl - 4x = oo E k=0 Koeficient u x° je 1, takže 1 — yl — 5 má po rozvinutí v řadu nulový absolutní člen, a tak můžeme tuto řadu vydělit 2x (posunutím o 1 člen doleva a dělením 2). Z toho dostáváme pro n > 1 b„ = i(_4rWV2 2V ; Vn + 1 (12.7) Dalšími úpravami (které ponecháváme do cvičení) lze získat pěknější tvar 1 (2n bm = n + 1 Takto definovaná čísla bn jsou v literatuře známa pod jménem Ca-talanova čísla. Kromě toho, že udávají počet binárních stromů, mají i několik dalších kombinatorických významů. Cvičení 1. Upravte pravou stranu rovnice (12.7) na tvar uvedený pod touto rovnicí. 2. Uvažme šachovnici n x n čtverečků: 12.4 Binární stromy 363 D A Uvažujme cesty z bodu A do bodu B, které jdou po hranách čtverečků šachovnice a jsou nejkratší (tj. používají 2n hran). (a) Kolik je všech takových cest? (b) * Ukažte, že cest, které nikdy nejdou pod diagonálu šachovnice (tj. přímku AB) je právě bn, tj. Catalanovo číslo. Jedna taková cesta je na obrázku vyznačena. (c)** Dokažte vzorec brl jících funkcí. i fžn\ elementárně, bez použití vytvořu- 3. Uvažme součin 4 čísel, o.bcd. Ten lze „uzávorkovat" 5 způsoby: {{ab)c)d, (a(bc))d, (ab)(cd), a((bc)d) a a(b(cd)). Dokažte, že počet uzávorkování součinu n čísel je právě Catalanovo číslo bn-±. 4. Ve frontě na lístky po 50 Kč kus je 2n lidí, každý kupuje 1 lístek, přitom n z nich rná padesátikorunu a n stokorunu. Na začátku nemá pokladní žádné peníze. (a) Kolik je seřazení lidí do fronty, pro něž pokladní bude mít pro každého majitele 100 Kč bankovky nazpět padesátikorunu? (b) Jaká je pravděpodobnost toho, že při náhodném seřazení fronty bude mít pokladní pro každého nazpět? 5. "Uvažme pravidelný n-úhelník. Rozdělme jej na trojúhelníky zakreslením n — 3 neprotínajících se úhlopříček. Ukažte, že takových triangulací existuje právě bn-2- 6. V tomto a několika dalších cvičeních budeme používat pojmy kořenový strom a pěstovaný strom, z části 5.2 (oba jsou stromy s kořenem, u pěstovaných stromů záleží na pořadí synů každého vrcholu, u kořenových stromů nikoli). (a) Označme cn počet (navzájem neisomorfních) pěstovaných stromů s n vrcholy, kde každý vrchol je buď koncový, nebo má právě 2 syny 364 Kapitola 12: Vytvořující funkce (příklady dvou takových neisomorfních stromů jsou první a třetí strom na obr. 12.1). Ukažte, že příslušná vytvořující funkce c(x) splňuje rovnici c(x) = x + xc(x)2, a vypočítejte výraz pro cn. (b) * Uměli byste odvodit hodnotu cn ze znalosti b„ (počtu binárních stromů vyšetřovaných textu této části)? (c) Najděte dn, počet neisomorfních pěstovaných vrcholů s n vrcholy, kde každý nekoncový vrchol má jednoho nebo dva syny. 7. Nechť tn značí počet neisomorfních pěstovaných stromů s n vrcholy. (a) Ukažte, že příslušná vytvořující funkce t{x) splňuje rovnici '<*> 1 '/i,,' a vypočítejte výraz pro tn. (b) * Uměli byste odvodit hodnotu tn ze znalosti bn (počtu binárních stromů vyšetřovaných textu této části)? 8. Řekneme, že pěstovaný strom je starý, neiná-li žádíw mladý vrchol, přičemž mladý vrchol je koncový vrchol přímo připojený ke kořeni. Nechť sn je počet starých pěstovaných stromů s n vrcholy. Vyjádřete vytvořující funkci s(x) pomocí vytvořující funkce t(x) pro pěstované stromy z předchozího cvičení. 9* Teď uvažme kořenové stromy, kde každý nekoncový vrchol má právě 2 syny (u kořenového stromu nezáleží na pořadí synů vrcholu, tj. první a třetí strom na obr. 12.1 budou nyní isomorfní). Nechť b(x) je příslušná vytvořující funkce. Odvoďte rovnici b(x) = 1 + | (b(xf + b(x2)) . 10. Uvažme alkanové radikály, což jsou acyklické uhlovodíky, kde každý atom uhlíku má 4 jednoduché vazby, až na jeden, který má 3 jednoduché vazby a jednu „volnou" vazbu. Takové molekuly si můžeme představovat jako kořenové stromy (vrcholy odpovídají atomům uhlíku), kde každý nekoncový vrchol má 1,2 nebo 3 syny (přičemž pořadí synů jednoho vrcholu není důležité). Buď r„ počet takových stromů s n vrcholy (neboli alkanových radikálů s n uhlíky), a r (a:) příslušná vytvořující funkce. (a)** Odvoďte rovnici r(x) = 1 + § (r{xf + 3r(x2)r(x) + 2r(x3)). 12.5 O házení kostkou 365 (b) Vypočítejte pomocí této rovnice tabulky rn pro malá n. Srovnejte s hodnotami uvedenými v nějaké encyklopedii chemie. Více o metodách počítání různých typů grafů, stromů atd. se najde např. v knize [14]. 12.5 O házení kostkou 12.5.1 Úloha. Duderne-H házet kostkou tak dlouho, až poprvé padne šestka, kolik hodů v průměru potřebujeme6 ? Pravděpodobnost, že v prvním hodu padne šestka, je p = |. Pravděpodobnost, že v prvním hodu šestka nepadne a v druhém padne, je (1 - p)p, a obecně pravděpodobnost toho, že šestka padne poprvé v z-tém hodu je rovna číslu qi = (1 - p)%~lp. Průměrný počet hodů (neboli střední hodnota počtu hodů) bude pak OO DO s=E<« = £i(i-p)ť-1p. Zavedeme vytvořující funkci q(x) = qix + q2x2j\----. Derivujeme-li tuto řadu člen po členu, dostáváme q'(x) = qi + 2q2x + ?>q^x2 + ■ • -, a hledaný průměrný počet hodů pak bude roven hodnotě q'(l). Po jistém úsilí spočítáme, že naše vytvořující funkce má vyjádření q(x) = J?___\___P_ 7 1-p l-(l-p)x 1-p Po malém cvičení v derivování vyjde q'{x) = p/(l - (1 - p)x)2, neboli S = q'(ľ) = i. Pro p = \ je tedy průměrný počet hodů 6. Zde je způsob usuzování, který dává ještě mnohem kratší řešení: V každém případě hodíme kostkou aspoň jednou. S pravděpodobností 1-p nehodíme napoprvé šestku, a v tomto případě nás čeká v průměru ještě S dalších hodů (kostka nemá paměť). Odtud S =l + (l-p)S, a S = ^ vyjde okamžitě. úvaze jsme dali přednost této formulaci před jinou, která se nabízí, totiž s tzv. ruskou ruletou. 366 Kapitola 12: Vytvořující funkce Cvičení 1. Podobným postupem jako v textu této části najděte (a) průměrný počet líců, které padnou při n hodech mincí (se stejnou pravděpodobností rubu i líce), (b) průměrný počet šestek, které padnou při n hodech kostkou, (c) * průměrnou hodnotu výrazu (i - 6)2, kde i je počet hodů do první šestky (to je jakási míra „typické odchylky" od průměrného počtu hodů, tj. od 6). 12.6 Náhodná procházka Představme si číselnou osu nakreslenou v rovině, na níž jsou celá čísla vyznačena kroužky. Po těchto kroužcích se bude pohybovat figurka podle následujících pravidel náhodné procházky: • Na začátku (před prvním tahem) stojí figurka v čísle 1. • V každém tahu se pohne z čísla, kde právě stojí, buď o 2 čísla doprava nebo o 1 číslo doleva. Jedna z těchto možností se vždy zvolí náhodně, a obě možnosti mají stejnou pravděpodobnost (tj. jako bychom hodili mincí a rozhodli se podle výsledku hlava/orel). 12.6.1 Úloha. Jaká je pravděpodobnost, že fígurka vůbec někdy dospěje do čísla 0? Nejdříve je potřeba vyjasnit, co se vůbec takovou pravděpodobností míní. Jc celkem zřejmé, jak definovat pravděpodobnost, že se figurka aspoň jednou octne v 0 během prvních řekněme 7 tahů (označme ji Pf): Prvních 7 tahů náhodné procházky má 27 různých možných průběhů, protože v každém tahu se rozhodne mezi dvěma možnostmi, a tato rozhodnutí lze libovolně zkombinovat. Podle pravidla náhodné procházky v naší úloze jsou všechny tyto průběhy stejně pravděpodobné. Výše zmíněná pravděpodobnost Pj bude potom rovna počtu takových průběhů, které projdou 0 (čtenář si může ověřit, že je jich 75), dělenému celkovým počtem průběhů, tj. 27. 12.6 Náhodná procházka 367 Hledanou pravděpodobnost P v naší úloze potom můžeme definovat jako limitu P = lim^ooi^, kde definice Pí byla objasněna výše pro i = 7 (tato limita určitě existuje, protože zřejmě Pi < P% < ...). Nechť o, značí počet průběhů prvních i tahů náhodné procházky takových, že figurka dorazí do 0 po i-tčm tahu, a zároveň nikdy předtím (tj. před 1., 2.,..., i-tým tahem) v 0 nebyla. Platí tedy oo i=l Zavedeme-li vytvořující funkci a(x) = ajx + a2x2 + a^x3 -\----, máme P = a{\). Pro řešení úlohy bude užitečné podívat se i na procházky, které začínají v jiných číslech než 1 (ale pokračují podle stejného pravidla). Jaký bude například počet procházek začínajících v čísle 2, které dospějí poprvé do 0 v i-tém tahu (označme jej třeba ř>j)? Aby taková procházka došla do 0, musí nejprve po nějakém j-tém tahu, 1 < j < i, poprvé dosáhnout čísla 1, a potom v dalších i - j tazích poprvé vstoupit do 0. Pro dosažení čísla 1 poprvé v j-tém kroku je a?- možností, (jde totiž pouze o „posunutou kopii" procházky, která by začala v 1 a po j tazích došla do 0). Je-li figurka v j-tém kroku v 1, má ještě at y možností dosažení 0 po i - j dalších tazích. Celkem tedy dostaneme7 i-l v řeči vytvořujících funkcí to znamená b(x) = a(x)2. Analogicky, q bude počet procházek začínajících v čísle 3, jež poprvé dorazí do 0 po i tazích. Podobně jako v předchozím nahlédneme že c(x) = a(x)b(x) = a(x)3. Zkoumejme teď procházky začínající viz trochu jiného pohledu. Při prvním tahu můžeme rovnou dojít do 0 (což dává ai = 1), nebo se octneme v čísle 3, a potom máme Cj_i možností, jak poprvé vstoupit 'Všimněte si, že jsme podstatně využili toho, že doleva se chodí vždy jen o 1, takže se nelze dostat z 2 do 0 a přitom přeskočit 1. 368 Kapitola 12: Vytvořující funkce 12.7 Rozklady 369 do 0 po dalších i — 1 tazích. Pro i > 1 tedy a.i = Cj_i. Převedeno na vztah mezi vytvořujícími funkcemi o(x) = x + xc(s) = x + xa(x);!. (12.8) Speciálně pro x = \ odtud dostaneme pro P = a(^) rovnici P=- + -P3. 2 2 Ta má tři řešení, 1, (v7^- l)/2 a -(v/5 + l)/2. Záporné řešení můžeme vyloučit ihned, a ani 1 nemůže být odpovědí v naší úloze (řada pro u(x) má nezáporné koeficienty a konverguje pro x = 5, tedy definuje spojitou rostoucí funkci na intervalu [0, |], a proto hodnota a(^) je nej menší kladný kořen naší rovnice - rozmyslete si a případně nakreslete obrázek). Zbývá tedy P = (\/5 - l)/2 = 0, 618033988... a jedině toto číslo může být hledaná hodnota ľ (zase zlatý řez!). Z rovnice (12.8) bychom v principu mohli spočítat i funkci a(x) a potom sc snažit vyjádřit čísla a,- třeba pomocí jejího Taylorova rozvoje (což je ale dost pracné). Půvab výše uvedeného řešení je v tom, že jsme nic takového dělat nepotřebovali. Cvičení 1. Uvažme náhodnou procházku začínající v 0, při níž se postupuje o 1 číslo doleva nebo o 1 číslo doprava, každá volba má pravděpodobnost |. (a) * Dokažte, že s pravděpodobností 1 se někdy vrátíme do 0. (b) Dokažte, že každé číslo k někdy navštívíme, s pravděpodobností 1. 12.7 Rozklady Kolika způsoby můžeme napsat přirozené číslo n jako součet několika přirozených čísel? Odpověď není těžká, pokud počítáme uspořádané rozklady, což znamená, že zápisy 3=2+la3=l+2 považujeme za dva různé rozklady čísla 3 (cvičení 1). Mnohem těžší a zajímavější otázku dostaneme, považujcme-li za stejné dva rozklady, jež se liší pouze pořadím sčítanců (v tomto případě budeme v tomto oddílu mluvit prostě o rozkladech čísla n). Například pro n = 5 jsou všechny možné rozklady 5 = 1 + 1 + 1 + 1 + 1,5 = 1 + 1 + 1+2,5 = 1 + 2 + 2, 5 = 1 + 1 + 3, 5 = 2 + 3, 5 = 1 + 4 a 5 = 5. Označme pn počet rozkladů čísla n v tomto smyslu. Abychom učinili zápis rozkladu jednoznačným, můžeme například požadovat, aby sčítance byly seřazeny vzestupně, jako jsme je psali v seznamu všech rozkladů čísla 5. Takže jiná formulace otázky o počtu rozkladů je: Kolika způsoby můžeme postavit z n cihel „neklesající zeď" jako na následujícím obrázku (který odpovídá rozkladům 10= 1 + 1 + 2 + 2 + 4 a 10= 1 + 1 + 2 + 6)? (Takový obrázek se nazývá Ferrersův diagram daného rozkladu.) Definice pn vypadá jednoduše, takže čtenáře, ze středoškolských příkladů třeba zvyklého, že na všechno je vzoreček, může překvapit, že pro pn žádný jednoduchý vzorec, něco jako třeba binomický koeficient, není. Problém odhadu čísla pn se studoval v teorii čísel, a v roce 1918 ho s neuvěřitelnou přesností vyřešili Hardy a Ramanujan. (Tuto historii popisuje Littlewood v knížečce [20], již můžeme doporučit jako skvělé čtení o matematice.) Dokonce objevili přesný (ale komplikovaný) vzorec pro pn. Porozumění tomuto výsledku, nemluvě o jeho důkazu, vyžaduje poměrně hluboké znalosti z teorie čísel (viz například Andrews [2]). Tady budeme mnohem skromnější: poměrně dobré asymptotické odhady pro pn se dají dokázat jednoduše, i když rafinovaně, pomocí vytvořujících funkcí, a to zde předvedeme. Už víme, jak vyjádřit počet řešení rovnice h + h H----+ ik = n, s hodnotami každé proměnné ij ležícími v nějaké předepsané množině, jako koeficient u xn ve vhodném výrazu. Pro náš problém ale nezáleží na pořadí těch ij, takže není vidět, jak to uvést do souvislosti s (neuspořádanými) rozklady čísla n. Trik je považovat ij za příspě- 370 Kapitola 12: Vytvořující funkce vek sčítanců rovných j v rozkladu n, nebo jinak řečeno, počet cihel ve sloupečcích výšky přesně j v naší neklesající zdi. Tudíž rozklady čísla jsou ve vzájemně jednoznačné korespondenci s řešeními rovnice h + i-2 H-----\~ hi = n, kde h e {0,1,2,3,...}, i2 G {0,2,4,6,...}, ij € {0, j, 2j, 3j,...}. Třeba rozklad 5 = 1 + 2 + 2 odpovídá řešení i\ = 1, i-i = 4, i3 = Í4 = i5 = 0. Další krok je standardní. Z právě odvozené nové formulace hned dostáváme, že pn je koeficient xíl v součinu Pn(x) = (1 + x + x2 + • • -)(1 + x2 + x4 + x6 + ■■•)... (1 + xn + x2"' + • ■ •) - 1 n k-1 Tento konečný součin není vytvořující funkcí posloupnosti (pn)^L0. Abychom z něj opravdovou vytvořující funkci, která má u x" koeficient pn pro všechna n zároveň, museli bychom užít nekonečný součin 00 1 n«) - n fc=l Ale nekonečný součin by možná někoho mohl vystrašit, takže radši zůstaneme u konečného součinu Pn{x). Ted' budeme pn odhadovat shora metodou již předvedenou v důkazu věty 3.5.1 (odhad binomických koeficientů). Pro všechna x G (0,1) máme k-1 Chceme x zvolit tak, aby pravá strana byla co nejmenší. Šikovný způsob odhadu Pn(x) je další mazanou částí důkazu. Máme-li pracovat se součinem, často se vyplatí vše zlogaritmovat. V našem případě vychází \npn < In Í^-Pn(x)) = -nlnx - jSn(l - xk). ^X ' k=i 12.7 Rozklady 371 Připomeneme si mocninnou řadu pro logaritmus: V Jl 12 3 4 pro všechna y € (—1,1). Tudíž můžeme přepsat n 00 „kj fc=l k=l ] = 1 ■' 3 = 1 J k=l 00 00 00 1 < yíyxik = yl_ xjk 1 J=lJ k=l 1 x> j Nyní se trochu neočekávaně použije vzorec pro součet geometrické řady „v obráceném směru": 1 - xj = (1 - x)(l + x + x2 + ■■■ + x^1) > (1 - x)jaP~l (připomeňme, že 0 < x < 1), a tedy El xj y—^ 1 xj x ^-v 1 . j 1 - XJ ~ (1 - xV/x-?"1 ~ 1 - x ^ T2 ' .7 = 1 Teď potřebujeme následující podivuhodný 00 1 2 12.7.1 Fakt. V — = —. z—ŕ ji 5 Elementární důkaz této rovnosti je zařazen na konci tohoto oddílu jako matematický dezert. Nyní pokračujeme v odhadech lnpn a dostáváme mPn < ~n lux + 7T2 x 6 1-x Pro následující výpočty je pohodlné zavést pomocnou proměnnou u = x/(l — x) (takže u může být kterékoli číslo z [0,00)). Obráceně máme x = u/(l + u). Uděláme tuto substituci a použijeme nerovnost 372 Kapitola 12: Vytvořující funkce ln(l + i) < ^ (která se snadno odvodí z faktu 3.4.3), a tím se dopracujeme k nerovnosti , / l\ 7t2 u 7t2 lnpn < n in 1 + - + —u < —h — u. \ u J O u o Do tohoto výrazu dosadíme u = V&ŤI/tt, čímž vyjde lnp„ < 7Ti (Proč je u = \/6n/Tt ta pravá hodnota? Trocha počítání s derivacemi ukazuje, že tato hodnota u minimalizuje odvozený horní odhad pro lnp,j.) Takže jsme dokázali toto: 12.7.2 Věta. Pro všechna n > 1 piati Pn < e'V^ = e(2-5650...)v^ Dolní odhad. Jak dobrý je právě odvozený horní odhad? Z výsledků Hardyho a Ramanujana vyplývá, že pn ~ _lj-e'rv/I", tudíž jsme odvodili velmi dobrý odhad, dokonce se správnou konstantou v exponentu. Ale co kdybychom byli zrovna v divočině (v širokém významu, tj. odříznuti od matematických knihoven a od internetu), a chtěli vědět, jestli odhad ve větě 12.7.2 je přibližně správný? Ukážeme ještě krátké odvození dolního odhadu, který je samozřejmě mnohem slabší než zmíněné výsledky Hardyho a Ramanujana, ale aspoň je z něj jasné, že náš horní odhad není moc daleko od pravdy. Začneme s výsledkem cvičení 1, v němž se řešitelé vyzývají k odvození pro počet uspořádaných rozkladů čísla n na fc sčítanců. vzorce Poněvadž každý neuspořádaný rozklad s k sčítanci odpovídá maximálně fc! uspořádaným rozkladům, platí > (g) ^ (n - l)(n - 2)... (n - k + 1) fc! > (kiy pro libovolné fc e {1,2,..., n}. Jaké k vzít, aby tento dolní odhad byl co nejsilnější? Zvětšime-li fc o 1, jmenovatel se vynásobí číslem (fc + l)2 a čitatel se vynásobí číslem n — k. Takže pro (fc + 1)2 < n — k je fc + 1 lepší než fc, a abychom dostali co nejlepší fc, (fc+1)2 by mělo být přibližně rovno ti — k. Abychom si počítání příliš nekomplikovali, zvolíme fc = [V^J- 12.7 Rozklady 373 Správná intuice potom říká, že (n-l)(n—2) ■ • ■ (n-fc+1) se chová zhruba jako n^7™. Tuto intuici je ovšem nutné podložit korektním výpočtem: (n - l)(n - 2).... (n - k -+ 1) > (n - k)k~l = nk 1 ( 1 - - fc-i a protože I sfň\/n < l/Lv^J = i a i1 ~ Í)fc_1 > e_1' dostáváme ,fc-~i 1 - en Podle věty 3.4.4 odhadneme fc! < ek(k/e)k, a odtud Pn ~ lfc2 fc e2fc-3 _2fc-3 ifc2 > > Pro velká n je n2 zanedbatelné proti takže n~2e2^" = fl(e^). Ukázali jsme, že pro všechna dostatečně velká n leží číslo pn mezi eClv^ a eC2v/" pro vhodné konstanty c2 > ci > 0. Taková informace už dává poměrně dobrou představu o rychlosti růstu funkce p„, i když jak jsme viděli, u tak důležité funkce se matematici s tím nespokojili a pronikli mnohem dál. Důkaz faktu 12.7.1. Začneme de Moivreovou větou (viz též cvičení 1.3.4): (cos q + i sin a)" = cos(raa) + i sin(na), kde i je imaginární jednotka - kořen rovnice i2 = — 1. Levou stranu rozvineme podle binomické věty. Imaginární části levé a pravé strany sc musí rovnat, z čehož sin a cos" 1 a ■ 3 TJ — ^ sm a cos a sin5 a cos" 5 a S použitím funkce cotg a — COS ft sin ct sin(na). přepíšeme levou stranu na cotg ra-1. cotg" 3a + cotg" Odted bude n — 2m + 1 liché. Uzávorkovaný výraz se pak dá napsat jako P (cotg a), kde P(x) je mnohočlen „m— 1 Každé čísel rk = cotg2^1 pro fc — 1, 2,..., m je kořenem P(x), protože pro a = je siná nenulový, zatímco sin(no) = 0, a tedy P(cotg2a) 374 Kapitola, 12: Vytvořující funkce je rovno 0. Protože čísla n,..., rrn jsou navzájem různá a P(x) má stupen m, známe nyní všechny kořeny. Tudíž P(x) = n(x - ri)(x - r2) ■ ■ ■ (x - rm). Porovnáním koeficientů u xm~L na obou stranách této rovnosti zjistíme, že n(n + r2 4-----h rm) = (!]). Odvodili jsme tedy identitu Ecot^ kir fc=i 2 m + 1 i(2m - 1) 3 (12.9) Pro 0 < a < | máme cotg a = l/tg a < .l/a, a z (12.9) získáme nerovnost E fc=i (2m+l)2 m (2m - 1) ix2k2 neboli k=i 1 7t2 2ro(2ro - 1) k2 > ~6 ~j2m + l)2 5>> Pro m—> oo dostáváme Vfc2 > tt2/6. Odhad shora se dá dostat podobně. Použijeme rovnost cotg2a = sin 2 a - 1 a nerovnost sin a < a, která platí pro 0 < tx. < §, a z (12.9) obdržíme m(2m — 1) m E > E oin2 klí fe=l b,U 2m+l fc=l (2m i l)2 21,2 7r2fc což pro m -+ oq vede k X2fcLi l/^2 — t1"2/6- Cvičení 1. (a) Ověřte, že počet uspořádaných rozkladů čísla n s k sčítanci, neboli počet řešení rovnice i\ + i2 + ■ ■ • + %k = n se všemi ij > 1, se rovná ti)- (b) Spočítejte, kolik je všech uspořádaných rozkladů čísla n. Pro n = 3 například máme rozklady 3 = 1 + 1 + 1, 3 = 1 + 2, 3 = 2 + 1 a 3 = 3. Řešte třemi způsoby: přímo kombinatoricky, pomocí (a), a pomocí vytvořujících funkcí. 12.7 Rozklady 375 2. (a) (Pěkné cvičení z programování) Napište program, který vypíše všechny rozklady čísla n, každý právě jednou. (b) Naprogramujte (přesný) výpočet čísla pn pro dané n. Nechcete-li používat násobnou aritmetiku, váš program by měl zvládnout výpočet pn pro n nejméně do 5000 (kde pn < 10100) aspoň na 8 platných číslic. Může se uspořádat i soutěž o nejrychlejší správný program. 3. Zde uvažujeme počet pn (neuspořádaných) rozkladů čísla n, které mají všechny sčítance navzájem různé. Kupříkladu pro n = 5 povolujeme jen rozklady 5 = 1 + 4 a 5 = 2 + 3. (a) Vyjádřete pn jako koeficient u xn ve vhodném výrazu. (b) Podle dňvazu věty 12.7.2 odvoďte pn < e2^". (c) *Dokažte pn > ec^ pro všechna dost velká n pro nějakou kladnou konstantu c. Jaké největší c se vám povede dostat? 4. (a) Najděte vytvořující funkci pro čísla pn ze cvičení 3 (je to nekonečný součin). (b) Najděte vytvořující funkci pro počet (neuspořádaných) rozkladů n na liché sčítance (taky nekonečný součin). (c) *Ověřte, že vytvořující funkce v (a) a (b) jsou tytéž, a tedy že počet rozkladů na různé sčítance se rovná počtu rozkladů na liché sčítance. "Podaří se vám najít přímý důkaz (bijekci)? (Řešení je např. v [19].) 5. Královská mincovna Středního Drobenska razí a± typů mincí v hodnotě 1 doublezon, a2 typů mincí v hodnotě 2 doublezony atd. Ukažte, že částka n doublczonů se takovými mincemi dá zaplatit tolika způsoby, kolik udává koeficient u xn ve výrazu - 1 n (i—- i=i ^ 13 Aplikace lineární algebry Několik pěkných použití lineární algebry v problémech diskrétní matematiky jsme ukázali už v předchozích kapitolách (obzvlášť v části 8.5). Zde předvedeme nejdříve dvě použití jednoduchých vlastností hodnosti matice pro úlohy, v nichž by lineární algebru na první pohled asi hledal málokdo: otázka existence blokových schémat a problém o pokrytí úplnými bipartitními grafy. O podobných důkazech se zájemce dočte mnohem více například vc svěží (ale bohužel dosud nedokončené) učebnici [3], V dalších oddílech této kapitoly pak přiřadíme každému grafu několik vektorových prostorů, což vede k přehlednému popisu zdánlivě velmi složitých množin. 13.1 Bloková schémata Nechť V je konečná množina a nechť B je systém podmnožin množiny V. Abychom zdůraznili, že množinový systém B je na množině V, budeme jej zapisovat jako uspořádanou dvojici (V, B). Na takovou dvojici se můžeme také dívat jako na zobecnění grafu (proto jiný termín pro takovou dvojici je hypergraf). Speciálně, mají-li všechny množiny B E B stejnou velikost k, potom (V, B) můžeme rovněž nazývat fc-graf (2-graf tedy splývá s pojmem grafu). 1Volbu písmen V, B jsme podřídili dalším souvislostem této kapitoly. 378 Kapitola 13: Aplikace lineární algebry S důležitým příkladem fc-gram jsme se setkali v kapitole 9 o konečných projektivních rovinách. Ukázali jsme tam, že jestliže V označuje množinu vrcholů projektivní roviny a B označuje množinu jejích přímek, potom množinový systém (V, B) je (k + l)-graf pro vhodné k (a navíc \V\ = \B\ = k2 + k + 1). Tento příklad posl ouží i ke snazšímu pochopení následující, na první pohled technické, definice. Nenechte se odradit. 13.1.1 Definice. Nechť v, k, t a X jsou celá čísla. Předpokládáme, že v > k > t > 1 a A > 1. Blokové schéma typu t-(v, k, A) je množinový systém (V, B) splňující následující podmínky: (1) V má v prvků. (2) Každá množina B e B má k prvků. Prvky B se nazývají bloky. (3) Každá t prvková podmnožina V je obsažena právě v X blocích BeB. Definici pochopíme uvážením několika případů. 13.1.2 Příklad. Nechť B = Q; (V,B) se nazývá triviální blokové schéma. Snadno se přesvědčíme, že (V, B) je t-(v, k, X) blokové schéma pro v = \V\ a X = (Zvolte libovolnou t-prvkovou podmnožinu T množiny V a přesvědčte se, že náleží právě (IZl) blokům B E B.) 13.1.3 Příklad. Nechť B = {£?!,...,£&} označuje třídy rozkladu množiny V na stejně velké části. Položme \Bi\ = k. Potom (V, B) je blokové schéma typu l-(\V\,k, 1). 13.1.4 Příklad. Nechť V označuje body projektivní roviny řádu n, a pro tuto chvíli označme B množinu jejích přímek. Takové (V, B) je blokové schéma typu 2-(n +n+1, n +1,1). Tuto netriviální skutečnost jsme ukázali v části 9.1. 13.1.5 Příklad. Nechť V = {0,1, 2, 3,4, 5} a B tvoří následující trojice: {0,1,2}, {0,2,3}, {0,3,4}, {0,4,5}, {0,1,5}, {1,2,4}, {2,3,5}, {1,3,4}, {2,4,5}, {1,3,5}. 13.1 Bloková schémata 379 Snadno se přesvědčíte, že (V, B) je 2-(6, 3, 2) blokové schéma. Toto schéma můžeme definovat také tak, že uvážíme kružnici s vrcholy 1, 2, 3, 4, 5 a jeden další vrchol 0. Systém B pak sestává ze všech trojic obsahujících právě jedinou hranu kružnice, viz obrázek: 4 4 Tyto příklady mají ve čtenáři vyvolat (správnou) představu, že bloková schémata představují jistý druh pravidelnosti, že představují příklad pravidelných konfigurací. Zpravidla není jednoduché blokové schéma sestrojit a základní otázkou v této celé oblasti je otázka existenční. Základní problém. Pro dané hodnoty v, k, X, t rozhodněte, zda existuje blokově schéma typu t-(v, k, A). Zde odvodíme některé nutné podmínky pomocí algebraických prostředků (teorie matic). Na závěr tohoto úvodu zmiňme, že bloková schémata vznikla a dosud se používají v matematické statistice při návrhu experimentů. Tato motivace ovlivnila i standardní značení, které jsme výše zavedli. Představme si, že chceme vyhodnotit účinnost několika způsobů ošetření určité rostliny. Porovnávaných způsobů ošetření je v (v od „variety"). Budeme je porovnávat sérií pokusů, a v každém z nich budeme vyhodnocovat k ošetření (to je dáno nějakými technickými podmínkami pokusů). Každý pokus bude tvořit blok příslušných ošetření. Mohli bychom samozřejmě vyšetřit všechny /í-tice všechny bloky - možných ošetření. V situaci polních pokusů je tento triviální způsob (odtud triviální blokové schéma) holou nemožností již pro malé hodnoty v a k. Proto začali statistikové používat návrhy experimentů, kde se nevyšetřují všechny fc-tice, ale jen některé vybrané bloky. Tím samozřejmě může docházet k chybám, neboť návrh pokusu je neúplný, některé bloky nebyly uvažovány (a tedy 380 Kapitola 13: Aplikace lineární algebry 13.1 Bloková schémata 381 některá možná vzájemná působení ošetření byla zanedbána). Abychom alespoň částečně kompenzovali tuto (vynucenou) neúplnost návrhu experimentu, požadujeme, aby se každá dvojice ošetření vyskytovala ve stejném počtu pokusů-bloků. Schéma takového návrhu experimentu, tedy „blokové schéma", bude právě blokové schéma s parametry 2-(i?,fc,A). Budemc-li požadovat, aby se každá trojice ošetření objevila ve stejném počtu A pokusů, dostaneme blokové schéma typu 3-(v, k,A), atd. Pro rozlišení aplikace se bloková schémata vyskytují pod různými jmény: Bolanced Incompleíe Block Design (čili BIBD) pro schémata typu 2-(v, k, A), Steinerovy systémy (pro A = 1), taktické konfigurace (pro t > 2) atd. Podmínky celočíselnosti. Je zřejmé, že blokové schéma typu t-(v, k, A) nebude obecně existovat na každé množině, tedy pro každé v. Například l-(v, k, 1) schéma je rozklad, a tedy v musí být dělitelné k. Jiný, méně triviální příklad představovaly projektivní roviny, kde jsme určili velikost v jako funkci velikosti přímky. Následující věta popisuje nej důležitější třídu nutných podmínek pro existenci blokového schématu typu t-(v,k,X). 13.1.6 Věta (Podmínky celočíselnosti). Nechť existuje blokové schéma, s parametry t-(c. k. A). Polom následující zlomky jsou celá čísla: v(v-!)■■■ {v - t+1) (v-!)■■■ (v -t + 1) k{k-!)■■■ (k -t + 1)' (k - 1) • • • (k - ť + 1) A- í + 1 t + 1 Důkaz je snadnou aplikací počítání dvěma způsoby. Nechť (V, B) je blokové schéma typu t~(v, k, A). Zvolme pevné číslo s, kde 0 < s < t, a s-prvkovou podmnožinu S C V. Počítejme dvěma způsoby počet dvojic (T, B), kde 5' C T 6 (Y) a T C B G B. Na jedné straně T lze zvolit způsoby, přičemž každé T je podmnožinou právě A bloků B. Na druhé straně každý blok obsahující 5' obsahuje (ktZ's) podmnožin T D S. Celkem tedy zlomek At:) Av-s)---(v-t+i) = A (k-t + 1) vyjadřuje počet bloků B obsahujících množinu S, a tedy je to celé číslo. □ Poznámka. Použijeme-li uvedený důkaz pro s = 0 a s = 1, vidíme, že AA:(fc-i)...(fc-t+i) urcuJe počet bloku a A (k_jy..\k-t+i) urcuJe počet bloku obsahujících daný prvek x 6 V (tedy „stupeň vrcholu x"). Ve statistické interpretaci, kterou jsme uvedli výše, toto číslo vyjadřuje, kolikrát se prvek x vyskytuje v různých pokusech (čili kolikrát byl x ošetřen). Proto se číslo A (t)-i)-(Ľ-t+i) (fc-i)-O- t+i) zpravidla značí r („repetice") 13.1.7 Příklad (Steinerovy systémy trojic). V jistém smyslu „prvníu netriviální případ blokového schématu typu t-(v, k, A) dostaneme pro t = 2, A = 1, k = 3. To je systém trojic kde každá dvojice bodů je obsažena v právě jedné trojici (jinými slovy, pokrytí množiny hran úplného grafu disjunktními trojúhelníky). V tomto případě podmínky celočíselnosti z věty 13.1.6 vyžadují, aby čísla v (v — 1) v — 1 6 2 byla celá, z čehož je snadné odvodit, že buď v = 1 (mod 6) nebo v = 3 (mod 6). Tedy v musí být prvkem posloupnosti 3, 7, 9, 13, 15, 19, 21, 25, 27, .... Pro všechny tyto hodnoty blokové schéma typu 2-(v, 3,1) existuje. Tato schémata se nazývají Steinerovy systémy trojic (viz cvičení 3). Pro v = 7 tvoří Steincrův systém projektivní rovinu řádu 2 (viz obr. 9.1(a)). Pro v = 9 mánie takovýto Steinerův systém: 382 Kapitola 13: Aplikace lineární algebry (což lze považovat za tzv. afinní rovinu - ta vznikne z projektivní roviny řádu 3 vypuštěním bodů ležících na jedné přímce). 13.1.8 Příklad (Bloková schémata). Pro t = 2 (tj., požadujeme-li, aby každá dvojice byla právě v X k-ticích z B) vypadají podmínky celo-číselnosti takto: Xv(v - 1) = 0 (mod k(k - 1)) (13.1) X(v - 1) = 0 (mod k - 1). Tyto podmínky již v obecnosti nejsou postačující. Platí ale základní (teoretický) výsledek, který uvádíme pro ilustraci: 13.1.9 Věta (Wilsonova věta). Pro každou volbu čísel k, X existuje takové číslo v0(k, A), že pro všechny hodnoty v > v0{k, A) splňující podmínky celočíselnosti (13.1) již existuje blokové schéma typu 2-(v, k, A). Jinak řečeno, pro t = 2 jsou podmínky celočíselnosti postačující pro dostatečně velké množiny. Věta nic nesděluje o malých hodnotách v, jako například o existenci blokových schémat typu 2-(k2+k+l, fc+1,1) (neboli projektivních rovin). Cvičení 1. (a) Ověřte, že projektivní rovina řádu p je blokové schéma typu 2-(p2 + p + l,j9+l,l). (b)* Ukažte, že naopak blokové schéma typu 2-(p2 + p + 1, p + 1,1) je projektivní rovina řádu p. 2. Sestrojte Stcinerův systém trojic s 15 prvky. 3* Položme n = 3m, m je liché číslo. Definujme množinový systém (X, M) následovně: X - {(x,i)\ i = 1,2,3,x = 0.1----.m - 1}, a M obsahuje všechny trojice tvaru {(x, 1), (x, 2), (x. 3)}, a pro každé i = 1,2,3 všechny trojice tvaru {(x, i), (y. i), (z, i + 1)}, kde x ^ y a x + y = 2z (mod m). Ukažte, že (X,M) je Steinerův systém trojic. 13.2 Fisherova nerovnost Jedním ze zakladatelů teorie blokových schémat byl anglický statistik R. A. Fisher. Ačkoliv dílčí příklady blokových schémat byly známy dlouhou dobu (např. Steinerovy systémy trojic již téměř 100 let), Fisher byl 13.2 Fisherova nerovnost 383 první, kdo rozpoznal obecnou definici a její význam ve statistickém kontextu. Také našel další důležité omezující podmínky pro existenci blokových schémat. 13.2.1 Věta (Fisherova nerovnost). Nechť (V.B) je blokové schéma typu 2-(v,k,X), kde v > k. Potom \B\ > \V\. (Tedy návrh experimentu pro v odrůd vyžaduje alespoň v pokusů.) Tato nerovnost se dá dokázat zajímavým využitím elementární lineární algebry, jak objevil indický matematik R. C. Bose. Než začneme s vlastním důkazem, zaveďme matici incidence množinového systému (V, B). Označme prvky množiny V jako . -., xv, a množiny z B jako B\,..., Bj,. Definujme b x v matici A = (cĺíj) předpisem 1 jestliže Xj € B{ 0 jinak. Matici A nazýváme matice incidence systému (V,B). Řádky matice incidence jsou tedy charakteristické vektory množin B\, ..., Bf,. Důkaz Fisherovy nerovnosti. Pro dané blokové schéma (V,B) uvažme matici incidence A = (u,;j). Matice k ní transponovaná, AT, má rozměr v x b, a tedy součin ATA má rozměr v x v. Ukážeme, že matice B = A1 A má velmi jednoduchý tvar. Uvažme její člen b podle definice násobení matic máme k=l (člen v i-tém řádku a fc-tém sloupci matice A1 je a^). Clen bij tudíž vyjadřuje počet bloků B^ obsahujících zároveň Xi a Xj. Proto bij nabývá pouze dvou možných hodnot: X pro i ^ j AfEr pro i = j. 384 Kapitola 13: Aplikace lineární algebry 13.2 Fisherova nerovnost 385 Číslo a ■ |Ey jsme výše označili r (počet opakování), a tedy matice B má tvar ( r X ... X\ a r ... a V a a ... r J Elementárními úpravami dostaneme fr + {v-l)Xr + (v-l)X . det B = det . r + (v-l)X\ X = [r + (v - 1)a det A /ll. A r 1\ a r + (« - 1)A ) ■ det VAA r J (\ 1 ... 0 r - X ... \o o 1 \ o -v = (r + (.,-l)A)-(r-A) Připomeňme nyní, že /• a • | |, a tedy r + (í; - 1)a = rk. Protože v > k, máme i r > a, a tak det B ^ 0, čili matice i? má hodnost2 u. Kdyby ale b < v, potom hodnost matic A \ Ár by byla ostře menší než v, a potom i B = ATA by měla hodnost < v (zde používáme jednoduché vlastnosti hodnosti matice, viz cvičení 2). Tedy b > v. □ Jiný dňkaz toho, že matice B má hodnost v, je naznačen ve cvičení 4. 2Připomeňrne: hodnost nějaké matice M, označovaná zpravidla symbolem r(M), je dimenze vektorového prostoru generovaného řádky teto matice, nebo jinak řečeno je to maximální počet lineárně nezávislých řádků M (a totéž pro sloupce). Viz dodatek o algebře. Toto použití hodnosti matice incidence se stalo základem mnoha podobných (a důležitých) důkazů. Cvičení 1. Pro A = 1 dokažte Fisherovu nerovnost přímo (bez použití lineární algebry). 2. Ukažte, že jc-li A matice typu n x k a Ľ matice typu k x m, potom r{AB) < max(r(A),r(B)). 3. Nechť F je nějaké těleso, a G C F jeho podtěleso (představujte si např. pod F reálná čísla a pod G racionálni čísla). Buď A matice s prvky z tělesa G. Hodnost matice A můžeme uvažovat nad tělesem G (lineární závislost s koeficienty v G) nebo nad tělesem F (lineární závislost s koeficienty v F). Zdůvodněte, proč v obou případech dostaneme tutéž hodnost. 4. Čtvercová n x n reálná matice B se nazývá pozitivně definitní, pokud platí x1Bx > 0 pro každý nenulový (sloupcový) vektor x G R". (a.) Proč má pozitivně definitní n x n matice plnou hodnost n? (b) Ukažte, že matice B, použitá v důkazu v textu, je pozitivně definitní (a tedy B má hodnost v, bez počítání determinantu). 5. (a) Nechť Ci, C n - 1. Důkaz. Předpokládejme, že úplné bipartitní grafy B\,..., B.m disjunktně pokrývají všechny hrany Kn, tj. V(Bk)CV(Kn) = {l,2,...,n}, E(KU) = E(B1)(JE(B2)Í} ... ÚE(Bm). Nechť (Xk,Yk) je rozklad množiny vrcholů Bk na dvě části takové, že hrany Bk jdou jen mezi nimi. Každému grafů Bk přiřadíme n x n matici Ak, jejíž prvek v i-tčm řádku a j-tém sloupci je O) = í 1 pokud i 6ltaje Yfc \ 0 jinak (definice Ak je trochu podobná matici sousednosti grafu Bk, až na to, že Ak není symetrická - každá hrana grafu Bk přispěje jenom jednou jedničkou). Tvrdíme, že každá z matic Ak má hodnost 1. To je proto, že všechny nenulové řádky matice Ak jsou rovny témuž vektoru, totiž vektoru s jedničkami v pozicích, jejichž indexy náležejí Yk, a s nulami všude jinde. Uvažme teď matici A = A^ + A2 + ■ ■ ■ + Am. Každá hrana {i, j} náleží právě jednomu z grafů Bk, a proto pro ka.ždé i y^ j platí buď ciij = 1, a jí = 0, anebo = 0, dji = 1, kde Oy označuje prvek matice A v pozici (i,j) (přitom Oj. Odtud plyne A + AT = ,/„ — In, kde Jn je n x n matice samých jedniček a In je n x n jednotková matice (s jedničkami na hlavní diagonále a nulami jinde). Chceme teď ukázat, že hodnost takové matice A je aspoň n — 1. Budeme-li to vědět, dostaneme n - 1 < r (A) < r{A\) H-----h r(Am) < rn, poněvadž pro hodnost libovolných dvou matic M\ a M2 platí r(Ap + Mi) < r (Mi) + r(M2) - to je snadné ověřit z definice hodnosti. Předpokládejme tedy r (A) < n — 2. Připíšeme-li k matici A ještě jeden řádek ze samých jedniček, má vzniklá (n, + 1) x n matice pořád hodnost < n — 1, a tedy existuje netriviální lineární kombinace jejích sloupců rovná nule. Jinými slovy, existuje (sloupcový) vektor x G Rn, x (0,0,... , 0)T takový, že Ax = 0 a zároveň XT=] xi = ®- Z posledně uvedeného vztahu plyne Jnx = 0. Spočítáme xT (A + AT) x = xT(Jn - In)x = .r'(./,./:) - xT{Inx) = n 0 ./-'.r J^.rv <0. i=l 388 Kapitola 13: Aplikace lineární algebry 13.4 Prostor kružnic grafu 389 Na druhé straně ale xT (AT + Ä) x = (xTAT) x + xT(Ax) = Oxx + xxO = Q, a to je spor. □ Cvičení 1. (a) Ukažte, že chceme-li pokrýt hrany Kn hranami bipartitních pod-grafň K„, a přitom netrváme na disjunktním pokrytí (tj., jedna hrana může být pokryta i mnohokrát), potom existuje pokrytí [log2 n] bi-partitnírni grafy. (b)* Dokažte, že pokrytí jako v (a) skutečně vyžaduje aspoň [log2 n] bipartitních grafů. 2* Tentokrát chceme pokrýt všechny hrany grafu K„ hranami bipartitních podgrafů tak, aby každá hrana byla pokryta lichým počtem bipartitních podgrafů. Dokažte, že potřebujeme aspoň (n-l)/2 bipartitních podgrafů. Postupujte podobně jako v důkazu v textu, ale pracujte s maticemi nad dvouprvkovým tělesem GF(2). Místo matice Ak pak uvažte „skutečnou" matici sousednosti grafu Bu, jež má hodnost 2. 13.4 Prostor kružnic grafu Nechť G = (U E) je neorientovaný graf. Označme symbolem K,q množinu všech kružnic (všech možných délek) v grafu G. Je vidět, že tato množina si zasluhuje složitější označení (kroucenými písmenkami), protože je značně veliká. Přesvědčte se, že např. pro úplný graf Kn platí fe=3 v 7 a pro úplný bipartitní graf Kn,n je n Na druhé straně /Cg (fc-1)! (13.2) k\{k- 1)! (13.3) fc=2 právě když G je les. Zdálo by se, že struktura množiny JCq je nepřehledná a není možné ji nějak vhodně popsat. V této části zavedeme vhodné zobecnění pojmu kružnice, které souvisí s látku vyloženou v části 4.5, a které „doplní" množinu všech kružnic na větší množinu s velmi jednoduchou strukturou -strukturou vektorového prostoru. Myšlenky vyložené v dalším původně vznikly v souvislosti se studiem elektrických obvodů. 13.4.1 Definice (Eulerovská množina hran). Nechť G = {V, E) je (neorientovaný) graf. Množina E' C E se nazývá eulerovská, jestliže graf (V, E') má všechny stupně sudé. Tedy prázdná množina a množina hran libovolné kružnice jsou eulerovská množiny. V dalším bude pro nás výhodné ztotožňovat kružnici s její množinou hran. 13.4.2 Lemma. Množina E' je eulerovská právě když existují kružnice E\, ..., Et tak, že Ei jsou navzájem disjunktní množiny a E' je jejich sjednocením. Důkaz. Je-li E' neprázdná eulerovská množina, potom (V, E') není les a tedy obsahuje kružnici E\. Množina E' \ E\ je opět eulerovská, a lze tedy postupovat indukcí. □ Popíšeme strukturu všech eulerovských množin v daném grafu G = (V, E) algebraicky. Hrany grafu G očíslujeme e±, &2t...,. ,em a každé podmnožině A C E přiřadíme charakteristický vektor va = (vi,..., vm) definovaný předpisem 1 jestliže ei E A 0 jinak. Vektory budeme sčítat a násobit ve dvojkové soustavě (kde 1 +1 = 0). Snadno potom sami nahlédnete, že vyi + vB = ve, kde C (A \ B) U (li \ A) je symetrický rozdíl množin A a B. 390 Kapitola 13: Aplikace lineární algebry Symbolem C označme množinu všech charakteristických vektorů eulcrovských množin v G. Kvůli snadné formulaci zobecněme trochu pojem kostry grafu: kostra libovolného grafu G je každý jeho podgraf neobsahující kružnice a maximální vzhledem k této vlastnosti (tj. přidáním libovolné další hrany z E(G) kružnice vznikne). Pro souvislý graf toto splývá s definicí z části 5.3, pro nesouvislý graf dostáváme les, sestávající z koster všech komponent. 13.4.3 Věta (O prostoru kružnic). (1) Pro každý graf G tvoří množina C vektorový prostor nad dvouprvkovým tělesem3 GF(2) dimenze \E\ - \V\ + k, kde k je počet komponent grafu G. (2) Zvolme libovolnou kostru (V, E') grafu G, a pro každou hranu e e E \ E' označme Ke jedinou kružnici obsaženou v grafu (V,E' U {e}). Charakteristické vektory kružnic Kc (vzhledem ke zvolené kostře G) potom tvoří bázi C. Kružnici Ke nazýváme elementární kružnice, (určená hranou e, vzhledem k dané kostře). Důkaz. Nejprve ukážeme, že C je vektorový prostor. K tomu musíme zkontrolovat, že sčítáním vektorů z C i jejich násobením prvky tělesa GF(2) dostaneme zase vektory z C. Protože 0v^ = vg, Iva = va<, stačí ověřit, že množina C je uzavřena na sčítání vektorů. Vzhledem k poznámce před touto větou stačí ukázat, že pro eulerovské množiny A a B je i jejich symetrický rozdíl eulerovská množina. Zvolme tedy libovolný vrchol v € V. Nechť k a hran vycházejících z v náleží do A, kfí do B a k do obou těchto množin (kde k a, ks jsou sudá čísla). Potom do symetrického rozdílu (A \B)U(B\A) patří zřejmě k a + kB - 2k hran vycházejících z vrcholu v, a tedy stupeň v v symetrickém rozdílu množin A a B je sudý. Proto tento symetrický rozdíl je také eulerovská množina. iGF je zkratka Galois Field, neboli Galoisovo těleso. Viz dodatek o algebře. 13.4 Prostor kružnic grafu 391 Nechť (V, E) je libovolná kostra grafu G. Potom \E'\ = \V\-k, kde A; je počet komponent grafu G. Stačí tedy ukázat, že charakteristické vektory všech elementárních kružnic tvoří bázi vektorového prostoru C. Můžeme předpokládat, že E' = {eíy... ,et}, kde ŕ = \V\ — k (případně přeznačíme hrany z E tak, aby hrany z E' byly na začátku). Ukážeme nejprve, že elementární kružnice jsou lineárně nezávislé. Uvážímc-li libovolnou hranu e,; ^ E' (tj. i > t), pak vektor odpovídající elementární kružnici K£i je jediný mezi vektory elementárních kružnic, jenž má 1 v pozici i. Z tohoto důvodu nemůže být žádný z vektorů elementárních kružnic lineární kombinací jiných. Dokažme teď, že elementární kružnice generují C. Zvolme eulerov-skou množinu A a definujme množinu B předpisem e€a\e' Jaké prvky množina B obsahuje? Právě ty hrany, které náleží lichému počtu elementárních kružnic (vzhledem k E'). Zajisté tedy B obsahuje množinu A \ E' (každá její hrana náleží jediné elementární kružnici). Označme C symetrický rozdíl množin A a B. To je eulerovská množina, a přitom je obsažena v E', a E' neobsahuje kružnici - proto C = 0. Odtud A = B, takže jsme (libovolně zvolený) vektor v^ e C vyjádřili jako lineární kombinaci elementárních kružnic. □ Příklad. Uvažme následující graf G = (V, E): b c e f a h 392 Kapitola 13: Aplikace lineární algebry 13.5 Cirkulace a řezy: prostor kružnic podruhé 393 Dimenze prostoru kružnic je 9 — 6 + 1 = 4. Zvolíme-li silně vytaženou kostru, potom odpovídající báze prostoru kružnic je tvořena vektory elementárních kružnic Ka = {a,b,c} Kd = {b,e,h,i,d} Kg = {g,h,i} K/ = {c, f, h, e}. Například pro kružnici K = {a, f, i, d.} máme vyjádření V A' = vKa + vKd + vKj. Z věty 13.4.3 snadno plyne toto: 13.4.4 Důsledek. Počet eulerovských množin grafu C = (V, E) je roven 2liíHv kde k je počet komponent G. Přes obrovský počet eulerovských podmnožin je jejich struktura jednoduchá a lze je rovněž snadno generovat (z mnohem menší báze). To byla rovněž jedna z původních motivací. Číslo \E\ — \V\ + k sc nazýva cyklomatické číslo grafu G — (V, E). Cvičení 1. Ověřte vzorce (13.2) a (13.3). 2. Dokažte důsledek 13.4.4. 3. Určete cyklomatické číslo (=dimenzi prostoru kružnic) m x n mřížky, například: 3x4 4. Dokážte, že pro každý topologický rovinný 2-souvislý graf (tj. 2-souvis-lý graf s daným rovinným nakreslením) tvoří bázi prostoru C kružnice ohraničující omezené stěny. 13.5 Cirkulace a řezy: prostor kružnic podruhé V tomto článku vyložíme látku předchozího odstavce v poněkud jiném světle, za pomoci základů teorie matic. Budeme rovněž pracovat jak s grafy, tak s jejich orientacemi. Při tomto zesložitění se dostane věta 13.4.3 do nových souvislostí. Z části 8.5 si připomeňme pojem orientace: Orientace grafu G = (V,E) jc orientovaný graf tvaru G = (V, E), kde množina E obsahuje pro každou hranu {x,y} G E právě jednu ze šipek (x,y) a (y,x). Následující obrázek ukazuje příklad grafu a jednu z jeho možných orientací: (Všech možných orientací grafů G je 2'E', mnoho jich však může být isomorfních.) Orientaci G = (V7, E) budeme pokládat za pevně zvolenou. Reálná funkce / : E —> R se nazývá cirkulace, jestliže pro každý vrchol v grafu G platí V f(v,x)= ]T f(x,v). (13.4) xev-(„,x)eĚ xeV;{x,„)eE (Poznamenejme, že cirkulace může nabývat záporných hodnot.) Pojem cirkulace má různé názorné interpretace. Například, je-li G schéma elektrického obvodu a f(e) vyjadřuje proud tekoucí hranou e, potom (13.4) říká, že do každého vrcholu vtéká stejně, jako z něj vytéká což je první Kirchhoffův zákon. Tato interpretace byla jednou z původních motivací pro teorii vyloženou v tomto článku. Jeden příklad cirkulace se dostane následovně. Buď K = (t'i,t'2, ■ ■ ...Vk+i = Vi) 394 Kapitola 13: Aplikace lineární algebry kružnice (neorientovaná) v grafu G. Definujeme cirkulaci / (v orientaci G) předpisem f(vi,Vi+1) = 1 jestliže (ť.;;,ť,;+i) € £ f(vi+i,Vi) = -1 jestliže (vi+i,Vi) E E f (x, y) = 0 pokud {x, y} není hrana kružnice K. Cirkulace tedy závisí na směru, v němž jsme (neorientovanou) kružnici zapsali. O takto definované cirkulaci říkáme, že přísluší kružnici K. Pro graf na předchozím obrázku a kružnici s pořadím vrcholů 1 2 3 4 vypadá cirkulace takto: 1 -1 2 Snadno nahlédneme, že jsou-li /i a f2 cirkulace, je rovněž funkce /i + h cirkulace na G. Pro reálné číslo c je také c/i cirkulace. (V obou případech stačí ověřit podmínku (13.4).) Odtud dostáváme, že každá eulerovská množina dává vzniknout přirozeným způsobem cirkulaci. Definujeme nosič dané cirkulace jako množinu {{x,y} E E; aspoň jedna z hodnot f(x,y), f{y,x) je nenulová}. S trochou nepřesnosti označíme C množinu všech cirkulací. Množina C tvoří vektorový prostor, který nazýváme prostor cirkulací a nebo rovněž prostor kružnic (stejný název jako v předchozím článku). Oba pojmy jsou si velmi příbuzné. Hlavní rozdíl mezi tímto a předcházejícím článkem spočívá v tom, že zde pracujeme nad tělesem reálných čísel, zatímco v předcházejícím článku nad tělesem GF'(2). Nechť nyní p : V —> R je libovolná funkce (p od slova potenciál). Definujme funkci ôp na šipkách G předpisem Sp{x, y) = p(x) - p(y) (13.5) pro každou šipku (x, y) E E. Funkce ôp ; Ě —> R se nazývá potenciálový rozdíl (kdo si pamatuje trochu fyziky, vidí jistě souvislost s elektrickými obvody). Každá funkce 23.5 Cirkulace a řezy: prostor kružnic podruhé 395 g : E —*■ R, pro niž existuje potenciál p splňující g — ôp, se také nazývá potenciálový rozdíl. Snadno se opět přesvědčíme (ověřením podmínky (13.5)), že součet potenciálových rozdílů je opět potenciálový rozdíl, stejně tak číselný násobek. Množinu všech potenciálových rozdílů označíme K a nazýváme ji prostor řezů. Proč jsme zvolili tento název? Uvažme následující situaci: Nechť potenciál p nabývá pouze hodnot 0 a 1. Položme A = {v E V; p(v) = 1}, B = V \ A. Potom potenciálový rozdíl g = 8p nabývá nenulové hodnoty pouze pro šipky s jedním vrcholem v A a druhým v B: g(x, y) = 1 pro x e A, y E B g(x,y) = -1 pro x E B, y G A g (x, y) = 0 jinak. Je přitom přirozené množinu všech hran mezi množinami A a B nazývat řezem, protože po jejím odejmutí bude mít vzniklý graf více komponent (samozřejmě pokud existuje alespoň jedna hrana mezi A a B). Na obrázku jsme znázornili potenciál p a příslušný potenciálový rozdíl, hrany řezu jsou vyznačeny silněji. Nyní celou situaci popíšeme pomocí matice incidence. Očíslujeme proto vrcholy V = {vu...,vn} a hrany E = {ei,...,em}. Symbol c,, bude označovat šipku příslušející hraně e2. Jako v části 8.5 zavedeme matici incidence orientace G. Tato matice, D, je typu n x m a má prvky definované předpisem (—1 je-li i'i začátek šipky ěfc 1 je-li ?;,; konec šipky 0 jinak. Platí následující elegantní popis prostoru cyklů a prostoru řezů: 13.5.1 Věta. Pro každý graf G je prostor řezů U generován řádky matice incidence D a prostor cirkulací C je ortogonální doplněk prostoru TZ (tj. C = {x E Rm: xTy - 0 pro všechna y E R]). 396 Kapitola 13: Aplikace lineární algebry 13.5 Cirkulace a řezy: prostor kružnic, podruhé 397 Důkaz. Nechť D - (djj) je n x m matice incidence. Nejprve uvažme libovolný potenciálový rozdíl g = Sp. Podle definice potenciálového rozdílu pro každou šipku (vr,va) = éj platí g(éj) = p{vr) -p(vs) = Yn=i dijP{vi) (porovnáním (13.5) s definicí matice incidence). Funkce g (chápaná jako řádkový vektor) je tedy lineární kombinací řádků matice incidence. Obrácením postupu vidíme, že řádky matice generují prostor 1Z. Přepišmc nyní podmínku (13.4) pro cirkulaci / pomocí matice incidence. Ze vztahu 53 /(*,«)= E f m x.eV;(x,v)€Ě x£V;{v,x)eĚ plyne E f(x,v)- 53 f(v,z) = 0, (i,»)€B (v.x)eÉ což pro v — v, můžeme jinak zapsat m 53/(^ = 0. .7 = 1 Funkce /, chápaná, jako m-členný řádkový vektor, má tedy s i-tým řádkem matice D nulový skalární součin. Tudíž / je kolmá na každý řádek D, a proto prostor C tvoří ortogonální doplněk 1Z (v prostoru všech rn-členných reálných vektorů). □ Jakou má prostor 1Z dimenzi? Podle předchozí věty stejnou jako prostor generovaný řádky matice incidence D. Nyní přijde častý a užitečný trik: protože hodnost matice je stejná jako hodnost matice transponované, uvažme lineární nezávislost sloupců matice D. Symbolem dj označme j-tý sloupec matice D (odpovídající šipce éj). Uvažme nějakou množinu ,/ C {1,2,..., m} indexů sloupců, a ptejme se, kdy je množina sloupců {dj\ j G J] lineárně závislá. Lineární závislost znamená, že existují čísla Cj, j e J, z nichž alespoň jedno je nenulové, tak, že z\JjEJ Cjdj je nulový sloupcový n-členný vektor. Rozepišme to po složkách: i-tá složka, odpovídající vrcholu 1;,;, má tvar 53 cjdij = 0. je J Defmujeme-li ct = 0 pro t £ J, dostáváme podmínku (13.4), a tedy c = (c-i,..., c„,,) je nenulová cirkulace. Tím pádem nosič c obsahuje kružnici. Na druhé straně, jak již víme, pro každou kružnici K existuje nenulová cirkulace s nosičem K. Celkem dostáváme, že množina sloupců {dj; j e ,7} je lineárně nezávislá právě když množina hran {e,; j G J} grafu G neobsahuje kružnici. Tedy hodnost matice D je n - k, kde k je počet komponent, grafu G. Touto úvahou jsme tedy dokázali: 13.5.2 Věta. Pro graf G s n vrcholy, m hranami a k komponentami má prostor řezů TZ dimenzi n — k, a prostor cirkulací C dimenzi m — n + k. Toto je jakási verze věty 13.4.3 pro vektorový prostor nad tělesem reálných čísel. Vztah mezi culerovskými množinami (nebo cirkulacemi) a řezy má povahu duality. Uvedené úvahy lze rozšířit na další struktury (nejenom grafy). Tímto se zabývá tzv. teorie matroidů. Cvičení 1. Podejte definici „elementární cirkulace vzhledem k dané kostře". Dodatek: opakování algebry V této kapitolce zopakujeme základní skutečnosti o maticích, tělesech, vektorových prostorech a, několika dalších algebraických objektech, které potřebujeme na některých místech knížky. Narozdíl od ostatních kapitol, tato část není míněna jako úvod do problematiky, nýbrž jako stručné shrnutí, v němž si může čtenář osvěžit své případně již zasuté znalosti. Matice. Matice je obdélníková tabulka čísel. Její položky mohou být reálná nebo komplexní čísla, případně i prvky dalších algebraických struktur. Matice typu rn x n má rn řádků n sloupců. Prvek v í-tém řádku a j-tém sloupci matice zvané A se obvykle označuje «;j. Takže například matice A typu 3x2 má obecný tvar Matice se sčítají po složkách, a sčítané matice musejí mít týž typ. Jsou-li tedy A a, B matice typu rn x n a C = A + B, pak c\j = a.ý- + bij. Podobně pro násobení číslem a: matice aA má v pozici prvek aujj. Složitější a na první pohled nečekaná je však definice násobení matic. Součin AB je definován jen když počet sloupců matice A souhlasí s počtem řádků matice B. Je-li A typu m x n a B typu n x p, pak součin C = AB je matice typu m x p daná vzorcem Cij — O-ilblj + ai2b-2j + ■ • • + dinbnj- 400 Dodatek: opakování algebry Obrázkově: řádek i A sloupec i B Buď x = (xi,x2,.. -, xn) vektor. V souvislosti s maticemi, takový vektor se zpravidla považuje za matici typu n x 1 (představujeme si jej napsaný ve sloupečku), a je-li A matice typu m x n, výraz Ax čteme jako součin dvou matic. Zápis AT, kde A je matice typu m x n, znamená matici transponovanou k A, což je matice typu n x m, která má v i-tém řádku a v j-tém sloupci prvek a ji. Je snadné ověřit vzoreček pro transpozici součinu: (AB)T = BTAT. Skalární součin dvou n-složkových vektorů x a y je číslo ]Tj£=i XíPí-Skalární součin x a y se mnohdy zapisuje xTy. Přísně vzato, součin 1 x n matice xT anxl matice y je matice typu 1 x 1, jejíž jediný prvek je skalární součin definovaný výše, ale mezi maticí 1 x 1 a jejím prvkem se většinou nerozlišuje. Vektory x a y jsou kolmé pokud xTy — 0. Čtvercová matice je typu n x n pro nějaké n > 1. Její diagonála (někdy zvaná hlavní diagonála) sestává z prvků «11,022,033; • • • ■> ann-Horní irojrihelníková matice má nuly všude pod diagonálou; jinak řečeno Oij = 0 pro i > j. Diagonální matice smí mít nenulové prvky jen na diagonále. Jednotková matice typu nxn, označovaná zpravidla In, má jedničky na diagonále a všude jinde nuly. Determinanty. Každé čtvercové matici A je přiřazeno číslo det(j4) zvané determinant A. Definuje se formulí det(A) = ]T sgn(7r)al!7r(1)a2^(2) • a. n,7r(re); 7re.S'„ kde se sčítá přes všechny permutace tt množiny {1,2,... , n}, a kde sgn(7r) značí znaménko permutace tt. Znaménko permutace je vždycky Dodatek: opakování algebry 401 buď +1 nebo -1, a krátce se dá definovat jako - tt(í) sgn(7r) = Yl 1 2) nebo skládání zobrazení nějaké množiny. Grupa je množina G s asociativní binární operací * splňující následující podmínky (existuje mnoho různých ekvivalentních verzí těchto podmínek): (i) Existuje prvek e G G, zvaný jednotkový prvek (případně neutrální prvek), takový že pro všechna a G G platí a * e = e * a = a. (Je snadno vidět, že pokud takové e existuje, je jen jedno.) (ii) Pro každé a G G existuje 6 G G, pro něž a * b = b * a — e, kde e je jednotkový prvek. Takové b se jmenuje inverzní prvek k prvku a, a obvykle sc označuje a-1. Inverzní prvek je také určen pro každé a E G jednoznačně4. 4Někdy se grupa definuje jako algebraická struktura se třemi operacemi: binární operací * jako výše, unární operací inverzního prvku (a n a 1) a nulami operací, čili konstantou, e (zatímco v uvedené definici jsou operace inverzního prvku a e odvozené definicí z *). To má jisté výhody z hlediska obecné algebry, například podgrupa je pak prostě podmnožina uzavřená na tyto tři operace. Některé z důležitých příkladů grup jsou celá čísla s operací sčítání, kladná reálná čísla s násobením, množina všech regulárních matic typu n x u s operací násobení, množina všech permutací dané množiny X s operací skládání permutací a množina všech rotací třídimenzionálního euklidovského prostoru kolem počátku s operací skládání (provedení nejprve jedné rotace a pak druhé dá opět nějakou rotaci). Na druhé straně, přirozená čísla se sčítáním ani reálná čísla s násobením grupu netvoří. Grupa je komutativní pokud její binární operace je komutativní. Komutativním grupám se někdy říká abelovské. Těleso je množina K se dvěma binárními opcracemi+ a x (tyto symboly zde nemusí nutně znamenat obvyklé operace s čísly!), pro něž platí takovéto axiomy: 1. Množina K s operací + je komutativní grupa. Její jednotkový prvek se značí 0. 2. Množina K \ {0} s operací x je komutativní grupa. Její jednotkový prvek se značí 1. 3. Platí distributivita: a x (b + c) = (a x b) + (a x c) pro každé o, b, c G K. Podobně jako u grup, v literatuře se najde mnoho ekvivalentních verzí axiomů tělesa. Násobení a x b se často zkráceně zapisuje a,b. Nejběžnější tělesa jsou racionální čísla, reálná čísla a komplexní čísla (s obvyklým násobením a sčítáním jako operacemi). Naproti tomu celá čísla se sčítáním a násobením tělesem nejsou. Buď K těleso. Jeho podmnožina L je jeho podtěleso pokud je L tělesem s binárními operacemi a prvky 0 a 1 zděděnými z K. Například těleso racionálních čísel jc podtělesem tělesa reálných čísel. V kombinatorice se mnohdy potřebují konečná tělesa. Konečné těleso s q prvky, pokud takové existuje, se často označuje GF(q). Nejjed-nodušší konečné těleso jc GF(2), což je prostě množina {0,1} s obvyklým násobením (jako v celých číslech) a se sčítáním daným rovnostmi 0 + 0 = 1 + 1 = 0, 0+1 = 1+ 0=1. Je známo, že konečné těleso 404 Dodatek: opakování algebry Dodatek: opakování algebry 405 GF(q) existuje právě když je q mocnina prvočísla. V takovém případě je vždy jen jediné g-prvkové těleso (až na přejmenování prvků). Je-li q prvočíslo, těleso GF(q) se popíše velmi snadno. Je to množina {0,1,2,.... q - 1}, kde sčítání a násobení se provádějí jako pro celá čísla, ale po sečtení nebo vynásobení dvou čísel vezmeme zbytek při dělení výsledku číslem q (tomu se říká aritmetika modulo q). Výše uvedený popis GF(2) je speciálním případem této konstrukce. Zdůrazněme ale, že pro q = pk, kde p je prvočíslo a k > 1, množina {0,1,...,q — 1} s aritmetikou modulo q není tělesem, a konstrukce tělesa GF(q) je jiná a složitější. Vektorové prostory. Nechť K je nějaké těleso (nejčastěji uvažujeme těleso všech reálných čísel). Vektorový prostor nad K je komutativní grupa V s grupovou operací + a s neutrálním prvkem 0, plus zobrazení K x V —» V. To znamená, že každé dvojici (a, v), kde a G K a v G V, je přiřazen prvek z V, a tedy každý prvek z V můžeme „vynásobit" libovolným prvkem z K. Tohle násobení se zpravidla zapisuje bez nějakého zvláštního znaménka pro násobení, takže píšeme prostě av a míníme v vynásobené a. Pro vektorový prostor musí být dále splněný takovéto požadavky, pro libovolná u, v G V a jakákoli a,,Q G K: a(u + v) = au + av, (a + j3)v = av + 0V (jakási distri-butivita), a(Bv) = (aB)v (něco jako asociativita), a Iv = v. Z těchto axiomů lze už dokázat všelijaké další vlastnosti, jako třeba Ov = 0 (ta 0 nalevo je v tělese K, zatímco ta napravo je ve vektorovém prostoru V). Prvky V se jmenují vektory. Ncjobvyklejší a nejdůležitější příklad vektorového prostoru je tvořen množinou všech uspořádaných n-tic reálných čísel (pro nějaké přirozené číslo n). Tyto n-tice se sčítají a násobí reálným číslem po složkách. Tak dostaneme vektorový prostor nad reálnými čísly, ale podobně můžeme uvažovat vektorový prostor všech uspořádaných n-tic prvků jakéhokoli tělesa K, čímž dostaneme vektorový prostor nad K. Ten se zpravidla označuje Kn. Množina A C V ve vektorovém prostoru V je lineárně závislá, pokud existují vektory v\,v%,...,vn G A, n > 1, a čísla «1, a-2, ■ ■ • , an G K, ne všechna najednou rovná 0, tak, že Oj>'i + a2v2 H-----h anv„ = 0. Není-li A lineárně závislá, nazývá se lineárně nezávislá. Nejvčtší mohutnost lineárně nezávislé množiny v daném vektorovém prostoru V se jmenuje dimenze V, a každá lineárně nezávislá množina této mohutnosti se nazývá báze vektorového prostoru V. Vektorový prostor Kn má dimenzi n, jak by každý čekal. Každý vektorový prostor má nějakou bázi, a každá lineárně nezávislá množina maximální vzhledem k inkluzi (tj., nelze přidat žádný vektor bez pokažení lineární nezávislosti) je bází. V kombinatorice se skoro vždy setkáváme jen s vektorovými prostory konečné dimenze. Je-li (ci, C2,..., e„) báze nějakého n-dimenzionálního vektorového prostoru V, pak každý vektor v G V se dá právě jedním způsobem vyjádřit vc tvaru v = Yn=i <*iei Pro nějaká a\, a2,..., an G K. Tato jednoznačně určená a\,...,an jsou souřadnice vektoru v vzhledem k bázi (ei,..., en). Každému vektoru v G V je tudíž jednoznačně přiřazen vektor z Kn, totiž n-ticc jeho souřadnic. Tím dostaneme bijekci mezi V a Kn (pro daný V je mnoho takových bijekci, jedna pro každou volbu báze ve V). Všechny n-dirnenzionální vektorové prostory nad daným tělesem jsou „stejné", tj. jsou ve vhodně definovaném smyslu isomorfní. Takže na Kn můžeme pohlížet, jako na „jediný" n-dimenzionální vektorový prostor nad K, a vektory si obvykle můžeme představovat jako n-tice čísel. Na druhé straně, často je užitečné pracovat i s jinými konkrétními verzemi n-dimenzionálních vektorových prostorů. V kombinatorických použitích lineární algebry je často rozhodujícím krokem šikovná a nečekaná konstrukce nějakého pomocného vektorového prostoru, a hlavní část důkazu pak spočívá v odhadu jeho dimenze. Podprostor vektorového prostoru V je podmnožina W C V uzavřená na sčítání vektorů a na násobení prvky z tělesa K. Je-li X C.V libovolná množina vektorů, definujeme podprostor generovaný X jako nejmenší podprostor prostoru V obsahující X. Explicitní popis tohoto podprostoru je {^*=i a%°i'i n € N. an G K, v\,..., vn G X}. 406 Dodatek: opakování algebry Dodatek: opakování algebry 407 Hodnost matice A typu m x n, jejíž prvky jsou z tělesa K, je definována jako dimenze podprostoru generovaného řádky matice A (chápanými jako n-složkové vektory) v prostoru Kn. Hodnost A se zpravidla označuje r{A). Tato hodnost je také rovna dimenzi podprostoru generovaného sloupci matice A v prostoru Km, tedy r(A) = r(AT). Pro hodnost součinu a součtu matic platí nerovnosti r(AB) < min(r(A), r(B)) a r (A + B) < r (A) + r(B). Čtvercová matice typu n x n je regulární (má nenulový determinant), právě když má hodnost n - to je významné kriterium lineární nezávislosti pomocí determinantu. Obecněji, platí následující charakterizace hodnosti: r(A) je největší celé číslo fc takové, že A (ne nutně čtvercová) má aspoň jednu regulární podmatici typu k x k. Jsou-li V a W vektorové prostory nad stejným tělesem K, definujeme lineami zobrazení prostoru V do prostoru W jako zobrazení /: V —> W splňující f (au) = af(u) a f(u + v) = f(u) + f (v) pro všechna a e K au, v G V. Jádro lineárního zobrazení / je množina ker(/) = {v G V; f (v) = 0}. Jádro / je podprostor V, a množina f (V) je podprostor W. Dimenze f (V) je hodnost zobrazení /. Pro každé lineární zobrazení / : V —> W je pravda dimker(/) + dim f (V) = dimV. Buď (ei,e2,..., e«) nějaká báze V a (fuh,, • •, fm) nějaká báze W. Volbou těchto bází získáme bijekci mezi všemi lineárními zobrazeními /: V ->■ W a všemi maticemi typu m x n s prvky z tělesa K. Jak vime, každý vektor v G V můžeme jednoznačně napsat ve tvaru v = Y!i=\ Lineární zobrazení /': V -* W se dá vyjádřit takto: /(«) = / (YLaiVi)= (E ""'^) kde Oíj jsou prvky m x n matice A odpovídající /. Jinými slovy, je-li a sloupcový vektor souřadnic vektoru v vzhledem k bázi (ei,... ,en) a 3 je sloupcový vektor souřadnic f (v) vzhledem k bázi (j\,.... /m), potom máme (3 = Aa. Takže lineární zobrazení můžeme chápat jako abstraktní verzi matic, nebo matice jako „souřadnicový zápis" lineárních zobrazení. Násobení matic pak odpovídá skládání lineárních zobrazení. Hodnost lineárního zobrazení je ovšem totéž jako hodnost jeho matice (vzhledem k libovolným bázím). Geometrická interpretace. Mnohdy je užitečné si některé objekty z lineární algebry představovat geometricky, a naopak lineární algebra samozřejmě pomáhá pracovat s objekty geometrickými. Nedá se říct, které geometrické interpretace lineárně-algebraických pojmů jsou nejlepší, to vždy závisí na situaci. Zde uvedeme několik jednoduchých možností. Budeme se držet vektorového prostoru R3, i když geometrické představy mohou při určitém cviku pomoci i pro vyšší dimenze. Podprostory R3 (jako vektorového prostoru nad R) jsou: bod 0 (počátek), všechny přímky a roviny procházející počátkem, a R3 sám. Lineární závislost 3 vektorů a\,a2, a3 G R3 znamená, že body 01,02, 0.3 leží na společné rovině procházející počátkem. Rovina neprocházející počátkem není (vektorovým) podprostorem. Můžeme ji vyjádřit jako posun nějakého podprostoru o vhodný vektor, nebo též jako řešení jedné lineární rovnice, tj. jako množinu všech x = (xi,x2,x3) G R3, pro něž aTx = ayxy + a2x2 + 03.T3 = 60, pro nějaké 6() G R a nějaké nenulové a G R3. Je-li A matice typu m x 3 a b G Rm je sloupcový 77?,-složkový vektor, Ax = b je soustava m lineárních rovnic pro neznámý vektor x G R3. Každý řádek A dává jednu lineární rovnici. S výjimkou patologického případu nulového řádku, taková rovnice určuje rovinu, a geometricky je množina řešení soustavy Ax = b průnikem m rovin (nemá-li A nulové řádky). Pro rn = 2, příslušné 2 roviny mohou být totožné (řešením jsou všechny body této roviny), rovnoběžné (žádné řešení), nebo různoběžné (řešením jsou body přímky). V prvních dvou případech má A hodnost 1, a ve třetím případě hodnost 2. Podobně můžeme diskutovat případ m = 3: matice A hodnosti 3 odpovídá třem rovinám protínajícím se v jediném bodě, a menší hodnosti odpovídají 408 Dodatek: opakování algebry nčkolika možným „degenerovaným" situacím (některé z rovin splývají nebo jsou rovnoběžné, případné průnik dvou rovin je rovnoběžný s rovinou třetí). Nechť ej = (1.0,0), e2 = (0,1,0), e3 = (0,0,1) je standardní báze prostoru R3. Lineární zobrazení / : R3 —* R3 je určeno obrazy u-i = f (ti) bázových vektorů. Vektoru x 6 R3 je přiřazen vektor f(x) = Ax € R3, kde A je matice typu 3 x 3 s 01,02,03 jako sloupci (přesněji řečeno, A je matice zobrazení / vzhledem ke dvojici bází (ei,e2,e3) a (ei,e.2,en)). Zobrazení / převádí jednotkovou krychli na rovnoběžnostěn určený vektory 01,02,03: e3 i L Co Absolutní hodnota determinantu A je přesně objem tohoto rovnoběžnostěnu! Jako speciální případ, je-li det A = 0, má A hodnost < 2, tudíž 01, a2,03 leží ve společné rovině procházející počátkem, a místo rovnoběžnostěnu máme placku nulového objemu. Obecněji, je-li K C R3 množina objemu v, potom f(K) má objem v\ detA\. Podobný význam má absolutní hodnota determinantu i pro vyšší dimenze. Znaménko determinantu je pak dáno orientací trojice (01,02,03): příkladem trojice s kladnou orientací je (ei, e.2, e^), a příkladem trojice se zápornou orientací je (e.\, 02, —63). Literatura [1] A. Aho, J. Hopcroft, J. Ullman: The Design and Analysis oj Computer Algorithms, Addison-Wesley, Reading, Massachusetts, 1983. [2] G. E. Andrews: The Theory of Partitions (Encyclopedia of mathematics and its applications, vol. 2), Addison-Wesley, Reading, Massachusetts, 197G. [3] L. Babai, P. Frankl: Linear algebra methods in combinatorics (Preliminary version 2), Department of Computer Science, The University of Chicago, 1992. [4] B. Balcar, P. Štěpánek: Tear ie množin. Academia Praha 1986. [5] O. Borůvka: Několik vzpomínek na matematický život v Brně, Pokroky mat. fyz. a astr. 22(1977) 91-99. [6] J. M. Borwcin, P. B. Borweiu: Pi and the ACM, John Wiley k Sons, New York 1987. [7] K. Chandrasekhar: Introduction to Atialytic Number Theory, Springer-Vcrlag 1968. [8] D. Cox, J. Little, and D. O' Shea: Ideals, Varieties, and Algorithms. An Introduction to Computational Algebraic Geometry and. Commutative Algebra, 2nd edition, Springer-Verlag, Berlin, 1996. [9] R. Diestel: Graph Theory, Graduate Texts in Mathematics 173, Springer-Verlag, Berlin etc., 3. vydání 2005. Volně dostupné též elektronicky. [10] P. Flajolet, R. Sedgewick: Analytic Combinatorics, Cambridge University Press, Cambridge 2009. Předběžná verze dostupná na webové stránce Philippa Flajoleta. 410 Literatura Literatura 411 [11] G. Gonthier: Formal proof -the four-color theorem. Notices Am.e.r. Math. Soc. 55(2008) 1382-1393. 12] T. Gowers: Matematika. Průvodce pro každého. Dokořán Praha 2006. 13] R. Graham. D. Knuth, O. Patashnik: Concrete Mathematics: A Foundation for Computer Science, Addison-Wesley, Reading. Massachusetts, 1989. 14] F. Harary, E. M. Palmer: Graphical Enumeration, Academie Press, New York and London, 1973. 15] K. Havlíček a kol.: Cesty moderní matematiky, Horizont Praha 1976. 16] G. Kant: Drawing planar graphs using the canonical ordering, Algori-thmica 16(1996), 4-32. 17] D. Karger, P. Klein, R. Tarjan: A Randomized Linear-Time Algorithm to Find Minimum Spanning Trees, Journal of the ACM 42(1995), 321-328. 181 D. Knuth: The Art of Computer Programming, Volume I: Fundamental Algorithms, Addison-Wesley, Reading, MA 1968. 19] J. H. van Lint, R. M. Wilson: A Course in Combinatorics, Cambridge University Press, Cambridge 1992. 20] J. Littlewood: A Mathematician's Miscellany, London, Methuen, 1953. 21] L. Lovász: Combinatorial Problems and Exercises, 2. vydání, Akadé-miai Kiadó Budapest and North-Holland, Amsterdam 1993. 22] B. Mohar and C. Thomasscn: Graphs on Surfaces, Johns Hopkins University Press, Baltimore, Maryland, 1997. 23] J. Nešetřil: Teorie grafů, SNTL Praha 1979. 241 J- Nešetřil: Kombinatorika a teorie grafů I, skripta, Universita Karlova Praha 1981. 25] N. Robertson, D. P. Sanders, P. D. Seymour, and R. Thomas: The Four Color Theorem, Journal of Combinatorial Theory Ser. B 70(1997), 2-44. 261 N. Robertson, P.D. Seymour, and R. Thomas: Permancnts, Pfaffian orientations, and even directed circuits, Ann. Math. 150(1999), 929-975. [27] A. de Saint-Exupéry: Malý princ, SNDK Praha 1966. [28] J. Stillwell: Classical Topology and Combinatorial Group Theory (Graduate Texts in Mathematics 72), Springer-Verlag 1980. [29] C. Thomassen: The Jordan-Schocnflies theorem and the classification of surfaces, American Mathematical Monthly 99(1992), No. 2, 116-130. [30] N. J. Vilenkin: Kombinatorika, SNTL Praha 1977. [31] G. M. Ziegler: Lectures on Polylopes, Revised edition, Graduate Texts in Mathematics 152, Springer-Verlag, Berlin, 1998. Rejstřík 0. 7c (a). (*), 76(3.3.1) -<, 52 1, 51 a j 6, 53(2.1.2) £, 25, 28 II. 25 (a, 6), 24 (m,n), 107 [a,b], 24 [x], 24 W,24 \x], 24 {...}, 26 (,t,í/), 35 {x,y}, 34 0, 27 2X, 27 C, 28 C (uspořádání), 54(2.1.3) C, 28 e, 26 \X\, 27 Jí \ Y, 29 X2. 36 A n y, 28 Jí uy, 28 IÚY, 29 XxY, 35(1.4.1) /?[.*•], 47 ií o S, 38 36 m, 41 /(A), 41 / : x i—► ?y, 40 f : X —y Y, 40 / : X-Vy, 43 / : *-»Y, 43 / : X<-»y, 43 / ~ 5, 87 g o /, 42 Á1', 272, 400 G + ě, 148(4.7.2) G%e, 149(4.7.2) G-e, 148(4.7.2) G - v, 148(4.7.2) G.e, 227(4.7.2) Gjí H, 114(4.1.2) ab, 282 cv(n), 177 q(G), 324(10.4.2) a(P), 64 414 Rejstřík Rejstřík 415 5p, 394 5(.), 229(cv.2) Ax, 46 y(.), 222(6.8.2) «;(.), 259 íí(.), 87 cj(G), 332 w(P), 65 7T, viz Ludolfovo číslo 9(.), 87 i4Gl 121(4.2.3) abclovská grupa, 403 acyklická relace, 56(cv. 2) algebra lineární (aplikace), 268-277, 290 293, 377-397 algoritmus - Borůvkúv, 182(5.4.3) - Dijkstrův, 124 129 s heuristikou, 128 - hladový, 172(5.3.3), 177, 179(cv.l0), 179(cv. 11), 179(cv. 12) — Jarníkův, 180(5.4.1) Kruskalův, 172(5.3.3) — Primův, viz Jarníkův algoritmus - prohledávání do šířky, 129(cv.5) QUICKSORT, 327-329 — třídicí, 75(cv.4), 327-329 antiřetězec, 64, 246 antisymetrická relace, 44(1.6.1) anuloid, 231 aritmetický průměr, 87 asociativní (operace), 29, 402 asymetrický graf, 117(cv.4) asymetrický strom, 169(cv. 1) automorfismus - grafu, 117(cv. 4) — uspořádané množiny, 249, 252(cv. 6) axiom, výměnný, 178(cv. 5) Bn, 63 barevnost grafu, 222(6.8.2), 229(cv. 2) — výběrová, 230(cv. 10) báze, 405 Bellovo číslo, 109(cv. 7) Bernoulliho nerovnost, 93 Bertrandův postulát, 98 bezprostřední předchůdce, 54 bijekce, 42 binární operace, 402 binární strom, 360 362 Binetova-Cauchyho věta, 274(8.5.4) binomická věta, 79 — kombinatorický význam, 343 — zobecněná, 350(12.2.5), 362 binomický koeficient, viz kombinační číslo bipartitní graf, 114, 124(cv.3), 278(cv.3), 322(10.4.1) — úplný, 114 blokové schéma, 377-385 bod — projektivní roviny, 282(9.1.1) v nekonečnu, 282 Bonferroniho nerovnosti, 104 booleovská funkce, 302, 307(cv. 2) Borůvkňv algoritmus, 182(5.4.3) Brouwerova věta, 240(7.1.3), 244(cv. 2) C, 390, 394 Cn, 113 C(G), 168 C„, 310(10.2.2) Catalanovo číslo, 362 363 Cauehyho-Schwarzova nerovnost, 254(7.3.2), 256(cv.4) celá čísla, 24 centroid (stromu), 17()(cv. 6) centrum grafu, viz střed grafu cesta, 113, 118 — jednoznačnost pro strom, 162(5.1.4) — nej kratší, 124-129 cirkulace, 393 cyklomatické číslo, 392 cyklus, 143 permutace, 74, 322 časová složitost, 175 částečné uspořádám, 52, 246 částečné zlomky, 355 číslo Bellovo, 109(cv. 7) — Catalanovo, 362-363 - celé, 24 — cyklomatické, 392 — dokonalé, 110(cv. 10) - Eulerovo, 89 — Fibonacciho, 354 -356 - harmonické, 94(cv. 12) - kombinační, 76-85, 343, 345, 345(cv.5) - odhad, 94-98 - zobecněné, 350(12.2.5) — Ludolfovo, 92 výpočet, 93(cv. 7) — přirozené, 24 racionální, 24 — Ramseyovo, 335 - reálné, 24 čtvercová matice, 400 čtverec latinský, 294-298 dG(-,.), 121 tfe,w(.,.), 125 De Bruijnňv graf, 146 de Moivreova věta, 33(cv.4), 373 de Morganoyy vzorce, 30 degG(.), 129 deg+(.), 144 degc(.), 144 dělení grafu, 149(4.7.2) — hrany, 149(4.7.2) determinant, 400 — rozvoj, 401 diagonála, 46, 400 diagonální matice, 400 diagram — Ferrersův, 369 — Hasseňv, 55 diference (funkce), 357 diferenční rovnice, 356-359 Dijkstrův algoritmus, 124-129 s heuristikou, 128 Dilworthova věta, 68 (cv. 7) dimenze, 405 — uspořádané množiny, 67 Dirichletův princip, 333(11.1.2) disjunktní množiny, 28 distributivní (operace), 29, 403 dobré uspořádání, 32 dokonalé číslo, 110(cv. 10) dominující množina, 179(cv. 12) duál (geometrický), 223(6.8.3) dualita, 287, 293 duální množinový systém, 287 Dushnikova-Millerova dimenze, 67 2-obarvení, 299(9.4.1), 304-306, 307(cv. 3) dvojice 416 — neuspořádaná, 34 - uspořádaná, 35 2-souvislý graf, 148-153 - kritický, 153(cv. 2) e, 89 E, 318(10.3.6) E(G), 112 ekvivalence, 46(1.0.2) — počet, 109(cv. 7) — třída, 47 — udržování, 176(5.3.6), 179(cv.9) elementární jev, 309 elementární kružnice, 390 elementární řádková operace, 401 Erdôsovo-Szekeresovo lemma, 66(2.4.6) Erdôs, Paul, 331 Eulerova funkce, 107-108, 109(cv.8) Eulerovo číslo, 89 eulerovská množina, 389(13.4.1) - počet, 392(13.1.4) eulerovský graf, 135-147, 189(cv.2) eulerovský tah, 135 Eulerův vzorec, 203(6.4.1) pro strom, 162(5.1.4) excentricita, viz výstřednost exG(.), 168 extremální teorie, 156, 253, 323 faktoriál, 74 — dělitelnost, 75(cv. 5) odhad, 87-92, 93(cv. 8) Fanova rovina, 283, 298(cv. 1) Ferrersův diagram, 369 Fibonacciho čísla, 354-356 Fisherova nerovnost, 383(13.2.1) Rejstřík formule — Leibnizova, 83(cv. 11) logická, 302, 307(cv. 2) — Stirlingova, 92 funkce, 40(1.5.1) - bijektivní, 42 — booleovská, 302, 3()7(cv.2) - Eulerova, 107-108, 109(cv. 8) — graf (orientovaný), 264, 264(cv. 1), 264(cv.3) — charakteristická, 71 — identická, 44(cv. 3) injektivní, 42 — konvexní, 256(cv. 5) — monotónní, 82(cv.6) — na, 42(1.5.3) --počet, 109(cv. 6) — perioda, 264(cv.3) - počet, 69(3.1.1) - prostá, 42(1.5.3) - — počet, 71(3.1.4) — skládání, 41 spojitá, 240 — surjektivní, 42 vytvořující, 341 375 --operace s, 347-350 - posloupnosti, 347(12.2.2) — vzájemně jednoznačná, 42(1.5.3) GF(q), 403 Qn, 312(10.2.6) geometrický průměr, 87 graf, 111(4.1.1) - barevnost, 222(6.8.2), 229(cv. 2) - bez /\2,2, 253, 299 — bez K2,t, 256(cv.l) bez K:it3, 257(cv.6) bez trojúhelníků, 154-157, Rejstřík 417 329(cv. 1) - bipartitní, 114, 124(cv.3), 278(cv.3), 322(10.4.1) - De Bruijnův, 146 - duální, 223(6.8.3) 2-souvislý, 148 153 - kritický, 153(cv.2) - eulerovský, 135-147, 189(cv. 2) - funkce (orientovaný), 264, 264(cv.l), 264(cv.3) - Heawoodův, 287 - incidence, 287, 299 isomorfismus, 114(4.1.2) - fc-souvislý - hranově, 147 --vrcholově, 147 - náhodně eulerovský, 141(cv. 6) náhodný, 312(10.2.6), 316(cv.l), 316(cv.2) nakreslení, 191(6.2.2) obarvení, 222(6.8.2) - orientace, 272 orientovaný, 143(4.6.1) počet, 110(cv. 12), 115 poloměr, 124(cv.6) ■ pravidelný, viz regulární graf průměr, 124(cv. 6) regulární, 134(cv. 10) rovinný, 187-231, 238, 244(cv. 1) — maximální, 208 — počet hran, 204(6.5.1) - skóre, 212(cv. 7) s násobnými hranami, 139 se smyčkami, 139 silně souvislý, 144(4.6.2) slabě souvislý, 144(4.6.2) souvislý, 119 strnulý, viz asymetrický graf úplný, 113 — úplný bipartitní, 114 — úplný fe-partitní, 158(cv. 4) — vnějškově rovinný, 229(cv. 3) — výběrové obarvení, 230(cv. 10) — vyvážený, 144 — znázornění, 112 Grahamova-Pollakova věta, 386(13.3.2) Grôtschova věta, 229(cv. 4) grupa, 402 hamiltonovská kružnice, 138, 141 (cv. 5) harmonické číslo, 94(cv. 12) harmonický průměr, 93(cv. 5) Hasseův diagram, 55 Heawoodův graf, 287 Heawoodův vzorec, 236 heuristika, 128 HEX (hra), 242 hladový algoritmus, 172(5.3.3), 177, 179(cv. 10), 179(cv. 11), 179(cv. 12) hodnost matice, 384. 406 hodnota střední, 318 horní trojúhelníková matice, 400 hrana, 111(4.1.1) — násobná, 139 — orientovaná, 143(4.6.1) hranice, 195(6.3.1) hranově /e-souvislý graf, 147 hypergraf, 377 charakteristická funkce, 71 charakteristický polynom, 357 Jn, 124(cv.7), 387, 400 identita, 44(cv. 3) indikátor, 319(10.3.7) 418 Rejstřík Rejstřík 119 indukce — matematická, 31 — úplná, viz matematická indukce indukční krok, 32 indukční předpoklad, 32 indukovaný podgraf, 118(4.2.1) infimum, 61 (cv. 9) injektivní funkce, 42 inkluze a cxkluze, 99-105 — aplikace, 105 110 inverze permutace, 75(cv. 4) inverzní relace, 46 isomorfismus grafů, 114(4.1.2) — relací. 50(cv. 8) — stromů, 164-169 uspořádaných množin, 57(cv.4), 249 J„, 387 jádro, 406 Jarníkňv algoritmus, 180(5.4.1) jednotková matice, 400 jev, 309 — elementární, 309 jevy nezávislé, 314-315 Jordánova věta, 195(6.3.1) K,Qi 388 Kn, 113 Kn,m, 114 /c-graf, 377 kartézský součin, 35 fc-souvislost, 147 Kleinova láhev, 232 kód stromu, 164 — Průferův, 265 koeficient - binomický, viz kombinační číslo — multinomický, 81 kolmé vektory, 400 kombinační číslo, 76-85, 343, 345, 345(cv.5) - odhad, 94-98 — zobecněné, 350(12.2.5) kompaktnost, 241 komponenta — obloukové souvislosti, 195 komponenta grafu, 120 komutativní (operace), 29, 402 koncový vrchol, 160(5.1.2) konečná projektivní rovina, 281-300, 381 -definice, 281(9.1.1), 288(cv.2), 289(cv.5), 382(cv. 1) existence, 289-290 — řád, 285(9.1.4) konečný pravděpodobnostní prostor, 308(10.2.1) konfigurace taktická, 380 kontrakce hrany, 227 konvexní funkce, 256(cv. 5) — těleso, 214 kořen stromu, 164 kostra, 390 — maximální, 178(cv.2) minimální, 170-185 - počet, 259-280 kritický 2-souvislý graf, 153(cv. 2) krok indukční, 32 Kruskalův algoritmus, 172(5.3.3) kružnice, 113 — elementární, 390 — hamiltonovská, 138, 141(cv. 5) — topologická, 195 — v grafu, 119 Kuratowskčho věta, 219(6.7.1) láhev Kleinova, 232 Laplaceova matice, 268, 277(cv.l) latinské čtverce, ortogonální, 295 latinský čtverec, 294 298 latinský obdélník, 298(cv. 6) Leibnizova formule, 83(cv. 11) lemma — Erdôsovo-Szekeresovo, 66(2.4.6) ■ Spernerovo, 238(7.1.1), 244(cv.2) levé maximum, 318(10.3.4), 321 lexikografické uspořádání, 52, 167 linearita střední hodnoty, 320(10.3.9) lineární algebra (aplikace), 268 277, 290-293, 360(cv.8), 377-397 lineární rozšíření, 57 lineární uspořádání, 46(1.6.2) lineární závislost, 404 lineární zobrazení, 406 list, viz koncový vrchol - Mobiův, 231 Littlcwoodův-Offordúv problém, 252(cv. 7) logická formule, 302, 307(cv. 2) lomenice, 193 Ludolfovo číslo, 92 - výpočet, 93(cv. 7) mapa (obarvení), 220-231 matematická indukce, 31 matice, 399 — diagonální, 400 - incidence, 272, 278(cv.3), 383 - jednotková, 100 — Laplaceova, 268, 277(cv. 1) násobení, 123(4,2.5), 399 — permutační, 124(cv.8) pozitivně definitní, 385(cv. 4) — regulární, 402 — singulární, 402 - sousednosti --grafu, 121(4.2.3) relace, 37 — transponovaná, 272, 400 — trojúhelníková, 400 — unimodulární, 278(cv.3) matroid, 177, 397 maximální kostra, 178(cv. 2) maximální prvek, 57(2.2.2) maximum levé, 318(10.3.4), 321 metrika grafu, 12.1, 124(cv. 5) minimální kostra, 170-185 minimální prvek, 57(2.2.2) minor, 219, 230(cv. 9) mnohočlen charakteristický, 357 mnohostěn pravidelný, 214 množina částečně uspořádaná, 52 — dominující, 179(cv. 12) - nezávislá, 64(2.4.1), 323, 333 — prázdná, 27 — uspořádaná, 51 množinový systém, 27 — 2-obarvitelný, 299(9.4.1), 304-306, 307(cv. 3) duální, 287 Mobiův list, 231 mocninná řada, 345-347, 354(cv. 10) monotónní funkce (počet), 82 monotónní posloupnost, 66 multigraf, 139 multinomická věta, 81(3.3.4), 420 Rejstřík Rejstřík 421 262, 345(cv. 3) multinomický koeficient, 81 N, 24 náhodná permutace, 310(10.2.3), 314, 322, 324, 328 náhodná procházka, 366-368 náhodná veličina, 317(10.3.1) náhodně eulerovský graf, 141(cv.6) náhodný graf, 312(10.2.6), 316(cv.l), 316(cv.2) nakreslení grafu, 191(6.2.2) násobení matic, 123(4.2.5), 399 násobné hrany, 139 nejkratší cesta, 124 129 nejmenší prvek, 59(2.2.4) největší prvek, 59(2.2.4) neomezená stěna, 202 nerovnost — Bernoulliho, 93 — Bonferroniho, 104 - Cauchyho-Schwarzova, 254(7.3.2), 256(cv.4) - Fisherova, 383(13.2.1) neuspořádaná dvojice, 34 nezávislá množina, 64(2.4.1), 323, 333 nezávislé jevy, 314 315 nezávislost, lineární, 405 nezávislý systém množin, 245 nosič, 394 o(.), 87 O(-), 86^ obarvení - grafu, 222(6.8.2) — mapy, 220-231 obdélník latinský, 298 (cv. 6) oblouk, 191(6.2.1) oblouková souvislost, 195 obratlovec, 262 odhad - faktoriálu, 87-92, 93(cv.8) - kombinačního čísla, 94-98 omezená stěna, 202 operace, binární, 402 orientace grafu, 147(cv. 4), 272 orientovaná hrana, 143(4.6.1) orientovaný graf, 143(4.6.1) orientovaný tah, 143 ortogonální latinské čtverce. 295 otec (v kořenovém stromu), 164 P(.), 308(10.2.1) Pn, 369 Pn, 113 V{X), 27 parciální zlomky, 355 párování, 179(cv. 10) Pascalův trojúhelník, 79 perioda funkce, 264(cv. 3) permutace, 72-75 cyklus, 74, 322 — inverze, 75(cv. 4) — levé maximum, 318(10.3.4), 321 - náhodná, 310(10.2.3), 314, 322, 324, 328 - pevný bod, 105, 109(cv.4), 109(cv.5), 322(cv.3) rostoucí úseky, 74(cv. 3) — řád, 74(cv. 2) znaménko, 275, 400 permutační matice, 124(cv. 8) pěstovaný strom, 164 pevný bod permutace, 105, 109(cv.4), 109(cv.5), 322(cv.3) platónská tělesa, 214 počet — binárních stromů, 360-362 dělitelů, 110(cv. 10) — ekvivalencí, 109(cv. 7) — eulerovských množin, 392(13.4.4) - funkcí, 69(3.1.1) — funkcí na, 109(cv. 6) - grafů, 110(cv. 12), 115 neisomorfních, 116 — hran rovinného grafu, 204(6.5.1) — koster, 259-280 --obecného grafu, 268(8.5.1) — s daným skóre, 260(8.2.1) — úplného grafu, viz počet stromů — latinských obdélníků, 298(cv. 6) — monotónních funkcí, 82(cv. 6) — neuspořádaných fc-tic, 83(cv. 14) — podmnožin, 70(3.1.2), 76(3.3.2), 83(cv. 13) — liché velikosti, 71(3.1.3), 80 — prostých funkcí, 71(3.1.4) rozkladů čísla n, 368-375 — rozmístění kuliček, 77, 84(cv. 15) řešení rovnice, 77, 342 — seřazení, 81 - stromů, 259(8.1.1) — neisomorfních, 170(cv. 5), 260 (cv. 1) - triangulací mnohoúhelníka, 84(cv. 19), 363(cv.5) uspořádaných fc-tic, 83(cv. 14) počítání dvěma způsoby, 77, 237-257, 289(cv.5), 329, 380 podgraf, 118(4.2.1) — indukovaný, 118(4.2.1) podmatice, 402 podmínky celočíselnosti, 380(13.1.6) podmnožiny, počet, 70(3.1.2), 76(3.3.2), 83(cv. 13) podposloupnost, 66 podprostor, 405 podtěleso, 403 poloměr grafu, 124(cv. 6) polynom charakteristický, 357 posloupnost — monotónní, 66 — stupňů, viz skóre grafu postulát Bertrandův, 98 potenciál, 147(cv. 5), 394 potenciálový rozdíl, 394 pozitivně definitní matice, 385(cv. 4) pravděpodobnost, 75(cv. 3), 88, 105, HO(cv.ll), 301-330, 337 339, 365-368 pravděpodobnostní prostor - konečný, 308(10.2.1) — nekonečný, 310 pravidelný graf, viz regulární graf pravidelný mnohostěn, 214 prázdná množina, 27 prázdná suma, 28 prázdný součin, 28 Primův algoritmus, viz Jarníkův algoritmus princip - Dirichletův, 333(11.1.2) - duality, 287 — inkluze a exkluze, 99-105 — aplikace, 105 110 — sudosti, 130 - aplikace, 238-244, 422 244(cv. 1) problém — čtyř barev. 221 - Littlcwoodúv-Offordův, 252(cv. 7) — maximální kostry, 178(cv. 2) - minimální kostry, 172(5.3.2) - Sylvesterův, 213(cv. 10) šatnářky, 105-106 --rekurence, 108(cv. 1), 109(cv.2) prohledávání do šířky, 129(cv. 5) procházka náhodná, 366-368 projekce stereografická, 215 projektivní rovina dualita, 287, 293 - konečná, 281-300, 381 - definice, 281(9.1.1), 288(cv.2), 289(cv.5), 382(cv. 1) existence, 289-290 --řád, 285(9.1.4) — konstrukce, 290-293, 296-297 - reálná, 282, 290 prostá funkce, 42(1.5.3) počet, 71(3.1.4) prostor — cyklů, viz prostor kružnic kružnic, 390(13.4.3), 394 — pravděpodobnostní konečný, 308(10.2.1) — nekonečný, 310 — řezů, 395 - vektorový, 404 průměr - aritmetický, 87 — geometrický, 87 grafu, 124(cv.6) — harmonický, 93(cv. 5) Rejstřík průnik, 28 průsečík úrovně k, 325-327, 330(cv. 4) prvek — maximální, 57(2.2.2) — minimální, 57(2.2.2) — nejmenší, 59(2.2.4) — největší, 59(2.2.4) prvočíselná věta, 98(3.5.3) Prúferňv kód, 265 předchůdce bezprostřední, 54 předpoklad indukční, 32 přímka — projektivní roviny, 282(9.1.1) — v nekonečnu, 282 přirozená čísla, 24 QUICKSORT, 327-329 'IZ, 395 R, 24 r(A), 384, 406 r(k.J), 335 racionální čísla, 24 Ramseyova věta, 334(11.2.1) — pro p-tice, 336(cv.6) Ramseyovo číslo, 335 reálná čísla, 24 reálná projektivní rovina, 282, 290 reflexivní relace, 44(1.6.1) regulární graf, 134(cv. 10) regulární matice, 402 rekurence, 357 relace, 36(1.4.2) — acyklická, 56(cv. 2) - antisymetrická, 44(1.6.1) — inverzní, 46 — reflexivní, 44(1.6.1) — rekurentní, 357 Rejstřik 423 — skládání, 38 — symetrická, 44(1.6.1) — transitivní, 44(1.6.1), 75(cv.4) rod grafu, 236(6.9.2) rostoucí úseky permutace, 74(cv. 3) rovina — Fanova, 283 projektivní, viz projektivní rovina rovinné nakreslení, 192(6.2.2) rovinný graf, 187-231, 238, 244(cv. 1) — maximální, 208 — počet hran, 204(6.5.1) skóre, 212(cv. 7) rovnice diferenční, 356-359 rozdíl symetrický, 389 rozklad — čísla n, 368-375 uspořádaný, 368, 374(cv. 1) rozklad (množiny), 49 rozšíření, lineární, 57 rozvoj determinantu, 401 řád — latinského čtverce, 294 — permutace, 74(cv. 2) — projektivní roviny, 285(9.1.4) řada mocninná, 345-347, 354(cv. 10) řádková operace, elementární, 401 řetězec, 60(cv.2), 65(2.4.4), 246 — symetrický, 248 řez, 395 — zlatý, 355, 368 Sn, 106 a} každou na o: řetězců a tyto řetězce napojíme přes prvky z A. 3.1.1. Kódujte dvojici (A, B) zobrazením do množiny {0,1, 2}: prvek x e A dostane 2, x € B \ A dostane 1, a x 0 B 0. 3.1.2(b). První sloupec zvolme jako libovolný nenulový vektor. Druhý sloupec nesmí být násobkem prvního, tím se vylučuje q vektorů. Třetí sloupec nesmí být lineární kombinací prvních dvou, tím se pro něj vylučuje q2 možností (žádné 2 různé lineární kombinace prvních dvou sloupců nedají týž vektor ověřte!); obecně pro i-tý sloupec je qn — ql možností. 3.2.1. (n - 1)!. 3.2.2. Uvažte cykly permutace. Jaký je řád permutace s jediným cyklem délky fc? S dvěma cykly délky fci a k27 3.2.3(a). Ukažte, že napíšeme-li permutaci s fc úseky pozpátku, dostaneme permutaci s n + 1 — fc úseky. 3.2.3(b). Uvažte permutaci čísel {1,2,..., n— 1} s k úseky (v jednořádkovém zápisu), a vložte do ní číslo n na některou z možných n + 1 pozic. Pro kolik pozic bude mít výsledná permutace k + 1 úseků, a pro kolik fc? 3.2.3(c). Obecný vzorec, odvozený Kulérem, je /(n!fc) = E'=o(-l)J'(^-Í)"(T)- 3.2.3(d). E.ozdělte permutace do tříd podle množiny čísel na prvních k + 1 místech. Všechna pořadí prvních fc + 1 čísel jsou stejně pravděpodobná. Která z možných rozestavení prvních k + 1 čísel dávají počáteční úsek délky fc? Pravděpodobnost vyjde k/(k + 1)!. 3.2.4(b). Jsou-li na počátku čísla srovnána podle permutace tt, jednou výměnou sousedů ubude nanejvýš 1 inverze. 3.2.5(b). Kolik z čísel 1,2,..., n je dělitelných p3 pro dané j? Vyjde [n/p\ + [n/p2\ + [n/p3\ +•••. 3.3.2(b). Pravá strana je počet (?• + 2)-tic nezáporných celých čísel řešících rovnici X\ + X2 + • ■ ■ + Xr+2 = n — r. Rozdělte tyto (r + 2)-tice na n — r skupin podle hodnoty Xr+2 a spočítejte počet řešení v každé skupině zvlášť, tím se dostane levá strana. 3.3.3. Upravte fc-tý člen na (r"J(77), (Z) vytkněte. Vyjde O2""'"'-3.3.4(a). Užijte = ±&z\) a vzorec (3.9). 3.3.4(b). Tentokrát k(£) = (fc + !)(*) - (*) = (m + 1)0 - (£). 3.3.5. Buď M nějaká m-prvková množina, N n-prvková. Obě strany počítají počet uspořádaných dvojic (V, Y), kde X C M, Y C N U X, \Y\ = m. Pro levou stranu vybereme napřed X, pak Y, pro pravou nejdřív Y n M, pak Y H N, nakonec X. 3.3.6. Položme ki = f (i + 1) — f (i), i = 0,1,..., n, kde uměle dodefinujeme /(O) = 1, /(n + 1) = n. Hledaný počet je počet celých nezáporných řešení rovnice fco + ■ • 1 + kn = n — 1. 3.3.8. Uvažme fc-tici {ai,..,,, afe), «i < •■• < a*. Přiřaďme jí fc-tici {«,,o2 - l,o3 - 2,.,. ,ak - k + 1}. To je bijekce na ({iA-,£-k+i}^ 3.3.9(c). Počítejte plochu velkého čtverce dvěma způsoby. Jeho strana je 2(1 + 2 + 3 H-----K n). Přitom fc-tá "vrstva" (od středu) má 4fc čtverečků fc x fc. 3.3.11. Postupujte třeba indukcí podle n. 3.3.12(b). Ve vzorci pro binomický koeficient, právě 1 z činitelů v čitateli je dělitelný p. Tedy (™) je dělitelné p právě když tento činitel je dělitelný i p2. 3.3.13(a). Dosaďte postupně do binomické věty x = 1, x = —1, x — i a x = —i (i značí imaginární jednotku) a výsledné rovnice sečtěte. Upravte n-té mocniny pomocí de Moivreova vzorce. Pro hledaný počet vyjde podivuhodná formule 2"~2 t 2"''2 1 cos Ověřte správnost pro malé hodnoty n. 3.3.13(b). Postupujte podobně jako v (a), ale do binomické věty dosazujte za x všechny 3 kořeny rovnice x3 = 1. 3.3.16. Nejdřív rozestavte čarodějnice, tím je určeno 8 možných pozic pro vodníky, vyberte 5 z nich, a nakonec určete pořadí vodníků. 3.3.18. Nejprve zvolte zastoupené státy, pak pro každý určete jednoho ze 2 senátorů. 3.3.19. Vyjděte z trojúhelníku To který má 2 strany na obvodu n-úhclníka, zvolte k němu přiléhající trojúhelník Ti, T2 přiléhající k Ti, .... Pro Tq je n možností, v každém dalším kroku jsou 2 možnosti. Přitom každou triangulaci dostaneme 2x (pro To jsou 2 možnosti). Vyjde n,2n~R (pro n > 4). 3.3.21 (a). Levá strana je počet seřazení n předmětů, fc,; předmětů i-tého druhu. Pravá strana: nejdříve zvolíme druh předmětu na první pozici, pak rozestavíme zbývající předměty. 3.4.3. Napřed upravte všechny funkce na tvar e^n\ 3.4.4. Přímka y = x + 1 je tečnou ke grafů funkce ex v bodě (0,1). Dále funkce ex je konvexní, poněvadž má nezápornou druhou derivaci, a proto nemůže svoji tečnu protínat jinde než v bodě dotyku. 3.4.6(b). Označme A = (xi+x2 + - ■ - + xn_i)/(n-1). Podle AG(n) aplikovaného na čísla xi, ■ ■ ■ ,xn-i a A máme A" — {{x,\ +x2 + - ■ •+xn_1 +A)/n)n > x,\x2 ■ ■ ■ xn-iA, a odtud po úpravě A > (x\ ■ ■ ■ xTi_i )1/(T1_1). 430 Návody ke cvičením 3.4.9. Funkce ln x je konkávni, speciálně každý trojúhelníček s vrcholy v bodech (i, lni), (ř + l,lni) a (i + 1, ln(i + 1)) leží celý pod jejím grafem (nakreslete si). Jeho plocha je (ln(i + 1) - \ni)/2. Proto lnn! < lim + /"lnxdx - \ Ei=iíHi + 1) - M; upravte. 3.4.10. Indukcí podle n. 3.4.11. Dolní odhad: indukcí, dokazujte 2(y/n - \/n - 1) < l/yfň + 1, levou stranu upravte na zlomek se jmenovatelem y/ň + \Jn — 1. Horní odhad podobně. 3.4.12(a). Aproximujte každý zlomek l/i shora a zdola nejbližším zlomkem tvaru l/2fe. 3.5.3(a). Taková prvočísla všechna dělí (2™)- 3.5.3(b). Je-li P součin prvočísel jako v (a), máme log2 P < 2m, ale na druhé straně P > m<2m^> 7r(,,l). Odtud 7r(2m) < 7r(m) + 0(mj lnm). 3.5.3(c). Maximální mocnina p dělící n! je |ra/pj + [n/p2\ +■•■. Použijte vyjádření (2wt) = (2m)!/(m!)2 a vyjádřete rozdíl max. mocnin p pro čitatele i jmenovatele. 3.5.3(d). Podle (c) je 22"/(n + 1) < (2n") < {2n)^2n\ 3.6.2. Postupujte jako ve druhém důkazu principu inkluze a exkluze. tj. uvažte příspěvek jednoho prvku. 3.7.1. Rozdělte všechny permutace do tříd podle počtu pevných bodů, vyjádřete počet permutací v každé třídě pomocí funkce š(&). 3.7.2(a). První pán si vymění klobouk, který dostal, za svůj klobouk, a odejde. Buď má ten, s nímž první pán měnil, taky svůj klobouk - a odjede -nebo nemá svůj klobouk, a máme situaci s n — 1 pány. 3.7.4. Zvolte pevný bod, zbytek je permutace bez pevného bodu, užijte výsledek problému šatnářky. 3.7.6(c). Zobrazujte na množinu {1, 2,... ,ra}; nechť A, je množina zobrazení, která nic nezobrazí na prvek i. Použijte princip inkluze a exkluze na určení \Ai U ... U Am\, tj. počtu špatných zobrazení. Pro m = n. musíme dostat nl. 3.7.6(d). Zobrazení / množiny N na m-prvkovou množinu definuje ekvivalenci na Ar s m třídami. Ukažte, že každá z ekvivalencí na Ar s m třídami je definována právě m! takovými zobrazeními. 3.7.7(a). Můžete použít návodu k (d) předchozího cvičení a výsledku (c) onoho cvičení. Návody ke cvičením 431 3.7.7(b). Výsledek (a) sčítáme přes všechna k; vyjde ľ* „,!:>:; „< >><(>• ,,r. 3.7.7(c). Ve vyjádření z (b) pište i místo k - j, nechte k formálně probíhat do oo, a zaměňte pořadí sčítání podle k a j. 3.7.10(b). Každý člen součinu rozepište jako 1 +pi + p2 H----+ pf*. 3.7.10(c). Buď n = 2"n[=1p"% p, lichá prvočísla. Podle (b) musí být 2n = tU(PT +P?-1 + ■■■ + !)., t = 2*+l - 1. Po vydělení výrazem tT\pf máme 1 + 1/t = 0(1 + l/pi + ■■■ + l/Pi*). Přitom některé Pi dělí t. Aby pravá strana nebyla větší než levá, musí být r = 1, t = pi. 3.7.11(a). Pro každé prvočíslo < N, nechť A, je množina dvojic (m, n) takových, žc pAn ap.;|m. Použijte princip inkluze a exkluze na určení počtu špatných dvojic. 3.7.12(a). Definujte At jako množinu všech grafů, v nichž vrchol i je izolovaný, počítejte \Ai U ... U An\. 3.7.12(b). Zvolte izolované vrcholy, na zbytek užijte (a). 3.7.13. Definujte A, jako množinu těch rozsazení, kdy i-tý pár sedí vedle sebe. 4.1.6(a). Protipříklad je třeba graf vpravo na druhém obrázku sekce 4.4. 4.1.7. Jak sestrojit 2""/2 °(" los»> neisomorfních (téměř tolik jako se dostane počítáním uvedeným v textu): Buď n dost velké, a buď m nejmenší splňující 2"' > n. Pojmenujme vrcholy a, b, c, d, u0, Ui, ...,um i a v0, in, vn-m- 5; pišme U = {u0,..., «,,„_!}, V = {v0,w„..m_5}. Spojme a s 6, a b spojíme s c, s d a se všemi vrcholy z U. Na U zvolme nějaký asymetrický graf, např. cestu «o,«i,...,«tr,-i kde u0 je ještě propojen s u:i. Vrcholy c, d spojme se všemi vrcholy V (takže teď a je jediný vrchol stupně 1). Na V zvolme libovolný graf, a konečně každý vrchol Vi G V spojme s vrcholy Uj1, Uj. , kde 0 < ji < j2 < ... < jk < m - 1 jsou (jednoznačně určená) čísla pro něž platí 2-" + 2:n + ■ ■ ■ + 2i>< — i (to odpovídá dvojkovému zápisu čísla i). Lze snadno ukázat, že pro dva různé grafy na V jsou výsledné grafy neisomorfní, a máme tedy aspoň 2^ 1 ) neisomorfních grafů na n vrcholoch. 4.2.1. Nejvíce hran zřejmě dostaneme pro sjednocení k úplných grafů; jsou-li jejich velikosti m,...,nk, J2ni = K potřebujeme maximalizovat výraz (n2') + ••• + C^). Ukažte, že pokud např. n\ > n2 > 1, zmenšením nx a zvětšením n2 o 1 hodnota neklesne; maximum je tedy pro m = n — k + 1 a ostatní m — l. 4.2.3. Neobsahujc-li lichou kružnici, předpokládejte, že je souvislý, a označujte vrcholy následujícím algoritmem: libovolný vrchol označte +1; dále 432 Návody kc cvičením Návody ke cvičením 433 kdykoli je v vrchol sousedící s vrcholem označeným x, označte v —x. Ukažte, že takto se postupně označí všechny vrcholy a žádné 2 stejně označené vrcholy ncsousedí. 4.2.4(a). Je-li v vrchol stupně > 1, musí být spojen se všemi vrcholy své komponenty. Každá komponenta musí být buď K3, nebo KíiU. 4.2.4(b). Uvažme jen souvislé grafy G. Případ kdy max. stupeň je < 2 je snadný; předpokládejme že max. stupeň > 3, a uvažme vrchol v max. stupně. Podle předchozího cvičení musí být graf Gv indukovaný na sousedech v být disjunktním sjednocením trojúhelníků a hvězd (=grafů tvaru Ki,n)-Diskusí možných případů vyjdou následující možnosti pro G: libovolný graf na < 4 vrcholech, dvě hvězdy spojené hranou za středy, trojúhelník s několika hranami přivěšenými k jednomu vrcholu, a K\.n jehož všechny vrcholy jsou spojeny s jedním dalším vrcholem. 4.2.6. Průměr: ma,x{dG(u,v); u,v e V(G)}. Poloměr: min,,eV(G) maxuev(g) dG(u, v). 4.3.2. Graf zadejte seznamem sousedů pro každý vrchol. Uchovávejte vrcholy množiny A spolu s hodnotami d(v) ve vhodné datové struktuře, která umožňuje rychle najít a vymazat vrchol s minimálním d(v) takovou strukturou je např. tzv. halda (heap). 4.3.4. Pro každý vrchol v uchovávejte vrchol p(v), z nějž se do v přišlo. 4.3.5 (b). Algoritmus je totožný s Dijkstrovým algoritmem (v naší formulaci) pro ohodnocení w = 1. 4.3.6. Jako v textu se ukáže, že vždy platí d(v) > dG^,(s, v). Pro spor, nechť existuje v pro nějž d(v) > dG,w{$íV) v okamžiku, kdy opustil A. V tomto okamžiku uvažte poslední vrchol u na nejkratší cestě z s do v, který není v A, a vrchol u\ následující na této cestě po u (ve směru od s). Protože u 0 .4, je d(u) = dG.w(s,u), a d(ui) < d(ii) + w({u,ui}) = dGlW(s,Ui). Dále d(ui) + h(ui) > d(v) + h(v) > iG,m(s,v) + h(v) (protože ui jc ještě v A), odtud dc,w(s,v) — dGiW(s,ui) < h(u) - h(v), a to dává spor s podmínkou pro /;.. 4.4.1. Např.: první graf neobsahuje žádnou kružnici délky 4, druhý 2 takové kružnice, třetí 5 kružnic délky 4. 4.4.7(a). Ne; musel by mít skóre (0,1,..., n — 1), ale má-li vrchol spojený se všemi ostatními nemůže mít zároveň vrchol stupně 0. 4.4.7(b). Pro všechna n > 2. Indukcí konstruujeme grafy Gn se skóre obsahujícím čísla 0,1,..., n - 2, v němž se opakuje [(n - l)/2j: G-2 jsou 2 izolované vrcholy, Gn \-1 vznikne přidáním izolovaného vrcholu k doplňku grafu Gn {doplněk grafu G = {V, E) je graf (U, Q \ E)). 4.4.8. Uvažte obarvení s nejmenším možným počtem jednobarevných hran. 4.4.9. Uvažte cestu maximální možné délky v G. Její koncový vrchol je spojen aspoň se dvěma dalšími vrcholy této cesty; to dá hledaný podgraf. 4.4.10. Zřejmě musí platit k < n — 1, kn sudé. To je taky postačující; např. V = {0,. ...n- 1}, E = \{iJ};i-j{modn) e S}, kde S = {1, -1, 2, -2,..., k/2, -k/2} pro k sudé, S = {1,-1,(fc-l)/2, -(k-l)/2,n/2} pro k liché, n sudé. 4.4.13. Stačí ukázat, že je-li {u,v} e E (G), pak degG(u) = degG(v). Buď U množina všech sousedů u mimo v, a V množina všech sousedů v mimo u. Každý vrchol z U musí mít 4 sousedy ve V, a každý vrchol z V má 4 sousedy v U. Proto \U\ = \V\ (počítání hran mezi U a V dvěma způsoby). 4.4.14. Sporem, nechť žádné 2 takové vrcholy nejsou. Pro libovolný vrchol v se podíváme na podgraf indukovaný jeho sousedy; v něm musí být všechny stupně liché, a proto má v sudý stupeň. Počítejme sledy délky 2 začínající ve v. Celkem je jich sudý počet. Přitom sudý počet se jich vrací zpátky do v, ale každýr jiný vrchol dosáhneme lichým počtem sledů, proto je počet vrcholů různých od v sudý - spor. 4.4.15(b). Uvažte trojúhelník xyz (existující podle (a)), a vyjádřete pomocí principu inkluzc a exkluze počet vrcholů spojených aspoň s jedním z vrcholů x, y, z. 4.7.2(b). Např. v Kn+1 podrozděltc každou hranu. 4.7.2(c). Vezměte strom T, v němž každý vrchol mimo listů má stupeň n, a kde všechny listy mají od kořene vzdálenost n (úplný n-ární strom). Udělejte jeho kopii Ti, a ztotožněte každý list s jeho vzorem v T. 4.7.3(a). Ano. 4.7.3(b). Ano. 4.7.4. Např. indukcí pomocí lemmatu o vytváření 2-souvislých grafů přilepováním uší. 5.1.5. Máme 2n - 2 = 2\E(T)\ = £„6v(T) degT(u) = Eľ=i *]V Úpravou plyne žádaná rovnost. 5.1.6. (ii)=^(ii): indukcí podle n; buď n > 3, (di,...,dn) splňují (ii): pak existuje nějaké di = 1 a nějaké d:j > 1 (např. dn = 1, dn-\ > 1). Aplikujeme indukční předpoklad na (dL,..., dn_2,díl-i - 1) a připojíme koncový vrchol za vrchol číslo n — 1. 5.2.4. Rozdělte posloupnosti do dvou skupin: začínající 0 a začínající 1, a obě skupiny setřiďte rekurzivně. Při skutečném programování algoritmu se 434 Návody kc cvičením posloupnosti ve skutečnosti nepřemisťují, pracuje se jen s vhodnými ukazateli na ně. 5.2.5. Kód stromu na n vrcholech má délku 2n. Existuje tedy nejvýš 4" kódů. 5.2.6. Indukcí podle |V|. 5.3.2. Důkaz správnosti Kruskalova algoritmu nevyužívá nikde nezápornosti ohodnocení w. Proto jej lze použít na ohodnocení — w, a tím se najde maximální kostra. 5.3.7(a). Pro vrchol v stupně > 7 existují hrany [v,u\} a {v,u2} svírající úhel < 60°. Jednu z nich lze nahradit hranou {iti,M2j- 5.3.8. Jedno řešení: rozdělte jednotkový čtverec na síť yfň, x sfn. čtverečků. Očíslujte čtverečky 1,2,..., n tak, že po sobě jdoucí čtverečky vždy sousedí (např. jako když se oře pole). Spojte cestou nejdřív všechny body z V ve čtverečku 1, potom ve čtverečku 2, atd. Jiné řešení: Dokažte, že existují 2 body se vzdáleností 0(«-1/2). Vymažte jeden z nich, sestrojte kostru indukcí, a připojte vymazaný bod. 5.3.9. Dokažte, že jeden vrchol se přeznačuje nejvýš (log2 n)-krát. 5.3.10(a). Buď Em maximální párování, Eh párování nalezené hladovým algoritmem, a každé hraně e £ Em přiřaďme první z hran Eh, která ji protíná. Každá é £ Eh je tak přiřazena nejvýš 2 hranám ei,e2 £ Em, w(e.x), w(c.2) < w(č). 5.3.11(b). Buďte ei,... ,ek hrany vybrané hladovým algoritmem, ěi,..., ěť hrany nějakého optimálního pokrytí, abuďfci = ein(eiU.. .Uej_i) = 0}|, a podobně ix = ěj D (ěi U ... U ě,;_i) = 0}|. Máme |V| = k + fc3 =t + h. Klíčové pozorování: v krocích hladového algoritmu pro i > k\ už musel být aspoň 1 bod z každé hrany ě7 přispívající k t\ pokryt, takže k\ > ty/2. Odtud k = t + h - ki < t + íi/2 < |í. 5.3.12. Buď V = {1, 2,..., 2k+2 - 2} U {aua2, h, b2,..., bk}. Vrchol aa je spojen s 1,3,5,..., a2 s 2,4,6,..., bi s 2% - 1,2\ ..., 22+1 - 2, a ai,a2 jsou navíc spojeny se všemi bt. Hladový algoritmus vybere všechny 6», optimální je {ai,a2}- 5.4.5(a). Ukažte, že každá komponenta po i-tém kroku má > 2' vrcholů. 5.4.5(b). Pro každou komponentu udržujte seznam hran z ní vycházejících. V každé fázi můžete každý seznam projít a najít v něm hranu minimální váhy. 6.1.l(a). Obr. 6.1. iVávody ke cvičením 435 6.1.1(b). Grafy Gi, G2 jako v (a) se dají slepit dohromady. Například se dá odstranit hrana {a, b} sousedící s vnější stěnou v Gi a hrana {c, d] sousedící s vnější stěnou v G2 a přidat hrany {a,c} a {b, d). 6.1.2. Indukcí podle počtu hran. Uvažme v nakreslení nějaký vrchol v stupně aspoň 4, a 2 sousední hrany z něj vycházející, a pokud možno zasahující do různých komponent grafu G — v. Nahraďte je jedinou hranou spojující jejich druhé konce. (Je výhodné připustit i grafy s násobnými hranami.) 6.5.6. Nejprve je potřeba vyřešit případ, kdy G není 2-souvislý. Pro 2-souvislý G dokažte, že do stěny s > 6 stranami lze přidat diagonálu. Přitom je třeba dávat pozor, aby nevznikl trojúhelník. Asi bude potřeba rozebrat několik případů. 6.5.9(a). Řekneme, že puntík, z něhož vychází k < 3 hran, přispívá 3 — k stupni volnosti. Na začátku je 3n stupňů volnosti, na konci aspoň 1, každým tahem 1 ubude. 6.5.9(c). Ukažte, že na konci hry čouhá do každé stěny přesně jedno rameno křížku (nevyužité). Počet volných ramen se libovolném tahem zachovává, takže na konci je 4rt stěn. Přitom n — 1 tahů spojí dvě komponenty do nové, a zbývající tahy každý zvyšuje počet stěn o 1. Na začátku byla 1 stěna, celkem tedy 5n — 2 tahů. 6.5.10(a). Platí e — v + s — 1 - dokazujte indukcí dle 11, při vkládání nové přímky rozlišujte nově vytvořené průsečíky a již existující průsečíky. 6.5.10(c). Z (b) odvoďte e > 3s — n. Je-li 04 počet přímek procházejících /'-tým vrcholem, spočítá se di = e — n (každá hrana přispěje dvěma konci až na 2n nekonečných hran). Dosazením za s z (a) vyjde — 3v — 3. 6.5.11. Předpokládejme souvislost. Nechť červenomodrý roh je dvojice (S. v), kde S je stčna a v vrchol na její hranici takový, že obcházíme-li hranici stěny S po směru hodinových ručiček (pro neomezenou stěnu proti směru), vrcholu v předchází červená hrana a následuje po něm modrá hrana. Počítáním dvěma způsoby a pomocí Eulerova vzorce ukažte, že existuje vrchol s nejvýš jedním červenomodrým rohem. 6.7.2. Na každé pětici vrcholů je indukován K^, a nějaké 2 jeho hrany se musí protínat: tím dostáváme (™) protínajících se dvojic. Přitom dané 2 protínající se hrany se účastní v n — 4 pěticích, takže celkem je aspoň (™) /(n—4) křížících se dvojic. 6.8.2. Postupujte indukcí podle počtu vrcholil. V daném grafu odstraňte vrchol s nejmenším stupněm, obarvěte zbytek a vrchol vraťte zpět. 6.8.3. Podgraf vnějškově rovinného grafu je zase vnějškově rovinný. Podle cvičení 2 stačí tedy ukázat, že vnějškově rovinný graf má vždycky vrchol 436 Návody kc cvičením Návody ke cvičením 437 stupně < 2. To jde z Eulcrova vzorec s využitím toho. že 1 stěna sousedí s aspoň n hranami. 6.8.4. Ukažte, že ô (G) < 3 a použijte cvičení 2. 6.8.6(b). Dokonce stačí vzít i strom. 6.8.6(c). Přidejte dostatečně mnoho listů a upravte stupně. 6.8.8(a). Indukcí podle počtu hran. Uvažte stěnu S a množinu hran Es, které leží na její hranici. Ukažte, že stupně všech vrcholů grafu (V, Ep) jsou sudé. Vymažte hrany Es, obarvěte graf podle indukčního předpokladu, vraťte Es zpět a přebarvěte stěnu S druhou barvou. 6.8.8(b). Obarvěte stěny 2 barvami. Počet hran se dá počítat jako součet obvodů stěn jedné barvy i jako součet obvodů stěn druhé barvy. Jeden způsob počítání ale dá číslo dělitelné 3, druhý ne. 6.8.10(b). Za jednu podmnožinu vrcholů zvolte k vrcholů vi,...,vk, kde pro ví je dán seznam L{vi) - {k(i - 1) + \ ,k(i - 1) + 2,..., ki}. Za každou množinu S obsahující právě jeden prvek z každého L(vA dosaďte do druhé podmnožiny vrchol v s se seznamem L(vs) — S. 6.8.11. Při indukčním kroku je třeba rozlišit dva případy. Pokud existuje hrana {«,;, vA s Vj a Vj na kružnici C, ale nikoli sousedícími, rozdělte G podél této hrany. Jinak odstraňte Vk a vhodně upravte seznamy jeho sousedů. 7.1.1. Definujte graf na stěnách přesně jako v důkazu Spernerova lemmatu. 7.1.2(a). Napodobte důkaz rovinné verze. Spojujte hranou malé čtyřstěny přes stěnu očíslovanou 1,2,3, a užijte rovinné verze na důkaz toho, že stupeň vnějšího vrcholu je lichý. 7.1.3. Názorné řešení představte si 2 turisty v týž den, jeden vystupuje, druhý sestupuje. 7.1.4(b). Zařiďte, aby z a do c bylo podstatně dále než z b do d. 7.1.4(c). Sporem. Kdyby měl B vyhrávající strategii, A bude ignorovat svůj první tah, tím se octne v situaci B (jedno zabrané políčko navíc z prvního tahu může jen pomoci) a použije jeho vyhrávající strategii. 7.2.4. Nezávislý množinový systém M splňuje X^/tA* (|Á'/|) 1 = l' Proto množiny nejvčtšího systému mají všechny velikost [n/2\ nebo [n/2] (pro n sudé jsme tím hotovi). Ukažte, že obsahuje-li M t množin velikosti |n/2j a 0 < t < (in"2j)i potom má < (L„"2j) ~ f' množin velikosti [n/2]. 7.2.5. Pro automorfismus h definujte zobrazení / : X —> X, /(ar) je y takové, že h({x}) = {y}. Ukažte h = f* (z toho je vidět, že je n! automorfismů). 7.2.7. Aplikujte Spernerovu větu na množinový systém {{i;ei = l};žZeiaie(-l,l)}. 7.2.8. Buď n = pip2 .. .p„, rozklad na prvočinitele. Děliteli d = Piípl., .. .pik přiřaďte podmnožinu Md = {iu .... ik} C {1,2,..., n}; pak dí\d2 Md, C M,i2. Užijte Spernerovy věty. 7.3.1. Napodobte důkaz pro if2,2, jediný rozdíl je, že jeden vrchol v přispěje do M nejvýš t — 1 prvky. 7.3.2. Uvažte graf incidence s množinou vrcholů Iu{l, 2,..., n}, kde vrcholy x € X a i G {1, 2,..., n} jsou spojeny, právě když x € Sj. Ten neobsahuje K2.2; tedy má 0(n3/2) hran. 7.3.6. Uvažte funkci /(x), rovnou 0 pro x < 2 a x(x - l)(x - 2) pro x > 2, ta je konvexní. 8.1.1. Jako pro neisomorfní grafy v 4.1; využijte odhad ni z věty 3.4.4. 8.1.2. Počítejte kostry, obsahující danou hranu; tento počet je pro všechny hrany stejný, přitom každá kostra obsahuje n - 1 hran. 8.1.3. Z každé kostry Kn můžeme n — 1 způsoby vyjmout hranu, tím dostaneme dvojici stromů. Obráceně, z kostry na A:-bodové podmnožině a kostry na doplňku této podmnožiny můžeme udělat kostru celého Kn přidáním hrany, právě k(n — k) způsoby. 8.1.4. Vyjde nm_1mn_1, nejsnáze možná pomocí determinantu. 8.2.1 (a). Pro liché n 0. Pro n sudé je n/2 + 1 listů a n/2 - 1 vrcholů stupně 3 (indukcí). Sčítáme tedy výraz (n - 2)!/2"/2"1 přes všechny volby (dl,.. .,dn), di e {1,3}, £di = 2n - 2. Substitucí h = (dt - l)/2 vidíme, že počet sčítanců je roven počtu (n/2 - l)-prvkových podmnožin n-prvkové množiny, takže odpověď je (n - 2)!(n/2-i)^n^2+1 ■ 8.2.l(b). Asi nejlépe přes vytvořující funkce (viz kapitola 12). Odpověď je koeficient při x2"-'1 ve výrazu (n - 2)!(x + x2 + x3/2)n, který se najde podle multinomické věty (podobně se dá řešit i (a)). 8.3.3. Představte si, žc na grafu zobrazení vyšlete z bodu i dva chodce jeden projde jednu šipku za minutu, druhý dvě šipky. Rozmyslete, kdy se budou potkávat. 8.5.1(a). Q má nulový součet řádek. 8.5.1(b). n(G) > 0, proto detQu 0 podle věty o počtu koster. 8.5.1(c). Součet řádků matice Q přes každou komponentu je nulový, tedy prostor generovaný řádky má dimenzi < n — 1. 438 Návody ke cvičením 8.5.1(d). Jádro obsahuje (1,1...., 1), protože součet řádkuje nulový, a podle (b) je jádro Q jednodimenzionální. 8.5.1(e). Součin i-tého řádku Q a í-tého sloupce Q* je rozvoj det Q podle i-tcho řádku, užijte det Q = 0. Ostatní pozice součinu jsou rozvojem determinantu matice, v níž se 1 řádek opakuje dvakrát, tedy také 0. 8.5.3. Na jednu implikaci stačí spočítat determinant matice incidence pro kružnici liché délky (protože každý ne-bipartitní graf obsahuje kružnici liché délky). Pro bipartitní G se požadovaná vlastnost M dá dokázat indukcí, podobne jako jsme dokazovali lemma 8.5.3. 9.1.1. Viz cvičení 3. 9.1.2. Ukažte, že 2 body z P1 \ P2 a 2 body z P2 \ P] tvoří dohromady konfiguraci C jako v (PO). 9.1.3. Možnosti: V = {X}, V = {X, {a}}, V = {X \ {a}} U {{a, x}; x G X \ {a}}, kde a G V je nějaký bod (při důkazu se dá využít cvičení 2). 9.1.5(a). Jedna dvojice je nejvýš v jedné množině. Jedna množina pokrývá (™2 1) dvojic, celkový počet pokrytých dvojic vyjde shodný jako počet všech dvojic, každá dvojice je tedy pokryta nějakou množinou. 9.1.5(b). Kdyby jich bylo více, mají dohromady více než n2 + n + 1 bodů. 9.1.5(c). Počítejte dvěma způsoby dvojice (x,P), x G P. Sčítáním napřed přes množiny je vidět, že jich je (n+l)|í>|, kdyby nějaký bod byl v méně než n + 1 množinách, vzhledem k (b) dostaneme méně než (n + 1)|V| dvojic. 9.1.5(d). Uvažme nějakou množinu P, v každém z jejích n + 1 bodů ji protíná n dalších přímek, celkem n + n + í přímek, žádná neprotínající P už nezbývá. 9.3.4(a). K daným t ortogonálním latinským čtvercům můžeme přidat jeden čtverec mající v i-tém řádku všude i, a jeden čtverec mající v i-tém sloupci všude i. 9.3.4(b). Aby byl osvobozený čtverec ortogonální k jinému, musí obsahovat každé i G {1,2,.... n} právě nx. Permutujte políčka daných L + 2 ortogonálních osvobozených čtverců (všechny čtverce touž permutací) tak, aby první čtverec měl v ž-tém řádku samá i, i = 1, ...,n. Potom ještě permutujte uvnitř každého řádku (zase všechny čtverce stejně) tak, aby druhý čtverec měl v j-tém sloupci samá j. Ověřte, že ortogonalita se neporušila a zbývajících t čtverců je latinských. 9.3.6. Hledaný počet je n!x počet permutací bez pevného bodu. 10.1.1. Kódujte možné průjezdy vagónů kolejištěm, např. „vagón z A na I, vagón z A na C, vagón z C na II,..." (stačí vždy uvést z které koleje Návody ke cvičením 439 na kterou se v daném kroku přesunuje, který vagón je jasné z momentální pozice). Existuje tedy nanejvýš Cn možných kódů (pro vhodnou konstantu C). takže vznikne nejvýš Cn různých pořadí na koleji B, což jc pro velká n méně než n\. 10.1.2(a). Např. indukcí podle n - funkce n proměnných definuje dvě funkce n — 1 proměnných, jednu pro xn = 0 a jednu pro xn = 1. 10.1.4. Každé vážení má 3 možné výsledky, 3 váženími lze tedy rozlišit maximálně 3 možností. 10.2.2. Pro nesouvislý graf existuje vlastní podmnožina A vrcholů taková, že mezi A a jejím doplňkem nejsou hrany. Spočtěte pravděpodobnost tohoto jevu pro pevnou A, pak sčítejte přes všechny A. 10.2.5(b). Nahradíme-li některé z A; jejich doplňky, máme pořád soubor nezávislých jevů, a průnik těchto jevů má nenulovou pravděpodobnost. Takto se vyrobí 2" disjunktních neprázdných jevů. 10.2.7. Je to § (nechť děti jsou A a B; 3 stejně pravděpodobné možné případy: A-=kluk, B=kluk; A=kluk, B-holka A-^holka, B=kluk). 10.3.2. Ukažte 0 < E((/ - E/)2) = E(/2) - (E/)2. 10.3.3. Použijte indikátorů; nechť Ai jc jev Kw(i) = i". Vyjde E/ = 1. 10.3.4(a). Definujte Xi jako indikátor jevu „jednička je v cyklu délky ?"; ukažte že P(Xi = 1) = 10.3.4(b). Hledaný počet je roven .=1 Xijf kde Xy je indikátor „j je v cyklu délky i". 10.3.5. Počítejte raději rozhraní mezi sériemi. Pravděpodobnost, že na daném místě bude rozhraní, je \. 10.4.4. Na úrovni 0 jsou jen 2 špice. Počítejte dvěma způsoby střední hodnotu počtu špic na úrovni 0 pro náhodnou podmnožinu R C L. 12.1.3. Abychom dostali člen xky .. .x^1 při roznásobování n závorek, musíme zvolit ki závorek z nichž vybereme Xi, ..., km závorek z nichž vybereme xrH. Počet možností je právě multinomický koeficient. 12.1.5. Vyjděte z rovnosti (1 - ,t)"(1 + x)n = (1 - x2)n. 12.2.6(a). Vytvořující funkce je 1/((1 - x)(l - x2)(l - x5)). 12.2.7(d). Výsledek: (-l)m{nmL). 12.2.9(a). Pro spojitost potřebujeme dokázat, žc pro xo G [0,^) je \imx^Xo \a(x) — a(x0)\ = 0. Užijte 14 - x<\ < \x0 - x|(4_1 +4-2x H----+ xi_1) < \x-xQ\iml-\ 110 Návody ke cvičením kde m = max (.t, Xq). 12.2.9(c). Třeba ať = 1/i2. 12.2.10(a). Napřed indukcí ukažte, že každá derivace funkce / v bodě x ý= 0 je tvaru R(x)e~1^x , kde R(x) jc podíl dvou mnohočlenů. Pak indukcí odvoďte podle definice derivace, že všechny derivace v 0 jsou 0. 12.2.10(b). Koeficienty mocninné řady se dají vyjádřit, pomocí derivací, musely by tedy být všechny nulové. 12.3.1. Nechť an, resp. bn je počet takových posloupností končících 1, resp. 0. Odvoďte rekurentní vzorce pro an a bn. Vyjdou Fibonacciho čísla. 12.3.4. Uvažte posloupnost bn = log2a„. 12.3.6. Označme un počet takových posloupností začínajících a nebo b, a vn počet takových posloupností začínajících c nebo d. Vyjdou rekurence Un = un-i+2wn-ii vn = 2m„-i + 2ii„„i. Napište odpovídající rovnice pro vytvořující funkce u(x) a v(x), vyřešte a spočítejte koeficienty. Vyjde un + vn = ((VÍ7 + l)/4>/Í7)((3 + v/17)/2)"+1 + ((vTŤ- 1)/4VT7)((3 - v/Í7)/2)n+1. 12.3.8(b). Ukažte, že posloupnosti, jejichž j-tý člen je 1 a ostatní členy mezi 2/0, • • •! Vk-i Jsou nulové, pro j = 0,1,..., k — 1 tvoří bázi. 12.3.8(c). Aby se ukázala lineární nezávislost, stačí např. dokázat, že vektory tvořené prvními k členy jsou lineárně nezávislé. Na to se dá použít kritérium pomocí determinantu, a vede to na tzv. Vandermondův determinant probíraný v lineární algebře. 12.3.8(e). Asi nejjednodušší metoda zde je pomocí rychlosti růstu jednotlivých posloupností. Kdyby byly posloupnosti lineárně závislé, šlo by nejrychleji rostoucí z nich vyjádřit jako lineární kombinaci pomaleji rostoucích, což není možné. Potíž v tomto přístupu nastane, má-li několik různých komplexních kořenů stejnou absolutní hodnotu; tento případ se dá řešit zvlášť např. pomocí determinantu jako v návodu k (c). 12.4.2(a). i2:). 12.4.2(b). Cesta, která nikdy nejde pod diagonálu, kóduje binární strom s n vrcholy např. takto: rozdělte cestu na 2 části v bodě, kde poprvé dosáhne diagonály. Od první části odeberte první a poslední úsek, druhou nechte beze změny. Obě části pak rekurzivně kódují levý a pravý podstrom (přitom cesta s 0 úseky kóduje prázdný strom. 12.4.2(c). Zaveďme souřadnice: .4 je (0,0), B je (n, n). Nastavíme šachovnici o jeden sloupec vpravo. Ukažte, že cesty, které zasahují pod diagonálu, se dají vzájemně jednoznačně přiřadit cestám z A do bodu B\ = (n +1, n — 1) Návody kc cvičením 441 dojděte po cestě až na konec prvního úseku po prvním překročení diagonály, a zbytek cesty překlopte symetricky podle přímky y = x — 1, 12.4.3. Najděte korespondenci s cestami nejdoucími pod diagonálu. 12.4.6(b). c2n+i = bn; bijekce mezi pěstovanými stromy jako ve cvičení a binárními stromy uvažovanými v textu se dostane smazáním všech koncových vrcholů pěstovaného stromu. 12.4.7(a). Vyjde tn = bn.1, 12.4.8. Starý strom je buď samotný kořen, nebo vznikne připojením nějakých k pěstovaných stromů, každý aspoň se dvěma vrcholy, kc kořeni. Odtud s(x) = x + .'/;/(1 -t(x) +x). 12.6.1(a). Buď cii počet cest začínajících via vstupujících poprvé do 0 po i tazích. Hledaná pravděpodobnost jc a(|). Odvoďte vztah a(x) = x + xa(x)2. Hodnotu a, lze též explicitně spočítat, např. pomocí Catalanových čísel. 12.7.1(a). Takový uspořádaný rozklad můžeme zakódovat rozdělením čísel 1,2,..., n do k souvislých úseků. Vyrobte (k - l)-prvkovou podmnožinu množiny {1, 2,.... n - 1} z čísel, která jsou poslední ve svém úseku (přitom se ignoruje poslední úsek). 12.7.3(a). (1 + x)(l + x2)... (1 + xn). 13.1.l(b). V podstatě duální úloha ke cvičení 9.1.5. 13.2.2. Každý řádek matice AB je lineární kombinací řádků matice B (koeficienty jsou dány odpovídajícím řádkem A), proto r(AB) < r(B). 13.2.3. Rcgularita čtvercové matice znamená totéž jako nenulovost determinantu, a definice determinantu nezávisí na tom, nad jakým tělesem pracujeme. Hodnost se dá vyjádřit pomocí existence regulárních podmatic. 13.2.4(a). Kdyby měla hodnost < n, má soustava Bx = 0 nenulové řešení, a takové řešení dá xTBx = 0. 13.2.4(b). B je součtem diagonální matice D s kladnými prvky na diagonále a matice L ze samých A > 0. Pro každé nenulové x € RĽ platí x'ľDx > 0 a xTLx > 0. 13.2.6(a). Je-li A matice incidence systému, potom ATA je součtem matice Q ze samých q a diagonální matice D, jejíž diagonální prvky jsou \Ci\-q > 0 (za předpokladu |Cj| > q který můžeme udělat). Proto je A' A pozitivně definitní a tudíž regulární. 13.2.6(b). V situaci Fisherovy nerovnosti, uvažte množinový systém duální k (V, B), a aplikujte na něj část (a). 442 Návody ke cvičením 13.3.1(b). Dokážte indukcí podle k, že je-li E sjednocení množin hran k bipartitních grafů na množine vrcholu {1, 2,..., n\, potom existuje podmnožina aspoň \n/2k~\ vrcholů, na níž není žádná hrana z E. Kapitoly z diskrétní matematiky prof. RNDr. Jiří Matoušek, DrSc. prof. RNDr. Jaroslav Nešetřil, DrSc. Vydala Univerzita Karlova v Praze Nakladatelství Karolinum, Ovocný trh 3, Praha 1 Praha 2009 Prorektor-editor prof. PhDr. Mojmír Horyna Obálku s použitím obrazů Jiřího Načeradského a Jaroslava Nešetřila navrhla Kateřina Řezáčova Z předloh připravených autory v systému I^TgX vytiskla tiskárna PB tisk, Příbram čtvrté, upravené a doplněné vydaní ISBN 978-80-246-1740-4 KAPITOLY Z DISKRÉTNÍ MATEMATIKY jsou úvodní učebnicí kombinatoriky a teorie grafů určenou zejména posluchačům úvodních přednášek z diskrétní matematiky. Některé části je možno použít i v navazujících a pokročilejších kurzech. Kniha je napsána s cílem podpořit zájem o matematiku a zdůrazňuje aktivní a problémově orientovaný přístup k látce. Je doprovázena 373 cvičeními rozličné obtížnosti, z nichž mnoho je opatřeno stručnými návody k řešení. Text předpokládá pouze znalosti na úrovni střední školy. Rozsáhlá úvodní kapitola zavádí či připomíná obecné matematické pojmy a postupy uvažování. Hlavní témata: uspořádání, kombinatorické počítání, asymptotické odhady, teorie grafů, pravděpodobnostní metoda, souvislosti kombinatoriky s lineární algebrou a geometrií. Kniha vznikla z přednášek autoru na Matematicko-tyzikální fakultě UK. Toto ie čtvrté rozšířené a doplněné vydání. Kniha vyšla též anglicky (Oxford University Press), německy, japonsky, francouzsky (Springer Verlag), španělsky (Editorial Reverte) a další cizojazyčná vydání se připravují. Autori jsou zaměstnáni na Katedře aplikované matematiky Matematicko-tyzikální fakulty Univerzity Karlovy v Praze a pracují v oblasti matematiky a teoretické informatiky. JIŘÍ MATOUŠEK je profesorem informatiky a dosud publikoval pět učebnic a přes 100 vědeckých článků, převážně v kombinatorice, kombinatorické geometrii a složitosti geometrických algoritmů. JAROSLAV NEŠETŘIL je profesorem matematiky. Napsal několik knih a pres 250 vědeckých článku, hlavně v kombinatorice, teorii grafů a algebře. orávali 1 V it/ m í 7 '> Iři Matoušek • Jaroslav Nešetřil 2610434082 z Diskrétní matematiky 2610434082