prochází částečná konzistentní ohodnocení dokud nenajde úplné (konzistentní) ohodnocení Základní princip prohledávání s navracení při řešení CSP:
|
|
- Bohumila Čechová
- před 5 lety
- Počet zobrazení:
Transkript
1 Backtracking Programování s omezujícími podmínkami Roman Barták Katedra teoretické informatiky a matematické logiky roman.bartak@mff.cuni.cz prochází částečná konzistentní ohodnocení dokud nenajde úplné (konzistentní) ohodnocení oproti metodě generuj a testuj je fáze testování splnění podmínek realizována v průběhu generování pokud můžeme test provést nad částečně vygenerovaným kandidátem řešením, je BT vždy lepší než GT, protože nemusí procházet všechny kandidáty Základní princip prohledávání s navracení při řešení SP:. postupně p ohodnocuj jproměnné. po každém ohodnocení otestuj podmínky, jejichž všechny proměnné ě éjiž mají jíhodnotu thrashing Problémy backtrackingu neumí využít informace o důvodu (zdroji) konfliktu Příklad: A,B,,,E::..0, A>E vyzkouší všechny možnosti pro B,,, než odhalí, že A Řešení: backjumping (skok na původce chyby) redundantní práce Look Back nepamatuje si již odhalené konflikty mezi přiřazením proměnných Příklad: A,B,,,E::..0, 0 B+8<, =*E při hledání hodnot pro a E, stále zkouší přiřadit do hodnoty,..,9 Řešení: backmarking (pamatuje si dobrá/chybná přiřazení) pozdní odhalení chyby nesplnění podmínky odhalí teprve, když ohodnotí její proměnné Příklad: A,B,,,E::..0, A=*E odhalí že A>, až při ohodnocování proměnné E Řešení: forward checking (kontrola podmínek dopředu) Look Ahead je metoda pro odstranění thrashingu Jak? ) identifikuj důvod neúspěchu (nelze přiřadit hodnotu proměnné) ) skoč až na konfliktní proměnnou Stejný dopředný ř d běh jako u backtrackingu, ki pouze zpět skáčeme dále, tj. odstraníme prohledávání nerelevantních kombinací hodnot! Jak zjistíme kam až skočit? o je důvodem d neúspěchu? ě vyber podmínky, které obsahují ohodnocovanou proměnnou a jsou testovány na splnění z těchto podmínek zjisti nejbližší (v pořadí prohledávání) proměnnou, kterou obsahují Grafem řízený backjumping (graph-directed backjuping) x 4
2 řízený grafem Uvažujme problém barvení grafu, kde barvy přiřazujeme v pořadí x, x,, x7. Kam skočíme, pokud neobarvíme x4? x Kam skočíme, pokud neobarvíme x? x4 A co když už nelze obarvit ani x4? x Vypadá to, že když nelze obarvit vrchol, můžeme skočit na jeho nejbližšího předka, ale Kam skočíme, pokud neobarvíme x7? x Acokdyžužnelzeobarvitanix? obarvit ani x4 A co když už nelze obarvit ani x4? x řízený grafem Při skoku zpět stačí uvolnit některý slepý uzel (slepý uzel = uzel, kde nelze vybrat hodnotu proměnné). z listu x skočíme na nejbližšího předchůdce x v grafu podmínek (x7 x, x4, x, x) z vnitřního vrcholu x skočíme na nejbližšího předchůdce ale všech slepých uzlů, přes které jsme do x doskákali (x7 x, x4, x, x x4, x, x x, x) označme anc(x) předchůdce proměnné x v grafu podmínek uspořádaném dle pořadí při ohodnocování (lze nastavit před prohledáváním dle struktury grafu) anc(x7) = {x, x4, x, x} nechť jsme se do uzlu x vrátili z uzlů y,,yk anechť pro proměnnou x nemáme další hodnotu kompatibilní s předchůdci potom skočíme na nejbližší proměnnou z anc(x) anc(y) anc(yk) {x,y,,yk}, BJ řízený grafem rekurzivně procedure GraphBJ(X:variables, V:assignment, :constraints) if X = {} then return V x select a not-yet assigned variable from X conflict anc(x) for each value h from the domain of x do if constraints are consistent with V {x/h} then R GraphBJ(X {x}, V {x/h}, ) if R = fail(jumpset) then % skok zpět (backjump) if x JumpSet then return R % na proměnnou před x conflict conflict JumpSet {x} %nax return R % řešení nalezeno return fail(conflict) end GraphBJ volá se GraphBJ(X, {}, ) BJ řízený grafem procedure GraphBJ(X:variables, :constraints) i, i i, l i anc(x i ) while i n do instantiate_and_check(i, ti t ) if x i = null then iprev i, i latest index in l i,l i l i l iprev {x i } i i +, i i, l i anc(x i ) if i = 0 then return fail return {x,,, x n n} procedure instantiate_and_check(i, and :constraints) end GraphBJ while i is not empty do select and delete some element b from i x i b iterativně if constraints consistent with {x,, x i } then return x i null end instantiate_and_check
3 Problém N-dam A B E F G H,4, 4,, zjemnění skoků ámy přiřazujeme po řádcích, tj. pro každou dámu hledáme sloupec. ámu v řádku 6 nelze přiřadit!. o políčka zapisujeme čísla konfliktních dam.. V každém políčku vybereme nejvzdálenější dámu. 8. Mezi políčky vybereme nejbližší dámu a tam skočíme. Poznámka: grafem řízený backjumping se zde chová stejně jako chronologický backtracking (graf podmínek je úplný)! Pořadí oh hodnocen ní Konfliktní proměnné Jak obecně ě najdeme konfliktní proměnnou? ě Situace: ohodnocujeme proměnnou č. 7 (možné hodnoty 0 a ) symbol vyznačuje jaké proměnné jsou zahrnuty v konfliktní (nesplněné) podmínce konflikt s hodnotou 0 konflikt s hodnotou Sedmé proměnné nelze přiřadit žádnou z hodnot 0,!. U každé nesplněné podmínky najdeme nejbližší proměnnou (o).. Z nesplněných podmínek pro hodnotu vybereme vzdálenější z těchto proměnných ( ).. Z proměnných získaných pro jednotlivé hodnoty zvolíme tu nejbližší a na ní skočíme. Test konzistence Gaschnigův backjumping kromě testování konzistence podmínek také počítáme konfliktní úroveň procedure consistent(labelled, onstraints, Level) J Level % úroveň, kam skákat Noonflict true % identifikace konfliktu for each in onstraints do if all variables from are Labelled then if is not satisfied by Labelled then Noonflict false J min {J, max{l X vars() & X/V/L in Labelled & L<Level}} V je hodnota proměnné X L je pořadové číslo (úroveň) proměnné X při if Noonflict then return true ohodnocování return fail(j) end consistent Gaschnigův backjumping procedure GBJ(Unlabelled, Labelled, onstraints, PreviousLevel) if Unlabelled = {} then return Labelled pick first X from Unlabelled Level PreviousLevel+ Jump 0 for each value V from X do consistent({x/v/level} Labelled, onstraints, Level) if = fail(j) then Jump max {Jump, J} Jump PreviousLevel R GBJ(Unlabelled-{X},{X/V/Level} / } Labelled,onstraints,, Level) if R fail(level) then return R % úspěch nebo skok dál return fail(jump) % skok ke konfliktní proměnné end GBJ volá se GBJ(Variables,{},onstraints,0)
4 Gaschnigův backjumping procedure GBJ(X:variables, :constraints) i, i i, jump i 0 while i n do x i select_value(i, l ) if x i = null then i jump i procedure select_value(i, :constraints) while i is not empty do i i + select and delete some element b from i i consistent true i jump i 0 if i = 0 then return fail return {x,, x n } end GBJ iterativně k while k<i and consistent do if k>jump i then jump i k if x i =b consistent with {x,, x k }inthen k k + consistent false if consistent then return b return null end instantiate_and_check Grafem řízený ý backjumping řídí se pouze strukturou sítě podmínek (nebere v úvahu splnění/nesplnění p konkrétní podmínky) umí realizovat několik zpětných skoků krátké shrnutí Gaschnigův backjumping bere v úvahu, které podmínky skutečně způsobily konflikt skočí pouze jeden skok (pokud se do proměnné podaří přiřadit hodnotu, jde se zpět pouze o jednu úroveň jako v chronologickém backtrackingu) Konfliktem řízený ý backjumping (BJ) můžeme spojit výhody obou metod (upřesnění kam skočit přes nesplněné podmínky a několik skoků) při návratu budeme vracet nalezenou konfliktní množinu, která si využije při dalším skoku (pokud nenajdeme novou hodnotu proměnné, na kterou jsme skočili) přenášíme důvod konfliktu k již ohodnoceným proměnným Problémy backjumpingu Při skoku k zpět ě zapomíná (zahazuje) již udělanou práci! Příklad: obarvěte graf třemi barvami tak, že sousední vrcholy mají různou barvu A uzel barva B A B E E Při druhém průchodu (ohodnocení) děláme zbytečnou práci, stačilo nechat původní hodnotu, změnou B se nic neporušilo. ynamický backtracking Stejný graf (A,B,,,E), stejné barvy (,,) ale jiný postup. A E B + pamatování si důvodu konfliktu + přenos důvodu konfliktu + změna pořadí proměnných = YNAMIKÝ BAKTRAKING uzel uzel uzel B B B A A B A B AB E A B E A B E A vybraná barva AB důvod konfliktu skok zpět skok zpět + přenos důvodu chyby + přenos důvodu chyby + změna pořadí B, Vrchol (respektive celý graf, který na něm případně visel ) není potřeba přebarvovat. příklad
5 ynamický backtracking procedure B(Variables, onstraints) Labelled {}; Unlabelled Variables while Unlabelled {} do select X in Unlabelled Values X X - {values inconsistent with Labelled using onstraints} if Values X = {} then let E be an explanation of the conflict (set of conflicting variables) if E = {} then failure let Y be the most recent variable in E unassign Y (from Labelled) with eliminating i explanation E-{Y} remove all the explanations involving Y select V in Values X Unlabelled Unlabelled - {X} Labelled Labelled {X/V} return Labelled end B o je to redundantní práce? Redundance backtrackingu opakování výpočtu, jehož výsledek už máme k dispozici Příklad: A,B,, ::..0, A+8<, B=* B A= A Redundantní výpočty: není potřeba znova procházet, protože změna B neovlivňuje hodnotu B= B= B= B=4 B= = =0 = =0 = =0 = =0 = =0 = =0 = =0 = =0 = =0 = Základní princip i (pracujeme s binárním SP): Základy backmarkingu Mark(X,V) u každé hodnoty V z domény proměnné X si pamatujeme nejvzdálenější j konflikt (nejvzdálenější j proměnnou) BackTo(X) u každé proměnné X si pamatujeme místo nejvzdálenějšího návratu (od chvíle posledního ohodnocení X) Situace (Mark<BackTo) X=a X BackTo(Y) Mark(Y,b) BackTo(Y) Mark(Y,b) Situace (Mark BackTo) X X=a X=? zde je Y/b v pořádku Y Y Y/b je nekonzistentní Y/b je s X/a stále Y/b je nekonzistentní s X/a (ale je konzistentní se vším předtím) s X/a (konzistentní se vším nad X) nekonzistentní, nemusíme kontrolovat zde je potřeba Y/b znovu zkontrolovat Problém N-dam A B E F G H Backmarking - příklad. ámy přiřazujeme po řádcích, tj. pro každou dámu hledáme sloupec.. Vedle šachovnice píšeme úrovně návratu (BackTo). Na začátku všude.. o políčka zapisujeme čísla nejvzdálenějších j konfliktních dam (Mark). Na začátku všude ámu v řádku 6 nelze přiřadit! 4. Vracíme se na, opravíme BackTo. 6. Když znova přijdeme na 6, všechny pozice jsou stále špatné (Mark<BackTo). Poznámka: backmarking lze kombinovat s backjumpingem (a máme to zadarmo)
6 Test konzistence backmarking testování konzistence jen u podmínek, kde došlo ke změně, plus počítání nejvzdálenější konfliktní úrovně procedure consistent(x/v, Labelled, onstraints, Level) for each Y/VY/LY in Labelled such that LY BackTo(X) do % bereme pouze proměnné Y, které se mohly změnit % jdeme v rostoucím pořadí podle LY (od nejstarší) if X/V is not compatible with Y/VY using onstraints then Mark(X,V) LY return fail Není potřeba znovu testovat (víme, že platí) Mark(X,V) Level- return true end consistent BackTo 4 6 Backmarking algoritmus procedure BM(Unlabelled, Labelled, onstraints, Level) if Unlabelled = {} then return Labelled pick first X from Unlabelled %pořadí proměnných je pevné for each value V from X do if Mark(X,V) BackTo(X) then % hodnota se musí znova kontrolovat if consistent(x/v, it t(x/v Labelled, Lblld onstraints, it Level) l)then R BM(Unlabelled-{X}, Labelled {X/V/Level}, onstraints, Level+) if R fail then return R % řešení nalezeno BackTo(X) Level- % budeme se vracet k předch. proměnné for each Y in Unlabelled do % řekni všem o návratu BackTo(Y) min {Level-, BackTo(Y)} return fail % návrat k předchozí proměnné end BM
Programování. s omezujícími podmínkami. SAT a lokáln. Algoritmus GSAT. Algoritmus GSAT. Roman Barták
Lokáln lní prohledávání Programování s omezujícími podmínkami Roman Barták Katedra teoretické informatiky a matematické logiky roman.bartak@mff.cuni.cz http://ktiml.mff.cuni.cz/~bartak prochází úplná nekonzistentní
VíceProgramování. s omezujícími podmínkami. Roman Barták. roman.bartak@mff.cuni.cz http://ktiml.mff.cuni.cz/~bartak
Programování s omezujícími podmínkami Roman Barták Katedra teoretické informatiky a matematické logiky roman.bartak@mff.cuni.cz http://ktiml.mff.cuni.cz/~bartak Konzistenční techniky Dosud jsme podmínky
VíceProgramování. s omezujícími podmínkami. Roman Barták. rová hranová konzistence
Programování s omezujícími podmínkami Roman Barták Katedra teoretické informatiky a matematické logiky roman.bartak@mff.cuni.cz http://ktiml.mff.cuni.cz/~bartak Směrov rová hranová konzistence Definice:
VíceVraťme se k základům: DFS = Depth First Search
Prohledávání do hloubky Vraťme se k základům: DFS = Depth First Search DFS Programování s omezujícími podmínkami Roman Barták Katedra teoretické informatiky a matematické logiky roman.bartak@mff.cuni.cz
VíceHranová konzistence. Arc consistency AC. Nejprve se zabýváme binárními CSP. podmínka odpovídá hraně v grafu podmínek
Hranová konzistence Arc consistency AC Nejprve se zabýváme binárními CSP podmínka odpovídá hraně v grafu podmínek Hrana (V i, V j ) je hranově konzistentní, právě když pro každou hodnotu x z aktuální domény
VíceUmělá inteligence I. Roman Barták, KTIML.
Umělá inteligence I Roman Barták, KTIML roman.bartak@mff.cuni.cz http://ktiml.mff.cuni.cz/~bartak Na úvod Zatím pro nás byl model světa černou skříňkou, ke které přistupujeme pouze přes: funkci následníka
VíceOptimalizace & soft omezení: algoritmy
Optimalizace & soft omezení: algoritmy Soft propagace Klasická propagace: eliminace nekonzistentních hodnot z domén proměnných Soft propagace: propagace preferencí (cen) nad k-ticemi hodnot proměnných
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íceROZHODOVACÍ PROCEDURY A VERIFIKACE PAVEL SURYNEK, KTIML HTTP://KTIML.MFF.CUNI.CZ/~SURYNEK/NAIL094
10 ROZHODOVACÍ PROCEDURY A VERIFIKACE PAVEL SURYNEK, KTIML HTTP://KTIML.MFF.CUNI.CZ/~SURYNEK/NAIL094 Matematicko-fyzikální fakulta Univerzita Karlova v Praze 1 ROZHODOVÁNÍ TEORIÍ POMOCÍ SAT ŘEŠIČE (SMT)
Víceu odpovědí typu A, B, C, D, E: Obsah: jako 0) CLP Constraint Logic Programming
Průběžná písemná práce Průběžná písemná práce Obsah: Průběžná písemná práce Aleš Horák E-mail: hales@fi.muni.cz http://nlp.fi.muni.cz/uui/ délka pro vypracování: 25 minut nejsou povoleny žádné materiály
Více7. Heuristické metody
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í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íceAgent pracující v částečně pozorovatelném prostředí udržuje na základě senzorického modelu odhaduje, jak se svět může vyvíjet.
Umělá inteligence II Roman Barták, KTIML roman.bartak@mff.cuni.cz http://ktiml.mff.cuni.cz/~bartak Dnešní program Agent pracující v částečně pozorovatelném prostředí udržuje na základě senzorického modelu
VíceSEMESTRÁLNÍ ÚLOHY S PROGRAMY V PROLOGU (zadání úloh)
Cvičení 7 SEMESTRÁLNÍ ÚLOHY S PROGRAMY V PROLOGU (zadání úloh) 1. Polynomy Návod: Polynomy lze reprezentovat (nejen v Prologu) několika způsoby, které lze rozdělit do následujících skupin: A) podle množství
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íceSEMESTRÁLNÍ ÚLOHY S PROGRAMY V PROLOGU (zadání úloh)
Cvičení 7 SEMESTRÁLNÍ ÚLOHY S PROGRAMY V PROLOGU (zadání úloh) 1. Polynomy Návod: Polynomy lze reprezentovat (nejen v Prologu) několika způsoby, které lze rozdělit do následujících skupin: A) podle množství
VícePG 9.5 novinky ve vývoji aplikací
PG 9.5 novinky ve vývoji aplikací P2D2 2016 Antonín Houska 18. února 2016 Část I GROUPING SETS, ROLLUP, CUBE Agregace Seskupení řádků tabulky (joinu) do podmnožin podle určitého kĺıče. Za každou podmnožinu
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íceEvoluční algoritmy. Podmínka zastavení počet iterací kvalita nejlepšího jedince v populaci změna kvality nejlepšího jedince mezi iteracemi
Evoluční algoritmy Použítí evoluční principů, založených na metodách optimalizace funkcí a umělé inteligenci, pro hledání řešení nějaké úlohy. Populace množina jedinců, potenciálních řešení Fitness function
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íce5 Rekurze a zásobník. Rekurzivní volání metody
5 Rekurze a zásobník Při volání metody z metody main() se do zásobníku uloží aktivační záznam obsahující - parametry - návratovou adresu, tedy adresu, kde bude program pokračovat v metodě main () po skončení
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í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í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í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íceZáklady vytěžování dat
Základy vytěžování dat předmět A7Bb36vyd Vytěžování dat Filip Železný, Miroslav Čepek, Radomír Černoch, Jan Hrdlička katedra kybernetiky a katedra počítačů ČVUT v Praze, FEL Evropský sociální fond Praha
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íceAlgoritmy. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 15. dubna / 39
Algoritmy Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 15. dubna 2018 1/ 39 Algoritmy Příklad: Popis algoritmu pomocí pseudokódu: Algoritmus 1: Algoritmus pro nalezení největšího prvku v poli 1 Find-Max(A,n):
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íceObsah: CLP Constraint Logic Programming. u odpovědí typu A, B, C, D, E: jako 0)
Aleš Horák E-mail: hales@fi.muni.cz http://nlp.fi.muni.cz/uui/ Obsah: Průběžná písemná práce Úvod do umělé inteligence 6/12 1 / 17 Průběžná písemná práce Průběžná písemná práce délka pro vypracování: 25
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íceTest prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem
Test prvočíselnosti Úkol: otestovat dané číslo N, zda je prvočíslem 1. zkusit všechny dělitele od 2 do N-1 časová složitost O(N) cca N testů 2. stačí zkoušet všechny dělitele od 2 do N/2 (větší dělitel
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í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íceKapitola 7: Návrh relačních databází. Nástrahy relačního návrhu. Příklad. Rozklad (dekompozice)
- 7.1 - Kapitola 7: Návrh relačních databází Nástrahy návrhu relačních databází Dekompozice (rozklad) Normalizace použitím funkčních závislostí Nástrahy relačního návrhu Návrh relačních databází vyžaduje
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í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íceMetoda hrubé sily, backtracking a branch-and-bound
Algoritmická matematika 3 KMI/ALM3 Mgr. Petr Osička, Ph.D. ZS 04 Metoda hrubé sily, backtracking a branch-and-bound Základní princip Metoda hrubé síly se dá popsat jednoduchou větou zkus všechny možnosti.
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íceFaculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
1 / 23 Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague 2 / 23 biologové často potřebují najít často se opakující sekvence DNA tyto sekvence bývají relativně krátké,
VíceÚvod do teoretické informatiky(2017/2018) cvičení 11 1
Úvod do teoretické informatiky(2017/2018) cvičení 11 1 Cvičení 11 Příklad 1: Vezměme si následující Algoritmus 1. Vstupem tohoto algoritmu může být libovolné přirozené číslo n. Algoritmus 1: 1 PrintSeq(n):
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ícePlánování v prostoru plánů
Plánování v prostoru plánů 5. dubna 2018 Zdroj: Roman Barták, přednáška Umělá inteligence II, Matematicko-fyzikální fakulta, Karlova univerzita v Praze, 2014. http: // kti. ms. mff. cuni. cz/ ~bartak/
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íceProhledávání do šířky a do hloubky. Jan Hnilica Počítačové modelování 15
Prohledávání do šířky a do hloubky Jan Hnilica Počítačové modelování 15 1 Prohledávací algoritmy Úkol postupně systematicky prohledat vymezený stavový prostor Stavový prostor (SP) možné stavy a varianty
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íceRekurze. IB111 Úvod do programování skrze Python
Rekurze IB111 Úvod do programování skrze Python 2015 1 / 64 XKCD: Tabletop Roleplaying https://xkcd.com/244/ 2 / 64 To iterate is human, to recurse divine. (L. Peter Deutsch) 3 / 64 Rekurze použití funkce
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íce1 PRVOCISLA: KRATKY UKAZKOVY PRIKLAD NA DEMONSTRACI BALIKU WEB 1
1 PRVOCISLA: KRATKY UKAZKOVY PRIKLAD NA DEMONSTRACI BALIKU WEB 1 1. Prvocisla: Kratky ukazkovy priklad na demonstraci baliku WEB. Nasledujici program slouzi pouze jako ukazka nekterych moznosti a sluzeb,
VíceTGH09 - Barvení grafů
TGH09 - Barvení grafů Jan Březina Technical University of Liberec 15. dubna 2013 Problém: Najít obarvení států na mapě tak, aby žádné sousední státy neměli stejnou barvu. Motivační problém Problém: Najít
VíceVyberte oblečení tak, aby navzájem ladilo. Proměnné: shirt: {red, white}
Programování s omezujícími podmínkami Motivace - problém šatníku Vyberte oblečení tak, aby navzájem ladilo. Proměnné: : {red, white} : {cordovans, sneakers} : {blue, denim, grey} Podmínky: x : red-grey,
VíceZnalosti budeme nejčastěji vyjadřovat v predikátové logice prvního řádu. Metody:
Umělá inteligence II Roman Barták, KTIML roman.bartak@mff.cuni.cz http://ktiml.mff.cuni.cz/~bartak Znalosti v učení Umíme se učit funkce vstup výstup. Jedinou dodatečnou znalost, kterou jsme využili, byl
VíceUnbounded Model Checking
Unbounded Model Checking Stefan Ratschan Katedra číslicového návrhu Fakulta informačních technologíı České vysoké učení technické v Praze 25. října 2011 Evropský sociální fond Praha & EU: Investujeme do
VícePřednáška 3. Rekurze 1
Paradigmata programování 1 Přednáška 3. Rekurze 1 Michal Krupka KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI Obsah 1 Příklady 2 Rekurzivní procedury a rekurzivní výpočetní proces 3 Další příklady
VíceDynamické programování
ALG 0 Dynamické programování zkratka: DP Zdroje, přehledy, ukázky viz https://cw.fel.cvut.cz/wiki/courses/a4balg/literatura_odkazy 0 Dynamické programování Charakteristika Neřeší jeden konkrétní typ úlohy,
VíceVyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.
Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 21. září 2018 Jiří Dvorský (VŠB TUO) Vyhledávání 242 / 433 Osnova přednášky
VíceSlepé prohledávání do šířky Algoritmus prohledávání do šířky Při tomto způsobu prohledávání máme jistotu, že vždy nalezneme koncový stav, musíme ale p
Hanojská věž Stavový prostor 1. množina stavů S = {s} 2. množina přechodů mezi stavy (operátorů) Φ = {φ} s k = φ ki (s i ) zadání [1 1 1] řešení [3 3 3] dva možné první tahy: [1 1 2] [1 1 3] který tah
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í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íceJan Pavĺık. FSI VUT v Brně 14.5.2010
Princip výškovnice Jan Pavĺık FSI VUT v Brně 14.5.2010 Osnova přednášky 1 Motivace 2 Obecný princip 3 Příklady Světové rekordy Turnajové uspořádání Skupinové hodnocení Rozhledny 4 Geografická výškovnice
VíceVolné stromy. Úvod do programování. Kořenové stromy a seřazené stromy. Volné stromy
Volné stromy Úvod do programování Souvislý, acyklický, neorientovaný graf nazýváme volným stromem (free tree). Často vynecháváme adjektivum volný, a říkáme jen, že daný graf je strom. Michal Krátký 1,Jiří
VíceBinární vyhledávací stromy II
Binární vyhledávací stromy II doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 19. března 2019 Jiří Dvorský (VŠB TUO) Binární vyhledávací
VíceFaculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
1 / 40 regula Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague regula 1 2 3 4 5 regula 6 7 8 2 / 40 2 / 40 regula Iterační pro nelineární e Bud f reálná funkce
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íceKlasifikace a predikce. Roman LUKÁŠ
1/28 Klasfkace a predkce Roman LUKÁŠ 2/28 Základní pomy Klasfkace = zařazení daného obektu do sté skupny na základě eho vlastností Dvě fáze klasfkace: I. Na základě trénovacích vzorů (u nchž víme, do aké
VíceBinární vyhledávací stromy pokročilé partie
Binární vyhledávací stromy pokročilé partie KMI/ALS lekce Jan Konečný 30.9.204 Literatura Cormen Thomas H., Introduction to Algorithms, 2nd edition MIT Press, 200. ISBN 0-262-5396-8 6, 3, A Knuth Donald
VíceProgramujeme v softwaru Statistica - příklady
Programujeme v softwaru Statistica - příklady Newsletter Statistica ACADEMY Téma: Programování, makra, skripty Typ článku: Návody, příklady V předchozích článcích bylo vyřčeno mnoho teorie k problematice
VíceTestování a spolehlivost. 1. Laboratoř Poruchy v číslicových obvodech
Testování a spolehlivost ZS 2011/2012 1. Laboratoř Poruchy v číslicových obvodech Martin Daňhel Katedra číslicového návrhu Fakulta informačních technologií ČVUT v PRaze Příprava studijního programu Informatika
VíceHanojská věž. T2: prohledávání stavového prostoru. zadání [1 1 1] řešení [3 3 3] dva možné první tahy: [1 1 2] [1 1 3]
Hanojská věž zadání [1 1 1] řešení [3 3 3] dva možné první tahy: [1 1 2] [1 1 3] který tah je lepší? (co je lepší tah?) P. Berka, 2012 1/21 Stavový prostor 1. množina stavů S = {s} 2. množina přechodů
VíceUmělá inteligence. UI (AI) - součást informatiky s průniky mimo obor Stručná historie UI. Letošní cena nadace Vize 2000 - Joseph Weizenbaum
Umělá inteligence UI (AI) - součást informatiky s průniky mimo obor Stručná historie UI 1943-56 začátky (modelování neuronů a sítí na počítači) 1952-69 velká očekávání (GPS, Lisp, microworlds) 1966-74
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íceVyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.
Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 12. září 2016 Jiří Dvorský (VŠB TUO) Vyhledávání 201 / 344 Osnova přednášky
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í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íce14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.
Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání
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í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íceDolování asociačních pravidel
Dolování asociačních pravidel Miloš Trávníček UIFS FIT VUT v Brně Obsah přednášky 1. Proces získávání znalostí 2. Asociační pravidla 3. Dolování asociačních pravidel 4. Algoritmy pro dolování asociačních
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íceZáklady algoritmizace c2005, 2007 Michal Krátký, Jiří Dvorský1/39
Základy algoritmizace Michal Krátký 1, Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Základy algoritmizace, 2006/2007 Základy algoritmizace c2005, 2007 Michal Krátký, Jiří Dvorský1/39
Více2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.
Informatika 10. 9. 2013 Jméno a příjmení Rodné číslo 1) Napište algoritmus pro rychlé třídění (quicksort). 2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus
Více12. Globální metody 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íceZadání semestrálního projektu Algoritmy I. zimní semestr 2018/2019
Zadání semestrálního projektu Algoritmy I. zimní semestr 08/09 doc. Mgr. Jiří Dvorský, Ph.D. Verze zadání. listopadu 08 První verze Obecné pokyny. Celkem jsou k dispozici tři zadání projektů.. Každý student
VíceParadigmata programování II Korutiny a nedeterminismus
Paradigmata programování II Korutiny a nedeterminismus Vilém Vychodil Katedra informatiky, Univerzita Palackého v Olomouci 27. dubna 2006 Vilém Vychodil (UP Olomouc) PP II, Př. 9: Korutiny, nedeterminismus
VíceV každém kroku se a + b zmenší o min(a, b), tedy vždy alespoň o 1. Jestliže jsme na začátku dostali 2
Euklidův algoritmus Doprovodný materiál pro cvičení Programování I. NPRM044 Autor: Markéta Popelová Datum: 31.10.2010 Euklidův algoritmus verze 1.0 Zadání: Určete největšího společného dělitele dvou zadaných
VíceMetodický koncept k efektivní podpoře klíčových odborných kompetencí s využitím cizího jazyka ATCZ62 - CLIL jako výuková strategie na vysoké škole
Pattern matching Metodický koncept k efektivní podpoře klíčových odborných kompetencí s využitím cizího jazyka ATCZ62 - CI jako výuková strategie na vysoké škole Pattern matching porovnávání vzorů Hledání
VíceCODE BOOK NEISS 8. A code book is an identification tool that allows the customer to perform a test result evaluation using a numeric code.
CODE BOOK NEISS 8 A code book is an identification tool that allows the customer to perform a test result evaluation using a numeric code. Kodová kniha je identifikační pomůcka, která umožňuje provést
VíceDatabázové systémy. * relační kalkuly. Tomáš Skopal. - relační model
Databázové systémy Tomáš Skopal - relační model * relační kalkuly Osnova přednášky relační kalkuly doménový n-ticový Relační kalkuly využití aparátu predikátové logiky 1. řádu pro dotazování rozšíření
VíceAutomatizované řešení úloh s omezeními
Automatizované řešení úloh s omezeními Martin Kot Katedra informatiky, FEI, Vysoká škola báňská Technická universita Ostrava 17. listopadu 15, Ostrava-Poruba 708 33 Česká republika 18. září 2013 M. Kot
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ícePL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd.
PL/SQL Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd. Rozšířením jazyka SQL o proceduralitu od společnosti ORACLE je jazyk
VíceV praxi je běžné, že se ovlivňuje více prvků navzájem. Tady už si s jednou globální proměnnou nevystačíme.
Provázané TextBoxy na formuláři potřebujeme v případě, kdy například mají sloužit jako převodník mezi fyzikálními jednotkami (tlak, GPS souřadnice, ). Pokud je vazba jednosměrná, stačí v události Change
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íceDatové typy v Javě. Tomáš Pitner, upravil Marek Šabo
Datové typy v Javě Tomáš Pitner, upravil Marek Šabo Úvod k datovým typům v Javě Existují dvě základní kategorie datových typů: primitivní a objektové Primitivní v proměnné je uložena přímo hodnota např.
VíceNáznak ukázky syntaxe a sémantiky pro projekt. 1 Syntaktické prvky. Poslední aktualizace: 8.
Jednoduchý interpretační překladač Náznak ukázky syntaxe a sémantiky pro projekt Šárka Vavrečková Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz Poslední aktualizace: 8. ledna 2008 1 Syntaktické
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íceAUTOMATY A GRAMATIKY. Pavel Surynek. Kontextové uzávěrové vlastnosti Turingův stroj Rekurzivně spočetné jazyky Kódování, enumerace
AUTOMATY A 11 GRAMATIKY Pavel Surynek Univerzita Karlova v Praze Matematicko-fyzikální fakulta Katedra teoretické informatiky a matematické logiky Kontextové uzávěrové vlastnosti Turingův stroj Rekurzivně
VíceRozhodovací procedury a verifikace Pavel Surynek, KTIML
6 Rozhodovací procedury a verifikace Pavel Surynek, KTIML http://ktiml.mff.cuni.cz/~surynek/nail094 Matematicko-fyzikální fakulta Univerzita Karlova v Praze 1 Lineární aritmetika Budeme zabývat rozhodovacími
VíceDnešní program odvozování v Bayesovských sítích exaktní metody (enumerace, eliminace proměnných) aproximační metody y( (vzorkovací techniky)
Umělá inteligence II Roman Barták, KTIML roman.bartak@mff.cuni.cz http://ktiml.mff.cuni.cz/~bartak Bayesovská síť zachycuje závislosti mezi náhodnými proměnnými Pro zopakování orientovaný acyklický graf
VíceKapitola 6: Omezení integrity. Omezení domény
- 6.1 - Omezení domény Referenční integrita Aserce Spouštěče (Triggers) Funkční závislosti Kapitola 6: Omezení integrity Omezení domény Omezení integrity zabraňují poškození databáze; zajišťují, že autorizované
Více