Grafy a sítě
Zde jsou mé poznámky z přednášky, kterou vede docent David Hartman (kompletní výčet všech jeho titulů najdete na jeho stránkách). Během semestru je budu postupně aktualizovat.
Motivace a příklady
Chceme reálný svět/systém modelovat grafem/sítí, se kterou se pracuje lépe. Z této sítě pak spočítáme nějaký reálný vektor (např. pravděpodobnostní distribuce), který nám říká něco o reálném světě.
Příklad: (Twitter) Reprezentujeme sítí : Vrcholy reprezentují uživatele/profily/stránky a orientovaná hrana představuje vztah, že uživatel sleduje .
- po síti se nám rozšířily dezinformace a my bychom chtěli vědět, kde vznikla (root finding problem)
- sociální sítě umí být dobrý prediktor vývoje akciového trhu
- recommender systems – cílená reklama
Small-world
Problém: modely reálných systémů mohou být obrovské
- nebudeme tak modelovat celý systém, ale jen některý jeho sample, to může mít ale svá úskalí
Příklad: (Milgram experiment) Vzdálenost mezi dvěma lidmi skrze hrany reprezentující přátelství je malá.
- ve státě Omaha jeden člověk poslal svému okolí dopis, který měli přeposlat cílovému recipientovi, nebo někomu o kom si myslí, že by jej mohl znát (aby nebyly cykly, v dopise byl seznam lidí, přes které již dopis přešel)
- průměrná vzdálenost od počátku k cílovému recipientovi byla 6
- později označeno pouze za small-world fenomén
Vague Definice: (small-world) Síť je označovaná za small-world (SW), pokud má tendence tvořit clustery vrcholů (husté podgrafy) a zároveň vzdálenost každých dvou vrcholů je malá.
- síť koautorství článků – scientometrie
- vrcholy: autoři, hrany: relace „pracovali na stejné publikaci”
- Erdősovo číslo – vzdálenost od Paula Erdőse
- Nešetřil má Erdősovo číslo 2 (I think)
- síť citací
- vrcholy: papery, hrany: jeden paper se odkazuje na jiný
- může nám pomoct odhalit fake news nebo diskreditovat články založené na neplatných datech
Metody modelování
Příklad: (autoregresivní systémy) Máme velmi složitý systém a my se jej pokusíme modelovat lineárním modelem
- : konstantní bias
- : náhodná veličina
- : vektor předchozího „stavu”
- : matice modelující lineární závislost
- typicky funguje dobře v krátkém časovém horizontu, na zkoumání delšího časového úseku už budeme potřebovat nejspíš přesnější model
Příklad: (klinické studie) Pacientovi uděláme MRI (nebo EEG) a z dat sestrojíme graf představující jak dobře jsou propojené jednotlivé komponenty mozku – tzv. temporální síť
- např. pacienti s Alzheimerem měli temporální síť s daleko hustšími clustery a většími vzdálenostmi mezi vrcholy
- typicky také vykazují small-world efekt
Příklad: (interakce proteinů) Máme graf protein-protein interakcí (PPIN) a pro každý protein známe jeho funkci. Chceme najít chování dvou proteinů v jejich společné interakci.
- Neighborhood metody:
- pro každý vrchol je funkce daná nejčastější funkcí proteinu v jeho okolí
- Community metody:
- pro každý vrchol je funkce daná nejčastější funkcí proteinu v jeho komunitě
- problém: hledání komunit je NP-těžký problém (dá se ale docela dobře aproximovat)
Příklad: (Internet) Vrcholy jsou IP adresy, hrany jsou jejich „spojení po internetu”
- zajímá nás jak odolné jsou části sítě vůči defektům v infrastruktuře
- WWW je obrovská síť u které nemáme šanci ji efektivně analyzovat najednou nebo dokonce i po menších částech, místo toho tak síť nějak aproximujeme
- graphon – převedeme graf do takové „spojité matice sousednosti” na intervalu
- nyní už nemůžeme mluvit o hranách, ale máme spíš něco jako pravděpodobnostní rozdělení
- Erdős-Rényi graf – mezi každými dvěma vrcholy je pravděpodobnost , že tam existuje hrana
- zajímá nás pak třeba očekávaná délka cesty mezi dvěma vrcholy
- můžeme mít více různých navzájem nezávislých parametrů pravděpodobností existencí hran
- krásně se s tím pracuje, ale bohužel je to docela trash model, protože moc dobře nereflektuje realitu
- typicky v reálných sítích jsou tyto parametry závislé :(
- graphon – převedeme graf do takové „spojité matice sousednosti” na intervalu
Small-world
Clustering
Definice: (clustrovací koeficient) Pro graf a vrchol definujeme jeho (lokální) clustrovací koeficient jako
a pokud je stupeň roven 0 nebo 1, pak definujeme .
- 👁️ :
- můžeme interpretovat jako pravděpodobnost, že nějací dva sousedé jsou spojeni hranou
- grafy s – grafy bez trojúhelníků
- grafy s – disjunktní sjednocení úplných grafů
- není monotónní – přidání hrany může snížit hodnotu
Definice: (průměrný clustrovací koeficient) Pro graf , kde , definujeme průměrný clustrovací koeficient jako
- kolik maximálně můžeme mít hran v grafu tak, aby ?
Definice: (Turánův graf) graf je úplný -partitní graf na vrcholech, kde pro . V grafu má partit velikost a zbytek (tedy partit) má velikost .
- 👁️: graf neobsahuje cyklus délky , tedy pro platí
Definice: (počet hran ) definujme
v je každý vrchol spojen s každým dalším vrcholem, který není ve stejné partitě
- úplný graf má hran
- máme partit velikosti , v každé chybí hran
- máme partit velikosti , v každé chybí hran
Dohromady tak máme . Tento výraz je maximalizován pro takové, že , tedy když . To nám dává horní odhad na
Věta: (Turán 1940) Každý graf na vrcholech s více než hranami obsahuje jako podgraf
Důkaz: Idea – ukážeme, že graf bez podgrafu s maximálním počtem hran je přesně .
Mějme graf bez podgrafu a vezměme s maximálním . Označme , . Nyní sestrojme nový graf z grafu odstraněním všech hran v a přidáme všechny hrany mezi a . To nám dává . Nyní si všimněme:
- jelikož máme prázdné a
Součtem těchto dvou přes všechna dostaneme . Jelikož , pak dosazením výsledku výše dostáváme
To znamená, že touto operací jsme jenom zvýšili počet hran. Konstrukce navíc zaručuje, že pokud neobsahoval , pak jej neobsahuje ani .
Tento proces můžeme opakovat a nakonec dostaneme .
Průměrná délka cesty
Definice: (průměrná délka cesty) pro metriku na grafu definujeme průměrnou délku cesty v
- úplné grafy —
- hvězdičky — , což jde ke 2 s
- cykly (předpokládáme pro lepší počítání)
Definice: (hustota grafu) pro graf s a definujeme jeho hustotu jako
- počet hran ku maximálnímu počtu hran
- úplný graf má , graf bez hran má
Určování small-world grafů
Definice: (ring-lattice) TODO
Definice: (Erdős-Renyi graf) Erdős-Renyi graf je náhodný graf konstruovaný následovně:
- Mějme vrcholy
- Pro každou dvojici různých vrcholů přidáme hranu do s pravděpodobností
- 👁️ nechť je cca průměrný stupeň, pak
Místo toho abychom přímo požadovali po grafech specifické vlastnosti, použijeme Erdős-Renyi graf jako „referenční model:”
Definice: (small-world) graf je small-world, pokud a pro referenční náhodný graf .
- může být Erdős-Renyi graf, nebo nějaký jiný
- při tvorbě chceme alespoň přibližně zachovat hustotu