Projekt programu Inženýrská Informatika 2
|
|
- Jarmila Šmídová
- před 8 lety
- Počet zobrazení:
Transkript
1 Projekt programu Inženýrská Informatika 2 Realizace grafu v jazyce Java Ústav počítačové a řídicí techniky, VŠCHT Praha Řešitel: Jan Hornof (ININ 258) Vedoucí: doc. Ing. Jaromír Kukal, Ph.D.
2 1. Obsah 1. Obsah Zadání Teorie grafů Neorientovaný graf Orientovaný graf Souvislý graf Adjacenční matice Incidenční matice Úplný graf Eulerův cyklus Eulerova cesta Nejkratší cesta v grafu Dijkstrův algoritmus Způsob řešení Reprezentace matic Použití vlastních typů výjimek Třídy Cache D Vizualizace Závěr Zhodnocení Zajímavá rozšíření Literatura Přílohy 1. JavaDoc 2. Zdrojový kód 2 / 14
3 2. Zadání Návrh datové struktury pro realizaci grafu Vybrané operace s grafem 2D vizualizace grafu Realizace knihovny v Javě Testování knihovny 3 / 14
4 3. Teorie grafů Teorie grafů zkoumá vlastnosti struktur, zvaných grafy [3]. Ty jsou tvořeny vrcholy, které jsou vzájemně spojené hranami. Znázorňuje se obvykle jako množina bodů spojených čarami. Formálně je graf uspořádanou dvojicí množiny vrcholů V a množiny hran E: G = (V, E) Pomocí grafů lze reprezentovat struktury a úlohy z nejrůznějších oborů. Taktéž mnoho problémů praktického života může být formulováno jako úloha teorie grafů - například železniční síť v Evropě je graf, kde vrcholy jsou jednotlivá nádraží a hrany jsou koleje mezi nimi. Struktura grafu může být rozšířena o ohodnocení hran (také označováno jako váha). Výsledkem je model reálné sítě. V našem příkladě je váha hrany např. počet kilometrů kolejí. Zde je vysvětlení vybraných pojmů z teorie grafů, které jsou v projektu použity a implementovány. Všechny zde použitá zobrazení grafu jsou vytvořena programem tohoto projektu Neorientovaný graf Neorientovaný graf G je uspořádaná dvojice G = (V, H), kde V je neprázdná konečná množina vrcholů grafu a H je množina neuspořádaných dvojic typu {u, v}, kde u v, nazývaných hrany grafu. Obrázek 1: Neorientovaný graf 3.2. Orientovaný graf Neorientovaný graf G je uspořádaná dvojice G = (V, H), kde V je neprázdná konečná množina vrcholů grafu a H je množina neuspořádaných dvojic typu {u, v}, kde u v, nazývaných hrany grafu. Obrázek 2: Orientovaný graf 4 / 14
5 3.3. Souvislý graf Souvislý graf je takový graf, kde je možné po hranách dojít z libovolného vrcholu do všech ostatních přes libovolné množství vrcholů Adjacenční matice Adjacenční matice je booleovská matice, jejíž sloupce i řádky jsou označeny vrcholy. Pokud je mezi dvěma danými vrcholy hrana, je na průsečiku tohoto sloupce a řádku jednička. Pro neorientovaný graf je tato matice symetrická Obrázek 3: Neorientovaný graf a jeho adjacenční matice 3.5. Incidenční matice Incidenční matice je booleovská matice, která reprezentuje graf, má pro každý vrchol jeden řádek a pro každou hranu jeded sloupec. Tvrzení, že (v, e) = 1 platí jen a pouze tehdy, když vrchol v je incidenční s hranou e. Z tohoto plyne, že v každém sloupci mohlou být nejvýše dvě jedničky Obrázek 4: Neorientovaný graf a jeho incidenční matice 5 / 14
6 3.6. Úplný graf Úplný graf je takový graf, kde se lze dostat jednou cestou z libovolného vrcholu do všech ostatních. Obrázek 5: Úplný graf 3.7. Eulerův cyklus Eulerova cesta v grafu je cesta, která propojuje dva vrcholy a zároveň prochází všechny hrany právě jednou. V grafu existuje Eulerův cyklus právě tehdy, když je souvislý a všechny jeho uzly jsou sudého stupně (počet hran incidentních k danému uzlu se musí rovnat dvojnásobku počtu návštěv daného uzlu) Eulerova cesta Eulerův cyklus je cesta, která prochází všechny hrany právě jednou a začíná i končí ve stejném vrcholu. V grafu existuje Eulerova cesta právě tehdy, když je souvislý a právě dva uzly jsou lichého stupně. Pro nalezení eulerovy cesty lze použít algoritmus rušení cyklů: Procházíme cyklickou 6 / 14
7 cestou, odstraňujeme navštívené hrany a koncové uzly těchto hran ukládáme do zásobníku. Pokud narazíme na uzel ze kterého už nelze jít dále, vracíme se zpět a odstraňujeme dané uzly ze zásobníku dokud nenarazíme na uzel ze kterého vedou další hrany. Odstraněné uzly ze zásobníku tvoří hledanou cestu. Dále pokračujeme hranou z daného uzlu. Časová složitost nalezení Eulerova cyklu pomocí algoritmu odstraňování cyklů je lineární Nejkratší cesta v grafu Dijkstrův algoritmus Dijkstrův algoritmus [4] je algoritmus sloužící k nalezení nejkratší cesty v grafu. Je konečný (pro jakýkoliv konečný vstup algoritmus skončí), protože v každém průchodu cyklu se do množiny navštívených uzlů přidá právě jeden uzel, průchodů cyklem je tedy nejvýše tolik, kolik má graf vrcholů. Funguje nad hranově kladně ohodnoceným grafem (neohodnocený graf lze na ohodnocený snadno převést tak, že se každě hraně přiřadí váha 1). Algoritmus poprvé popsal nizozemský informatik Edsger Dijkstra. Mějme graf G, v němž hledáme nejkratší cestu. Řekněme, že V je množina všech vrcholů grafu G a množina E obsahuje všechny hrany grafu G. Algoritmus pracuje tak, že si pro každý vrchol v z V pamatuje délku nejkratší cesty, kterou se k němu dá dostat. Označme tuto hodnotu jako d[v]. Na začátku mají všechny vrcholy v hodnotu d[v] =, kromě počátečního vrcholu s, který má d[s] = 0. Nekonečno symbolizuje, že neznáme cestu k vrcholu. Dále si algoritmus udržuje množiny Z a N, kde Z obsahuje už navštívené vrcholy a N dosud nenavštívené. Algoritmus pracuje v cyklu tak dlouho, dokud N není prázdná. V každém průchodu cyklu se přidá jeden vrchol vmin z N do Z, a to takový, který má nejmenší hodnotu d[v] ze všech vrcholů v z N. Pro každý vrchol u, do kterého vede hrana (označme její délku jako l(v min, u)) z v min, se provede následující operace: pokud (d[v min ] + l(v min, u)) < d[u], pak do d[u] přiřaď hodnotu d[v min ] + l(v min, u), jinak neprováděj nic. Až algoritmus skončí, potom pro každý vrchol v z V je délka jeho nejkratší cesty od počátečního vrcholu s uložena v d[v]. 7 / 14
8 4. Způsob řešení Celý projekt byl realizován ve vývojovém prostředí NetBeans od firmy Sun Microsystems TM na platformě Java Reprezentace matic Pro reprezentaci matic byla použita knihovna JAMA: A Java Matrix Package [5]. Tento balík umožňuje jednoduché používání některých funkcí pro práci z maticemi, které jsou nativně implementovány např. v jazyce MATLAB. Před použitím knihovny je třeba jí naimportovat standardním způsobem (položka Libraries v IDE NetBeans): import Jama.Matrix; a poté se s ní dá pracovat následujícím způsobem: Matrix a, b; Matrix product = a.times(b); // násobení matic Matrix sum = a.plus(b); // sčítání matic 4.2. Použití vlastních typů výjimek V balíku graphs.exceptions jsou definovány prázdné třídy výjimek, jež dědí všechny metody z třídy Exception. Důvod pro použití těchto nových tříd je především přehlednost chybových hlášek v kódu. Samotný jazyk Java je navržen tak, aby uživatele nutil k jejich používání tímto způsobem. Použité objekty výjimek jsou následující (viz balík graph.exceptions): EdgeAlreadyPresentException hrana s danými koncovými vrcholy již v grafu existuje EdgeNotFoundException hrana nenalezena GraphNotConnectedException graf není souvislý GraphNotEulerException v grafu není eulerova cesta GraphNotFullException graf není úplný LoopExcepion počáteční a koncový vrchol hrany jsou totožné MatrixNotAdjException matice není adjacenční maticí MatrixNotIncException matice není incodenční maticí PathsNotConnectedException cesty neobsahují společný vrchol VertexAlreadyPresentException vrchol se zvoleným ID již v grafu existuje VertexNotFoundException vrchol nenalezen 8 / 14
9 4.3. Třídy Zde je stručný popis jednotlivých tříd s jejich základními vlastnostmi a metodami. Kompletní specifikace všech metod a vlastností naleznete v příloze 1. class Constants konstanty v projektu DEBUG pokud je true, vypisují se ladící informace class Edge reprezentuje hranu start počáteční vrchol hrany end - koncový vrchol hrany weight váha hrany incmatrixindex index hrany v incidenční matici class Vertex reprezentuje vrchol degree stupeň vrcholu indegree počet hran směřujících do vrcholu outdegree - počet hran vycházejících z vrcholu neighbours list sousedních vrcholů matrixindex - index vrcholu v adjacenční nebo incidenční matici posx pozice na ose X (pro vizualizaci) posy pozice na ose Y (pro vizualizaci) class Path reprezentuje cestu addvertex() - přidání vrcholu getcost() - cena cesty mergewithpath() - spojení dvou cest do jedné clone() - klonování cesty (java interface Cloneable) abstract class Graph reprezentuje graf addedge() - přidá hranu addvertex() - přidá vrchol getconnectionmatrix() matice souslednosti getincmatrix() - incidenční matice getadjmatrix() adjacenční matice isconnected() - je souvislý 9 / 14
10 tosvg() - generovani SVG savesvgtofile() - zapsani SVG do souboru copy() vytvoření kopie grafu getshortestpath() nejkratší cesta v grafu podle počtu vrcholů getshortestpathfw() nejkratší cesta v grafu podle váhy hran class Ugraph extends Graph - reprezentuje neorientovaný graf class DiGraph extends Graph - reprezentuje orientovaný graf class GraphFactory vytváří grafy z matic digraphfromadjmatrix vytvoří orientovaný graf z adjacenční matice digraphfromincmatrix vytvoří orientovaný graf z incidenční matice ugraphfromadjmatrix vytvoří neorientovaný graf z adjacenční matice ugraphfromincmatrix vytvoří neorientovaný graf z incidenční matice class GraphTest testovací třida s příklady 4.4. Cache Ve třídě Graph se používa cache, ve které je uložena incidenční, adjacenční matice a nejkratší cesta, aby se zamezio počítání těchto dat několikrát, když se matice nezmění. Pokud se graf změní, je třeba vyprázdnit cache metodou Graph.resetCache(), což se děje automaticky při změně struktury matice metodami addvertex() nebo addedge(). Jakmile se potom zavolá některá z funkcí vracející chacheovatelná data, cache se naplní novými údaji D Vizualizace Pro 2D vizualizaci grafu byl použit formát Scalable Vector Graphics (SVG) [6]. Jedná se o v současné době nejrozšířenější formát pro vektorovou grafiku a lze zobrazovat například v jakémkoli moderním webovém prohlížeči. Tento formát je založen na specifikaci jazyka XML. Pro reprezentaci grafu byly použity následující elementy: <circle /> pro vrchol <line /> pro hranu, váha hrany je vizualizována pomocí atributu stroke-width <text /> pro názvy a popisky 10 / 14
11 Vlastní generování SVG kódu obstarává metoda Graph.toSvg() a metoda Graph.saveSvgToFile() jej ukládá do souboru (viz JavaDoc v příloze 1). Příklad grafu v SVG: Obrázek 6: P íklad vygenerovaného grafu s r znými ř ů vahami hran Zdrojový kód SVG: <?xml version="1.0" encoding="utf-8"?> <svg width="100%" height="100%" version="1.1" xmlns=" <!-- vertices --> <circle id="v1" cx="200" cy="100" r="30" fill="yellow" stroke="black" stroke-width="1" /> <text x="190" y="106">v1</text> <circle id="v2" cx="300" cy="100" r="30" fill="yellow" stroke="black" stroke-width="1" /> <text x="290" y="106">v2</text> <circle id="v3" cx="400" cy="200" r="30" fill="yellow" stroke="black" stroke-width="1" /> <text x="390" y="206">v3</text> <circle id="v4" cx="400" cy="300" r="30" fill="yellow" stroke="black" stroke-width="1" /> <text x="390" y="306">v4</text> <circle id="v5" cx="300" cy="400" r="30" fill="yellow" stroke="black" stroke-width="1" /> 11 / 14
12 <text x="290" y="406">v5</text> <circle id="v6" cx="200" cy="400" r="30" fill="yellow" stroke="black" stroke-width="1" /> <text x="190" y="406">v6</text> <circle id="v7" cx="100" cy="300" r="30" fill="yellow" stroke="black" stroke-width="1" /> <text x="90" y="306">v7</text> <circle id="v8" cx="100" cy="200" r="30" fill="yellow" stroke="black" stroke-width="1" /> <text x="90" y="206">v8</text> <!-- /vertices --> <!-- edges --> <line x1="230" y1="100" x2="270" y2="100" stroke="blue" stroke-width="1" /> <line x1="321" y1="121" x2="379" y2="179" stroke="blue" stroke-width="3" /> <line x1="400" y1="230" x2="400" y2="270" stroke="blue" stroke-width="5" /> <line x1="379" y1="321" x2="321" y2="379" stroke="blue" stroke-width="7" /> <line x1="270" y1="400" x2="230" y2="400" stroke="blue" stroke-width="1" /> <line x1="179" y1="379" x2="121" y2="321" stroke="blue" stroke-width="3" /> <line x1="100" y1="270" x2="100" y2="230" stroke="blue" stroke-width="5" /> <line x1="121" y1="179" x2="179" y2="121" stroke="blue" stroke-width="7" /> <!-- /edges --> </svg> 12 / 14
13 5. Závěr 5.1. Zhodnocení Pří řešení se ukázalo velmi výhodné použít již hotovou knihovnu JaMa. Vhodným rozdělením kódu projektu do tříd bylo docíleno přehlednosti a umožněno velmi pohodlné pracování s napsanými metodami v dalším kódu např. v testovací třídě. Projekt umožňuje kromě konstruování grafu také jeho 2D zobrazování a provádění některých operací výše popsanými algoritmy Zajímavá rozšíření Bylo by zajímavé z kódu vytvořit servlet a z něj interaktivní aplikaci pro generování a zobrazování grafů s importem některého z popsaných typů matic z CSV nebo XML; zjednodušeně řečeno WYSIWYG editor grafů. Ve všech moderních prohlížečích je již možné se SVG aktivně manipulovat pomocí JavaScriptu, takže by bylo možné, aby zobrazovací engine byl schopen obsluhovat události a dynamicky měnit vzhled SVG. Změny by se přenášely ve formátu JSON pomocí AJAX requestů na server, který by byl schopen vygenerovat zpět upravené SVG, popř. jiné XML nebo matici v CSV. 13 / 14
14 6. Literatura [1] Reference Resources for Java. [online]. [cit ]. < [2] Wikipedia Matrix. [online]. [cit ]. < %28mathematics%29>. [3] Wikipedia Graph. [online]. [cit ]. < %28mathematics%29>. [4] Dijkstrův algoritmus. [online]. [cit ] < [5] JAMA: A Java Matrix Package. [online]. [cit ]. < [6] Scalable Vector Graphics. [online]. [cit ] < [7] Graph Theory. [online]. [cit ]. < 14 / 14
Úvod do teorie grafů
Úvod do teorie grafů Neorientovaný graf G = (V,E,I) V množina uzlů (vrcholů) - vertices E množina hran - edges I incidence incidence je zobrazení, buď: funkce: I: E V x V relace: I E V V incidence přiřadí
VíceZáklady informatiky. Teorie grafů. Zpracoval: Pavel Děrgel Úprava: Daniela Szturcová
Základy informatiky Teorie grafů Zpracoval: Pavel Děrgel Úprava: Daniela Szturcová Obsah přednášky Barvení mapy Teorie grafů Definice Uzly a hrany Typy grafů Cesty, cykly, souvislost grafů Barvení mapy
VíceVzdálenost uzlů v neorientovaném grafu
Vzdálenosti a grafy Vzdálenost uzlů v neorientovaném grafu Je dán neorientovaný neohodnocený graf G = (V,E,I) vzdálenost uzlů u a v v neorientovaném souvislém grafu G je délka nejkratší cesty spojující
VíceJan Březina. 7. března 2017
TGH03 - stromy, ukládání grafů Jan Březina Technical University of Liberec 7. března 2017 Kružnice - C n V = {1, 2,..., n} E = {{1, 2}, {2, 3},..., {i, i + 1},..., {n 1, n}, {n, 1}} Cesta - P n V = {1,
VíceZákladní pojmy teorie grafů [Graph theory]
Část I Základní pojmy teorie grafů [Graph theory] V matematice grafem obvykle rozumíme grafické znázornění funkční závislosti. Pro tento předmět je však podstatnější pohled jiný. V teorii grafů rozumíme
VíceObsah prezentace. Základní pojmy v teorii o grafech Úlohy a prohledávání grafů Hledání nejkratších cest
Obsah prezentace Základní pojmy v teorii o grafech Úlohy a prohledávání grafů Hledání nejkratších cest 1 Základní pojmy Vrchol grafu: {množina V} Je to styčná vazba v grafu, nazývá se též uzlem, prvkem
VíceZáklady informatiky. 07 Teorie grafů. Kačmařík/Szturcová/Děrgel/Rapant
Základy informatiky 07 Teorie grafů Kačmařík/Szturcová/Děrgel/Rapant Obsah přednášky barvení mapy teorie grafů definice uzly a hrany typy grafů cesty, cykly, souvislost grafů Barvení mapy Kolik barev je
VíceIV122 Matematika a programování Úvod kurzu. Radek Pelánek
IV122 Matematika a programování Úvod kurzu Radek Pelánek Cíle předmětu Lepší pochopení matematických pojmů a metod skrze praktické programování. Procvičení programátorských schopností; trénink přechodu
VíceGrafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13.
Grafy doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 13. března 2017 Jiří Dvorský (VŠB TUO) Grafy 104 / 309 Osnova přednášky Grafy
VíceGrafy. RNDr. Petra Surynková, Ph.D. Univerzita Karlova v Praze Matematicko-fyzikální fakulta.
6 RNDr., Ph.D. Katedra didaktiky matematiky Univerzita Karlova v Praze Matematicko-fyzikální fakulta petra.surynkova@mff.cuni.cz http://surynkova.info množina vrcholů a množina hran hrana vždy spojuje
VícePřijímací zkouška - matematika
Přijímací zkouška - matematika Jméno a příjmení pište do okénka Číslo přihlášky Číslo zadání 1 Grafy 1 Pro který z následujících problémů není znám žádný algoritmus s polynomiální časovou složitostí? Problém,
VíceGrafové algoritmy. Programovací techniky
Grafové algoritmy Programovací techniky Grafy Úvod - Terminologie Graf je datová struktura, skládá se z množiny vrcholů V a množiny hran mezi vrcholy E Počet vrcholů a hran musí být konečný a nesmí být
VíceGrafové algoritmy. Programovací techniky
Grafové algoritmy Programovací techniky Grafy Úvod - Terminologie Graf je datová struktura, skládá se z množiny vrcholů V a množiny hran mezi vrcholy E Počet vrcholů a hran musí být konečný a nesmí být
VíceTeorie grafů. Kostra grafu. Obsah. Radim Farana Podklady pro výuku pro akademický rok 2013/2014
Teorie grafů Radim Farana Podklady pro výuku pro akademický rok 013/014 Obsah Kostra grafu. Tahy,. Úloha čínského pošťáka. Zdroj: Vítečková, M., Přidal, P. & Koudela, T. Výukový modul k předmětu Systémová
VíceAlgoritmus pro hledání nejkratší cesty orientovaným grafem
1.1 Úvod Algoritmus pro hledání nejkratší cesty orientovaným grafem Naprogramoval jsem v Matlabu funkci, která dokáže určit nejkratší cestu v orientovaném grafu mezi libovolnými dvěma vrcholy. Nastudoval
VíceAlgoritmizace prostorových úloh
INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Grafové úlohy Daniela Szturcová Tento
VíceZadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2015
Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 05 Zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia
VíceProgramátorská příručka
KAPITOLA 1. PROGRAMÁTORSKÁ PŘÍRUČKA Kapitola 1 Programátorská příručka 1.1 Úvod 1.1.1 Technologie Program je psaný v jazyce Java 1.7. GUI je vytvářeno pomocí knihovny SWT. (http://eclipse.org/swt/) Pro
VíceTGH02 - teorie grafů, základní pojmy
TGH02 - teorie grafů, základní pojmy Jan Březina Technical University of Liberec 28. února 2017 Metainformace materiály: jan.brezina.matfyz.cz/vyuka/tgh (./materialy/crls8.pdf - Introduction to algorithms)
VíceTGH05 - aplikace DFS, průchod do šířky
TGH05 - aplikace DFS, průchod do šířky Jan Březina Technical University of Liberec 31. března 2015 Grafová formulace CPM (critical path method) Orientovaný acyklický graf (DAG) je orientovaný graf neobsahující
VíceVýhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly.
Kapitola Reprezentace grafu V kapitole?? jsme se dozvěděli, co to jsou grafy a k čemu jsou dobré. rzo budeme chtít napsat nějaký program, který s grafy pracuje. le jak si takový graf uložit do počítače?
VíceTEORIE GRAFŮ TEORIE GRAFŮ 1
TEORIE GRAFŮ 1 TEORIE GRAFŮ Přednášející: RNDr. Jiří Taufer, CSc. Fakulta dopravní ČVUT v Praze, letní semestr 1998/99 Zpracoval: Radim Perkner, tamtéž, v květnu 1999 ZÁKLADNÍ POJMY Říkáme, že je dán prostý
VíceTGH02 - teorie grafů, základní pojmy
TGH02 - teorie grafů, základní pojmy Jan Březina Technical University of Liberec 31. března 2015 Počátek teorie grafů Leonard Euler (1707 1783) 1735 pobyt v Královci (Prusko), dnes Kaliningrad (Rusko)
VíceTGH02 - teorie grafů, základní pojmy
TGH02 - teorie grafů, základní pojmy Jan Březina Technical University of Liberec 5. března 2013 Počátek teorie grafů Leonard Euler (1707 1783) 1735 pobyt v Královci (Prusko), dnes Kaliningrad (Rusko) Úloha:
VíceInformatika pro moderní fyziky (8) Javascript, CSS - stylování dokumentů, SVG - tvorba obrázků, složitější interaktivní dokument
Informatika pro moderní fyziky (8) Javascript, CSS - stylování dokumentů, SVG - tvorba obrázků, složitější interaktivní dokument František HAVLŮJ e-mail: haf@ujv.cz ÚJV Řež oddělení Reaktorové fyziky a
Více1. Převeďte dané číslo do dvojkové, osmičkové a šestnáctkové soustavy: a) 759 10 b) 2578 10
Úlohy- 2.cvičení 1. Převeďte dané číslo do dvojkové, osmičkové a šestnáctkové soustavy: a) 759 10 b) 2578 10 2. Převeďte dané desetinné číslo do dvojkové soustavy (DEC -> BIN): a) 0,8125 10 b) 0,35 10
VíceModely teorie grafů, min.kostra, max.tok, CPM, MPM, PERT
PEF ČZU Modely teorie grafů, min.kostra, max.tok, CPM, MPM, PERT Okruhy SZB č. 5 Zdroje: Demel, J., Operační výzkum Jablonský J., Operační výzkum Šubrt, T., Langrová, P., Projektové řízení I. a různá internetová
Více4EK311 Operační výzkum. 5. Teorie grafů
4EK311 Operační výzkum 5. Teorie grafů 5. Teorie grafů definice grafu Graf G = uspořádaná dvojice (V, E), kde V označuje množinu n uzlů u 1, u 2,, u n (u i, i = 1, 2,, n) a E označuje množinu hran h ij,
VíceZadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2016
Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2016 Zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia
VíceMBI - technologická realizace modelu
MBI - technologická realizace modelu 22.1.2015 MBI, Management byznys informatiky Snímek 1 Agenda Technická realizace portálu MBI. Cíle a principy technického řešení. 1.Obsah portálu - objekty v hierarchiích,
VíceParalelní grafové algoritmy
Paralelní grafové algoritmy Značení Minimální kostra grafu Nejkratší cesta z jednoho uzlu Nejkratší cesta mezi všemi dvojicemi uzlů Použité značení Definition Bud G = (V, E) graf. Pro libovolný uzel u
VíceZadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2014
Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 204 Zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia
Více1 Nejkratší cesta grafem
Bakalářské zkoušky (příklady otázek) podzim 2014 1 Nejkratší cesta grafem 1. Uvažujte graf s kladným ohodnocením hran (délka). Definujte formálně problém hledání nejkratší cesty mezi dvěma uzly tohoto
VíceNEJKRATŠÍ CESTY I. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze
NEJKRATŠÍ CESTY I Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze BI-GRA, LS 2010/2011, Lekce 7 Evropský sociální fond Praha & EU: Investujeme do vaší
VíceInformatika pro moderní fyziky (8) CSS - stylování dokumentů, SVG - tvorba obrázků, složitější interaktivní dokument
Informatika pro moderní fyziky (8) CSS - stylování dokumentů, SVG - tvorba obrázků, složitější interaktivní dokument František HAVLŮJ e-mail: haf@ujv.cz ÚJV Řež oddělení Reaktorové fyziky a podpory palivového
VíceTGH05 - aplikace DFS, průchod do šířky
TGH05 - aplikace DFS, průchod do šířky Jan Březina Technical University of Liberec 28. března 2017 Grafová formulace CPM (critical path method) Orientovaný acyklický graf (DAG) je orientovaný graf neobsahující
VíceÚvod do informatiky. Miroslav Kolařík
Úvod do informatiky přednáška desátá Miroslav Kolařík Zpracováno dle R. Bělohlávek, V. Vychodil: Diskrétní matematika 2, http://phoenix.inf.upol.cz/esf/ucebni/dm2.pdf P. Martinek: Základy teoretické informatiky,
VíceMetody síťové analýzy
Metody síťové analýzy Řeší problematiku složitých systémů, zejména pak vazby mezi jejich jednotlivými prvky. Vychází z teorie grafů. Základní metody síťové analýzy: CPM (Critical Path Method) deterministický
VíceOperační výzkum. Síťová analýza. Metoda CPM.
Operační výzkum Síťová analýza. Metoda CPM. Operační program Vzdělávání pro konkurenceschopnost Název projektu: Inovace magisterského studijního programu Fakulty ekonomiky a managementu Registrační číslo
VíceSTROMY. v 7 v 8. v 5. v 2. v 3. Základní pojmy. Řešené příklady 1. příklad. Stromy
STROMY Základní pojmy Strom T je souvislý graf, který neobsahuje jako podgraf kružnici. Strom dále budeme značit T = (V, X). Pro graf, který je stromem platí q = n -, kde q = X a n = V. Pro T mezi každou
VíceTeorie grafů BR Solutions - Orličky Píta (Orličky 2010) Teorie grafů / 66
Teorie grafů Petr Hanuš (Píta) BR Solutions - Orličky 2010 23.2. 27.2.2010 Píta (Orličky 2010) Teorie grafů 23.2. 27.2.2010 1 / 66 Pojem grafu Graf je abstraktní pojem matematiky a informatiky užitečný
VíceTECHNOLOGIE ELASTICKÉ KONFORMNÍ TRANSFORMACE RASTROVÝCH OBRAZŮ
TECHNOLOGIE ELASTICKÉ KONFORMNÍ TRANSFORMACE RASTROVÝCH OBRAZŮ ÚVOD Technologie elastické konformní transformace rastrových obrazů je realizována v rámci webové aplikace NKT. Tato webová aplikace provádí
Více07 Základní pojmy teorie grafů
07 Základní pojmy teorie grafů (definice grafu, vlastnosti grafu, charakteristiky uzlů, ohodnocené grafy) Definice grafu množina objektů, mezi kterými existují určité vazby spojující tyto objekty. Uspořádaná
VíceGraf. Uzly Lokality, servery Osoby fyzické i právní Informatické objekty... atd. Hrany Cesty, propojení Vztahy Informatické závislosti... atd.
Graf 2 0 3 1 4 5 Uzly Lokality, servery Osoby fyzické i právní Informatické objekty... atd. Hrany Cesty, propojení Vztahy Informatické závislosti... atd. Běžné reprezentace grafu Uzly = indexy Stupně uzlů
VíceDrsná matematika III 10. demonstrovaná cvičení Kostry grafů
Drsná matematika III 10. demonstrovaná cvičení Kostry grafů Martin Panák Masarykova univerzita Fakulta informatiky 21.11. 2006 1 Domácí úlohy z minulého týdne Příklad 1 Příklad 2 Příklad 3 2 Borůvkův algoritmus
VíceAlgoritmy na ohodnoceném grafu
Algoritmy na ohodnoceném grafu Dvě základní optimalizační úlohy: Jak najít nejkratší cestu mezi dvěma vrcholy? Dijkstrův algoritmus s t Jak najít minimální kostru grafu? Jarníkův a Kruskalův algoritmus
VíceZdůvodněte, proč funkce n lg(n) roste alespoň stejně rychle nebo rychleji než než funkce lg(n!). Symbolem lg značíme logaritmus o základu 2.
1 3 4 5 6 7 8 9 10 11 1 13 14 15 16 17 18 19 0 1 3 4 5 6 7 8 9 30 31 3 Zdůvodněte, proč funkce f(n) = n log(n) 1 n 1/ roste rychleji než funkce g(n) = n. Zdůvodněte, proč funkce f(n) = n 3/ log(n) roste
VíceDynamické programování
ALG 11 Dynamické programování Úloha batohu neomezená Úloha batohu /1 Úloha batohu / Knapsack problem Máme N předmětů, každý s váhou Vi a cenou Ci (i = 1, 2,..., N) a batoh s kapacitou váhy K. Máme naložit
VíceKostry. 9. týden. Grafy. Marie Demlová (úpravy Matěj Dostál) 16. dubna 2019
Grafy 16. dubna 2019 Tvrzení. Je dán graf G, pak následující je ekvivalentní. 1 G je strom. 2 Graf G nemá kružnice a přidáme-li ke grafu libovolnou hranu, uzavřeme přesně jednu kružnici. 3 Graf G je souvislý
Více5 Orientované grafy, Toky v sítích
Petr Hliněný, FI MU Brno, 205 / 9 FI: IB000: Toky v sítích 5 Orientované grafy, Toky v sítích Nyní se budeme zabývat typem sít ových úloh, ve kterých není podstatná délka hran a spojení, nýbž jejich propustnost
VíceZáklady umělé inteligence
Základy umělé inteligence Automatické řešení úloh Základy umělé inteligence - prohledávání. Vlasta Radová, ZČU, katedra kybernetiky 1 Formalizace úlohy UI chápe řešení úloh jako proces hledání řešení v
VíceKartografická webová aplikace. Přednáška z předmětu Počítačová kartografie (KMA/POK) Otakar Čerba Západočeská univerzita
Kartografická webová aplikace Přednáška z předmětu Počítačová kartografie (KMA/POK) Otakar Čerba Západočeská univerzita Datum vzniku dokumentu: 3. 11. 2011 Datum poslední aktualizace: 10. 12. 2011 Cíl
Více6. Tahy / Kostry / Nejkratší cesty
6. Tahy / Kostry / Nejkratší cesty BI-EP2 Efektivní programování 2 LS 2017/2018 Ing. Martin Kačer, Ph.D. 2011-18 Martin Kačer Katedra teoretické informatiky Fakulta informačních technologií České vysoké
Více4 Pojem grafu, ve zkratce
Petr Hliněný, FI MU Brno, 2014 1 / 24 FI: IB000: Pojem grafu 4 Pojem grafu, ve zkratce Třebaže grafy jsou jen jednou z mnoha struktur v matematice a vlastně pouze speciálním případem binárních relací,
VíceCvičení z Lineární algebry 1
Cvičení z Lineární algebry Michael Krbek podzim 2003 2392003 Hodina Jsou dána komplexní čísla z = +2 i a w = 2 i Vyjádřete c algebraickém tvaru (z + w) 3,, (zw), z w 2 Řešte v komplexním oboru rovnice
VíceDijkstrův algoritmus
Dijkstrův algoritmus Hledání nejkratší cesty v nezáporně hranově ohodnoceném grafu Necht je dán orientovaný graf G = (V, H) a funkce, která každé hraně h = (u, v) H přiřadí nezáporné reálné číslo označované
VíceZadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od jara 2017
Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od jara 207 Zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia
VíceJava a XML. 10/26/09 1/7 Java a XML
Java a XML Java i XML jsou přenositelné V javě existuje podpora pro práci s XML, nejčastější akce prováděné při zpracování XML: načítání XML elementů generování nových elementů nebo úprava starého zápis
VíceZákladní datové struktury III: Stromy, haldy
Základní datové struktury III: Stromy, haldy prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní
VíceALGEBRA. Téma 5: Vektorové prostory
SLEZSKÁ UNIVERZITA V OPAVĚ Matematický ústav v Opavě Na Rybníčku 1, 746 01 Opava, tel. (553) 684 611 DENNÍ STUDIUM Téma 5: Vektorové prostory Základní pojmy Vektorový prostor nad polem P, reálný (komplexní)
VíceTGH10 - Maximální toky
TGH10 - Maximální toky Jan Březina Technical University of Liberec 23. dubna 2013 - motivace Elektrická sít : Elektrická sít, jednotlivé vodiče mají různou kapacitu (max. proud). Jaký maximální proud může
Více2. přednáška z předmětu GIS1 Data a datové modely
2. přednáška z předmětu GIS1 Data a datové modely Vyučující: Ing. Jan Pacina, Ph.D. e-mail: jan.pacina@ujep.cz Pro přednášku byly použity texty a obrázky z www.gis.zcu.cz Předmět KMA/UGI, autor Ing. K.
VíceTeorie grafů. Teoretická informatika Tomáš Foltýnek
Teorie grafů Teoretická informatika Tomáš Foltýnek foltynek@pef.mendelu.cz Opakování z minulé přednášky Co je to složitostní třída? Jaké složitostní třídy známe? Kde leží hranice mezi problémy řešitelnými
VíceTGH06 - Hledání nejkratší cesty
TGH06 - Hledání nejkratší cesty Jan Březina Technical University of Liberec 26. března 2013 Motivační problémy Silniční sít reprezentovaná grafem. Najdi nejkratší/nejrychlejší cestu z místa A do místa
VíceÚlohy k procvičování textu o univerzální algebře
Úlohy k procvičování textu o univerzální algebře Číslo za pomlčkou v označení úlohy je číslo kapitoly textu, která je úlohou procvičovaná. Každá úloha je vyřešena o několik stránek později. Kontrolní otázky
VíceTGH06 - Hledání nejkratší cesty
TGH06 - Hledání nejkratší cesty Jan Březina Technical University of Liberec 31. března 2015 Motivační problémy Silniční sít reprezentovaná grafem. Ohodnocené hrany - délky silnic. Najdi nejkratší/nejrychlejší
Víceopakování reprezentace grafů, dijkstra, bellman-ford, johnson
opakování reprezentace grafů, dijkstra, bellman-ford, johnson Petr Ryšavý 19. září 2016 Katedra počítačů, FEL, ČVUT opakování reprezentace grafů Graf Definice (Graf) Graf G je uspořádaná dvojice G = (V,
VícePQ-stromy a rozpoznávání intervalových grafů v lineárním čase
-stromy a rozpoznávání intervalových grafů v lineárním čase ermutace s předepsanými intervaly Označme [n] množinu {1, 2,..., n}. Mějme permutaci π = π 1, π 2,..., π n množiny [n]. Řekneme, že množina S
VícePoužití dalších heuristik
Použití dalších heuristik zkracování cesty při FIND-SET UNION podle hodností Datové struktury... p[x] - předchůdce uzlu x MAKE-SET(x) p[x] := x hod[x] := 0 hod[x] - hodnost (aprox. výšky) UNION(x,y) LINK(FIND-SET(x),
VíceStromy. Strom: souvislý graf bez kružnic využití: počítačová grafika seznam objektů efektivní vyhledávání výpočetní stromy rozhodovací stromy
Stromy úvod Stromy Strom: souvislý graf bez kružnic využití: počítačová grafika seznam objektů efektivní vyhledávání výpočetní stromy rozhodovací stromy Neorientovaný strom Orientovaný strom Kořenový orientovaný
VíceVektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace
Vektory a matice Aplikovaná matematika I Dana Říhová Mendelu Brno Obsah 1 Vektory Základní pojmy a operace Lineární závislost a nezávislost vektorů 2 Matice Základní pojmy, druhy matic Operace s maticemi
VíceTeorie grafů. zadání úloh. letní semestr 2008/2009. Poslední aktualizace: 19. května 2009. First Prev Next Last Go Back Full Screen Close Quit
Teorie grafů zadání úloh letní semestr 2008/2009 Poslední aktualizace: 19. května 2009 Obsah Úloha číslo 1 5 Úloha číslo 2 6 Úloha číslo 3 7 Úloha číslo 4 8 Úloha číslo 5 9 Úloha číslo 6 10 Úloha číslo
VíceTRANSFORMACE OBJEKTOVÉ PETRIHO SÍTĚ Z JAZYKA OPNML DO GRAFU TRANSFORMATION OF OBJECT-ORIENTED PETRI NET FROM OPNML LANGUAGE TO GRAPH
TRANSFORMACE OBJEKTOVÉ PETRIHO SÍTĚ Z JAZYKA OPNML DO GRAFU TRANSFORMATION OF OBJECT-ORIENTED PETRI NET FROM OPNML LANGUAGE TO GRAPH Petr Jedlička Mendelova zemědělská a lesnická univerzita v Brně Provozně
VíceProblém obchodního cestujícího(tsp) Vstup: Množina n měst a vzdálenosti mezi nimi. Výstup: Nejkratší okružní cesta procházející všemi městy.
Problém obchodního cestujícího(tsp) Vstup: Množina n měst a vzdálenosti mezi nimi. Výstup: Nejkratší okružní cesta procházející všemi městy. Poznámka:Slovem okružní myslíme,žecestakončívestejném městě,
VíceMATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij]
MATICE Matice typu m/n nad tělesem T je soubor m n prvků z tělesa T uspořádaných do m řádků a n sloupců: a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij] a m1 a m2 a mn Prvek a i,j je prvek matice A na místě
VíceTeorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy
Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy Lukáš Havrlant Univerzita Palackého 10. ledna 2014 Primární zdroj Jiří Adámek: Foundations of Coding. Strany 137 160. Na webu ke stažení, heslo:
Více3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem
ČVUT FEL X36PAA - Problémy a algoritmy 3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem Jméno: Marek Handl Datum: 1. 1. 2009 Cvičení: Pondělí 9:00 Zadání Naprogramujte
VíceČasová a prostorová složitost algoritmů
.. Časová a prostorová složitost algoritmů Programovací techniky doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Hodnocení algoritmů Programovací techniky Časová a prostorová
VíceJan Březina. Technical University of Liberec. 30. dubna 2013
TGH11 - Maximální párování a související problémy Jan Březina Technical University of Liberec 30. dubna 2013 Bipartitní grafy Bipartitní graf - je obarvitelný dvěma barvami. Tj. V lze rozělit na disjunktní
VíceH {{u, v} : u,v U u v }
Obyčejný graf Obyčejný graf je dvojice G= U, H, kde U je konečná množina uzlů (vrcholů) a H {{u, v} : u,v U u v } je (konečná) množina hran. O hraně h={u, v} říkáme, že je incidentní s uzly u a v nebo
VíceŘešení: PŘENESVĚŽ (N, A, B, C) = přenes N disků z A na B pomocí C
Hanojské věže - 3 kolíky A, B, C - na A je N disků různé velikosti, seřazené od největšího (dole) k nejmenšímu (nahoře) - kolíky B a C jsou prázdné - úkol: přenést všechny disky z A na B, mohou se odkládat
VíceORIENTOVANÉ GRAFY, REPREZENTACE GRAFŮ
ORIENTOVANÉ GRAFY, REPREZENTACE GRAFŮ Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze BI-GRA, LS 2/2, Lekce Evropský sociální fond Praha & EU: Investujeme
VíceUživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý
Uživatelský manuál Aplikace GraphViewer Vytvořil: Viktor Dlouhý Obsah 1. Obecně... 3 2. Co aplikace umí... 3 3. Struktura aplikace... 4 4. Mobilní verze aplikace... 5 5. Vytvoření projektu... 6 6. Části
VíceM M S. Značkovací jazyky
M M S Značkovací jazyky H i s t o r i e SGML HTML XML VRML TIFF... S o u č a s n o s t XML Schémata -> Mnoho nových jazyk ů, formátů B u d o u c n o s t Kdo ví Z n a č k y R ů zný charakter Ohraničující
VíceEditor pro vizualizaci interiérů bytů
České vysoké učení technické v Praze Fakulta elektrotechnická Katedra počítačové grafiky a interakce Bakalářská práce Editor pro vizualizaci interiérů bytů Dominik Vondráček Vedoucí práce: Ing. David Sedláček
Více3. Třídy P a NP. Model výpočtu: Turingův stroj Rozhodovací problémy: třídy P a NP Optimalizační problémy: třídy PO a NPO MI-PAA
Jan Schmidt 2011 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Zimní semestr 2011/12 MI-PAA EVROPSKÝ SOCIÁLNÍ FOND PRAHA & EU: INVESTUJENE DO VAŠÍ BUDOUCNOSTI
VíceDefinice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují
Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují 1. u + v = v + u, u, v V 2. (u + v) + w = u + (v + w),
VíceProgramování v jazyce C a C++
Programování v jazyce C a C++ Příklad na tvorbu třídy Richter 1 4. prosince 2017 1 Ing. Richter Miloslav, Ph.D., UAMT FEKT VUT Brno Dvourozměrné pole pomocí tříd Zadání Navrhněte a napište třídu pro realizace
VíceX37SGS Signály a systémy
X7SGS Signály a systémy Matlab minihelp (poslední změna: 0. září 2008) 1 Základní maticové operace Vytvoření matice (vektoru) a výběr konkrétního prvku matice vytvoření matice (vektoru) oddělovač sloupců
VíceJan Březina. Technical University of Liberec. 21. dubna 2015
TGH11 - Maximální párování a související problémy Jan Březina Technical University of Liberec 21. dubna 2015 Bipartitní grafy Bipartitní graf - je obarvitelný dvěma barvami. Tj. V lze rozělit na disjunktní
VíceNaproti tomu gramatika je vlastně soupis pravidel, jak
1 Kapitola 1 Úvod V přednášce se zaměříme hlavně na konečný popis obecně nekonečných množin řetězců symbolů dané množiny A. Prvkům množiny A budeme říkat písmena, řetězcům (konečným posloupnostem) písmen
VíceProhledávání do šířky = algoritmus vlny
Prohledávání do šířky = algoritmus vlny - souběžně zkoušet všechny možné varianty pokračování výpočtu, dokud nenajdeme řešení úlohy průchod stromem všech možných cest výpočtu do šířky, po vrstvách (v každé
Více2. úkol MI-PAA. Jan Jůna (junajan) 3.11.2013
2. úkol MI-PAA Jan Jůna (junajan) 3.11.2013 Specifikaci úlohy Problém batohu je jedním z nejjednodušších NP-těžkých problémů. V literatuře najdeme množství jeho variant, které mají obecně různé nároky
Vícetransformace je posunutí plus lineární transformace má svou matici vzhledem k homogenním souřadnicím [1]
[1] Afinní transformace je posunutí plus lineární transformace má svou matici vzhledem k homogenním souřadnicím využití například v počítačové grafice Evropský sociální fond Praha & EU. Investujeme do
VíceInformatika navazující magisterské studium Přijímací zkouška z informatiky 2018 varianta A
Informatika navazující magisterské studium Přijímací zkouška z informatiky 2018 varianta A Každá úloha je hodnocena maximálně 25 body. Všechny své odpovědi zdůvodněte! 1. Postavte na stůl do řady vedle
Více10 Přednáška ze
10 Přednáška ze 17. 12. 2003 Věta: G = (V, E) lze nakreslit jedním uzavřeným tahem G je souvislý a má všechny stupně sudé. Důkaz G je souvislý. Necht v je libovolný vrchol v G. A mějme uzavřený eurelovský
Vícezejména Dijkstrův algoritmus pro hledání minimální cesty a hladový algoritmus pro hledání minimální kostry.
Kapitola Ohodnocené grafy V praktických aplikacích teorie grafů zpravidla graf slouží jako nástroj k popisu nějaké struktury. Jednotlivé prvky této struktury mají často přiřazeny nějaké hodnoty (může jít
VícePokročilé techniky tvorby sestav v Caché. ZENové Reporty
Pokročilé techniky tvorby sestav v Caché ZENové Reporty Úvodem Jednoduché sestavy Pokročilé sestavy Ladění Historie ZEN reporty sdílejí podobný princip definování obsahu jako ZENové stránky Byly uvedeny
VíceHledáme efektivní řešení úloh na grafu
Hledáme efektivní řešení úloh na grafu Mějme dán graf následující úlohy: G = ( V, E), chceme algoritmicky vyřešit Je daný vrchol t dosažitelný z vrcholu s? Pokud ano, jaká nejkratší cesta tyto vrcholy
VíceVýroková a predikátová logika - III
Výroková a predikátová logika - III Petr Gregor KTIML MFF UK ZS 2017/2018 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - III ZS 2017/2018 1 / 16 2-SAT 2-SAT Výrok je v k-cnf, je-li v CNF a
Více