Prohledávání do šířky a do hloubky. Jan Hnilica Počítačové modelování 15
|
|
- Vratislav Kučera
- před 5 lety
- Počet zobrazení:
Transkript
1 Prohledávání do šířky a do hloubky Jan Hnilica Počítačové modelování 15 1
2 Prohledávací algoritmy Úkol postupně systematicky prohledat vymezený stavový prostor Stavový prostor (SP) možné stavy a varianty vývoje nějakého procesu (výpočetního, výrobního, herního...) co může být stavovým prostorem? varianty vývoje na šachovnici (hledáme cestu k vítězství) bludiště (hledáme cestu ven) silniční síť (hledáme cestu z A do B)... a mnoho dalších příkladů Co můžeme hledat? nejrychlejší řešení (nejdříve dostupné) optimální řešení všechna řešení alespoň jedno řešení (jakékoliv) Prohledávání do hloubky nebo do šířky oba algoritmy vedou k úplnému prohledání SP, liší se ale pořadím navštívených míst v praxi mezi nimi volíme podle cíle, kterého má být dosaženo (viz dále) Jan Hnilica Počítačové modelování 15 2
3 Stavový prostor jako strom SP si můžeme představit jako strom (a také se tak v programu často realizuje) kořen stromu = úvodní stav např. výchozí poloha v bludišti synové uzlu U = stavy, do kterých se lze dostat z U pomocí nějakého elementárního kroku elementární krok = např. postup v bludišti na další rozcestí listy = konec cesty východ z bludiště nebo slepá ulička A K H C G I B C D D A B E F G H I J F K L L J E Jan Hnilica Počítačové modelování 15 3
4 Průchod stromem do hloubky a do šířky cílem je postupně prohledat všechny uzly stromu k dočasnému skladování uzlů použijeme datovou strukturu DS (viz dále) algoritmus: 1. vlož do DS kořen stromu 2. cyklus: dokud DS není prázdná 2a. vyjmi z DS uzel U // uzel U je navštívený 2b. vlož do DS všechny syny uzlu U // např. zprava doleva D B E A F C G použitá datová struktura DS je: zásobník průchod do hloubky uzly navštíveny v pořadí: A, B, D, E, C, F, G fronta průchod do šířky (po vrstvách) uzly navštíveny v pořadí: A, B, C, D, E, F, G Jan Hnilica Počítačové modelování 15 4
5 Prohledávání do hloubky = backtracking, DFS (depth first search) Algoritmus postupně prohledáváme jednu větev po druhé, postupujeme do hloubky směrem k listům pokud na dané cestě nenajdeme řešení, vracíme se zpět na místo předchozího větvení a vydáme se jinou cestou Realizace rekurzivní funkce nebo cyklus s vlastním zásobníkem Paměťová složitost odpovídá výšce stromu (na zásobníku udržujeme pouze aktuálně prohledávanou cestu) obvykle dobře zvládnutelné Časová složitost odpovídá počtu uzlů ve stromu, které musíme navštívit exponenciálně roste s výškou stromu časově extrémně náročné, použitelné pro malé úlohy Jan Hnilica Počítačové modelování 15 5
6 Prohledávání do hloubky pro zmírnění časových nároků se používají prořezávání a heuristiky Prořezávání při každém kroku hlouběji k listům zkoušíme průběžně vyhodnotit, jestli daná cesta může vést k nalezení řešení pokud můžeme určit, že cesta vede do slepé uličky, ihned se vracíme a neztrácíme čas jejím rozvíjením ( odřízneme celý podstrom) ne vždy je prořezávání možné, ale pokud ano, dokáže zásadním způsobem snížit časové nároky algoritmu Heuristiky použitelné, pokud hledáme jedno řešení (jakékoliv) princip: přednostně procházíme ty větve, kde tušíme existenci blízkého řešení heuristika = intuitivní odhad, jakou cestou se vydat (kde by se řešení mohlo nalézat) dobrá heuristika výrazné zrychlení, projdeme pouze malou část stromu špatná heuristika nic se neděje, o řešení nepřijdeme (heuristika pouze mění pořadí, ve kterém jsou podstromy procházeny) Příklady prořezávání a heuristik viz dále... Jan Hnilica Počítačové modelování 15 6
7 Prohledávání do hloubky Luštění Sudoku tabulka 9 9, uvnitř dále rozdělená na 9 bloků 3 3 vyplňujeme čísly 1 9, zadání je částečně předvyplněno omezení: v žádném sloupci, řádku ani bloku se žádné číslo nesmí opakovat Základní řešení (hromotlucké) rekurzivní algoritmus, do každého volného políčka postupně zkoušíme čísla 1 9 po vyplnění celé tabulky vždy otestujeme, zda jsme našli řešení (tzn. zda jsme vytvořili korektní sudoku podle daných omezení) Časová složitost 81 políček, na každém hodnoty 1 9 celkem 9 81 variant nelze prohledat v rozumném čase!!! Urychlení pomocí prořezávání po vyplnění každého políčka ihned otestujeme, zda jsme neporušili pravidla test sloupce, řádku a bloku pokud ano, nemá smysl větev rozvíjet dál ihned návrat o patro výš ušetříme mnoho zbytečné práce, výrazné zrychlení Jan Hnilica Počítačové modelování 15 7
8 Prohledávání do hloubky Koňská procházka na šachovnici stojí samotný kůň, cílem je nalézt takovou posloupnost tahů, při které kůň postupně proskáče celou šachovnici a na žádné pole přitom neskočí dvakrát Algoritmus z každé pozice postupně zkoušíme provést všechny tahy, které vedou na dosud nenavštívená pole, čímž vznikají nové pozice, které rekurzivně rozvíjíme stejným postupem z dané pozice jsou možné další tahy rekurzivní rozvoj nejsou možné další tahy slepá ulička, návrat o patro výš vždy samozřejmě kontrolujeme, zda jsme nedosáhli řešení Urychlení pomocí heuristiky přednostně provádíme ty tahy, které vedou do omezených pozic (tzn. do pozic s menším počtem možných pokračování) velmi výrazné zrychlení výpočtu (pokud hledáme jedno řešení) Jan Hnilica Počítačové modelování 15 8
9 Prohledávání do hloubky Koňská procházka Realizace (jedna z možností) šachovnice = 2D pole int [8][8], hodnota políčka = pořadí kroku, kterým jsme na něj přišli rekurzivní funkce, pracující nad jediným polem v paměti (š. předávaná jako parametr) úvod: všechna políčka šachovnice mají hodnotu 0, startovní pozice má hodnotu 1 rozvoj z pozice P na pozici P (další tah): zapsat na P číslo o jedničku vyšší než má P rekurzivní rozvoj pozice P návrat z rozvoje P : ve větvi bylo nalezeno řešení návrat zpět (oznámit čekajícím funkcím nahoře) řešení nalezeno nebylo vrátit na P hodnotu 0 a pokračovat rozvojem jiného tahu informace o nalezeném řešení: např. proměnná typu int, předávaná mezi funkcemi odkazem nebo návratová hodnota samotné rekurzivní funkce Jan Hnilica Počítačové modelování 15 9
10 Prohledávání do hloubky Koňská procházka jedno z možných řešení (start vlevo nahoře) a b c d e f g h a b c d e f g h Jan Hnilica Počítačové modelování 15 10
11 Prohledávání do šířky = algoritmus vlny, BFS (breadth first search) Algoritmus současně rozvíjíme všechny varianty pokračování řešené úlohy strom výpočtu procházíme do šířky po vrstvách Realizace uzly určené k dalšímu zpracování odkládáme do fronty informace o zpracovávaných uzlech lze také zakódovat do reprezentace stavového prostoru (např. šachovnice = 2D pole, políčka obsahují informaci, zda byla už navštívena, popř. v kolikátém kroku) Paměťová složitost ve frontě uložena celá vrstva, šířka vrstvy s hloubkou exponenciálně roste pro větší hloubky výpočtu paměťově nerealizovatelné Časová složitost = obecně všechny uzly stromu (jako u backtrackingu) algoritmus používáme, pokud chceme nalézt nejrychleji dostupné řešení (BFS vždy jako první najde toto řešení) Jan Hnilica Počítačové modelování 15 11
12 Prohledávání do šířky Královská procházka král stojí na šachovnici na startovním poli S, jeho úkolem je dostat se na cílové pole C omezení: na některých polích jsou překážky, na tato pole král nesmí vstoupit cílem je zjistit nejmenší možný počet kroků z S na C, případně vypsat cestu start cíl překážka Algoritmus okolo výchozí pozice najdeme a označíme všechna pole, na které král může vstoupit všechny označené pozice souběžně rozvíjíme, tzn. pro každou z nich najdeme všechny dosud nenavštívené sousedy, na které je možné vstoupit a označíme je pro rozvoj v dalším kroku kolem výchozí pozice se v jednotlivých krocích rozlévá vlna, která postupně dojde na cílové pole (nebo nedojde, pokud je král překážkami odříznut od cíle) Jan Hnilica Počítačové modelování 15 12
13 Prohledávání do šířky Královská procházka start cíl překážka čelo vlny prohledaná oblast 1. krok 2. krok 3. krok 4. krok 5. krok 6. krok 7. krok 8. krok 9. krok jsme u cíle po 9 krocích Jan Hnilica Počítačové modelování 15 13
14 Prohledávání do šířky Královská procházka Technická realizace šachovnice opět nejlépe jako 2D pole int hodnota políčka = pořadí kroku, kterým se na něj dá dostat uložení aktuálně rozvíjených pozic lineární seznam nebo v každém kroku projít celou šachovnici a nalézt pole s příslušnou hodnotou (nemusíme udržovat lineární seznam, ale přístup k rozvíjeným pozicím je pomalejší) Výpis konkrétní cesty vyžaduje zpětný chod od cílové pozice ke startu v každém kroku postupujeme na pole s hodnotou o jedničku menší (takových polí může být víc, teoreticky je jedno, které zvolíme) Jan Hnilica Počítačové modelování 15 14
15 Prohledávání do šířky Přelévání vody máme n nádob o definovaných objemech, první je plná, ostatní prázdné cíl: pomocí přelévání vody mezi nádobami dosáhnout požadovaných obsahů vody v jednotlivých nádobách omezení: nádoby nemají žádné rysky, takže jediné povolené operace, při kterých udržíme informaci o obsahu vody v nádobách jsou: úplné vylití nádoby do jiné nádoby úplné naplnění nádoby obsahem (nebo částí obsahu) jiné nádoby úkol: napsat program, který pro zadané objemy nádob vypíše nejkratší posloupnost přelití, kterou se lze dostat do cílového stavu objemy nádob: úvodní stav: cílový stav: Jan Hnilica Počítačové modelování 15 15
16 Prohledávání do šířky Přelévání vody Řešení v každém kroku současně rozvíjíme všechny stavy vzniklé v předchozím kroku až do nalezení cílového stavu (nebo do zjištění, že nové stavy už vznikat nemůžou úlohu nelze splnit) Realizace stavového prostoru n-rozměrné pole (souřadnice reprezentují aktuální obsahy), prvky pole obsahují pořadí kroku, případně další informace (ze kterého stavu se sem dojde na nejmenší počet kroků...) obecný strom stavů uzly obsahují aktuální obsahy, pointery na syny, případně pointer na otce při rozvoji je dobré dát pozor na duplicitní rozvoj stejných stavů (z A se lze dostat jedním přelitím na B z B se lze dostat zpětným přelitím na A) Vypsání posloupnosti přelití po nalezení cílového stavu zpětný chod stavovým prostorem zpětný chod stromem od listu ke kořeni ( tady se bude hodit ten pointer na otce) Jan Hnilica Počítačové modelování 15 16
17 Prohledávání do šířky Přelévání vody řešení úlohy Jan Hnilica Počítačové modelování 15 17
18 Kdy použít který algoritmus záleží na zadané úloze Prohledávání do hloubky vhodné, pokud je úkolem nalézt všechna řešení optimální řešení nutné prohledat celý strom, což trvá u obou algoritmů stejně dlouho, ale prohledávání do hloubky spotřebuje výrazně méně paměti nebo pokud hledáme libovolné řešení, které je ale ve stromu daleko od kořene (stejný důvod) Prohledávání do šířky při úkolu nalézt nejrychleji dostupné řešení pokud ve velkém stavovém prostoru existuje řešení blízko kořene Jan Hnilica Počítačové modelování 15 18
19 Minimax algoritmus, který umí "inteligentně" hrát např. piškvorky, dámu, šachy... obecně hry pro dva hráče, ve kterých jsou veškeré informace viditelné na hrací ploše (ne tedy např. karetní hry) Hra dva hráči (černý a bílý) se pravidelně střídají v tazích algoritmus hraje např. v pozici bílého protihráč = člověk (nebo jiný algoritmus) cílem algoritmu je vždy v aktuální herní situaci vybrat nejlepší tah z partie Garry Kasparov vs Deep Blue Jan Hnilica Počítačové modelování 15 19
20 Minimax Strom hry uzel = stav na šachovnici (kořen je výchozí stav) synové uzlu = možné tahy (vznikají nové stavy) bílé uzly... na tahu je bílý černé uzly... na tahu je černý list = konec hry (výhra jednoho z hráčů nebo remíza) Velikost stromu hry obvykle velká hloubka stromu - hry končí až po desítkách tahů obvykle velký stupen větvení - uzly mívají desítky synů (počet možných tahů z daného stavu) kompletní strom hry bývá velmi rozsáhlý Jan Hnilica Počítačové modelování 15 20
21 Minimax Hodnota stavu na šachovnici = číslo, vyjadřující např. aktuální herní materiál hráčů, bonusy za výhodné pozice atd. vysoká hodnota výhodná pro bílého nízká hodnota výhodná pro černého Princip algoritmu generuje se strom hry pro daný (omezený) počet tahů dopředu nejdříve se ohodnotí listy stromu uzly ve vyšších patrech získávají hodnotu postupně při průchodu stromem zdola nahoru uzel vždy získá hodnotu toho syna, kterého si daný hráč vybere jako svůj nejlepší tah bílý maximalizuje z možných tahů vybírá ten s nejvyšší hodnotou černý minimalizuje z možných tahů vybírá ten s nejnižší hodnotou v kořeni nakonec bílý vybírá tah s nejvyšší hodnotou Technická realizace strom hry nelze celý vygenerovat a uložit do paměti (ani u malých her) strom se zároveň tvoří a prochází do hloubky, při návratu se uzly ve spodních patrech mažou hodnota v uzlu se průběžně upravuje při návratu z jeho podstromu (v bílém uzlu - pokud se zespoda vrátí hodnota vyšší než prozatím dosažená, v černém naopak) Jan Hnilica Počítačové modelování 15 21
22 Minimax (demonstrace do hloubky 3 tahů) vybíráme maximum... (provede se levý tah) 4 vybíráme minimum vybíráme maximum nejdříve ohodnotíme listy Jan Hnilica Počítačové modelování 15 22
23 Minimax (nárys funkce) int Minimax(sachovnice * S, int hloubka, int hrac) { // jsme v listu => vracíme hodnotu na šachovnici if (hloubka == 0) return Hodnota(S); // vygenerujeme tahy z aktuální pozice tah tahy[] = VygenerujTahy(S); int hodnota; int nejhodnota = -hrac * ; // postupně vyzkoušíme všechny tahy a zjistíme jejich cenu for (int i = 0; i < pocettahu; i++) { ZahrajTah(S, tahy[i]); hodnota = Minimax(S, hloubka 1, -hrac); ZahrajTahZpet(S, tahy[i]); if (hrac == 1) if (hodnota > nejhodnota) nejhodnota = hodnota; if (hrac == -1) if (hodnota < nejhodnota) nejhodnota = hodnota; } // úklid a návrat do vyšších pater SmazTahy(tahy); return nejhodnota; } Jan Hnilica Počítačové modelování 15 23
24 Minimax Složitost minimaxu paměť = výška stromu (není problém) čas = počet uzlů stromu hry, exponenciálně roste s hloubkou nutno velmi omezit hloubku prohledávání Možnosti prořezávání subjektivní prořezávání (ztrátové) po několika tazích zhodnotit stav na šachovnici, pozice, které se jeví jako málo nadějné dál nerozvíjíme problém: hodnocení je subjektivní, pouze odhadujeme, jak by se stav mohl rozvinout můžeme odmítnout cesty vedoucí nakonec k vítězství alfa-beta prořezávání (bez ztráty informace) algoritmus doplníme o dva parametry: alfa = maximum, které má ve vyšších patrech k dispozici maximalizující hráč beta = minimum, které má ve vyšších patrech k dispozici minimalizující hráč příklad použití: na tahu je bílý a zjistí, že některý jeho tah má hodnotu > beta okamžitý návrat proč? zkoumáním dalších tahů by mohl hodnotu svého uzlu jen zvětšit, ale minimalizující hráč má někde nahoře k dispozici menší hodnotu, tuto větev si tedy stejně nevybere, tzn. nemá cenu pokračovat Jan Hnilica Počítačové modelování 15 24
25 Minimax (demonstrace alfa - beta prořezávání) hodnota < alfa hodnota > beta Jan Hnilica Počítačové modelování 15 25
Ř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í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íceÚloha ve stavovém prostoru SP je <s 0, C>, kde s 0 je počáteční stav C je množina požadovaných cílových stavů
Stavový prostor a jeho prohledávání SP = formalismus k obecnějšímu uchopení a vymezení problému, který spočívá v nalezení posloupnosti akcí vedoucích od počátečního stavu úlohy (zadání) k požadovanému
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íceAlgoritmy pro hraní tahových her
Algoritmy pro hraní tahových her Klasické deskové hry pro dva hráče: Šachy Dáma Go Piškvorky Reversi Oba hráči mají úplnou znalost pozice (na rozdíl např. od Pokeru). 1 Základní princip Hraní tahových
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íce"Agent Hledač" (3. přednáška)
"Agent Hledač" (3. přednáška) Přehled 3. přednášky v této přednášce se budeme zabývat "goal-based" agenty Přehled 3. přednášky v této přednášce se budeme zabývat "goal-based" agenty připomeňme, že "goal-based"
Vícebfs, dfs, fronta, zásobník, prioritní fronta, halda
bfs, dfs, fronta, zásobník, prioritní fronta, halda Petr Ryšavý 20. září 2016 Katedra počítačů, FEL, ČVUT prohledávání grafů Proč prohledávání grafů Zkontrolovat, zda je sít spojitá. Hledání nejkratší
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íceZáklady umělé inteligence
Základy umělé inteligence Hraní her (pro 2 hráče) Základy umělé inteligence - hraní her. Vlasta Radová, ZČU, katedra kybernetiky 1 Hraní her (pro dva hráče) Hraní her je přirozeně spjato s metodami prohledávání
VíceHry a UI historie. von Neumann, 1944 algoritmy perfektní hry Zuse, Wiener, Shannon, přibližné vyhodnocování
Hry a UI historie Hry vs. Prohledávání stavového prostoru Hry a UI historie Babbage, 1846 počítač porovnává přínos různých herních tahů von Neumann, 1944 algoritmy perfektní hry Zuse, Wiener, Shannon,
Vícebfs, dfs, fronta, zásobník, prioritní fronta, halda
bfs, dfs, fronta, zásobník, prioritní fronta, halda Petr Ryšavý 19. září 2017 Katedra počítačů, FEL, ČVUT prohledávání grafů Proč prohledávání grafů Zkontrolovat, zda je sít spojitá. Hledání nejkratší
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íceIntervalové stromy. Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme. 1. Změna jednoho čísla v posloupnosti.
Intervalové stromy Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme průběžně provádět tyto dvě operace: 1. Změna jednoho čísla v posloupnosti. 2. Zjištění součtu čísel
Více2. Řešení úloh hraní her Hraní her (Teorie a algoritmy hraní her)
Hraní her (Teorie a algoritmy hraní her) 4. 3. 2015 2-1 Hraní her pro dva a více hráčů Počítač je při hraní jakékoli hry: silný v komplikovaných situacích s množstvím kombinací, má obrovskou znalost zahájení
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íceMetody návrhu algoritmů, příklady. IB111 Programování a algoritmizace
Metody návrhu algoritmů, příklady IB111 Programování a algoritmizace 2011 Návrhu algoritmů vybrané metody: hladové algoritmy dynamické programování rekurze hrubá síla tato přednáška: především ilustrativní
VíceHraní her. (Teorie a algoritmy hraní her) Řešení úloh hraní her. Václav Matoušek /
Hraní her (Teorie a algoritmy hraní her) 8. 3. 2019 2-1 Hraní her pro dva a více hráčů Počítač je při hraní jakékoli hry: silný v komplikovaných situacích s množstvím kombinací, má obrovskou znalost zahájení
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íceState Space Search Step Run Editace úloh Task1 Task2 Init Clear Node Goal Add Shift Remove Add Node Goal Node Shift Remove, Add Node
State Space Search Po spuštění appletu se na pracovní ploše zobrazí stavový prostor první předpřipravené úlohy: - Zeleným kroužkem je označen počáteční stav úlohy, který nemůže být změněn. - Červeným kroužkem
Vícebfs, dfs, fronta, zásobník
bfs, dfs, fronta, zásobník Petr Ryšavý 25. září 2018 Katedra počítačů, FEL, ČVUT prohledávání grafů Proč prohledávání grafů Zkontrolovat, zda je sít spojitá. Hledání nejkratší cesty, plánování cest. Prohledávání
VíceAnotace. Středník II!! 7. 5. 2010 programování her.
Anotace Středník II!! 7. 5. 2010 programování her. Teorie her Kombinatorická hra je hrou dvou hráčů. Stav hry je určen pozicí nějakých předmětů. Všechny zúčastněné předměty jsou viditelné. Jde o tzv. hru
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íceAlgoritmy a datové struktury
Algoritmy a datové struktury Stromy 1 / 32 Obsah přednášky Pole a seznamy Stromy Procházení stromů Binární stromy Procházení BS Binární vyhledávací stromy 2 / 32 Pole Hledání v poli metodou půlení intervalu
VícePočítačové šachy. Otakar Trunda
Počítačové šachy Otakar Trunda Hraní her obecně Hra je definovaná pomocí: Počáteční situace Funkce vracející množinu přípustných tahů v každé situaci Ohodnocení koncových stavů Našim cílem je najít strategii
VíceUmělá inteligence I. Roman Barták, KTIML. roman.bartak@mff.cuni.cz http://ktiml.mff.cuni.cz/~bartak
Umělá inteligence I Roman Barták, KTIML roman.bartak@mff.cuni.cz http://ktiml.mff.cuni.cz/~bartak Na úvod Agent s reflexy pouze převádí současný vjem na jednu akci. Agent s cílem umí plánovat několik akcí
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ícePředmět: Algoritmizace praktické aplikace
Předmět: Algoritmizace praktické aplikace Vytvořil: Roman Vostrý Zadání: Vytvoření funkcí na stromech (reprezentace stromu haldou). Zadané funkce: 1. Počet vrcholů 2. Počet listů 3. Součet 4. Hloubka 5.
VícePROHLEDÁVÁNÍ GRAFŮ. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze
PROHLEDÁVÁNÍ GRAFŮ Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze BI-GRA, LS 2010/2011, Lekce 4 Evropský sociální fond Praha & EU: Investujeme do
VíceAlgoritmus Minimax. Tomáš Kühr. Projektový seminář 1
Projektový seminář 1 Základní pojmy Tah = přemístění figury hráče na tahu odpovídající pravidlům dané hry. Při tahu může být manipulováno i s figurami soupeře, pokud to odpovídá pravidlům hry (např. odstranění
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í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íceALG 04. Zásobník Fronta Operace Enqueue, Dequeue, Front, Empty... Cyklická implementace fronty. Průchod stromem do šířky
LG 04 Zásobník Fronta Operace nqueue, equeue, Front, mpty... yklická implementace fronty Průchod stromem do šířky Grafy průchod grafem do šířky průchod grafem do hloubky Ořezávání a heuristiky 1 Zásobník
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íceALGORITMIZACE 2010/03 STROMY, BINÁRNÍ STROMY VZTAH STROMŮ A REKURZE ZÁSOBNÍK IMPLEMENTUJE REKURZI PROHLEDÁVÁNÍ S NÁVRATEM (BACKTRACK)
ALGORITMIZACE 2010/03 STROMY, BINÁRNÍ STROMY VZTAH STROMŮ A REKURZE ZÁSOBNÍK IMPLEMENTUJE REKURZI PROHLEDÁVÁNÍ S NÁVRATEM (BACKTRACK) Strom / tree uzel, vrchol / node, vertex hrana / edge vnitřní uzel
VíceRekurzivní algoritmy
Rekurzivní algoritmy 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í algoritmy (BI-EFA) ZS
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íceÚ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í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íceRekurze. Jan Hnilica Počítačové modelování 12
Rekurze Jan Hnilica Počítačové modelování 12 1 Rekurzivní charakter úlohy Výpočet faktoriálu faktoriál : n! = n (n - 1) (n - 2)... 2 1 (0! je definován jako 1) můžeme si všimnout, že výpočet n! obsahuje
VíceDokumentace programu piskvorek
Dokumentace programu piskvorek Zápočtového programu z Programování II PRM045 Ondřej Vostal 20. září 2011, Letní semestr, 2010/2011 1 Stručné zadání Napsat textovou hru piškvorky se soupeřem s umělou inteligencí.
VíceObsah: Hry vs. Prohledávání stavového prostoru Algoritmus Minimax. Nedeterministické hry Hry s nepřesnými znalostmi
Hry a základní herní strategie Aleš Horák E-mail: hales@fi.muni.cz http://nlp.fi.muni.cz/uui/ Obsah: Hry vs. Prohledávání stavového prostoru Algoritmus Minimax Algoritmus Alfa-Beta prořezávání Nedeterministické
VíceObsah: Hry Prohledávání stavového prostoru. Algoritmus Minimax. Nedeterministické hry Hry s nepřesnými znalostmi
Hry a základní herní strategie Aleš Horák E-mail: hales@fi.muni.cz http://nlp.fi.muni.cz/uui/ Obsah: Hry vs. Prohledávání stavového prostoru Algoritmus Minimax Algoritmus Alfa-Beta prořezávání Nedeterministické
VíceCvičení 5 - Průchod stromem a grafem
Cvičení 5 - Průchod stromem a grafem Radek Mařík Marko Genyk-Berezovskyj ČVUT FEL, K13133 14. března 2013 Cvičení 5 - Průchod stromem a grafem 14. března 2013 1 / 18 Outline 1 Průchod stromem 2 Cvičení
VíceCílem kapitoly je seznámit studenta se seznamem a stromem. Jejich konstrukci, užití a základní vlastnosti.
Seznamy a stromy Cílem kapitoly je seznámit studenta se seznamem a stromem. Jejich konstrukci, užití a základní vlastnosti. Klíčové pojmy: Seznam, spojový seznam, lineární seznam, strom, list, uzel. Úvod
VíceProgramování 3. hodina. RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015
Programování 3. hodina RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015 Umíme z minulé hodiny Implementace zásobníku a fronty pomocí
VíceObsah: Hry vs. Prohledávání stavového prostoru Algoritmus Minimax. Nedeterministické hry Hry s nepřesnými znalostmi
Hry a základní herní strategie Aleš Horák E-mail: hales@fi.muni.cz http://nlp.fi.muni.cz/uui/ Obsah: Statistické výsledky průběžné písemky Hry vs. Prohledávání stavového prostoru Algoritmus Minimax Algoritmus
VíceVarianty Monte Carlo Tree Search
Varianty Monte Carlo Tree Search tomas.kuca@matfyz.cz Herní algoritmy MFF UK Praha 2011 Témata O čem bude přednáška? Monte Carlo Tree Search od her podobných Go (bez Go) k vzdálenějším rozdíly a rozšíření
Více3. Prohledávání grafů
3. Prohledávání grafů Prohledání do šířky Breadth-First Search BFS Jde o grafový algoritmus, který postupně prochází všechny vrcholy v dané komponentě souvislosti. Algoritmus nejprve projde všechny sousedy
Více1. Implementace funkce počet vrcholů. Předmět: Algoritmizace praktické aplikace (3ALGA)
Předmět: Algoritmizace praktické aplikace (3ALGA) Vytvořil: Jan Brzeska Zadání: Vytvoření funkcí na stromech (reprezentace stromu směrníky). Zadané funkce: 1. Počet vrcholů 2. Počet listů 3. Součet 4.
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íceDynamické datové struktury III.
Dynamické datové struktury III. Halda. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká fakulta UK. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované
VíceBinární vyhledávací strom pomocí směrníků Miroslav Hostaša L06620
Binární vyhledávací strom pomocí směrníků Miroslav Hostaša L06620 1. Vymezení pojmů Strom: Strom je takové uspořádání prvků - vrcholů, ve kterém lze rozeznat předchůdce - rodiče a následovníky - syny.
VíceObsah: Hry vs. Prohledávání stavového prostoru Algoritmus Minimax. Nedeterministické hry Hry s nepřesnými znalostmi
Hry a základní herní strategie Aleš Horák E-mail: hales@fi.muni.cz http://nlp.fi.muni.cz/uui/ Obsah: Statistické výsledky průběžné písemky Hry vs. Prohledávání stavového prostoru Algoritmus Minimax Algoritmus
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íceHry a UI historie. agent musí brát v úvahu akce jiných agentů jak ovlivní jeho. vliv ostatních agentů prvek náhody. Hry: Obsah:
Obsah: Hry a základní herní strategie Aleš Horák E-mail: hales@fi.muni.cz http://nlp.fi.muni.cz/uui/ Hry s nepřesnými znalostmi Hry a UI historie Úvod do umělé inteligence 7/1 1 / 5 Hry a UI historie Babbage,
VíceSTROMOVE ALGORITMY Prohledavani do sirky (level-order) Po vodorovnejch carach fronta
STROMOVE ALGORITMY Prohledavani do sirky (level-order) Po vodorovnejch carach vlož do fronty kořen opakuj, dokud není fronta prázdná 1. vyber uzel z fronty a zpracuj jej 2. vlož do fronty levého následníka
VíceObsah: Hry vs. Prohledávání stavového prostoru Algoritmus Minimax. Nedeterministické hry Hry s nepřesnými znalostmi. 72 studentů
Hry a základní herní strategie Aleš Horák E-mail: hales@fi.muni.cz http://nlp.fi.muni.cz/uui/ Obsah: Statistické výsledky průběžné písemky Hry vs. Prohledávání stavového prostoru Algoritmus Minimax Algoritmus
VíceAlgoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010
Dynamické programování Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Rozděl a panuj (divide-and-conquer) Rozděl (Divide): Rozděl problém na několik podproblémů tak, aby tyto podproblémy odpovídaly původnímu
VíceLineární spojový seznam (úvod do dynamických datových struktur)
Lineární spojový seznam (úvod do dynamických datových struktur) Jan Hnilica Počítačové modelování 11 1 Dynamické datové struktury Definice dynamické struktury jsou vytvářeny za běhu programu z dynamicky
VíceHledání správné cesty
Semestrální práce z předmětu A6M33AST Závěrečná zpráva Hledání správné cesty Nela Grimová, Lenka Houdková 2015/2016 1. Zadání Naším úkolem bylo vytvoření úlohy Hledání cesty, kterou by bylo možné použít
VíceHEURISTICKÉ ALGORITMY PRO ŘEŠENÍ ÚLOH OBCHODNÍHO CESTUJÍCÍHO
HEURISTICKÉ ALGORITMY PRO ŘEŠENÍ ÚLOH OBCHODNÍHO CESTUJÍCÍHO Heuristické algoritmy jsou speciálními algoritmy, které byly vyvinuty pro obtížné úlohy, jejichž řešení je obtížné získat v rozumném čase. Mezi
VíceSložitost her. Herní algoritmy. Otakar Trunda
Složitost her Herní algoritmy Otakar Trunda Úvod měření složitosti Formální výpočetní model Turingův stroj Složitost algoritmu = závislost spotřebovaných prostředků na velikosti vstupu Časová složitost
VíceAlgoritmy výpočetní geometrie
Algoritmy výpočetní geometrie 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í algoritmy (BI-EFA)
VíceUNIVERZITA PARDUBICE
UNIVERZITA PARDUBICE Fakulta elektrotechniky a informatiky Programová realizace jednoduché strategické hry Květoslav Čáp Bakalářská práce 2010 Prohlášení autora Prohlašuji, že jsem tuto práci vypracoval
VíceObsah: Hry vs. Prohledávání stavového prostoru Algoritmus Minimax. Nedeterministické hry Hry s nepřesnými znalostmi
Hry a základní herní strategie Aleš Horák E-mail: hales@fi.muni.cz http://nlp.fi.muni.cz/uui/ Obsah: Statistické výsledky průběžné písemky Hry vs. Prohledávání stavového prostoru Algoritmus Minimax Algoritmus
VíceNáplň. v.0.03 16.02.2014. - Jednoduché příklady na práci s poli v C - Vlastnosti třídění - Způsoby (algoritmy) třídění
Náplň v.0.03 16.02.2014 - Jednoduché příklady na práci s poli v C - Vlastnosti třídění - Způsoby (algoritmy) třídění Spojení dvou samostatně setříděných polí void Spoj(double apole1[], int adelka1, double
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íceHry a UI historie. Obsah: Hry vs. Prohledávání stavového prostoru Algoritmus Minimax. Nedeterministické hry Hry s nepřesnými znalostmi
Statistické výsledky průběžné písemky Hry a základní herní strategie Aleš Horák E-mail: hales@fi.muni.cz http://nlp.fi.muni.cz/uui/ Obsah: Statistické výsledky průběžné písemky Algoritmus Minimax Hry s
VíceHRY A UI HISTORIE. Hry vs. Prohledávání stavového prostoru. Obsah:
Úvod do umělé inteligence Připomínka průběžná písemka Hry a základní herní strategie PŘIPOMÍNKA PRŮBĚŽNÁ PÍSEMKA E-mail: hales@fi.muni.cz http://nlp.fi.muni.cz/uui/ Obsah: Připomínka průběžná písemka Algoritmus
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íceZáklady programování. Úloha: Eratosthenovo síto. Autor: Josef Hrabal Číslo: HRA0031 Datum: 28.11.2009 Předmět: ZAP
Základy programování Úloha: Eratosthenovo síto Autor: Josef Hrabal Číslo: HRA0031 Datum: 28.11.2009 Předmět: ZAP Obsah 1 Zadání úkolu: 3 1.1 Zadání:............................... 3 1.2 Neformální zápis:.........................
VíceALGORITMIZACE 2010/03 STROMY, BINÁRNÍ STROMY VZTAH STROMŮ A REKURZE ZÁSOBNÍK IMPLEMENTUJE REKURZI PROHLEDÁVÁNÍ S NÁVRATEM (BACKTRACK)
ALGORITMIZACE 2010/03 STROMY, BINÁRNÍ STROMY VZTAH STROMŮ A REKURZE ZÁSOBNÍK IMPLEMENTUJE REKURZI PROHLEDÁVÁNÍ S NÁVRATEM (BACKTRACK) Strom / tree uzel, vrchol / node, vertex hrana / edge vnitřní uzel
VíceObsah: Hry vs. Prohledávání stavového prostoru Algoritmus Minimax. Nedeterministické hry Hry s nepřesnými znalostmi
Hry a základní herní strategie Aleš Horák E-mail: hales@fi.muni.cz http://nlp.fi.muni.cz/uui/ Obsah: Statistické výsledky průběžné písemky Hry vs. Prohledávání stavového prostoru Algoritmus Minimax Algoritmus
VíceMatice sousednosti NG
Matice sousednosti NG V = [ v ij ] celočíselná čtvercová matice řádu U v ij = ρ -1 ( [u i, u j ] )... tedy počet hran mezi u i a u j?jaké vlastnosti má matice sousednosti?? Smyčky, rovnoběžné hrany? V
VíceStromy. Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol.
Stromy Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol., 2018, B6B36DSA 01/2018, Lekce 9 https://cw.fel.cvut.cz/wiki/courses/b6b36dsa/start
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íceVlastnosti Derivační strom Metody Metoda shora dolů Metoda zdola nahoru Pomocné množiny. Syntaktická analýza. Metody a nástroje syntaktické analýzy
Metody a nástroje syntaktické analýzy Šárka Vavrečková Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz Poslední aktualizace: 14. října 2011 Vlastnosti syntaktické analýzy Úkoly syntaktické
VíceHry a UI historie. Obsah: Hry vs. Prohledávání stavového prostoru Algoritmus Minimax. Nedeterministické hry Hry s nepřesnými znalostmi
Statistické výsledky průběžné písemky Obsah: Hry a základní herní strategie Aleš Horák E-mail: hales@fi.muni.cz http://nlp.fi.muni.cz/uui/ Statistické výsledky průběžné písemky Hry s nepřesnými znalostmi
Více! Kyberne(ka!a!umělá!inteligence! 8.!Hraní!dvouhráčových!her,!adversariální! prohledávání!stavového!prostoru!!!!
! Kyberne(ka!a!umělá!inteligence! 8.!Hraní!dvouhráčových!her,!adversariální! prohledávání!stavového!prostoru!!!! Ing.%Michal%Pěchouček,%Ph.D.% Katedra%kyberne;ky% ČVUT%v%Praze,%FEL% Evropský!sociální!fond!
VícePrioritní fronta, halda
Prioritní fronta, halda Priority queue, heap Jan Kybic http://cmp.felk.cvut.cz/~kybic kybic@fel.cvut.cz 2016 2018 1 / 26 Prioritní fronta Halda Heap sort 2 / 26 Prioritní fronta (priority queue) Podporuje
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íceObecná informatika. Matematicko-fyzikální fakulta Univerzity Karlovy v Praze. Podzim 2012
Obecná informatika Přednášející Putovních přednášek Matematicko-fyzikální fakulta Univerzity Karlovy v Praze Podzim 2012 Přednášející Putovních přednášek (MFF UK) Obecná informatika Podzim 2012 1 / 18
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íceReprezentace aritmetického výrazu - binární strom reprezentující aritmetický výraz
Reprezentace aritmetického výrazu - binární strom reprezentující aritmetický výraz (2 + 5) * (13-4) * + - 2 5 13 4 - listy stromu obsahují operandy (čísla) - vnitřní uzly obsahují operátory (znaménka)
VíceBinární soubory (datové, typované)
Binární soubory (datové, typované) - na rozdíl od textových souborů data uložena binárně (ve vnitřním tvaru jako v proměnných programu) není čitelné pro člověka - všechny záznamy téhož typu (může být i
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íceDobSort. Úvod do programování. DobSort Implementace 1/3. DobSort Implementace 2/3. DobSort - Příklad. DobSort Implementace 3/3
DobSort Úvod do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programování, 2004/2005 V roce 1980 navrhl Dobosiewicz variantu (tzv. DobSort),
VíceNeinformované metody prohledávání stavového prostoru. Gerstner Laboratory Agent Technology Group, Czech Technical University in Prague
Neinformované metody prohledávání stavového prostoru Michal Pěchouček Gerstner Laboratory Agent Technology Group, Czech Technical University in Prague http://labe.felk.cvut.cz/~ tkrajnik/kui2/data/k333/1.pdf
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íceDynamické datové struktury IV.
Dynamické datové struktury IV. Prioritní fronta. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká fakulta UK. Tomáš Bayer bayertom@natur.cuni.cz (Katedra
VíceProhledávání stavového prostoru
Prohledávání stavového prostoru State space search Jan Kybic http://cmp.felk.cvut.cz/~kybic kybic@fel.cvut.cz 2016 2017 1 / 45 Stavový prostor Prohledávání do hloubky Prohledávání do šířky Informované
Více59. ročník Matematické olympiády 2009/2010
59. ročník Matematické olympiády 2009/2010 Úlohy ústředního kola kategorie P 1. soutěžní den Na řešení úloh máte 4,5 hodiny čistého času. Řešení každé úlohy pište na samostatný list papíru. Při soutěži
VíceTeorie her a ekonomické rozhodování. 4. Hry v rozvinutém tvaru
Teorie her a ekonomické rozhodování 4. Hry v rozvinutém tvaru 4.1 Hry v rozvinutém tvaru Hra v normálním tvaru hráči provedou jediné rozhodnutí a to všichni najednou v rozvinutém tvaru řada po sobě následujících
VíceObsah Techniky návrhu algoritmů Rekurze, algoritmy prohledávání s návratem, dynamické programování Rekurze... 5
Techniky návrhu algoritmů Rekurze, algoritmy prohledávání s návratem, dynamické programování Zametací technika, metoda rozděl a panuj a prořezávej a hledej Obsah Techniky návrhu algoritmů... 2 Rekurze,
VíceAmortizovaná složitost. Prioritní fronty, haldy (binární, d- regulární, binomiální, Fibonacciho), operace nad nimi a jejich složitost
Amortizovaná složitost. Prioritní fronty, haldy binární, d- regulární, binomiální, Fibonacciho), operace nad nimi a jejich složitost 1. Asymptotické odhady Asymptotická složitost je deklarována na základě
VíceImplementace LL(1) překladů
Překladače, přednáška č. 6 Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz Poslední aktualizace: 30. října 2007 Postup Programujeme syntaktickou analýzu: 1 Navrhneme vhodnou LL(1) gramatiku
VíceSelect sort: krok 1: krok 2: krok 3: atd. celkem porovnání. výběr nejmenšího klíče z n prvků vyžaduje 1 porovnání
Select sort: krok 1: výběr klíče z n prvků vyžaduje 1 porovnání krok 2: výběr klíče z 1 prvků vyžaduje 2 porovnání krok 3: výběr klíče z 2 prvků vyžaduje 3 porovnání atd. celkem porovnání Zlepšení = použít
VíceStromy. Jan Hnilica Počítačové modelování 14
Stromy Jan Hnilica Počítačové modelování 14 1 Základní pojmy strom = dynamická datová struktura, složená z vrcholů (uzlů, prvků) propojených hranami hrany chápeme jako orientované, tzn. vedou z uzlu A
VíceDatové struktury Úvod
Datové struktury Úvod Navrhněte co nejjednodušší datovou strukturu, která podporuje následující operace: 1. Insert a Delete v O(n), Search v O(log n); Datové struktury Úvod Navrhněte co nejjednodušší datovou
Více