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

Podobné dokumenty
IB013 Logické programování I Hana Rudová. jaro 2011

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

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

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

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

Optimalizace & soft omezení: algoritmy

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

Hranová konzistence. Arc consistency AC. Nejprve se zabýváme binárními CSP. podmínka odpovídá hraně v grafu podmínek

Umělá inteligence a rozpoznávání

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

Dynamické rozvrhování

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

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

1. července 2010

13. Lineární programování

Katedra kybernetiky laboratoř Inteligentní Datové Analýzy (IDA) Katedra počítačů, Computational Intelligence Group

Václav Matoušek KIV. Umělá inteligence a rozpoznávání. Václav Matoušek / KIV

Metody lineární optimalizace Simplexová metoda. Distribuční úlohy

1 Úvod do celočíselné lineární optimalizace

Učební texty k státní bakalářské zkoušce Matematika Základy lineárního programování. študenti MFF 15. augusta 2008

FRAMEWORK PRO ŘEŠENÍ VÝPOČETNÍCH ÚLOH S OMEZUJÍCÍMI PODMÍNKAMI

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

ALGORITMY A DATOVÉ STRUKTURY

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

4EK201 Matematické modelování. 2. Lineární programování

4EK212 Kvantitativní management. 2. Lineární programování

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

4EK213 Lineární modely. 10. Celočíselné programování

INFORMATIKA. Jindřich Kaluža. Ludmila Kalužová

4EK311 Operační výzkum. 3. Optimalizační software a stabilita řešení úloh LP

Jana Dannhoferová Ústav informatiky, PEF MZLU

Maturitní témata. IKT, školní rok 2017/18. 1 Struktura osobního počítače. 2 Operační systém. 3 Uživatelský software.

Testování a verifikace softwaru

Úvod do celočíselné optimalizace

Globální matice konstrukce

Karta předmětu prezenční studium

Bonn, Rheinischen Friedrich-Wilhelms-Universität

OPTIMALIZACE. (přehled metod)

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

Další povinnosti / odb. praxe. Návrh témat prací. Návaznost na další stud. prog.

Matematický ústav UK Matematicko-fyzikální fakulta

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od jara 2017

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

Optimizing Limousine Service with AI. David Marek

OPTIMALIZACE A MULTIKRITERIÁLNÍ HODNOCENÍ FUNKČNÍ ZPŮSOBILOSTI POZEMNÍCH STAVEB D24FZS

Plánováníá a rozvrhování

Statistické metody v ekonomii. Ing. Michael Rost, Ph.D.

Otázky ke státní závěrečné zkoušce

Numerické metody optimalizace - úvod

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od jara 2016

Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů.

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2014

Matematický ústav UK Matematicko-fyzikální fakulta

Celočíselné lineární programování(ilp)

Detekce kolizí v 3D Josef Pelikán KSVI MFF UK Praha

Paralelní programování

Strojové učení se zaměřením na vliv vstupních dat

Triangulace. Význam triangulace. trojúhelník je základní grafický element aproximace ploch předzpracování pro jiné algoritmy. příklad triangulace

4EK212 Kvantitativní management. 1. Úvod do kvantitativního managementu a LP

5 Orientované grafy, Toky v sítích

Biologicky inspirované výpočty. Schématické rozdělení problematiky a výuky

Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13.

Metamorfóza obrázků Josef Pelikán CGG MFF UK Praha

6 Simplexová metoda: Principy

Lineární programování(optimalizace) a soustavy lineárních nerovností

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

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od jara 2014

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice

Státní závěrečná zkouška z oboru Matematika a její použití v přírodních vědách

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

Numerické metody a programování. Lekce 8

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

Elektronické obvody analýza a simulace

Usuzování za neurčitosti

GIS Geografické informační systémy

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2016

Obecná úloha lineárního programování. Úloha LP a konvexní množiny Grafická metoda. Jiří Neubauer. Katedra ekonometrie FEM UO Brno

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

Jasové transformace. Karel Horák. Rozvrh přednášky:

Programování. s omezujícími podmínkami. Roman Barták. rová hranová konzistence

Úvod do modelování a simulace. Ing. Michal Dorda, Ph.D.

Popis zobrazení pomocí fuzzy logiky

Deskripční logika. Petr Křemen FEL ČVUT. Petr Křemen (FEL ČVUT) Deskripční logika 37 / 157

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

Přijímací zkouška - matematika

Počítačová grafika 2 (POGR2)

Výpočet průsečíků paprsku se scénou

Optimalizace. Obsah přednášky. DÚ LP - Okružní problém. Lineární optimalizace. DÚ LP - Okružní problém. DÚ LP - Okružní problém

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.

OSA. maximalizace minimalizace 1/22

Booleova algebra. ZákonyBooleovy algebry Vyjádření logických funkcí

MATLAB & Simulink. novinky v roce Jan Houška houska@humusoft.cz. HUMUSOFT s.r.o.

Úvod do informatiky. Miroslav Kolařík. Zpracováno dle učebního textu R. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008.

Oborové číslo Hodnocení - část A Hodnocení - část B Hodnocení - část A+B. 1. úloha (4 body) Kolik existuje cest délky 4 v grafu K11? 2.

Teorie síťových modelů a síťové plánování

Funkce v ıce promˇ enn ych Extr emy Pˇredn aˇska p at a 12.bˇrezna 2018

Genetické programování 3. část

4EK213 LINEÁRNÍ MODELY

Vývoj řízený testy Test Driven Development

Transkript:

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 3 řádné termíny v různých týdnech zkouškového období kratší písemná práce pro každý řádný termín společná příprava pro všechny cca 5 otázek: přehledové, algoritmy, pojmy, příklady ústní zkouška ve stejný den jako písemná práce příprava na individuální otázky během zkoušky diskuse nad písemnou prací opravný termín jako ústní zkouška Omezující podmínky v jiných přednáškách: IB013 LP I, IA050 LP II Programování s omezujícími podmínkami I, 25. září 2003 2 Organizace předmětu

Předběžný přehled přednášky Úvod. Problém splňování podmínek. Složitost. Binární a nebinární podmínky. Reprezentace podmínek. Algoritmy a konzistence: vrcholová, hranová, po cestě, k-konzistence. Konzistence pro globální podmínky. Stromové prohledávací algoritmy: backtracking, limitovaný počet diskrepancí, neúplné prohledávání, inteligentní backtracking. Prohledávací algoritmy a propagace podmínek. Výběr proměnné a hodnoty. Optimalizační problémy a algoritmy. Algoritmy lokálního prohledávání. Hybridní prohledávací algoritmy. Logické programování s omezujícími podmínkami. Řešení příkladů v SICStus Prologu a ILOG Solver (C++). Příliš podmíněné problémy: přístupy k řešení a algoritmy. Souběžné programování s omezujícími podmínkami. Distribuované splňování podmínek. Agentní technologie. Programování s omezujícími podmínkami I, 25. září 2003 3 Organizace předmětu

Literatura: hlavní zdroje Dechter, R. Constraint processing. Morgan Kaufmann Publishers, 2003. Přednáška, kapitoly z knihy Constraint Processing, 2001: http://www.ics.uci.edu/~dechter/ics-275a/fall-2001/index.html Barták R. Přednáška na MFF UK, Praha. http://kti.ms.mff.cuni.cz/~bartak/podminky/index.html Programování s omezujícími podmínkami I, 25. září 2003 4 Organizace předmětu

Souhrnná literatura Dechter, R. Constraint processing. Morgan Kaufmann Publishers, 2003. http://www.ics.uci.edu/~dechter/books/ Apt, K. Principles of Constraint Programming. Cambridge University Press, 2003. Marriott, K., Stuckey, P.J. Programming with constraints : an introduction. Cambridge : MIT Press, 1998. Van Hentenryck, P. Constraint satisfaction in logic programming. MIT Press, 1989. Frühwirth, T. Abdennadher, S. Essentials of constraint programming. Springer, 2003. Barták, R. On-line guide to constraint programming. http://ktilinux.ms.mff.cuni.cz/~bartak/constraints/ Programování s omezujícími podmínkami I, 25. září 2003 5 Organizace předmětu

Literatura ke specifickým oblastem Hooker, J. Logic-based methods for optimization : combining optimization and constraint satisfaction. New York : John Wiley & Sons, 2000. Schulte, Chr. Programming constraint services. LNAI 2302, Springer, 2002. Rudová, H. Constraint satisfaction with preferences. PhD thesis, FI MU, 2001. http://www.fi.muni.cz/~hanka/phd.html Yokoo, M. Distributed constraint satisfaction. Springer, 2001. Nareyek, A. Constraint-based agents. LNAI 2062, Springer, 2001. Programování s omezujícími podmínkami I, 25. září 2003 6 Organizace předmětu

Literatura: přednášky, Prolog, sw Přednášky/průsvitky na webu Barták R., MFF UK, Praha. http://kti.ms.mff.cuni.cz/~bartak/podminky/index.html Dechter R., UCI, Kalifornie. http://www.ics.uci.edu/~dechter/ics-275a/fall-2001/index.html Apt K., CWI, Amsterdam. Průsvitky ke knize: http://homepages.cwi.nl/~apt/pcp/ Programování v Prologu Bratko, I. Prolog Programming for Artificial Intelligence. Addison-Wesley, 2001. Clocksin, W. F. Mellish, Ch. S. Programming in Prolog. Springer, 1994. Manuály SICStus Prolog http://www.fi.muni.cz/~hanka/sicstus/doc/html ILOG Solver 5.1 User s Manual. ILOG, květen 2001. aisa... file://afs/ics.muni.cz/software/ilog/doc/solver51/index.html Programování s omezujícími podmínkami I, 25. září 2003 7 Organizace předmětu

Software SICStus Prolog komerční produkt, zakoupena licence pro instalace na domácí počítače studentů dokumentace: http://www.fi.muni.cz/~hanka/sicstus/doc/html referenční verze: 3.10.1 podrobné informace na webu předmětu ILOG Solver komerční produkt, C++ knihovny plán: povýšení na poslední existujicí verzi nyní: 2 plovoucí licence ve verzi 5.1 pro Linux funkční na počítačích Superpočítačového centra dokumentace a příklady dostupné na počítači aisa file://afs/ics.muni.cz/software/ilog/i386_linux2/solver51/ Programování s omezujícími podmínkami I, 25. září 2003 8 Organizace předmětu

Programování s omezujícími podmínkami: Úvod

Programování s omezujícími podmínkami Constraint programming (CP) Alternativní přístup k programování Kombinace uvažování a počítaní Omezení/omezující podmínka/podmínka na množině proměnných: relace na doménách proměnných Problém splňování podmínek (Constraint satisfaction problem CSP): konečná množina omezení Programování s omezujícími podmínkami I, 25. září 2003 10 Úvod

Programování s omezujícími podmínkami Constraint programming (CP) Alternativní přístup k programování Kombinace uvažování a počítaní Omezení/omezující podmínka/podmínka na množině proměnných: relace na doménách proměnných Problém splňování podmínek (Constraint satisfaction problem CSP): konečná množina omezení Řešení CSP nalezení hodnot z domén proměnných tak, aby všechny relace platily určení, zda má řešení (je konzistentní) nalezení jednoho (nebo všech) řešení nalezení jednoho (nebo všech) optimálního řešení Programování s omezujícími podmínkami I, 25. září 2003 10 Úvod

Přístup CP k programování Formulace daného problému pomocí omezení: modelování Řešení vybrané reprezentace pomocí doménově specifických metod obecných metod Programování s omezujícími podmínkami I, 25. září 2003 11 Úvod

Obecné metody Algoritmy propagace omezení zjednodušují problém udržují ekvivalenci mezi původním a zjednodušeným problémem umožňují odstranit nekonzistentní hodnoty z domén proměnných pro výpočet lokální konzistence aproximují tak globální konzistenci Programování s omezujícími podmínkami I, 25. září 2003 12 Úvod

Obecné metody Algoritmy propagace omezení zjednodušují problém udržují ekvivalenci mezi původním a zjednodušeným problémem umožňují odstranit nekonzistentní hodnoty z domén proměnných pro výpočet lokální konzistence aproximují tak globální konzistenci Prohledávací algoritmy prohledávání stavového prostoru řešení příklady: backtracking, metoda větví a mezí Programování s omezujícími podmínkami I, 25. září 2003 12 Úvod

Doménově specifické metody Specializované algoritmy Nazývány řešiče omezení (constraint solvers) Příklady: program pro řešení systému lineárních rovnic knihovny pro lineární programování implementace unifikačního algoritmu Programování s omezujícími podmínkami I, 25. září 2003 13 Úvod

Doménově specifické metody Specializované algoritmy Nazývány řešiče omezení (constraint solvers) Příklady: program pro řešení systému lineárních rovnic knihovny pro lineární programování implementace unifikačního algoritmu Programování s omezujícími podmínkami široký pojem zahrnující řadu oblastí Lineární Algebra, Globální Optimalizace, Lineární a Celočíselné Programování,... Existence doménově specifických metod = použití místo obecných metod hledání doménově specifických metod tak, aby mohly být použity místo obecných metod Programování s omezujícími podmínkami I, 25. září 2003 13 Úvod

Shrnutí: základní charakteristiky CP Dvoufázový programovací proces: generování reprezentace problému jako CSP řešení CSP Flexibilní reprezentace: omezení mohou být přidáná, odebrána, modifikována Podpora ve formě vestavěných nástrojů: řešiče omezení algoritmy propagace omezení prohledávací metody Programování s omezujícími podmínkami I, 25. září 2003 14 Úvod

Historie 1963 interaktivní grafika (Sutherland: Sketchpad) 1970 sít omezení (Montanari) 1977 algoritmy pro sítě omezení (Mackworth) Polovina 80. let: logické programování omezujícími podmínkami 1984 ECL i PS e Prolog, ECRC Mnichov, později IC-PARC Londýn 1985 SICStus Prolog, Swedish Institute of Computer Science (SICS) 1987 ILOG, komerční firma, C++ implementace Od 1990: komerční využití Už v roce 1996: výnos řádově stovky milionů dolarů Programování s omezujícími podmínkami I, 25. září 2003 15 Úvod

Interaktivní grafické systémy: Příklady použití vyjádření geometrických vztahů v případě analýzy scény Operační výzkum: barvení grafu, rozvrhování s disjunktivními podmínkami, umístění skladů Molekulární biologie: DNA sekvencování, konstrukce 3D modelů proteinů Elektrotechnika: detekce chyb v el.obvodech, výpočet návrhu obvodu, testování a verifikace návrhu Zpracování přirozeného jazyka: konstrukce efektivních parserů Numerické výpočty: řešení polynomiálních omezení s danou přesností Doprava (British Airways, Lufthansa) automobilový průmysl (Renault, Ford), elektronika (IBM, Alcatel), telekomunikace (France Telecom, AT&T), potravinový průmysl (Uncle Ben s), veřejný sektor (NASA) Programování s omezujícími podmínkami I, 25. září 2003 16 Úvod

CSP: příklady a modelování Formální definice problému splňování podmínek (CSP) 1. problém řešitelnosti 2. optimalizační problém Modelování: reprezentace problému jako CSP existence různých přirozených reprezentací některé reprezentace jsou přirozené, jiné netriviální některé reprezentace založeny na teoretických základech Obecnost pojmu CSP Další příklady: http://homepages.cwi.nl/~apt/pcp/ Programování s omezujícími podmínkami I, 25. září 2003 17 Úvod

Dána Problém splňování podmínek (CSP) množina (doménových) proměnných Y = {y 1,..., y k } konečná množina hodnot (doména) D = {D 1,..., D k } Omezení c na Y je podmnožina D 1... D k omezuje hodnoty, kterých mohou proměnné nabývat současně Programování s omezujícími podmínkami I, 25. září 2003 18 Úvod

Dána Problém splňování podmínek (CSP) množina (doménových) proměnných Y = {y 1,..., y k } konečná množina hodnot (doména) D = {D 1,..., D k } Omezení c na Y je podmnožina D 1... D k omezuje hodnoty, kterých mohou proměnné nabývat současně Dána konečná množina proměnných X = {x 1,..., x n } konečná množina hodnot (doména) D = {D 1,..., D n } konečná množina omezení C = {c 1,..., c m } omezení je definováno na podmnožině X Problém splňování podmínek je trojice (X, D, C) Programování s omezujícími podmínkami I, 25. září 2003 18 Úvod

Dána Problém splňování podmínek (CSP) množina (doménových) proměnných Y = {y 1,..., y k } konečná množina hodnot (doména) D = {D 1,..., D k } Omezení c na Y je podmnožina D 1... D k omezuje hodnoty, kterých mohou proměnné nabývat současně Dána konečná množina proměnných X = {x 1,..., x n } konečná množina hodnot (doména) D = {D 1,..., D n } konečná množina omezení C = {c 1,..., c m } omezení je definováno na podmnožině X Problém splňování podmínek je trojice (X, D, C) (d 1,..., d n ) D 1... D n je řešení (X, D, C) pro každé c i C na x i1,... x ik platí (d i1,... d ik ) c i (říkáme, že omezení je c i splněno) Programování s omezujícími podmínkami I, 25. září 2003 18 Úvod

Algebrogram Přiřad te cifry 0,... 9 písmenům S, E, N, D, M, O, R, Y tak, aby platilo: SEND + MORE MONEY různá písmena mají přiřazena různé cifry S a M nejsou 0 Programování s omezujícími podmínkami I, 25. září 2003 19 Úvod

Algebrogram Přiřad te cifry 0,... 9 písmenům S, E, N, D, M, O, R, Y tak, aby platilo: SEND + MORE MONEY různá písmena mají přiřazena různé cifry S a M nejsou 0 Jediné řešení: 9567 + 1085 10652 Programování s omezujícími podmínkami I, 25. září 2003 19 Úvod

Algebrogram Přiřad te cifry 0,... 9 písmenům S, E, N, D, M, O, R, Y tak, aby platilo: SEND + MORE MONEY různá písmena mají přiřazena různé cifry S a M nejsou 0 Jediné řešení: 9567 + 1085 10652 Proměnné: S,E,N,D,M,O,R,Y Domény: [1..9] pro S,M [0..9] pro E,N,D,O,R,Y Programování s omezujícími podmínkami I, 25. září 2003 19 Úvod

Algebrogram: alternativy pro omezení rovnosti 1 omezení rovnosti 1000*S + 100*E + 10*N + D SEND + 1000*M + 100*O + 10*R + E + MORE #= 10000*M + 1000*O + 100*N + 10*E + Y MONEY Programování s omezujícími podmínkami I, 25. září 2003 20 Úvod

Algebrogram: alternativy pro omezení rovnosti 1 omezení rovnosti 1000*S + 100*E + 10*N + D SEND + 1000*M + 100*O + 10*R + E + MORE #= 10000*M + 1000*O + 100*N + 10*E + Y MONEY 5 omezení rovnosti použití přenosových proměnných P1,P2,P3,P4 s doménami [0..1] D + E #= 10*P1 + Y, P1 + N + R #= 10*P2 + E, P2 + E + O #= 10*P3 + N, P3 + S + M #= 10*P4 + O P4 #= M Programování s omezujícími podmínkami I, 25. září 2003 20 Úvod

Algebrogram: alternativy pro omezení nerovnosti 28 omezení nerovnosti: X Y pro X,Y {S,E,N,D,M,O,R,Y}, X Y Programování s omezujícími podmínkami I, 25. září 2003 21 Úvod

Algebrogram: alternativy pro omezení nerovnosti 28 omezení nerovnosti: X Y pro X,Y {S,E,N,D,M,O,R,Y}, X Y 1 omezení pro nerovnost pro proměnné x 1,..., x n s doménami D 1,..., D n : all_different (x 1,..., x n ) := {(d 1,..., d n ) d i d j pro i j} použití: all_different(s,e,n,d,m,o,r,y) Programování s omezujícími podmínkami I, 25. září 2003 21 Úvod

Algebrogram: alternativy pro omezení nerovnosti 28 omezení nerovnosti: X Y pro X,Y {S,E,N,D,M,O,R,Y}, X Y 1 omezení pro nerovnost pro proměnné x 1,..., x n s doménami D 1,..., D n : all_different (x 1,..., x n ) := {(d 1,..., d n ) d i d j pro i j} použití: all_different(s,e,n,d,m,o,r,y) Modelování jako problém Celočíselného Programování pro X,Y {S,E,N,D,M,O,R,Y} definuj Z X,Y [0..1] a transformuj X Y na omezení X-Y 10-11 Z X,Y Y-X 11 Z X,Y - 1 Programování s omezujícími podmínkami I, 25. září 2003 21 Úvod

Algebrogram: alternativy pro omezení nerovnosti 28 omezení nerovnosti: X Y pro X,Y {S,E,N,D,M,O,R,Y}, X Y 1 omezení pro nerovnost pro proměnné x 1,..., x n s doménami D 1,..., D n : all_different (x 1,..., x n ) := {(d 1,..., d n ) d i d j pro i j} použití: all_different(s,e,n,d,m,o,r,y) Modelování jako problém Celočíselného Programování pro X,Y {S,E,N,D,M,O,R,Y} definuj Z X,Y [0..1] a transformuj X Y na omezení X-Y 10-11 Z X,Y Y-X 11 Z X,Y - 1 X Y = X<Y Y<X = X-Y -1 Y-X -1 = (X-Y 10-11 Z X,Y Z X,Y =1) (Y-X 11 Z X,Y -1 Z X,Y =0) Programování s omezujícími podmínkami I, 25. září 2003 21 Úvod

Algebrogram: alternativy pro omezení nerovnosti 28 omezení nerovnosti: X Y pro X,Y {S,E,N,D,M,O,R,Y}, X Y 1 omezení pro nerovnost pro proměnné x 1,..., x n s doménami D 1,..., D n : all_different (x 1,..., x n ) := {(d 1,..., d n ) d i d j pro i j} použití: all_different(s,e,n,d,m,o,r,y) Modelování jako problém Celočíselného Programování pro X,Y {S,E,N,D,M,O,R,Y} definuj Z X,Y [0..1] a transformuj X Y na omezení X-Y 10-11 Z X,Y Y-X 11 Z X,Y - 1 X Y = X<Y Y<X = X-Y -1 Y-X -1 = (X-Y 10-11 Z X,Y Z X,Y =1) (Y-X 11 Z X,Y -1 Z X,Y =0) nevýhoda: 28 nových proměnných! Programování s omezujícími podmínkami I, 25. září 2003 21 Úvod

N královen Umístěte n královen na n n šachovnici, tak aby na sebe navzájem neútočily. Programování s omezujícími podmínkami I, 25. září 2003 22 Úvod

N královen Umístěte n královen na n n šachovnici, tak aby na sebe navzájem neútočily. Proměnné: x 1,..., x n (každá proměnná pro jeden sloupec) Domény: [1..n] Programování s omezujícími podmínkami I, 25. září 2003 22 Úvod

N královen Umístěte n královen na n n šachovnici, tak aby na sebe navzájem neútočily. Proměnné: x 1,..., x n (každá proměnná pro jeden sloupec) Domény: [1..n] Omezení: pro i [1..(n 1)] a j [(i + 1)..n]: x i x j (řádky) Programování s omezujícími podmínkami I, 25. září 2003 22 Úvod

N královen Umístěte n královen na n n šachovnici, tak aby na sebe navzájem neútočily. Proměnné: x 1,..., x n (každá proměnná pro jeden sloupec) Domény: [1..n] Omezení: pro i [1..(n 1)] a j [(i + 1)..n]: x i x j (řádky) x i x j i j (jihozápadní-severovýchodní diagonála) x i x j j i (severozápadní-jihovýchodní diagonála) Programování s omezujícími podmínkami I, 25. září 2003 22 Úvod

N královen Umístěte n královen na n n šachovnici, tak aby na sebe navzájem neútočily. Proměnné: x 1,..., x n (každá proměnná pro jeden sloupec) Domény: [1..n] Omezení: pro i [1..(n 1)] a j [(i + 1)..n]: x i x j (řádky), tj. n(n 1) 2 omezení = all_different (x 1,..., x n ) x i x j i j (jihozápadní-severovýchodní diagonála) x i x j j i (severozápadní-jihovýchodní diagonála) Programování s omezujícími podmínkami I, 25. září 2003 22 Úvod

Analýza scény Jeden z prvních řešených CSP problémů z počátku 70. let 3-dimenzionální interpretace 2-dimenzionální kresby tvořené rovnými hranami Má daný 2-dimenzionální objekt 3-dimenzionální interpretaci? Programování s omezujícími podmínkami I, 25. září 2003 23 Úvod

Analýza scény: značky hrana: průnik dvou rovin, značka určuje relativní pozici rovin + značí konvexní hrany 270 0 rotace jedné roviny na druhou prostorem pozorovatele značí konkávní hrany 90 0 rotace jedné roviny na druhou prostorem pozorovatele a značí hraniční hrany tvořeny dvěma rovinami, jedna z nich je skrytá Programování s omezujícími podmínkami I, 25. září 2003 24 Úvod

Analýza scény: CSP problém Programování s omezujícími podmínkami I, 25. září 2003 25 Úvod

Analýza scény: CSP problém Proměnné: hrany, domény: {+,,, } Omezení: legální křižovatky 4 typy omezení: L,vidlicka,T,sipka Příklad: L := {(, ), (, ), (+, ), (, +), (, ), (, )} : hrana vedoucí do vrcholu : hrana vedoucí z vrcholu Programování s omezujícími podmínkami I, 25. září 2003 25 Úvod

Analýza scény: CSP problém Proměnné: hrany, domény: {+,,, } Omezení: legální křižovatky 4 typy omezení: L,vidlicka,T,sipka Příklad: L := {(, ), (, ), (+, ), (, +), (, ), (, )} : hrana vedoucí do vrcholu : hrana vedoucí z vrcholu Krychle jako CSP: sipka(ac,ae,ab), vidlicka(ba,bf,bd), L(CA,CD), sipka(dg,dc,db), L(EF,EA), sipka(fe,fg,fb), L(GD,GF) Programování s omezujícími podmínkami I, 25. září 2003 25 Úvod

Analýza scény: CSP problém (pokračování) Další nutné omezení hrana := {(+, +), (, ), (, ), (, )} pro každou hranu zachycuje komplementární charakter a Programování s omezujícími podmínkami I, 25. září 2003 26 Úvod

Analýza scény: CSP problém (pokračování) Další nutné omezení hrana := {(+, +), (, ), (, ), (, )} pro každou hranu zachycuje komplementární charakter a Krychle jako CSP: přidáme omezení hrana(ab,ba), hrana(ac,ca), hrana(cd,dc), hrana(bd,db), hrana(ae,ea), hrana(ef,fe), hrana(bf,fb), hrana(fg,gf), hrana(dg,gd) Programování s omezujícími podmínkami I, 25. září 2003 26 Úvod

Analýza scény: alternativní CSP problém Proměnné jako křižovatky proměnné typu L,vidlicka,T,sipka Doména proměnné odpovídá množině křižovatek dle typu proměnné Programování s omezujícími podmínkami I, 25. září 2003 27 Úvod

Analýza scény: alternativní CSP problém Proměnné jako křižovatky proměnné typu L,vidlicka,T,sipka Doména proměnné odpovídá množině křižovatek dle typu proměnné Omezení sousední křižovatky sdílí hrany pro sousední křižovatky lze použít pouze některé kombinace hran Programování s omezujícími podmínkami I, 25. září 2003 27 Úvod