Vyberte oblečení tak, aby navzájem ladilo. Proměnné: shirt: {red, white}

Podobné dokumenty
Optimalizace & soft omezení: algoritmy

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

Programování. s omezujícími podmínkami. Roman Barták. roman.bartak@mff.cuni.cz

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

Teorie množin. Čekají nás základní množinové operace kartézské součiny, relace zobrazení, operace. Teoretické základy informatiky.

1 Báze a dimenze vektorového prostoru 1

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

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

ROZHODOVACÍ PROCEDURY A VERIFIKACE PAVEL SURYNEK, KTIML

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

Základní pojmy teorie množin Vektorové prostory

RELACE, OPERACE. Relace

NP-ÚPLNÉ PROBLÉMY. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

Vzdálenost uzlů v neorientovaném grafu

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

Teoretická informatika Tomáš Foltýnek Algebra Struktury s jednou operací

Rozhodovací procedury a verifikace Pavel Surynek, KTIML

1 Připomenutí vybraných pojmů

Pojem binární relace patří mezi nejzákladnější matematické pojmy. Binární relace

Úvod do logiky (presentace 2) Naivní teorie množin, relace a funkce

Poznámka. Je-li f zobrazení, ve kterém potřebujeme zdůraznit proměnnou, píšeme f(x) (resp. f(y), resp. f(t)) je zobrazení místo f je zobrazení.

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

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

Výroková a predikátová logika - VII

Fuzzy množiny, Fuzzy inference system. Libor Žák

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.

METRICKÉ A NORMOVANÉ PROSTORY

Usuzování za neurčitosti

Automaty a gramatiky(bi-aag) Motivace. 1. Základní pojmy. 2 domácí úkoly po 6 bodech 3 testy za bodů celkem 40 bodů

ALGEBRA. Téma 4: Grupy, okruhy a pole

Programovani v Maplu Procedura

Pro každé formule α, β, γ, δ platí: Pro každé formule α, β, γ platí: Poznámka: Platí právě tehdy, když je tautologie.

Matematika (KMI/PMATE)

Jan Pavĺık. FSI VUT v Brně

MULTIKRITERIÁLNÍ ROZHODOVÁNÍ KOMPLEXNÍ HODNOCENÍ ALTERNATIV

V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti

1 Zobrazení 1 ZOBRAZENÍ 1. Zobrazení a algebraické struktury. (a) Ukažte, že zobrazení f : x

Zavedení a vlastnosti reálných čísel

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

Algoritmy I, složitost

1. července 2010

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

Použití dalších heuristik

Matice. Modifikace matic eliminační metodou. α A = α a 2,1, α a 2,2,..., α a 2,n α a m,1, α a m,2,..., α a m,n

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy

Časová a prostorová složitost algoritmů

Teorie her a ekonomické rozhodování. 2. Maticové hry

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

0.1 Funkce a její vlastnosti

Databázové systémy. * relační kalkuly. Tomáš Skopal. - relační model

ORIENTOVANÉ GRAFY, REPREZENTACE GRAFŮ

Programování v jazyce JavaScript

prochází částečná konzistentní ohodnocení dokud nenajde úplné (konzistentní) ohodnocení Základní princip prohledávání s navracení při řešení CSP:

Matematická analýza pro informatiky I.

1 Topologie roviny a prostoru

Operační výzkum. Vícekriteriální programování. Lexikografická metoda. Metoda agregace účelových funkcí. Cílové programování.

1. POJMY 1.1. FORMULE VÝROKOVÉHO POČTU

SII - Informatika. 1. Atribut relace, jehož hodnota jednoznačně určuje prvek v jiné relaci, se nazývá:

Znalosti budeme nejčastěji vyjadřovat v predikátové logice prvního řádu. Metody:

Dijkstrův algoritmus

Princip rozšíření a operace s fuzzy čísly

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

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

0.1 Úvod do matematické analýzy

Euklidovský prostor. Funkce dvou proměnných: základní pojmy, limita a spojitost.

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

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

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

Úvod do programovacích jazyků (Java)

Operace s maticemi

α β ) právě tehdy, když pro jednotlivé hodnoty platí β1 αn βn. Danou relaci nazýváme relace

Sémantika predikátové logiky

MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij]

NEJKRATŠÍ CESTY I. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

Paradigmata programování 1

Skalární součin dovoluje zavedení metriky v afinním bodovém prostoru, tj. umožňuje nám určovat vzdálenosti, odchylky, obsahy a objemy.

BCH kódy. Alena Gollová, TIK BCH kódy 1/27

1. POJMY 1.1. FORMULE VÝROKOVÉHO POČTU

Texty k přednáškám z MMAN3: 4. Funkce a zobrazení v euklidovských prostorech

PŘEDNÁŠKA 7 Kongruence svazů

Aproximace funkcí. x je systém m 1 jednoduchých, LN a dostatečně hladkých funkcí. x c m. g 1. g m. a 1. x a 2. x 2 a k. x k b 1. x b 2.

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2006/2007 Radim Farana. Obsah. Obsah předmětu

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal

Basic256 - úvod do programování Příklady. ing. petr polách

Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i,

Lineární algebra - I. část (vektory, matice a jejich využití)

Aplikovaná numerická matematika

Pumping lemma - podstata problému. Automaty a gramatiky(bi-aag) Pumping lemma - problem resolution. Pumping lemma - podstata problému

3 Množiny, Relace a Funkce

Numerické metody a programování. Lekce 8

Implementace LL(1) překladů

Matematická logika. Miroslav Kolařík

Projekty - Úvod do funkcionální analýzy

Lineární algebra. Matice, operace s maticemi

Co je to univerzální algebra?

Predikátová logika. prvního řádu

IV113 Validace a verifikace. Převod LTL formule na Büchi automat. Jiří Barnat

Numerické metody optimalizace - úvod

KOMPLEXNÍ ČÍSLA A FUNKCE MNOŽINA KOMPLEXNÍCH ČÍSEL C. Alternativní popis komplexních čísel

Transkript:

Programování s omezujícími podmínkami Motivace - problém šatníku Vyberte oblečení tak, aby navzájem ladilo. Proměnné: : {red, white} : {cordovans, sneakers} : {blue, denim, grey} Podmínky: x : red-grey, white-blue, white-denim x : sneakers-denim, cordovans-grey x : white-cordovans Roman Barták Katedra teoretické informatiky a matematické logiky roman.bartak@mff.cuni.cz http://ktiml.mff.cuni.cz/~bartak NEMÁ ŘEŠENÍ splňující všechny podmínky Problémy, kde nelze najednou splnit všechny podmínky, se nazývají příliš omezené (pře-omezené, over-constrained). První řešení problému šatníku Problém sice nemá řešení, ale mi nějaké potřebujeme. 1) dokoupíme oblečení zvětšíme doménu proměnné 2) slevíme z vkusu zvětšíme doménu podmínky 3) boty a neladící košile nevadí vyřadíme podmínku 4) nevezmeme si boty vyřadíme proměnnou Doména je určena unární podmínkou Doména podmínky je úplná Vyřadíme podmínky s proměnnou Zvětšená doména podmínky Částečné splňování podmínek Definujme nejprve prostor problémů jako částečně uspořádanou množinu CSP problémů (PS, ), kde P 1 P 2 právě když množina řešení P 2 je podmnožinou množiny řešení P 1. Prostor problémů získáme oslabováním původního problému. Problém částečného splňování podmínek (Partial Constraint Satisfaction Problem, PCSP) je definován jako P,(PS, ),M,(N,S) P(PS )M(NS) P je původní problém (PS, ) je prostor problémů obsahující P M je metrika na tomto prostoru definující vzdálenost problémů M(P,P ) může být například počet různých řešení P a P nebo počet různých n-tic v podmínkách N je maximální možná vzdálenost Sj je postačující č í vzdálenost (S<N) Řešením PCSP je problém P (a jeho řešení), takový že P PS a M(P,P)<N. P )<N Postačujícím řešením je řešení, kde M(P,P) P ) S. Optimálním řešením je řešení s minimální vzdáleností od P.

Částečné splňování podmínek v praxi Při hledání řešení PCSP negenerujeme další problémy, ale pracujeme s původním problémem: používá se evaluační funkce g, která každému (i částečnému) ohodnocení proměnných přiřazuje numerickou hodnotu hledáme ohodnocení minimalizující/maximalizující funkci g PCSP je zobecněním CSOP: g(x) = f(x), je-li ohodnocení x řešením CSP g(x) =, jinak PCSP se používá pro řešení: příliš omezených problémů příliš složitých problémů, jejichž úplné řešení je časově náročné s daným množstvím prostředků (například času) v reálném čase (anytime algoritmy) Pro řešení PSCP je potřeba upravit propagační algoritmy nebo lze použít lokální prohledávání. Druhé řešení problému šatníku Každé podmínce můžeme přiřadit váhu popisující í důležitost t splnění podmínky. Cílem je minimalizovat součet vah nesplněných podmínek. x @ + x @ 5 x @ 4 Vzniklý problém se nazývá Vážené (Weighted) CSP. Použitý princip může být zobecněn na tzv.oceněné (Valued) CSP. Oceněné splňování podmínek (Valued CSP) Základní myšlenka: každé podmínce je přiřazeno jisté ocenění. ocenění nesplněných podmínek jsou agregována za řešení je vybráno ohodnocení dávající nejmenší agregované ocenění Struktura ocenění je (E,,>,,T), kde: E je množina ocenění úplně uspořádaná pomocí > s minimálním prvkem a maximálním prvkem T je komutativní a asociativní binární operace na E s jednotkovým prvkem ( a=a) a absorpčním prvkem T (T a=t), která zachovává monotonii (a b a c b Podmínky C jsou mapovány na ocenění E pomocí funkce ϕ: C E. Řešením problému je takové ohodnocení proměnných, které má nejmenší agregované ocenění v(a), kde: v( A) = c C A violates c ϕ( Struktura ocenění je (E,,>,,T),,,, kde: E je množina ocenění úplně uspořádaná pomocí > s minimálním prvkem a maximálním prvkem T Valued CSP je komutativní a asociativní binární operace na E s jednotkovým prvkem ( a = a) a absorpčním prvkem T (T a = T), která zachovává monotonii (a b a c b Podmínky C jsou mapovány na ocenění E pomocí funkce ϕ: C E. Řešením problému je takové ohodnocení proměnných, které má nejmenší agregované ocenění v(a), kde: v( A) = ϕ( c C A violates c Framework E > T Classical CSP {true,false} > true false Weighted CSP Ν {+ } + > 0 + Probabilistic CSP 0,1 < 1 0 Possibilistic CSP 01 0,1 max > 0 1 Lexicographic CSP Ν 0,1) {T} > lex T

Třetí řešení problému šatníku Každé dvojici (n-tici) hodnot v podmínce můžeme přiřadit preferenci popisující, jak dobře dané hodnoty podmínku splňují. Cílem je maximalizovat součin preferencí získaných projekcí daného ohodnocení na všechny podmínky. x : red-grey (1), white-blue (1), white-denim (0.9) x : sneakers-denim (1), cordovans-grey (1) x : white-cordovans (0.8) all other pairs have the value 0.1 Vzniklý problém se nazývá Pravděpodobnostní (Probabilisti CSP zobecněním získáme CSP nad polo-okruhy (semiring-based CSP). Podmínky nad polo-okruhyokruhy Základní myšlenka: každé n-tici hodnot proměnných v podmínce je přiřazena preference vyjadřující, jak dobře daná n-tice splňuje podmínku agregujeme preference pro projekci ohodnocení na proměnné všech podmínek za řešení je vybráno takové ohodnocení dávající největší agregovanou preferenci Struktura C-polo-okruhu je (A,+,,0,1), kde A je množina preferencí, + je komutativní, ti asociativní a idempotentní t (a+a=a) binární operace na A s jednotkovým prvkem 0 (0+a=a) a absorpčním prvkem 1 (1+a=1) tato operace zároveň definuje uspořádání a b a+b=b. b. je komutativní, asociativní binární operace na A s jednotkovým prvkem 1 (1 a=a) a absorpčním prvkem 0 (0 a=0), která je distributivní nad +. Řešením je takové ohodnocení proměnných V, které dává největší agregovanou preferenci p(v): p( V ) = δ ( V vars( ) c C c Struktura C-polo-okruhu je (A,+,,0,1),,,, kde A je množina preferencí, Semiring-based CSP + je komutativní, asociativní a idempotentní (a+a=a) binární operace na A s jednotkovým prvkem 0 (0+a=a) a absorpčním prvkem 1 (1+a=1) tato operace zároveň definuje uspořádání a b a+b=b. je komutativní, asociativní binární operace na A s jednotkovým prvkem 1(1 a=a) a absorpčním prvkem 0(0 a=0) (0 a=0), která je distributivní nad +. N-tice v podmínce C jsou mapovány na polo-okruh funkcí δ C : V A. Řešením je takové ohodnocení proměnných V, které dává největší p( V ) δ V vars( agregovanou preferenci p(v): ( ) = c C Framework A + 1 0 Classical CSP {false,true} true false Weighted CSP Ν {+ } min + 0 + Probabilistic CSP 0,1 max 1 0 Possibilistic CSP 0,1 min max 0 1 Fuzzy CSP 0,1 max min 1 0 Lexicographic CSP Ν 0,1) {T} max lex T c Čtvrté řešení problému šatníku Podmínkám můžeme přiřadit preferenci určující, jaké podmínky mají být přednostně splněny. Preference určují striktní přednost silnější podmínka je vždy preferována na úkor slabších x @ x @ x @ Podmínky s preferencemi tvoří hierarchii, hovoříme proto o hierarchii omezujících podmínek.

Hierarchie podmínek Každé podmínce přiřadíme preferenci (množina preferencí je lineárně uspořádaná) význačná je preference, podmínka s touto preferencí musí být splněna (nutná podmínka, hard constraint) ostatní podmínky jsou preferenční a nemusí být splněny (soft constraints) Hierarchie podmínek H je konečná (multi) množina podmínek. H 0 je množina nutných podmínek (s odstraněnou preferencí) H 1 je množina nejvíce preferovaných podmínek Řešením hierarchie je ohodnocení proměnných, které splňuje nutné podmínky a nejlépe splňuje preferenční podmínky. S H,0 = {σ c H 0, cσ platí} S H = {σ σ S H,0 ω S H,0 better(ω,σ,h) } Komparátory Porovnání ohodnocení proměnných vzhledem k dané hierarchii. anti-reflexivní, transitivní relace, která respektuje hierarchii pokud nějaké ohodnocení splňuje všechny podmínky až do úrovně k, potom totéž splňují všechna lepší ohodnocení Chybová funkce e(c,σ) - jak dobře ohodnocení splňuje podmínku predikátová chybová funkce (splňuje/nesplňuje) metrická chybová funkce - vzdálenost od řešení, e(x 5,{X/3}) = 2 Lokální komparátory porovnávají chybu zvlášť u každé podmínky locally_better(ω,σ,h) k>0 i<k c H i e(c,ω)=e(c,σ) c H k e(c,ω) e(c,σ) c H k e(c,ω)<e(c,σ) Globální komparátory agregují chybu pro celou úroveň pomocí funkce g globally_better(ω,σ,h), k>0 i<k g(h i,ω)=g(h i,σ) g(h k,ω)<g(h k,σ) používají se vážené součty, součty čtverců, nejhorší případ... DeltaStar Řešení podmínek po úrovních postupným zjemňováním množiny řešení. Máme řešič podmínek s funkcí filter: P(řešení) podmínky P(řešení) z dosud nalezené množiny řešení vybere řešení splňující co nejlépe podmínky (realizuje tak komparátor) řešení může být předáváno v implicitním tvaru Algoritmus DeltaStar procedure DeltaStar(H: constraint hierarchy) i 1 Solution solution of constraints from H while not unique Solution and i<number of levels do Solution filter(solution,h i ) i++ endwhile return Solution end DeltaStar filtr může být realizován simplexem podmínky dalších úrovní jsou zachyceny v chybové funkci Hledání řešení postupným splňováním podmínek. Lokální propagace podmínka je popsána metodami pro výpočet hodnot jejích proměnných A+B = C A C-B, B C-A, C A+B, každé proměnné přiřadíme metodu některé podmínky, která určí její hodnotu tato hodnota se použije jako vstup do další podmínky výhody: přes síť podmínek můžeme propagovat změnu hodnoty metody lze dopředu zkompilovat omezení: funguje pouze pro funkcionální podmínky (rovnosti) v grafu metod nesmí být cyklus najde pouze jedno řešení funguje pouze s variantami i lokálního predikátového komparátoru

Pracuje s metodami majícími jediný výstup. Základy DeltaBlue nejprve vybere pro každou podmínku metodu (plánování) potom přes zvolenou síť propaguje hodnoty (exekuce) Inkrementální plánování - po přidání podmínky upraví síť metod est Abychom věděli, kterým směrem ě síť metod upravovat, používá algoritmus tzv. průchozí preference (walkabout strength). Průchozí preference proměnné je slabší z preference podmínky, jejíž metoda určuje hodnotu proměnné, a z průchozích preferencí proměnných, které jsou výstupem zbylých metod této podmínky. est est DeltaBlue Algoritmus DeltaBlue procedure AddConstraint(c: constraint) select the potential output variable V of c with the est walkabout strength if walkabout strength of V is er than strength of c then c the constraint currently determing the variable V make c' unsatisfied select the method determing V in c recompute walkabout strengths of downstream variables AddConstraint(c') endif end AddConstraint přidáním podmínky se síť metod lokálně upraví přepočtou se průchozí preference vyřazená podmínka se zkusí znova přidat Indigo DeltaBlue umí pracovat pouze s funkcionálními podmínkami, kde metody mají jediný výstup. SkyBlue zobecňuje DeltaBlue o metody s více výstupy. Oba algoritmy vyžadují existenci acyklické sítě metod a neumí nefunkcionální podmínky, tj. třeba A<B. Algoritmus Indigo byl navržen pro acyklické hierarchie s nefunkcionálními co podmínkami a s lokálním metrickým komparátorem. propaguje okraje domén (dělá problém okrajově konzistentní) t vždy spustí všechny metody pro podmínku postupně přidává podmínky od nejsilnější po nejslabší přidáním podmínky se omezí okraje některých domén změna okrajů domén se propaguje přes další podmínky c1: a>=10 c2: b>=20 c6: a=50 c7: a=5 c3: a+b=c c4: c+25=d c5: d<=100 c8: b=5 c9: c=100 c10: d=200 action a b c d note Indigo v příkladě (-inf,inf) (-inf,inf) (-inf,inf) (-inf,inf) initial bounds add c1 [10,inf) (-inf,inf) (-inf,inf) (-inf,inf) add c2 [10,inf) [20,inf) (-inf,inf) (-inf,inf) add c3 [10,inf) [20,inf) [30,inf) (-inf,inf) add c4 [10,inf) [20,inf) [30,inf) [55,inf) add c5 [10,inf) [20,inf) [30,inf) [55,100] [10,inf) [20,inf) [30,75] [55,100] propagate bounds using c4 [10,55] [20,65] [30,75] [55,100] propagate bounds using c3 add c6 [50,50] [20,65] [30,75] [55,100] [50,50] [20,25] [70,75] [55,100] propagate bounds using c3 [50,50] [20,25] [70,75] [95,100] propagate bounds using c4 add c7 [50,50] [20,25] [70,75] [95,100] c7 is unsatisfied add c8 [50,50] [20,20] [70,75] [95,100] c8 is unsatisfied but its error is minimized [50,50] [20,20] [70,70] [95,100] propagate bounds using c3 [50,50] [20,20] [70,70] [95,95] propagate p bounds using c4 add c9 [50,50] [20,20] [70,70] [95,95] c9 is unsatisfied add c10 [50,50] [20,20] [70,70] [95,95] c10 is unsatisfied

Projekční algoritmus Řešení lineárních rovností a nerovností Gaussovou a Fourierovou eliminací. C(0,x) - podmínky neobsahující x C(=,x) - rovnosti obsahující x C(+,x) - nerovnosti, které lze převést na tvar x e C(-,x),)-nerovnosti, které lze převést na tvar e x procedure project(c: set of constraints, x: variable) if c C(=,x) where c is x=e then D C-{c} with every occurence of x replaced by e else D C(0,x) for each c in C(+,x) where c is x e + do for each c in C(-,x) where c is e - x do D D {e - e + } endfor endfor endif return D end project Projekční algoritmus v praxi Projekcemi postupně odstraníme všechny proměnné a potom zpětně dopočteme hodnoty proměnných. odstraníme x l 2x m = x l +x r x m +5 x r x l+10 0 x r x l,x m,x r 2x m-100 x r x r 2x m x l,x m,x r 100 x m,x r 100 x l =2x m -x r tj. x l = 30 A co hierarchické podmínky? pro lokální metrický komparátor odstraníme x r 5 x m x m 95 m x r in 55..100 např. x r =70 odstraníme x m 5 95 x m in 5..95 např. x m =50 podmínky e?b @ pref převedeme na e?v e @, v e =b @ pref (v e je nová proměnná,? je relace =,, ) proměnné v nutných podmínkách eliminujeme od nejslabších bereme hodnotu nejbližší konstantě b z nejsilnější podmínky