Obsah: CLP Constraint Logic Programming. Úvod do umělé inteligence 6/12 1 / 17

Podobne dokumenty
3. Problémy s omezujícími podmínkami (CSP Constraint Satisfaction Problems)


Numerické metody 8. května FJFI ČVUT v Praze

Úvodní informace. 18. února 2019

Funkce zadané implicitně. 4. března 2019

Aproximace funkcí 1,00 0,841 1,10 0,864 1,20 0,885. Body proložíme lomenou čarou.

Kapitola 4: Soustavy diferenciálních rovnic 1. řádu

Komplexní analýza. Martin Bohata. Katedra matematiky FEL ČVUT v Praze Martin Bohata Komplexní analýza Mocninné řady 1 / 18

1 Soustava lineárních rovnic

Diferenciální rovnice základní pojmy. Rovnice se

Cauchyova úloha pro obyčejnou diferenciální rovnici

Úvod do umělé inteligence, jazyk Prolog

MATEMATIKA 3. Katedra matematiky a didaktiky matematiky Technická univerzita v Liberci

Numerické metody minimalizace

Kristýna Kuncová. Matematika B2 18/19

Necht je funkce f spojitá v intervalu a, b a má derivaci v (a, b). Pak existuje bod ξ (a, b) tak, že f(b) f(a) b a. Geometricky

Elementární funkce. Edita Pelantová. únor FJFI, ČVUT v Praze. katedra matematiky, FJFI, ČVUT v Praze

(2) Funkce. Kristýna Kuncová. Matematika B2. Kristýna Kuncová (2) Funkce 1 / 25

Stavový popis Stabilita spojitých systémů (K611MSAP) Katedra aplikované matematiky Fakulta dopravní ČVUT. čtvrtek 20. dubna 2006

5. a 12. prosince 2018

Edita Pelantová, katedra matematiky / 16

Martin Pergel. 26. února Martin Pergel

Katedra aplikované matematiky FEI VŠB Technická univerzita Ostrava

Matematika 2, vzorová písemka 1

Průvodce studiem V této kapitole se budeme zabývat diferenciálním počtem pro funkce více

Logika V. RNDr. Kateřina Trlifajová PhD. Katedra teoretické informatiky Fakulta informačních technologíı BI-MLO, ZS 2011/12

Laplaceova transformace

Matematika (KMI/PMATE)

kontaktní modely (Winklerův, Pasternakův)

Shrnutí. Vladimír Brablec

Inverzní Z-transformace

Petr Křemen FEL ČVUT. Petr Křemen (FEL ČVUT) Vysvětlování modelovacích chyb 133 / 156

Co nám prozradí derivace? 21. listopadu 2018

CLP Programowanie logiczne z ograniczeniami.

Kristýna Kuncová. Matematika B2

v 1 /2 semestru 4. listopadu v rámci přednášky 1 úvod do UI, jazyk Prolog (23.9.) 3 prohledávání stavového prostoru (7.10.)

ggplot2 Efektní vizualizace dat v prostředí jazyka R Martin Golasowski 8. prosince 2016

Západočeská univerzita v Plzni Fakulta aplikovaných věd. Katedra matematiky. Semestrální práce - matematika a byznys

Internet a zdroje. (Zdroje na Internetu) Mgr. Petr Jakubec. Katedra fyzikální chemie Univerzita Palackého v Olomouci Tř. 17.

Reprezentace dat. BI-PA1 Programování a Algoritmizace I. Ladislav Vagner

DFT. verze:

Vybrané kapitoly z matematiky

Linea rnı (ne)za vislost

Logický agent, výroková logika

B0B99PRPA Procedurální programování

Geometrická nelinearita: úvod

Obsah. Zobrazení na osmistěn. 1 Zobrazení sféry po částech - obecné vlastnosti 2 Zobrazení na pravidelný konvexní mnohostěn

TGH01 - Algoritmizace

Matematika III Stechiometrie stručný

(1) Derivace. Kristýna Kuncová. Matematika B2 17/18. Kristýna Kuncová (1) Derivace 1 / 35

Sztuczna Inteligencja i Systemy Doradcze

WPROWADZENIE DO SZTUCZNEJ INTELIGENCJI

Obsah Atributová tabulka Atributové dotazy. GIS1-2. cvičení. ČVUT v Praze, Fakulta stavební, katedra mapování a kartografie

plánu protonové terapie Multi-criteria optimization of proton therapy treatment plan

fakulty MENDELU v Brně (LDF) s ohledem na disciplíny společného základu (reg. č. CZ.1.07/2.2.00/28.

Obsah: Rozhodovací stromy. Úvod do umělé inteligence 11/12 2 / 41. akce

Definice Řekneme, že PDA M = (Q,Σ,Γ,δ,q 0,Z 0,F) je. 1. pro všechna q Q a Z Γ platí: kdykoliv δ(q,ε,z), pak δ(q,a,z) = pro všechna a Σ;

Jednoduchá zobrazení. Podpořeno z projektu FRVŠ 584/2011.

podle přednášky doc. Eduarda Fuchse 16. prosince 2010

vystavit agenta realitě místo přepisování reality do pevných pravidel

Operace s funkcemi [MA1-18:P2.1] funkční hodnota... y = f(x) (x argument)

B0B99PRPA Procedurální programování. Stanislav Vítek

Logický agent, výroková logika

Komplexní analýza. Martin Bohata. Katedra matematiky FEL ČVUT v Praze Martin Bohata Komplexní analýza Úvod 1 / 32

Automatové modely. Stefan Ratschan. Fakulta informačních technologíı. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Adam Meissner SZTUCZNA INTELIGANCJA

Powyższe reguły to tylko jedna z wersji gry. Istnieje wiele innych wariantów, można też ustalać własne zasady. Miłej zabawy!

Anna Kratochvílová Anna Kratochvílová (FJFI ČVUT) PDR ve zpracování obrazu / 17

Adam Meissner Instytut Automatyki, Robotyki i Inżynierii Informatycznej Politechniki Poznańskiej. Adam Meissner

1 Definice. A B A B vlastní podmnožina. 4. Relace R mezi množinami A a B libovolná R A B. Je-li A = B relace na A

Quick sort, spojové struktury

IJC Jazyk C. Petr Peringer peringer AT fit.vutbr.cz. (Verze: ) Božetěchova 2, Brno. Úvod ISO C libc C99 11 Debug C++ Link Opt...

TGH01 - Algoritmizace

ČVUT FEL, K Radek Mařík Strukturované testování 20. října / 52

Reprezentace a vyvozování znalostí

Určitý (Riemannův) integrál a aplikace. Nevlastní integrál. 19. prosince 2018

Sb ırka pˇr ıklad u z matematick e anal yzy II Petr Tomiczek

Statistika (KMI/PSTAT)

Fyzika laserů. Kvantová teorie laseru. 22. dubna Katedra fyzikální elektroniky.

Obsah. 1 Konstrukce (definice) Riemannova integrálu Výpočet Newtonova Leibnizova věta Aplikace výpočet objemů a obsahů 30

Rovnice proudění Slapový model

Katedra aplikované matematiky FEI VŠB Technická univerzita Ostrava

Obsah. Limita posloupnosti a funkce. Petr Hasil. Limita posloupnosti. Pro a R definujeme: Je-li a < 0, pak a =, a ( ) =. vlastní body.

Paradoxy geometrické pravděpodobnosti

NÁVOD K POUŽITÍ KEZELÉSI KÉZIKÖNYV INSTRUKCJA OBSŁUGI NÁVOD NA POUŽÍVANIE. Česky. Magyar. Polski. Slovensky

Expresivní deskripční logiky

x2 + 2x 15 x 2 + 4x ) f(x) = x 2 + 2x 15 x2 + x 12 3) f(x) = x 3 + 3x 2 10x. x 3 + 3x 2 10x x 2 + x 12 10) f(x) = log 2.

(A B) ij = k. (A) ik (B) jk.

Katedra kybernetiky laboratoř Inteligentní Datové Analýzy (IDA) Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

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

Teorie plasticity. Varianty teorie plasticity. Pružnoplastická matice tuhosti materiálu

Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/YDATA: Přednáška I. 5. říjen, / 37

Jednoduchá zobrazení. Podpořeno z projektu FRVŠ 584/2011.

Matematika 1 Jiˇr ı Fiˇser 24. z aˇr ı 2013 Jiˇr ı Fiˇser (KMA, PˇrF UP Olomouc) KMA MAT1 24. z aˇr ı / 52

SID Wykład 2 Przeszukiwanie

K SAMOSTATNÉ MODULOVÉ SCHODY MONTÁŽI. asta

VŠB-Technická univerzita Ostrava

(TIL) Obsah: Transparentní intenzionální logika. Úvod do umělé inteligence 9/12 1 / 34

Transkrypt:

Problémy s omezujícími podmínkami Aleš Horák E-mail: hales@fi.muni.cz http://nlp.fi.muni.cz/uui/ Obsah: Průběžná písemná práce Problémy s omezujícími podmínkami Ú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 minut nejsou povoleny žádné materiály u odpovědí typu A, B, C, D, E: pouze jedna odpověd je nejsprávnější za tuto nejsprávnější je 8 bodů za žádnou odpověd je 0 bodů za libovolnou jinou, případně za nejasné označení odpovědi je mínus 3 body celkové hodnocení 0 až 32 bodů (celkové záporné hodnocení se bere jako 0) Úvod do umělé inteligence 6/12 2 / 17

Problémy s omezujícími podmínkami Problémy s omezujícími podmínkami standardní problém řešený prohledáváním stavového prostoru stav je černá skříňka pouze cílová podmínka a přechodová funkce problém s omezujícími podmínkami, Constraint Satisfaction Problem, CSP: n-tice proměnných X 1,X 2,...,X n s hodnotami z domén D 1,D 2,...,D n, D i množina omezení C 1,C 2,...,C m nad proměnnými X i stav = přiřazení hodnot proměnným {X i = v i,x j = v j,...} konzistentní přiřazení neporušuje žádné z omezení C i úplné přiřazení zmiňuje každou proměnnou X i řešení = úplné konzistentní přiřazení hodnot proměnným někdy je ještě potřeba maximalizovat cílovou funkci výhody: jednoduchý formální jazyk pro specifikaci problému může využívat obecné heuristiky (ne jen specifické pro daný problém) Úvod do umělé inteligence 6/12 3 / 17

Problémy s omezujícími podmínkami Příklad obarvení mapy Příklad obarvení mapy Western Australia Northern Territory Queensland South Australia New South Wales Victoria Tasmania Proměnné WA,NT,Q,NSW,V,SA,T Domény D i = {červená,zelená,modrá} Omezení sousedící oblasti musí mít různou barvu tj. pro každé dvě sousedící: WA NT nebo (WA,NT) {(červená,zelená),(červená,modrá),(zelená,modrá),...} Úvod do umělé inteligence 6/12 4 / 17

Problémy s omezujícími podmínkami Příklad obarvení mapy Příklad obarvení mapy pokrač. Western Australia Northern Territory Queensland South Australia New South Wales Victoria Tasmania Řešení konzistentní přiřazení všem proměnným: {WA = červená,nt = zelená,q = červená,nsw = zelená,v = červená, SA = modrá,t = zelená} Úvod do umělé inteligence 6/12 5 / 17

Problémy s omezujícími podmínkami Varianty CSP podle hodnot proměnných Varianty CSP podle hodnot proměnných diskrétní hodnoty proměnných každá proměnná má jednu konkrétní hodnotu konečné domény např. Booleovské (včetně NP-úplných problémů splnitelnosti) výčtové nekonečné domény čísla, řetězce,... např. rozvrh prací proměnné = počáteční/koncový den každého úkolu vyžaduje jazyk omezení, např. StartJob 1 +5 StartJob 3 číselné lineární problémy jsou řešitelné, nelineární obecné řešení nemají spojité hodnoty proměnných časté u reálných problémů např. počáteční/koncový čas měření na Hubbleově teleskopu (závisí na astronomických, precedenčních a technických omezeních) lineární omezení řešené pomocí Lineárního programování (omezení = lineární (ne)rovnice tvořící konvexní oblast) jsou řešitelné v polynomiálním čase Úvod do umělé inteligence 6/12 6 / 17

Problémy s omezujícími podmínkami Varianty omezení Varianty omezení unární omezení zahrnuje jedinou proměnnou např. SA zelená binární omezení zahrnují dvě proměnné např. SA WA omezení vyššího řádu zahrnují 3 a více proměnných např. kryptoaritmetické omezení na sloupce u algebrogramu preferenční omezení (soft constraints), např. červená je lepší než zelená možno reprezentovat pomocí ceny přiřazení u konkrétní hodnoty a konkrétní proměnné hledá se optimalizované řešení vzhledem k ceně Úvod do umělé inteligence 6/12 7 / 17

Problémy s omezujícími podmínkami Graf omezení Graf omezení Pro binární omezení: uzly = proměnné, hrany = reprezentují jednotlivá omezení Pro n-ární omezení: hypergraf: uzly = proměnné, uzly = omezení, hrany = použití proměnné v omezení NT Q Western Australia Northern Territory South Australia Queensland New South Wales WA SA V Victoria NSW Victoria Tasmania Algoritmy pro řešení CSP využívají této grafové reprezentace omezení T Úvod do umělé inteligence 6/12 8 / 17

?X in +Min..+Max?X in +Domain... A in 1..3 \/8..15 \/5..9 \/100. +VarList ins +Domain fd dom(?var,?domain) zjištění domény proměnné :- use module(library(clpfd)). % clpq, clpr? X in 1..5, Y in 2..8, X+Y #= T. X in 1..5, Y in 2..8, T in 3..13. aritmetická omezení... rel. operátory #=, #\=, #<, #=<, #>, #>= sum(variables,relop,suma) výroková omezení... #\ negace, #/\ konjunkce, #\/ disjunkce, #<==> ekvivalence kombinatorická omezení... all distinct(list), global cardinality(list, KeyCounts)? X in 1..5, Y in 2..8, X+Y #= T, labeling([],[x,y,t]). T = 3, X = 1, Y = 2. Úvod do umělé inteligence 6/12 9 / 17

pokrač.? X #< 4, [X,Y] ins 0..5. X in 0..3, Y in 0..5.? X #< 4, indomain(x). ERROR: Arguments are not sufficiently instantiated? X #> 3, X #< 6, indomain(x). X = 4? ; X = 5? ; false? X in 4..sup, X #\= 17, fd dom(x,f). F = 4..16\/18..sup, X in 4..16\/18..sup. Úvod do umělé inteligence 6/12 10 / 17

Příklad algebrogram Příklad algebrogram S E N D + M O R E ---------- M O N E Y Proměnné {S,E,N,D,M,O,R,Y} Domény D i = {0,1,2,3,4,5,6,7,8,9} Omezení S > 0,M > 0 S E N D M O R Y 1000 S +100 E +10 N +D +1000 M + 100 O +10 R +E = 10000 M +1000 O +100 N +10 E +Y moremoney([s,e,n,d,m,o,r,y], Type) :- [S,E,N,D,M,O,R,Y] ins 0..9, S #> 0, M #> 0, all distinct([s,e,n,d,m,o,r,y]), sum(s,e,n,d,m,o,r,y), labeling(type, [S,E,N,D,M,O,R,Y]). sum(s,e,n,d,m,o,r,y) :- 1000 S + 100 E + 10 N + D + 1000 M + 100 O + 10 R + E #= 10000 M + 1000 O + 100 N + 10 E + Y.? moremoney([s,e,n,d,m,o,r,y],[]). % Type=[]... Type = [leftmost,step,up,all] S = 9, E = 5, N = 6, D = 7, M = 1, O = 0, R = 8, Y = 2. Úvod do umělé inteligence 6/12 11 / 17

Řešení problémů s omezujícími podmínkami Inkrementální formulace CSP CSP je možné převést na standardní prohledávání takto: stav přiřazení hodnot proměnným počáteční stav prázdné přiřazení {} přechodová funkce přiřazení hodnoty libovolné dosud nenastavené proměnné tak, aby výsledné přiřazení bylo konzistentní cílová podmínka aktuální přiřazení je úplné cena cesty konstantní (např. 1) pro každý krok 1. platí beze změny pro všechny CSP! 2. prohledávácí strom dosahuje hloubky n (počet proměnných) a řešení se nachází v této hloubce (d = n) je vhodné použít prohledávání do hloubky Úvod do umělé inteligence 6/12 12 / 17

Prohledávání s navracením Prohledávání s navracením přiřazení proměnným jsou komutativní tj. [1. WA = červená, 2. NT = zelená] je totéž jako [1. NT = zelená, 2. WA = červená] stačí uvažovat pouze přiřazení jediné proměnné v každém kroku počet listů d n prohledávání do hloubky pro CSP tzv. prohledávání s navracením (backtracking search) prohledávání s navracením je základní neinformovaná strategie pro řešení problémů s omezujícími podmínkami schopný vyřešit např. problém n-dam pro n 25 (naivní řešení 10 69, vlastní sloupce 10 25 ) Úvod do umělé inteligence 6/12 13 / 17

Příklad problém N dam Příklad problém N dam queens(n,l,type):- length(l,n), 1. definice proměnných a domén L ins 1..N, 2. definice omezení constr all(l), labeling(type,l). 3. hledání řešení constr all([]). constr all([x Xs]):- constr between(x,xs,1), constr all(xs). constr between(,[], ). constr between(x,[y Ys],N):- no threat(x,y,n), N1 is N+1, constr between(x,ys,n1). no threat(x,y,j):- X #\= Y, X+J #\= Y, X J #\= Y.? queens(4, L, [ff]). L = [2,4,1,3]? ; L = [3,1,4,2]? ; false Úvod do umělé inteligence 6/12 14 / 17

Ovlivnění efektivity prohledávání s navracením Ovlivnění efektivity prohledávání s navracením Obecné metody ovlivnění efektivity: Která proměnná dostane hodnotu v tomto kroku? V jakém pořadí zkoušet přiřazení hodnot konkrétní proměnné? Můžeme předčasně detekovat nutný neúspěch v dalších krocích? používané strategie: nejomezenější proměnná vybrat proměnnou s nejméně možnými hodnotami nejvíce omezující proměnná vybrat proměnnou s nejvíce omezeními na zbývající proměnné nejméně omezující hodnota pro danou proměnnou hodnota, která zruší nejmíň hodnot zbývajících proměnných dopředná kontrola udržovat seznam možných hodnot pro zbývající proměnné propagace omezení navíc kontrolovat možné nekonzistence mezi zbývajícími proměnnými Úvod do umělé inteligence 6/12 15 / 17

Ovlivnění efektivity v CLP Ovlivnění efektivity v CLP V Prologu (CLP) možnosti ovlivnění efektivity labeling(typ,...):? constraints(vars,cost), labeling([ff,bisect,down,min(cost)],vars). výběr proměnné leftmost, min, max, ff,... dělení domény step, enum, bisect prohledávání domény up, down uspořádání řešení bez uspořádání nebo min(x), max(x),... Úvod do umělé inteligence 6/12 16 / 17

Systémy pro řešení omezujících podmínek Systémy pro řešení omezujících podmínek Prolog SWI, CHIP, ECLiPSe, SICStus Prolog, Prolog IV, GNU Prolog, IF/Prolog C/C++ CHIP++, ILOG Solver, Gecode Java JCK, JCL, Koalog LISP Screamer Python logilab-constraint www.logilab.org/852 Mozart www.mozart-oz.org, jazyk Oz Úvod do umělé inteligence 6/12 17 / 17