ILOG (aisa:/software/ilog/solver51/doc/index.html)
|
|
- Ivo Slavík
- před 5 lety
- Počet zobrazení:
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 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í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ícePA163 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íceProgramová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í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íceCLP(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íceStandardní 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íceDynamické 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íceOptimizing 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í
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) 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íceVí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íceDynamicky 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íceLogické 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í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íceVÝ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í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íceFunkce, 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íceProgramová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í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í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íce1 Nejkratší cesta grafem
Bakalářské zkoušky (příklady otázek) podzim 2014 1 Nejkratší cesta grafem 1. Uvažujte graf s kladným ohodnocením hran (délka). Definujte formálně problém hledání nejkratší cesty mezi dvěma uzly tohoto
Ví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íceMartin 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íceVÝ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íceIII/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íceVyuč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ícePROGRAMOVÁ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í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íceProgramová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íceMichal 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 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í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ícePROGRAMOVACÍ 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íceDotazová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í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íceProgramová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í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íceProgramy 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íceOpaková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íceVstupní 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í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íceIUJCE 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íceAlgoritmizace 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íceSysté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í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íceZá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í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íceFunkce, 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í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íceProgramování v jazyce C a C++
Programování v jazyce C a C++ Příklad na tvorbu třídy Richter 1 4. prosince 2017 1 Ing. Richter Miloslav, Ph.D., UAMT FEKT VUT Brno Dvourozměrné pole pomocí tříd Zadání Navrhněte a napište třídu pro realizace
Ví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íceDSL 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íceStrukturované 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íceProgramová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íceVýč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íceCo 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íceOperač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íceZá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íce1. 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íceProgramová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ícePreprocesor. 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íceRozsá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ícePř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ů 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íceMě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íceInovace 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í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 25. října 2012 M. Kot
VíceKonstruktory 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: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury
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 Algoritmus Daniela Szturcová Tento
Více1. 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íceAlgoritmizace 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íceDynamické 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í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ícePascal. 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í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 Datové struktury Daniela Szturcová
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. 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íceTabulka 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íceSeznamy 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í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íceProgramová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íce8 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íce1. 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) 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íceIUJCE 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 Hello World #include #include int main(){ printf("hello world!\n"); return 0; } Práce s proměnnými 1/2 #include int main(){
VíceDynamické 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íce4EK311 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íceIII/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
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ícePokroč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íceZá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íceIII/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í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. 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íceProgram 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íceVector 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