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



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

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

Základy umělé inteligence

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

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

Optimalizace & soft omezení: algoritmy

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

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

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

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

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

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

Logika a logické programování

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

Optimizing Limousine Service with AI. David Marek

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

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

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

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

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ů

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

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

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

Základy umělé inteligence

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

13. Lineární programování

Obsah: Problém osmi dam

Usuzování za neurčitosti

Numerické metody optimalizace - úvod

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

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

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

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

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

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

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

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

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

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

Matematika B101MA1, B101MA2

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

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.

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

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

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

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

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

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

a4b33zui Základy umělé inteligence

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

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

Grafové algoritmy. Programovací techniky

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

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

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

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

Výroková logika - opakování

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

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

12. Globální metody MI-PAA

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

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

teorie logických spojek chápaných jako pravdivostní funkce

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

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

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

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

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

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

ALGORITMY A DATOVÉ STRUKTURY

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

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

Grafové algoritmy. Programovací techniky

Logický agent, výroková logika.

ADT STROM Lukáš Foldýna

Bakalářská matematika I

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 α

Úvod do teorie grafů

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

Úvod do teorie her

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

Logický agent, výroková logika

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

Popis zobrazení pomocí fuzzy logiky

RELACE, OPERACE. Relace

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

A4B33ZUI Základy umělé inteligence

Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program

Programování v čistém Prologu

bfs, dfs, fronta, zásobník

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

Automatizace je proces při němž je řídicí funkce člověka nahrazována činností

Hry a UI historie. von Neumann, 1944 algoritmy perfektní hry Zuse, Wiener, Shannon, přibližné vyhodnocování

Stromy. Strom: souvislý graf bez kružnic využití: počítačová grafika seznam objektů efektivní vyhledávání výpočetní stromy rozhodovací stromy

0. ÚVOD - matematické symboly, značení,

Transkript:

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 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 1 / 17 Úvod do umělé inteligence 6/12 2 / 17 Příklad obarvení mapy Příklad obarvení mapy 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) 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 3 / 17 Úvod do umělé inteligence 6/12 4 / 17

Příklad obarvení mapy Varianty CSP podle hodnot proměnných Příklad obarvení mapy pokrač. Varianty CSP podle hodnot proměnných Ř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á} 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í nerovnice tvořící konvexní oblast) jsou řešitelné v polynomiálním čase Varianty omezení Úvod do umělé inteligence 6/12 5 / 17 Varianty omezení Graf omezení Úvod do umělé inteligence 6/12 6 / 17 Graf 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ě Pro binární omezení: uzly = proměnné, hrany = reprezentují jednotlivá omezení Algoritmy pro řešení CSP využívají této grafové reprezentace omezení WA NT SA V Q T NSW Úvod do umělé inteligence 6/12 7 / 17 Úvod do umělé inteligence 6/12 8 / 17

?X in +Min..+Max :- 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.?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é aritmetická omezení...? X in 1..5, Y in 2..8, X+Y #= T, labeling([],[x,y,t]). T = 3, X = 1, Y = 2. rel. operátory #=, #\=, #<, #=<, #>, #>= sum(variables,relop,suma) výroková omezení... #\ negace, #/\ konjunkce, #\/ disjunkce, #<==> ekvivalence kombinatorická omezení... all distinct(list), global cardinality(list, KeyCounts) 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 9 / 17 Příklad algebrogram S E N D + M O R E ---------- M O N E Y Příklad algebrogram 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 different([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 Úvod do umělé inteligence 6/12 10 / 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 Příklad problém N dam Prohledávání s navracením Příklad problém N dam 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 Úvod do umělé inteligence 6/12 13 / 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 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 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