ILOG (aisa:/software/ilog/solver51/doc/index.html)

Rozměr: px
Začít zobrazení ze stránky:

Download "ILOG (aisa:/software/ilog/solver51/doc/index.html)"

Transkript

1 ILOG Solver

2 ILOG (aisa:/software/ilog/solver51/doc/index.html) CSP modelován pomocí C++ tříd, různé sady knihoven napsané v C++ ILOG Solver = základní knihovny pravidelná aktualizace sw na MU definice různých typů proměnných (integer, enum, float, set) základní typy omezení (pro řešení obecnějších problémů) nástroje pro prohledávání stromové prohledávání (včetně LDS apod.) lokální prohledávání Parallel Solver paralelní prohledávání stavového prostoru nástroje pro definici vlastních omezení a prohledávacích metod ILOG Scheduler = rozšíření ILOG Solveru pravidelná aktualizace sw na MU modelování úloh a prostředů v rozvrhování, specializované řešiče pro rozvrhování ILOG Dispatcher = rozšíření ILOG Solveru dostupný na MU ve starší verzi transportní problémy: plány dopravy, rozvrhování osob pro transportní problémy Programování s omezujícími podmínkami I, 18. prosince ILOG Solver

3

4 ILOG Dispatcher Programování s omezujícími podmínkami I, 18. prosince ILOG Solver

5 Základní kód #include <ilsolver/ilosolverint.h> ILOSTLBEGIN // " // nahrání a inicializace Solveru int main(){ IloEnv env; // inicializace interních dat. struktur IloNumVar x(env, 0, 10, ILOINT); // vytvoření celočíselné doménové proměnné IloConstraint ct = (x!= 0); // vytvoření omezení IloModel model(env); // inicializace modelu model.add(ct); // přidání omezení do modelu IloSolver solver(model); // inicializace řešiče pro daný model solver.solve(); // hledání řešení solver.out() << solver.getintvar(x) << endl; // výstup env.end(); return 0; } Programování s omezujícími podmínkami I, 18. prosince ILOG Solver

6 ... SEND+MORE=MONEY IloIntVar S(env,1,9), E(env,0,9), N(env,0,9), D(env,0,9), M(env,1,9), O(env,0,9), R(env,0,9), Y(env,0,9); IloIntVarArray AllVars(env, 8, S,E,N,D,M,O,R,Y); IloModel model(env); model.add( IloAllDiff(env, AllVars) ); model.add( 1000*S + 100*E + 10*N + D *M + 100*O + 10*R + E == 10000*M * *N + 10*E + Y); IloSolver solver(model); solver.solve(ilogenerate(env,allvars)); for (IloInt i=0; i<8; i++) solver.out() << solver.getvalue(allvars[i]) << " "; solver.out() << endl;... Programování s omezujícími podmínkami I, 18. prosince ILOG Solver

7 Hledání řešení Implementace prohledávacích algoritmů založena na myšlence cílů (goals) umožňují implementace algoritmů, kde není předem známá přesná posloupnost operací IloGenerate: předdefinovaný cíl, jehož parametrem je pole proměnných provádí posloupnost kroků 1. výběr proměnné 2. výběr hodnoty pro proměnnou 3. propagace efektu tohoto přiřazení není známo, které navázání proměnné vede ke konzisteci při nekonzistenci (nebo hledání dalšího řešení) jsou zkoušeny další hodnoty proměnné jedná se o implementaci backtrackingu Programování s omezujícími podmínkami I, 18. prosince ILOG Solver

8 Použití cílů Příklad deklarace cíle IloEnv env; IloModel model(env); IloNumVar x(env, 0, 2, ILOINT), y(env, 0, 2, ILOINT); model.add(x!= y); IloSolver solver(model); IloGoal goal = IloGenerate(env, IloNumVarArray(env, 2, x, y)); Cíle použity ve funkcích IloSolver::solve a IloSolver::newSearch if (solver.solve(goal)) solver.out() << "x=" << solver.getvalue(x) << " y=" << solver.getvalue(y); else solver.out() << "No solution"; Programování s omezujícími podmínkami I, 18. prosince ILOG Solver

9 Hledání dalšího řešení IloEnv env; IloModel model(env); IloNumVar x(env, 0, 2, ILOINT), y(env, 0, 2, ILOINT); model.add(x!= y); IloSolver solver(model); IloGoal goal = IloGenerate(env, IloNumVarArray(env, 2, x, y)); solver.startnewsearch(goal); while (solver.next()) solver.out() << "x=" << solver.getvalue(x) << " y=" << solver.getvalue(y); solver.endsearch(); solver.out() << "No more solutions" << endl; Programování s omezujícími podmínkami I, 18. prosince ILOG Solver

10 Další rozšíření prohledávání Další volitelný parametr IloGenerate určuje výběr proměnné IloGoal goal = IloGenerate(env, vars, IlcChooseMinSizeInt); Návrat až na výběr proměnné (IloGenerate se vrací na výběr hodnoty) nutné použít jiný cíl, a to IloBestGenerate Definice vlastního kriteria pro výběr proměnné IlcInt getevaluation(ilcintvar x) return (x.getmin() + x.getmax())/2; IlcChooseIndex1(myCriteria,getEvaluation(var),IlcIntVar) IloGenerate(vars, mycriteria); Optimalizace je realizována přidáním speciálního omezení model.add(ilomaximize(ilosum(profitvars)); Programování s omezujícími podmínkami I, 18. prosince ILOG Solver

11 Lokální prohledávání (LS) Metoda největšího stoupání v ILOGu 1. začni s iniciálním řešením S 2. ulož cenu řešení S jako CurrCost 3. změň S 4. jestliže S nesplňuje omezení nebo má Cost >= CurrCost, vrat se k původnímu S 5. běž na krok 2. Programování s omezujícími podmínkami I, 18. prosince ILOG Solver

12 Lokální prohledávání (LS) Metoda největšího stoupání v ILOGu 1. začni s iniciálním řešením S 2. ulož cenu řešení S jako CurrCost 3. změň S 4. jestliže S nesplňuje omezení nebo má Cost >= CurrCost, vrat se k původnímu S 5. běž na krok 2. Řešení vždy splňuje všechna nadefinovaná omezení LS se používá pouze k optimalizaci pokud chceme LS použít pro splňování omezení, pak musíme omezení zahrnout do kriteriální funkce např. maximalizace (váženého) součtu splněných omezení v CLP lze omezení zahrnout do objektivní funkce pomocí reifikace př. X#>Y #<=> BoolVarI, Obj #= Cost1*BoolVar1 + + CostN*BoolVarN Programování s omezujícími podmínkami I, 18. prosince ILOG Solver

13 Příklad: barvení grafu Obarvěte země dvěma různými barvami, tak aby France!= Belgium; France!= Germany; Belgium!= Netherlands; Germany!= Netherlands; Germany!= Denmark; maximalizuj cenu: 257*(France!= Luxembourg) *(Luxembourg!= Germany) + 568*(Luxembourg!= Belgium); Programování s omezujícími podmínkami I, 18. prosince ILOG Solver

14 Barvení grafu IloIntVar Belgium(env, 0, 1), Denmark(env, 0, 1), France(env, 0, 1), Germany(env, 0, 1), Netherlands(env, 0, 1), Luxembourg(env, 0, 1); IloIntVarArray AllVars(env, 6, Belgium, Denmark, France, Germany, Netherlands, Luxembourg); model.add(france!= Belgium); model.add(france!= Germany); základní model model.add(belgium!= Netherlands); model.add(germany!= Netherlands); model.add(germany!= Denmark); IloObjective obj = IloMaximize(env, 257 * (France!= Luxembourg) * (Luxembourg!= Germany) * (Luxembourg!= Belgium)); Programování s omezujícími podmínkami I, 18. prosince ILOG Solver

15 Barvení grafu: backtracking IloIntVar Belgium(env, 0, 1), Denmark(env, 0, 1), France(env, 0, 1), Germany(env, 0, 1), Netherlands(env, 0, 1), Luxembourg(env, 0, 1); IloIntVarArray AllVars(env, 6, Belgium, Denmark, France, model.add(france!= Belgium); model.add(france!= Germany); model.add(belgium!= Netherlands); model.add(germany!= Netherlands); model.add(germany!= Denmark); Germany, Netherlands, Luxembourg); IloObjective obj = IloMaximize(env, 257 * (France!= Luxembourg) * (Luxembourg!= Germany) základní model * (Luxembourg!= Belgium));... model.add(obj); IloSolver solver(model); solver.solve(); backtracking Programování s omezujícími podmínkami I, 18. prosince ILOG Solver

16 Lokální prohledávání: nový stav Cíl IloSingleMove prochází okolí (nhood) současného řešení (solution). Metaheuristika (mh) vybírá akceptovatelné stavy z okolí solution a jeden konkrétní z nich je vybrán pomocí sel. IloGoal IloSingleMove(IloEnv env, IloSolution solution, IloNHood nhood, IloMetaHeuristic mh, IloSearchSelector sel); // řešení // definice okolí // definice metaheuristiky // výběr řešení z okolí (volitelně) Definice okolí pomocí převrácení hodnoty boolean proměnné IloNHood nhood = IloFlip(env, AllVars) Metoda největšího stoupání IloImprove IloGoal move = IloSingleMove(env, soln, nhood, IloImprove(env)); Lokální prohledávání while (solver.solve(move)) solver.out() << soln.getobjectivevalue() << endl; Programování s omezujícími podmínkami I, 18. prosince ILOG Solver

17 Barvení grafu: lokální prohledávání Lokální prohledávání = dvoufázový proces jednoduchý základ nalezení úplného řešení pomocí iniciálního prohledávání (např. IloGenerate) cena současného řešení je vylepšována lokálním prohledáváním IloSolver solver(model); IloGoal generate = IloGenerate(env, AllVars); solver.solve(generate); IloSolution soln(env, "Colors"); soln.add(allvars); soln.add(obj); soln.store(solver); // uložení řešení solver.out() << "1st solution: " << soln.getobjectivevalue() << endl; IloNHood nhood = IloFlip(env, AllVars); IloGoal move = IloSingleMove(env, soln, nhood, IloImprove(env)); while (solver.solve(move)) solver.out() << "Move made: " << soln.getobjectivevalue() << endl; Programování s omezujícími podmínkami I, 18. prosince ILOG Solver

18 ILOG: shrnutí Komerční software nejnovější zveřejněné aplikace: Chile: aukční systém pro výběr nejlepší zásobovací společnosti pro 1.3 miliónů studentů, úspora 25% ceny, tj. 40 miliónů USD ročně National Football League: vytvoření rozvrhu pro 256 her, sezóna 2003, použit ILOG Solver ILOG umožňuje použít širokou škálu nástrojů řada modelovacích jazyků a balíků, kromě uvedených např. matematické programování (CPLEX) podpora kombinace se Solver modelování problémů pomocí OPL Studio metoda řešení skryta, vhodnější pro méně rozsáhlé problémy Pro efektivni využití nutná znalost rozsáhlých knihoven Programování s omezujícími podmínkami I, 18. prosince ILOG Solver

19

Optimalizace & soft omezení: algoritmy

Optimalizace & 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íce

u odpovědí typu A, B, C, D, E: Obsah: jako 0) CLP Constraint Logic Programming

u 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íce

PA163 Programování s omezujícími podmínkami

PA163 Programování s omezujícími podmínkami Organizace předmětu PA163 Programování s omezujícími podmínkami Základní informace Web předmětu: http://www.fi.muni.cz/~hanka/cp Průsvitky: průběžně aktualizovány na webu předmětu Ukončení předmětu: cca

Více

Programování v C++ 1, 1. cvičení

Programování v C++ 1, 1. cvičení Programování v C++ 1, 1. cvičení opakování látky ze základů programování 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 Shrnutí procvičených

Více

Obsah: CLP Constraint Logic Programming. u odpovědí typu A, B, C, D, E: jako 0)

Obsah: 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íce

CLP(F D) program. Základní struktura CLP programu solve( Variables ) :- 1. definice proměnných a jejich domén declare_variables( Variables),

CLP(F D) program. Základní struktura CLP programu solve( Variables ) :- 1. definice proměnných a jejich domén declare_variables( Variables), CLP(F D) program Základní struktura CLP programu solve( Variables ) :- 1. definice proměnných a jejich domén declare_variables( Variables), 2. definice omezení post_constraints( Variables ), 3. hledání

Více

Standardní algoritmy vyhledávací.

Standardní algoritmy vyhledávací. Standardní algoritmy vyhledávací. Vyhledávací algoritmy v C++ nám umožňují vyhledávat prvky v datových kontejnerech podle různých kritérií. Také se podíváme na vyhledávání metodou půlením intervalu (binární

Více

Dynamické rozvrhování

Dynamické rozvrhování Dynamické rozvrhování Hana Rudová Fakulta informatiky, Masarykova universita http://www.fi.muni.cz/~hanka Informatické kolokvium, 9.10.2007 Dynamické rozvrhování (Dynamic scheduling) 1 Úvod 2 Popis problému

Více

Optimizing Limousine Service with AI. David Marek

Optimizing Limousine Service with AI. David Marek Optimizing Limousine Service with AI David Marek Airport Limousine Services Ltd. (ALS) Jedna z největších firem zajišťujících dopravu v Hong Kongu Luxusní limuzíny a kyvadlová doprava 24 hodin denně 2

Více

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií 1 Fakulta elektrotechniky a informatiky Katedra softwarových technologií 12. října 2009 Organizace výuky Přednášky Teoretické základy dle normy jazyka C Cvičení Praktické úlohy odpřednášené látky Prostřední

Více

Úvod do programovacích jazyků (Java)

Úvod do programovacích jazyků (Java) Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích

Více

Více o konstruktorech a destruktorech

Více o konstruktorech a destruktorech Více o konstruktorech a destruktorech Více o konstruktorech a o přiřazení... inicializovat objekt lze i pomocí jiného objektu lze provést přiřazení mezi objekty v původním C nebylo možné provést přiřazení

Více

Dynamicky vázané metody. Pozdní vazba, virtuální metody

Dynamicky vázané metody. Pozdní vazba, virtuální metody Dynamicky vázané metody Pozdní vazba, virtuální metody Motivace... class TBod protected: float x,y; public: int vrat_pocet_bodu() return 1; ; od třídy TBod odvodíme: class TUsecka: public TBod protected:

Více

Logické programování s omezujícími podmínkami. Constraint Logic Programming: CLP

Logické programování s omezujícími podmínkami. Constraint Logic Programming: CLP Logické programování s omezujícími podmínkami Constraint Logic Programming: CLP CP a programovací jazyk Dosavadní předpoklady (pro CSP) omezení jsou dostupná na začátku prohledávání omezení jsou reprezentována

Více

ROZHODOVACÍ PROCEDURY A VERIFIKACE PAVEL SURYNEK, KTIML HTTP://KTIML.MFF.CUNI.CZ/~SURYNEK/NAIL094

ROZHODOVACÍ 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íce

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

Vraťme se k základům: DFS = Depth First Search

Vrať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íce

Funkce, podmíněný příkaz if-else, příkaz cyklu for

Funkce, podmíněný příkaz if-else, příkaz cyklu for Funkce, podmíněný příkaz if-else, příkaz cyklu for Definice funkce Funkce je pojmenovaná část programu, kterou lze dále zavolat v jiné části programu. V Pythonu je definována klíčovým slovem def. Za tímto

Více

Programování v C++ 2, 8. cvičení

Programování v C++ 2, 8. cvičení Programování v C++ 2, 8. cvičení návrhový vzor iterátor 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 Shrnutí minule procvičené látky

Více

Vyhledá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. 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íce

Základy umělé inteligence

Zá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íce

1 Nejkratší cesta grafem

1 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íce

Zá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 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íce

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 17, 2016

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 17, 2016 ZPRO cvičení 2 Martin Flusser Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague October 17, 2016 Outline I 1 Outline 2 Proměnné 3 Proměnné - cvičení 4 Funkce 5 Funkce

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Číslo a název šablony Číslo didaktického materiálu Druh didaktického materiálu Autor Jazyk Téma sady didaktických materiálů Téma didaktického materiálu Vyučovací předmět Cílová skupina (ročník) Úroveň

Více

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky Vyučovací hodina 1vyučovací hodina: Opakování z minulé hodiny Nová látka Procvičení nové látky Shrnutí 5 min 20 min 15 min 5 min 2vyučovací hodiny: Opakování z minulé hodiny Nová látka Procvičení nové

Více

PROGRAMOVÁNÍ V C++ CVIČENÍ

PROGRAMOVÁNÍ V C++ CVIČENÍ PROGRAMOVÁNÍ V C++ CVIČENÍ INFORMACE Michal Brabec http://www.ksi.mff.cuni.cz/ http://www.ksi.mff.cuni.cz/~brabec/ brabec@ksi.mff.cuni.cz gmichal.brabec@gmail.com PODMÍNKY ZÁPOČTU Základní podmínky společné

Více

1 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 1 1. Prvocisla: Kratky ukazkovy priklad na demonstraci baliku WEB. Nasledujici program slouzi pouze jako ukazka nekterych moznosti a sluzeb,

Více

Programování v C++ 3, 3. cvičení

Programování v C++ 3, 3. cvičení Programování v C++ 3, 3. cvičení úvod do objektově orientovaného programování 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled Dokončení spojového

Více

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

Více

Úvod do programování - Java. Cvičení č.4

Úvod do programování - Java. Cvičení č.4 Úvod do programování - Java Cvičení č.4 1 Sekvence (posloupnost) Sekvence je tvořena posloupností jednoho nebo více příkazů, které se provádějí v pevně daném pořadí. Příkaz se začne provádět až po ukončení

Více

Vyhledá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. 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íce

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE REALIZACE PŘEKLADAČE I

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE REALIZACE PŘEKLADAČE I PROGRAMOVACÍ JAZYKY A PŘEKLADAČE REALIZACE PŘEKLADAČE I 2011 Jan Janoušek BI-PJP Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Programová realizace DKA typedef enum {q0, q1,... qn,

Více

Dotazování nad stromem abstraktní syntaxe

Dotazování nad stromem abstraktní syntaxe Fakulta jaderná a fyzikáln inºenýrská ƒeské vysoké u ení technické v Praze 3.6.2010 Osnova while 1 Reprezentace programu 2 AST a Java 3 Vyhledávání v AST 4 Aplikace body if expr Jak reprezentovat program

Více

bfs, dfs, fronta, zásobník, prioritní fronta, halda

bfs, 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íce

Programování: základní konstrukce, příklady, aplikace. IB111 Programování a algoritmizace

Programování: základní konstrukce, příklady, aplikace. IB111 Programování a algoritmizace Programování: základní konstrukce, příklady, aplikace IB111 Programování a algoritmizace 2011 Připomenutí z minule, ze cvičení proměnné, výrazy, operace řízení výpočtu: if, for, while funkce příklady:

Více

Umělá inteligence I. Roman Barták, KTIML.

Umě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íce

Programy pro ˇreˇsen ı ulohy line arn ıho programov an ı 18. dubna 2011

Programy pro ˇreˇsen ı ulohy line arn ıho programov an ı 18. dubna 2011 Programy pro řešení úlohy lineárního programování 18. dubna 2011 Přehled Mathematica Sage AMPL GNU Linear Programming Kit (GLPK) Mathematica Mathematika je program pro numerické a symbolické počítání.

Více

Opakování programování

Opakování programování Opakování programování HW návaznost - procesor sběrnice, instrukční sada, optimalizace rychlosti, datové typy, operace (matematické, logické, podmínky, skoky, podprogram ) - paměti a periferie - adresování

Více

Vstupní požadavky, doporučení a metodické pokyny

Vstupní požadavky, doporučení a metodické pokyny Název modulu: Základy PHP Označení: C9 Stručná charakteristika modulu Modul je orientován na tvorbu dynamických stánek aktualizovaných podle kontextu volání. Jazyk PHP umožňuje velmi jednoduchým způsobem

Více

Dynamické datové struktury III.

Dynamické 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íce

IUJCE 07/08 Přednáška č. 1

IUJCE 07/08 Přednáška č. 1 Úvod do předmětu Literatura Záznamy přednášek a vaše poznámky Harbison, S. P., Steele, G. L.: Referenční příručka jazyka C Herout, P.: Učebnice jazyka C Kernighan, B. W., Ritchie, D. M.: The C Programming

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Řídicí struktury jazyka Java Struktura programu Příkazy jazyka Blok příkazů Logické příkazy Ternární logický operátor Verze pro akademický rok 2012/2013 1 Struktura programu

Více

Systém pro optimalizaci a řízení lidských zdrojů

Systém pro optimalizaci a řízení lidských zdrojů ArisoTelos Systém pro optimalizaci a řízení lidských zdrojů Workforce management (WFM) O p t i m a l i z a c e a ř í z e n í l i d s k ý c h z d r o j ů = [řecky] optimální řešení komerční software pro

Více

Vzdálenost uzlů v neorientovaném grafu

Vzdá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

Základy algoritmizace a programování

Základy algoritmizace a programování Základy algoritmizace a programování Přednáška 1 Olga Majlingová Katedra matematiky, ČVUT v Praze 21. září 2009 Obsah Úvodní informace 1 Úvodní informace 2 3 4 Organizace předmětu Přednášky 1. 5. Základní

Více

Hranová 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 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íce

Funkce, intuitivní chápání složitosti

Funkce, intuitivní chápání složitosti Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti Funkce, intuitivní

Více

5 Rekurze a zásobník. Rekurzivní volání metody

5 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íce

Programování v jazyce C a C++

Programová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íce

bfs, dfs, fronta, zásobník, prioritní fronta, halda

bfs, 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íce

DSL manuál. Ing. Jan Hranáč. 27. října 2010. V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

DSL manuál. Ing. Jan Hranáč. 27. října 2010. V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v DSL manuál Ing. Jan Hranáč 27. října 2010 V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v současné době krátký) seznam vestavěných funkcí systému. 1 Vytvoření nového dobrodružství Nejprve

Více

Strukturované typy a ukazatele. Úvod do programování 1 Tomáš Kühr

Strukturované typy a ukazatele. Úvod do programování 1 Tomáš Kühr Strukturované typy a ukazatele Úvod do programování 1 Tomáš Kühr Motivace Se základními datovými typy si sice vystačíme Někdy to ale může být nepříjemně nepřehledné Příklady: long double soucet(const long

Více

Programování v C++ 1, 14. cvičení

Programování v C++ 1, 14. cvičení Programování v C++ 1, 14. cvičení výpustka, přetěžování funkcí, šablony funkcí 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 funkcí

Více

Výčtový typ strana 67

Výčtový typ strana 67 Výčtový typ strana 67 8. Výčtový typ V této kapitole si ukážeme, jak implementovat v Javě statické seznamy konstant (hodnot). Příkladem mohou být dny v týdnu, měsíce v roce, planety obíhající kolem slunce

Více

Co je obsahem? O čem bude přednáška? plánování a rozvrhování. ono se to někde používá? aplikace? řešící algoritmy.

Co je obsahem? O čem bude přednáška? plánování a rozvrhování. ono se to někde používá? aplikace? řešící algoritmy. Plánováníá a rozvrhování Roman Barták, KTIML roman.bartak@mff.cuni.cz cz http://ktiml.mff.cuni.cz/~bartak Co je obsahem? plánování a rozvrhování ale co to vlastně je plánování a rozvrhování? Přednáška

Více

Operační systémy. Cvičení 4: Programování v C pod Unixem

Operační systémy. Cvičení 4: Programování v C pod Unixem Operační systémy Cvičení 4: Programování v C pod Unixem 1 Obsah cvičení Řídící struktury Funkce Dynamická alokace paměti Ladění programu Kde najít další informace Poznámka: uvedené příklady jsou dostupné

Více

Základní datové struktury

Základní datové struktury Základní datové struktury Martin Trnečka Katedra informatiky, Přírodovědecká fakulta Univerzita Palackého v Olomouci 4. listopadu 2013 Martin Trnečka (UPOL) Algoritmická matematika 1 4. listopadu 2013

Více

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: 1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.

Více

Programování v C++, 2. cvičení

Programování v C++, 2. cvičení Programování v C++, 2. cvičení 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 Operátory new a delete 2 3 Operátory new a delete minule

Více

Preprocesor. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016

Preprocesor. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016 Preprocesor Karel Richta a kol. katedra počítačů FEL ČVUT v Praze Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016 Programování v C++, A7B36PJC 4/2016, Lekce 9b https://cw.fel.cvut.cz/wiki/courses/a7b36pjc/start

Více

Rozsáhlé programy = projekty

Rozsáhlé programy = projekty Rozsáhlé programy = projekty Petr Šaloun katedra informatiky FEI VŠB-TU Ostrava 28. listopadu 2011 Petr Šaloun (katedra informatiky FEI VŠB-TU Ostrava) Rozsáhlé programy = projekty 28. listopadu 2011 1

Více

Přednáška 8. Proměnné. Psaní a ladění skriptů. Parametry skriptu. Vstup a výstup. Konfigurační soubory shellu. Úvod do Operačních Systémů Přednáška 8

Přednáška 8. Proměnné. Psaní a ladění skriptů. Parametry skriptu. Vstup a výstup. Konfigurační soubory shellu. Úvod do Operačních Systémů Přednáška 8 Přednáška 8 Proměnné. Psaní a ladění skriptů. Parametry skriptu. Vstup a výstup. Konfigurační soubory shellu. 1 Proměnné Jména nových proměnných by neměly kolidovat se jmény předdefinovaných proměnných.

Více

Úvod do teorie grafů

Ú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íce

Mělká a hluboká kopie

Mělká a hluboká kopie Karel Müller, Josef Vogel (ČVUT FIT) Mělká a hluboká kopie BI-PA2, 2011, Přednáška 5 1/28 Mělká a hluboká kopie Ing. Josef Vogel, CSc Katedra softwarového inženýrství Katedra teoretické informatiky, Fakulta

Více

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Třídění dat. Ing. Hodál Jaroslav, Ph.D. VY_32_INOVACE_26 04

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Třídění dat. Ing. Hodál Jaroslav, Ph.D. VY_32_INOVACE_26 04 Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1 Šablona: Název: Téma: Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh Třídění dat Autor:

Více

Automatizované řešení úloh s omezeními

Automatizované ř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 25. října 2012 M. Kot

Více

Konstruktory a destruktory

Konstruktory a destruktory Konstruktory a destruktory Nedostatek atributy po vytvoření objektu nejsou automaticky inicializovány hodnota atributů je náhodná vytvoření metody pro inicializaci, kterou musí programátor explicitně zavolat,

Více

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu: Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury

Více

Algoritmizace prostorových úloh

Algoritmizace 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 Algoritmus Daniela Szturcová Tento

Více

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: 1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Typy Základní (primitivní) datové typy Deklarace Verze pro akademický rok 2012/2013 1 Typy v jazyce Java Základní datové typy (primitivní datové typy) Celočíselné byte, short,

Více

Dynamické datové struktury I.

Dynamické datové struktury I. Dynamické datové struktury I. Seznam. Fronta. Zásobník. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká fakulta UK. Tomáš Bayer bayertom@natur.cuni.cz

Více

SEMESTRÁLNÍ ÚLOHY S PROGRAMY V PROLOGU (zadání úloh)

SEMESTRÁ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

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7 Pascal Katedra aplikované kybernetiky Ing. Miroslav Vavroušek Verze 7 Proměnné Proměnná uchovává nějakou informaci potřebnou pro práci programu. Má ve svém oboru platnosti unikátní jméno. (Připadne, musí

Více

Algoritmizace prostorových úloh

Algoritmizace 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 Datové struktury Daniela Szturcová

Více

Metody návrhu algoritmů, příklady. IB111 Programování a algoritmizace

Metody 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íce

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 KAPITOLA 1 Úvod do programo vání v jazyce C++ 17 Základní pojmy 17 Proměnné a konstanty 18 Typy příkazů 18 IDE integrované vývojové

Více

Tabulka symbolů. Vazba (binding) Vazba - příklad. Deklarace a definice. Miroslav Beneš Dušan Kolář

Tabulka symbolů. Vazba (binding) Vazba - příklad. Deklarace a definice. Miroslav Beneš Dušan Kolář Vazba (binding) Tabulka symbolů Miroslav Beneš Dušan Kolář vazba = spojení mezi entitou a vlastností okamžik vazby (binding time) při návrhu jazyka při implementaci jazyka během překladu/spojování/zavádění

Více

Seznamy a iterátory. Kolekce obecně. Rozhraní kolekce. Procházení kolekcí

Seznamy a iterátory. Kolekce obecně. Rozhraní kolekce. Procházení kolekcí Kolekce obecně Seznamy a iterátory doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Kolekce ::= homogenní sada prvků

Více

SEMESTRÁLNÍ ÚLOHY S PROGRAMY V PROLOGU (zadání úloh)

SEMESTRÁ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

Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole

Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole Příkaz switch Příkaz switch provede příslušnou skupinu příkazů na základě hodnoty proměnné (celočíselné

Více

8 Třídy, objekty, metody, předávání argumentů metod

8 Třídy, objekty, metody, předávání argumentů metod 8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním

Více

1. Téma 03 - Rozhodování

1. Téma 03 - Rozhodování 1. Téma 03 - Rozhodování Cíl látky Seznámit se a prakticky si vyzkoušet zápis rozhodování v jazyce Java 1.1. Úvod Jednou z nejčastěji používanou konstrukcí při programování je rozhodování. Právě této problematice

Více

Úvod do programovacích jazyků (Java)

Úvod do programovacích jazyků (Java) Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích

Více

IUJCE Přednáška č. 11. další prvky globální proměnné, řízení viditelnosti proměnných, funkcí

IUJCE Přednáška č. 11. další prvky globální proměnné, řízení viditelnosti proměnných, funkcí Velké projekty v C velký = 100ky a více řádek udržovatelnost, bezpečnost, přehlednost kódu rozdělení programu do více souborů další prvky globální proměnné, řízení viditelnosti proměnných, funkcí Globální

Více

Řešení sady 1. Úvod do programování 1 Tomáš Kühr

Řešení sady 1. Úvod do programování 1 Tomáš Kühr Řešení sady 1 Úvod do programování 1 Tomáš Kühr Hello World #include #include int main(){ printf("hello world!\n"); return 0; } Práce s proměnnými 1/2 #include int main(){

Více

Dynamické programování

Dynamické programování Dynamické programování 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íce

4EK311 Operační výzkum. 1. Úvod do operačního výzkumu

4EK311 Operační výzkum. 1. Úvod do operačního výzkumu 4EK311 Operační výzkum 1. Úvod do operačního výzkumu Mgr. Jana SEKNIČKOVÁ, Ph.D. Nová budova, místnost 433 Konzultační hodiny InSIS E-mail: jana.seknickova@vse.cz Web: jana.seknicka.eu/vyuka Garant kurzu:

Více

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Číslo a název šablony Číslo didaktického materiálu Druh didaktického materiálu Autor Jazyk Téma sady didaktických materiálů Téma didaktického materiálu Vyučovací předmět Cílová skupina (ročník) Úroveň

Více

Řešení: PŘENESVĚŽ (N, A, B, C) = přenes N disků z A na B pomocí C

Ř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íce

Pokročilé programování v jazyce C pro chemiky (C3220) Třídy v C++

Pokročilé programování v jazyce C pro chemiky (C3220) Třídy v C++ Pokročilé programování v jazyce C pro chemiky (C3220) Třídy v C++ Třídy v C++ Třídy jsou uživatelsky definované typy podobné strukturám v C, kromě datových položek (proměnných) však mohou obsahovat i funkce

Více

Základy algoritmizace a programování

Základy algoritmizace a programování Základy algoritmizace a programování Přednáška 1 Olga Majlingová Katedra matematiky, ČVUT v Praze 19. září 2011 Obsah Úvodní informace 1 Úvodní informace 2 3 4 Doporučená literatura web: http://marian.fsik.cvut.cz/zapg

Více

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Číslo a název šablony Číslo didaktického materiálu Druh didaktického materiálu Autor Jazyk Téma sady didaktických materiálů Téma didaktického materiálu Vyučovací předmět Cílová skupina (ročník) Úroveň

Více

STROMOVE ALGORITMY Prohledavani do sirky (level-order) Po vodorovnejch carach fronta

STROMOVE 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íce

Obsah. 16. dubna Přehled metodik. Terminologie. Vlastnosti stroje Omezení Optimalizace CVUT FEL, K Klasifikace rozvrhovacích problému

Obsah. 16. dubna Přehled metodik. Terminologie. Vlastnosti stroje Omezení Optimalizace CVUT FEL, K Klasifikace rozvrhovacích problému Rozvrhování Radek Mařík CVUT FEL, K13132 16. dubna 2014 Radek Mařík (marikr@fel.cvut.cz) Rozvrhování 16. dubna 2014 1 / 44 Obsah 1 Úvod do rozvrhování Přehled metodik Příklady reálných problémů Terminologie

Více

Program a životní cyklus programu

Program a životní cyklus programu Program a životní cyklus programu Program algoritmus zapsaný formálně, srozumitelně pro počítač program se skládá z elementárních kroků Elementární kroky mohou být: instrukce operačního kódu počítače příkazy

Více

Vector datový kontejner v C++.

Vector datový kontejner v C++. Vector datový kontejner v C++. Jedná se o datový kontejner z knihovny STL jazyka C++. Vektor je šablona jednorozměrného pole. Na rozdíl od "klasického" pole má vector, mnoho užitečných vlastností a služeb.

Více