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

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

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

Základy umělé inteligence

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

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

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

Optimalizace & soft omezení: algoritmy

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

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

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

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

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

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

Logika a logické programování

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

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

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

Usuzování za neurčitosti

Optimizing Limousine Service with AI. David Marek

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

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

Obsah: Problém osmi dam

Využití principů, ale vlastní naprogramování řešících

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

13. Lineární programování

Algoritmizace prostorových úloh

popel, glum & nepil 16/28

Úloha ve stavovém prostoru SP je <s 0, C>, kde s 0 je počáteční stav C je množina požadovaných cílových stavů

Booleovská algebra. Booleovské binární a unární funkce. Základní zákony.

Základy umělé inteligence

Prolog PROgramming in LOGic část predikátové logiky prvního řádu rozvoj začíná po roce 1970 Robert Kowalski teoretické základy Alain Colmerauer, David

Numerické metody optimalizace - úvod

vhodná pro strojové dokazování (Prolog) metoda založená na vyvracení: dokazuje se nesplnitelnost formulí

Seminář z umělé inteligence. Otakar Trunda

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

Algoritmizace a programování

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

Alternativní metody prohledávání stavového prostoru. Gerstner Laboratory Agent Technology Group, Czech Technical University in Prague

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

Třídy složitosti P a NP, NP-úplnost

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické

Matematika B101MA1, B101MA2

Základy informatiky. Teorie grafů. Zpracoval: Pavel Děrgel Úprava: Daniela Szturcová

Booleovská algebra. Pravdivostní tabulka. Karnaughova mapa. Booleovské n-krychle. Základní zákony. Unární a binární funkce. Podmínky.

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

ALGORITMY A DATOVÉ STRUKTURY

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

BAKALÁŘSKÁ PRÁCE. Jaroslav Mlejnek. Globální podmínky

Plánování projektu. 3. dubna Úvod. 2 Reprezentace projektu. 3 Neomezené zdroje. 4 Variabilní doba trvání. 5 Přidání pracovní síly

PROBLÉM OSMI DAM II. Problém osmi dam. Obsah:

Formální systém výrokové logiky

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

Agent pracující v částečně pozorovatelném prostředí udržuje na základě senzorického modelu odhaduje, jak se svět může vyvíjet.

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

platné nejsou Sokrates je smrtelný. (r) 1/??

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

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

12. Globální metody MI-PAA

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

LDF MENDELU. Simona Fišnarová (MENDELU) Základy lineárního programování VMAT, IMT 1 / 25

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

7. Heuristické metody

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

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

a4b33zui Základy umělé inteligence

Programování. s omezujícími podmínkami. SAT a lokáln. Algoritmus GSAT. Algoritmus GSAT. Roman Barták

Grafové algoritmy. Programovací techniky

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

Logický agent, výroková logika.

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

Matematika I. Přednášky: Mgr. Radek Výrut, Zkouška:

Výroková logika - opakování

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

RELACE, OPERACE. Relace

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

Operace na datových strukturách

bfs, dfs, fronta, zásobník

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

5 Přehled operátorů, příkazy, přetypování

Operace na datových strukturách

Neinformované metody prohledávání stavového prostoru. Gerstner Laboratory Agent Technology Group, Czech Technical University in Prague

Grafové algoritmy. Programovací techniky

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

ADT STROM Lukáš Foldýna

Problémy třídy Pa N P, převody problémů

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

Úvod do teorie grafů

Domény. Petr Štěpánek. S využitím materialu Krysztofa R. Apta

Bakalářská matematika I

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

TGH06 - Hledání nejkratší cesty

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

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

Každé formuli výrokového počtu přiřadíme hodnotu 0, půjde-li o formuli nepravdivou, a hodnotu 1, půjde-li. α neplatí. β je nutná podmínka pro α

Matematická analýza 1

Úvod do teorie her

Plánování v prostoru plánů

"Agent Hledač" (3. přednáška)

Paměť počítače. alg2 1

Univerzita Karlova v Praze Matematicko-fyzikální fakulta DIPLOMOVÁ PRÁCE. Tomáš Müller. Interaktivní tvorba rozvrhu

Transkript:

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

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 Příklad obarvení mapy Příklad obarvení mapy Western Northern Territory South Queensland 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

Příklad obarvení mapy Příklad obarvení mapy pokrač. Western Northern Territory Queensland South 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 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

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ě Graf omezení Úvod do umělé inteligence 6/12 7 / 17 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 Northern Territory South Queensland New South Wales WA SA V Victoria NSW Victoria Tasmania T Algoritmy pro řešení CSP využívají této grafové reprezentace omezení Ú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) :- use module(library(clpfd)). % clpq, clpr zjištění domény proměnné? 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 Inkrementální formulace CSP Řešení problémů s omezujícími podmínkami 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