TI 1 / 1 TEORETICKÁ INFORMATIKA J. Kolář Důležité reference: skripta (vydala ČIS r. 2004, prodej v místnosti K326)
TI 1 / 2 Stručný obsah předmětu Neorientované a orientované grafy základní pojmy a vlastnosti, počítačová reprezentace grafů, typické algoritmy (prohledávání, minimální kostry, nejkratší cesty,...), jejich složitost a (tvořivé) použití Toky v sítích P/NP třídy složitosti, NP-úplné problémy Algoritmy umělé inteligence Modely strojů, programů a výpočtů jazyky (regulární) a automaty (konečné), Turingovy stroje, nerozhodnutelné problémy
TI 1 / 3 X36TIN je "volné pokračování" X36DSA do grafů + pár informaticko - teoretických témat navíc o CO půjde (kromě jiného)? NAUČIT SE MYSLET! (nebo si to aspoň připomenout) JAK na to ? –záleží na vkusu –určitě NE jenom čtením (těchto) příprav –ptát se radši dřív než pozdě nebo vůbec –sledovat Web a skripta Jinými slovy...
TI 1 / 4 Systematické studium algoritmických procesů spojených s popisem a zpracováním INFORMACÍ. Zabývá se jejich teorií, analýzou, návrhem, efektivností, realizací, použitím, … Základní otázka: CO JE MOŽNO (EFEKTIVNĚ) AUTOMATIZOVAT? Podoblasti informatiky (P. Denning et al., 1989): algoritmy a datové struktury, programovací jazyky, architektura počítačů, numerické a symbolické výpočty, operační systémy, softwerová metologie a inženýrství, databáze a vyhledávání, umělá inteligence, komunikace člověk - počítač Co je to informatika ?
TI 1 / 5 Základní paradigmata informatiky INFORMATIKA TEORIE ABSTRAKCE NÁVRH
TI 1 / 6 Několik ukázkových příkladů (problémů) Příklady k zamyšlení
TI 1 / 7 Pražská MHD (1) Systém pražské MHD zahrnuje linky tramvají, autobusů a metra. Každou z linek máme zadánu jako seznam zastávek od jedné konečné do druhé. Předpokládejme, že z linky na linku lze přesedat pouze na stejně pojmenované zastávce. Jak zjistit, zda je možné projet všechny úseky všech linek v rámci jediné okružní jízdy s libovolným počtem přestupů tak, aby se každý usek projel právě jednou? (???) Příklady k zamyšlení
TI 1 / 8 Pražská MHD (2) Jakým minimálním počtem "otevřených" jízd je možné projet všechny úseky všech linek pokud to nelze zvládnout jedinou okružní jízdou? Jak určit způsob dopravy ze zastávky A do zastávky B nějakých linek se zaručeně minimálním počtem přestupů ? (???) Příklady k zamyšlení
TI 1 / 9 Problém s vystřihovánkou Jak nalézt největší bílý trojúhelník ? Příklady k zamyšlení
TI 1 / 10 Problém s výletem n - počet měst, která můžeme navštívit (1, 2, …, n) k - počet dní, které máme k dispozici n*(n-1) letových řádů pro lety mezi městy d - perioda opakování (1 až 30) c 1, c 2, …, c d - ceny letů v jednotlivých dnech (0 znamená, že ten den není spoj) Je možno létat přesně k dní (co den, to přelet jinam)? Pokud ano, jak to udělat co nejlaciněji? Příklady k zamyšlení
TI 1 / 11 Problém dispečera hasičů Dispečer má aktualizovanou mapu města (neprůjezdné a jednosměrné ulice,...) a zná polohu a stav n hasičských stanic. Pro hašení požáru na nějakém místě potřebuje určit k ( n) stanic, které jsou nejblíže požáru, a určit jejich příjezdovou trasu. Jak vybrat oněch k stanic a jejich trasy? Příklady k zamyšlení
TI 1 / 12 Problém počítačové sítě n - počet stanic v laboratoři, které se mají spojit "lineárně" do skupin, známe souřadnice polohy každé stanice k - počet skupin n i (i=1, 2,..., k), 2 n i 8 - počet stanic v i-té skupině Jak určit minimální potřebnou délku kabelu? (propojení + 1m na krajní + 2m na vnitřní stanice v řadě) Příklady k zamyšlení
TI 1 / 13 Model rozmístění stanic Eukleidovské vzdálenosti "každý s každým" Příklady k zamyšlení
TI 1 / 14 NEORIENTOVANÉ A ORIENTOVANÉ GRAFY Neorientované a orientované grafy - kap.2
TI 1 / 15 (Neorientované) grafy a grafové operace Seznámíme se s následujícími pojmy: neorientovaný graf, hrany, uzly, incidence, krajní uzly hrany multigraf, prostý graf, obyčejný graf, úplný graf, prázdný graf, diskrétní graf, izolovaný uzel podgraf, faktor, indukovaný podgraf operace s grafy (sjednocení, průnik, rozdíl, symetrická diference a doplněk), disjunktní a hranově disjunktní grafy, konečný / nekonečný graf izomorfismus grafů Skripta viz odstavec 2.1, str Neorientované grafy - odst. 2.1
TI 1 / 16 Co je to neorientovaný graf ? : H U U (množina neuspořádaných dvojic, též jedno- a dvoj- prvkových podmnožin množiny uzlů) (h) = [u, v]... krajní uzly hrany h (h 1 ) = (h 2 )... rovnoběžné hrany => multigraf prostý graf = graf bez rovnoběžných hran, tzn. hranu určují její krajní uzly => je zbytečné, G = H, U obyčejný graf = prostý graf bez smyček Neorientované grafy - odst. 2.1 G = H, U, hrany grafu G, H(G), H G uzly grafu G, U(G), U G incidence, (G), G
TI 1 / 17 Příklad neorientovaného grafu Neorientované grafy - odst. 2.1 Nakreslení grafu G = {a,b,c,d,e,f,g,h,i,j,k}, {s,t,u,v,w,x,y,z}, – jeho grafické znázornění (v rovině) a b c e d h f i g j k w u v ts zy x (a)=[s,t] (i)=[x,y]= (j) (g)=[w,w] - smyčka... (k)=[x,y]...
TI 1 / 18 prázdný graf: , diskrétní graf: D n = , U (jen n izolovaných uzlů) úplný graf: K n = ( ), U, |U|=n K 3 K 4 K 5 podgraf... G’ = H’, U’, ’ , G = H, U, : G’ G H’H & U’U & ’(h)=(h) pro všechny h H faktor grafu … podgraf se všemi uzly (hranový podgraf) U2U2 Neorientované grafy - odst. 2.1 Speciální případy grafů
TI 1 / 19 podgraf indukovaný podmínkou: podmnožina uzlů U 1 podmnožina hran H 1 vypuštění uzlů U 2 vypuštění hran H 2 Neorientované grafy - odst. 2.1 G G 1 indukovaný U 1 U1U1 H1H1 G 2 indukovaný H 1 U2U2 G-U 2 H2H2 G-H 2
TI 1 / 20 G 1 = H 1, U 1, 1 , G 2 = H 2, U 2, 2 ... dva neorientované grafy sjednocení a průnik grafů G 1 a G 2 G 1 G 2 = H 1 H 2, U 1 U 2, 1 2 (výsledkem musí G 1 G 2 = H 1 H 2, U 1 U 2, 1 2 být opět grafy!!!) disjunktní a hranově disjunktní grafy U 1 U 2 = (tedy i H 1 H 2 = ) H 1 H 2 = G1G1 G2G2 G 1 G 2 G 1 G 2 Neorientované grafy - odst. 2.1
TI 1 / 21 rozdíl G - G 1 grafů G a G 1 G takový minimální graf G 2, pro který platí G = G 1 G 2 rozdíl pro obecné grafy G a G': G – G' = G – (G G') doplněk (obyčejného) grafu G= H, U, : -G = K U – G symetrická diference grafů G a G' : G G' = (G G') – (G G') konečný x nekonečný graf Neorientované grafy - odst. 2.1
TI 1 / 22 G 1 G 2 …izomorfní grafy problém zjistit!! morfismus grafů … zachovává incidenci, ale není nutně bijekcí Neorientované grafy - odst. 2.1 izomorfismus grafů G 1 = H 1, U 1, 1 a G 2 = H 2, U 2, 2 zobrazení množiny H 1 U 1 na H 2 U 2 takové, že: / H 1 : H 1 H 2 je bijekce / U 1 : U 1 U 2 je bijekce zachovává incidenci, t.zn. : 1 (h) = [u,v] 2 ((h)) = [(u), (v)]
TI 1 / 23 Kontrolní otázky 1.Lze určit maximální počet hran obyčejného (resp. prostého, resp. obecného) neorientovaného grafu o n uzlech ? 2.Jaká je role incidence v definici neorientovaného grafu ? 3.Kolik různých faktorů má neorientovaný graf o m hranách a n uzlech ? 4.Vysvětlete, co znamená, že izomorfismus grafů zachovává incidenci. 5.Kolik neizomorfních faktorů má úplný graf K 4, resp. K 5 ? 6.Který graf o n uzlech má pouze jeden faktor ? 7.Popište, jakým způsobem doplníte úplný graf K n, aby vznikl úplný graf K n+1. 8.Charakterizujte podgraf úplného grafu K n indukovaný libovolnou podmnožinou jeho uzlů.