Domovská stránka Jiřího Kalvody

KG1 Jiří Kalvoda: Cvičení 8

Also available as: PDF Markdown

Informace k cvičení jsou na https://kam.mff.cuni.cz/~jirikalvoda/vyuka/24z/kg1.

Toková síť (V,E,z,s,c)(V, E, z, s, c) je uspořádaná 5-tice, kde (V,E)(V,E) je orientovaný graf, zz je zdroj, ss je stok a c:ER0+c:E\rightarrow \R_0^+ je funkce kapacit hran.

Tok v této síti je f:ER0+f:E\rightarrow \R_0^+ tž:

  1. eE:f(e)c(e)\forall e\in E: f(e) \le c(e)
  2. xV{z,s}:f[In(x)]=f[Out(x)]\forall x\in V-\{z,s\}: f[{\rm In}(x)] = f[{\rm Out}(x)].

Velikost toku je f[Out(z)]f[In(z)]=f[In(s)]f[Out(s)]f[{\rm Out}(z)] - f[{\rm In}(z)] = f[{\rm In}(s)] - f[{\rm Out}(s)].

Řez RR v takovéto síti je podmnožina RER\subseteq E tž. v grafu (V,ER)(V, E-R) neexistuje orientovaná cesta ze zz do ss.

Zlepšující cesta pro tok ff je taková cesta ze zz do ss složená z dopředných i zpětných hran taková, že pro každou dopřednou ee na ní platí f(e)<c(e)f(e) < c(e) a zpětnou ee' platí f(e)>0f(e')>0.

Párování v grafu GG je podmnožina hran taková, že žádně dvě nesdílí společný vrchol.

Vrcholové pokrytí v grafu GG je podmnožina vrcholů taková, že pro každou hranu GG platí, že obsahuje alespoň jeden vrchol pokrytí.

Algoritmické aplikace toků podruhé

Ukažte, jak lze následující úlohy efektivně, tj. v polynomiálním čase, vyřešit (například převedením na standardní úlohu pro nalezení největšího toku v síti).

  1. Máme danou tokovou sít s jednotkovými kapacitami. Najděte největší tok takový, že přes každý vrchol krom zz a ss teče nejvýše jedna jednotka toku.
  2. Máme dán (neorientovaný) graf G=(V,E)G = (V, E) a dva různé vrcholy x,yx, y. Cílem je najít co nejmenší množinu vrcholů CV{x,y}C \subseteq V - \{x, y\} takovou, že xx a yy jsou v různých komponentách grafu GC=(VC,E(VC2))G − C = \left(V - C, E \cap {V-C \choose 2}\right). Předpokládejme, že mezi xx a yy není hrana.
  3. Máme dán graf cílem je najít jeho minimální hranový řez, tedy podmnožinu hran takovou, že po jejich odstranění graf není souvislý.
  4. Máme dán graf cílem je najít jeho minimální vrcholový řez, tedy podmnožinu vrcholů takovou, že po jejich odstranění graf není souvislý.
  5. Máme dánu matici MM, jejíž prvky jsou nuly a jedničky. Cílem je najít v MM co největší množinu jedniček takových, že žádné dvě nejsou ve stejném řádku ani ve stejném sloupci.

Párování a pokrytí v obecných grafech

Označme m(G)m(G) velikost největšího párování a c(G)c(G) velikost nejmenšího vrcholového pokrytí v grafu GG.

Víme, že pro každý graf platí m(G)c(G)m(G) \leq c(G) a že pro bipartitní grafy platí rovnost.

  1. Najděte graf GG, pro který platí m(G)<c(G)m(G) < c(G).
  2. Existuje graf GG, pro který platí m(G)+100<c(G)m(G) + 100 < c(G)?
  3. Ukažte, že pro každý graf platí m(G)c(G)2m(G)m(G) \leq c(G) \leq 2m(G).

Hallova věta a spol.

Připomeňme grafovou verzi Hallovy věty: V bipartitním grafu GG s partitami AA a BB existuje párování velikosti A|A|, právě když pro každou množinu XAX \subseteq A platí N(X)X|N (X)| \geq |X|.

  1. Nechť GG je bipartitní graf s partitami AA a BB. Předpokládejme, že pro nějaké kN+k \in \N^+ platí, že všechny vrcholy partity AA mají stupeň aspoň kk a všechny vrcholy partity BB mají stupeň nejvýš kk. Ukažte, že G má párování velikosti A|A|.
  2. Dokažte, že každý (nenulově) regulární bipartitní graf má perfektní párování. (Graf je regulární, pokud mají všechny jeho vrcholy stejný stupeň. Párování PP je perfektní, pokud každý vrchol patří do nějaké hrany v PP.)
  3. Do mateřské školky přišel Mikuláš a přinesl pytel plný hraček. Každé dítě ukázalo na pět hraček, které se mu líbí. Ukázalo se, že každá hračka se líbí nejvýše pěti dětem. Ukažte, že je možné každému dítěti dát jako dárek některou z hraček, která se mu líbí (přirozeně, každé dítě dostane jinou hračku).
  4. Do mateřské školky zase přišel Mikuláš s novým pytlem hraček. Každé dítě tentokrát ukázalo na deset hraček, které se mu líbí. Ukázalo se opět, že každá hračka se líbí nejvýše pěti dětem. Ukažte, že je možné každému dítěti dát jako dárek dvě hračky, které se mu líbí.
  5. Nechť G=(V,E)G = (V, E) je graf. Předpokládejme, že pro každý podgraf HH grafu GG platí E(H)10V(H)|E(H)| \le 10|V(H)|. Ukažte, že je možné hrany GG nahradit orientovanými hranami tak, že do každého vrcholu bude vstupovat nejvýš deset hran.