240 likes | 473 Views
TEORETICKÁ INFORMATIKA. J. Kolář Kolar @ fel.cvut.cz Důležité reference: http://service.felk.cvut.cz/ courses/ 36TI skripta (vydala ČIS r . 200 4, prodej v m ístnosti K326 ). Stručný obsah předmětu. Neorientované a orientované grafy
E N D
TEORETICKÁ INFORMATIKA J. Kolář Kolar@fel.cvut.cz Důležité reference: http://service.felk.cvut.cz/courses/36TI skripta(vydala ČIS r. 2004, prodej v místnosti K326)
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
Jinými slovy ... • 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
Co je to informatika ? • 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č
Základní paradigmata informatiky ABSTRAKCE TEORIE NÁVRH INFORMATIKA
Několik ukázkových příkladů (problémů) Příklady k zamyšlení
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í
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í
Problém s vystřihovánkou Jak nalézt největší bílý trojúhelník ? Příklady k zamyšlení
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) • c1, c2, …, cd - 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í
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í
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 • ni (i=1, 2, ..., k), 2 ni 8 - počet stanic v i-té skupině Jakurčit minimální potřebnou délku kabelu? (propojení + 1m na krajní + 2m na vnitřní stanice v řadě) Příklady k zamyšlení
Model rozmístění stanic • Eukleidovské vzdálenosti "každý s každým" 1 2 7 8 1 2 3 6 3 6 4 5 9 10 8 7 10 9 12 11 4 5 12 11 Příklady k zamyšlení
NEORIENTOVANÉ A ORIENTOVANÉ GRAFY Neorientované a orientované grafy - kap.2
(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. 18 - 22 Neorientované grafy - odst. 2.1
Co je to neorientovaný graf ? G = H, U, • : 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 • (h1) = (h2) ... 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 hranygrafuG, H(G), HG uzlygrafu G, U(G), UG incidence, (G), G Neorientované grafy - odst. 2.1
Příklad neorientovaného grafu • 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ě) s t a (a)=[s,t] v c ... b d (i)=[x,y]= (j) e w u f ... (g)=[w,w] - smyčka g x i h ... j (k)=[x,y] k y z Neorientované grafy - odst. 2.1
Speciální případy grafů • prázdný graf: , diskrétní graf: Dn= , U • (jen n izolovaných uzlů) • úplný graf: Kn = (), U, |U|=n • K3 K4 K5 • podgraf ... G’ = H’, U’, ’ , G = H, U, : • G’ G H’H & U’U &’(h)=(h) pro všechny h H • faktorgrafu … podgraf se všemi uzly (hranový podgraf) U 2 Neorientované grafy - odst. 2.1
G1 indukovaný U1 G2 indukovaný H1 G H1 U1 G-U2 U2 • podgrafindukovaný podmínkou: • podmnožina uzlů U1 podmnožina hran H1 • vypuštění uzlů U2 vypuštění hran H2 G-H2 H2 Neorientované grafy - odst. 2.1
sjednocení a průnikgrafů G1 a G2 G1G2 = H1H2, U1U2, 12 (výsledkem musí G1G2 = H1H2, U1U2, 12 být opět grafy!!!) G1 G2 disjunktní a hranově disjunktnígrafy U1U2 = (tedy i H1H2 = ) H1H2 = G1 G2 • G1= H1, U1, 1 , G2 = H2, U2, 2 ... dva neorientované grafy G1 G2 Neorientované grafy - odst. 2.1
rozdíl G - G1grafů G a G1G takový minimální graf G2, pro který platí G = G1 G2 • rozdíl pro obecné grafy G a G': • G – G' = G – (G G') • doplněk (obyčejného) grafuG= H, U, : • -G = KU – G • symetrická diferencegrafů G a G' : • G G' = (G G') – (G G') • konečný x nekonečný graf Neorientované grafy - odst. 2.1
izomorfismus grafů G1 = H1, U1, 1 a G2 = H2, U2, 2 zobrazení množiny H1 U1 na H2 U2 takové, že: / H1 : H1 H2 je bijekce / U1 : U1 U2 je bijekce zachovává incidenci, t.zn. : 1(h) = [u,v] 2((h)) = [(u), (v)] • G1 G2 … izomorfní grafy • problém zjistit!! • morfismusgrafů … zachovává incidenci, ale není nutně • bijekcí Neorientované grafy - odst. 2.1
Kontrolní otázky • Lze určit maximální počet hran obyčejného (resp. prostého, resp. obecného) neorientovaného grafu o n uzlech ? • Jaká je role incidence v definici neorientovaného grafu ? • Kolik různých faktorů má neorientovaný graf o m hranách a n uzlech ? • Vysvětlete, co znamená, že izomorfismus grafů zachovává incidenci. • Kolik neizomorfních faktorů má úplný graf K4, resp. K5 ? • Který graf o n uzlech má pouze jeden faktor ? • Popište, jakým způsobem doplníte úplný graf Kn, aby vznikl úplný graf Kn+1. • Charakterizujte podgraf úplného grafu Kn indukovaný libovolnou podmnožinou jeho uzlů.