Logické programování s omezujícími podmínkami. Constraint Logic Programming: CLP
|
|
- Milan Ivo Pavlík
- před 6 lety
- Počet zobrazení:
Transkript
1 Logické programování s omezujícími podmínkami Constraint Logic Programming: CLP
2 CP a programovací jazyk Dosavadní předpoklady (pro CSP) omezení jsou dostupná na začátku prohledávání omezení jsou reprezentována extensionálně jako množina povolených kombinací Programovací jazyk umožní přidávání omezení inkrementálně reprezentace omezení pomocí jazyka Omezení vs. logické programování (LP) omezení jako relace/predikát, konjunkce omezení jako logická spojka AND, backtracking jako základ pro řešení omezení logické programování založeno na predikátech, konjunkcích, prohledávání do hloubky Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
3 Návrat Prologu? Průmysl začíná používat Prolog Náhrada procedurálního kódu Prologem vede k desetinásobnému zmenšení kódu řádově menšímu času na vývoj, jednodušší údržbě Aplikace (zavedené aplikační oblasti, nutnost přidání inteligence) hypotéky pediatrický sw výroba oken a dveří: konfigurace a pravidla pro stanovení ceny objednávky testovací nástroje, modelové testování Efektivita Prologu? zrychlení počítačů + výrazné zvětšení nároků sw ve prospěch kompaktnosti i rychlosti Prologu Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
4 Logický program: množina klauzulí Klauzule: je tvaru H :- B H se nazývá hlava, B=B 1,...B m se nazývá tělo B i a H jsou literály Syntaxe LP literál je tvaru p(t 1,..., t n ), kde p je n-ární predikát a t i jsou termy začíná malým písmenem (p) term může být proměnná X konstanta c aplikace n-ární funkce na n termů f(t 1,..., t n ) začíná velkým písmenem (X) začíná malým písmenem (c) začíná malým písmenem (f) Tělo interpretováno jako logická konjunkce literálů, tj. B B 1,...B m :- reprezentuje implikaci z těla na hlavu, tj. H B Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
5 Syntaxe LP II. Kvantifikace proměnných: S H proměnné v H, S B proměnné v B pro všechny hodnoty proměnných v H existují hodnoty pro proměnné v B tak, že H B Příklad: p(x,y) :- q(x), r(x,y,z). pro hodnoty X,Y ex. hodnota Z tak, že když platí q(x) i r(x,y,z), pak platí p(x,y) Souvislosti s imperativním přístupem hlava jako definice procedury, tělo jako kód procedury Fakt: klauzule bez těla hlava pravdivá pro livovolné hodnoty jejích proměnných Příklad logického programu dosazitelny(x,x). dosazitelny(x,y) :- let(x,y). dosazitelny(x,y) :- let(x,z), dosazitelny(z,y). rekurze Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
6 Operační sémantika LP Provádění logického programu je dotaz na pravdivostní hodnotu cíle :- G. kde G=A 1,...A m, A i jsou literály existují hodnoty proměnných v G tak, aby všechny A i byly splněny? příklad: :- p(x,y). Unifikace literálů A 1 a A 2 : nalezení takového přiřazení termů proměnným v A 1 a A 2, že se výsledné literály rovnají přiřazení termů proměnným: substituce aplikace substituce σ na literál A vrací nový literál Aσ hledání nejobecnějšího unifikátoru (mgu), tj. minimální substituce A 1 = p(x, a, f (Z)), A 2 = p(b, Y, V ) substituce σ = {X = b, Y = a, V = f (Z)} je nejobecnější unifikátor substituce σ = {X = b, Y = a, V = f (c), Z = c} není nejobecnější unifikátor Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
7 Operační sémantika LP II. Odpověd na cíl: nalezení hodnot jeho proměnných rekurzivní unifikací aktuálního cíle s hlavou klauzule opakované provádění rezolučních kroků G = A, R H : B σ = mgu(a, H) G = (B, R)σ Posloupnost rezolučních kroků: rezoluční odvození úspěšné: končí prázdným cílem odpověd je složení substitucí z jednotlivých rezolučních kroků nelze pokračovat dalším rezolučním krokem nekonečné rezoluční odvození: cyklení Strom odvození: strom reprezentující množinu všech odvození začínající cílem Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
8 Strom rezolučního odvození: příklad a(x) : b(x, Y ), c(y ). (1) a(x) : c(x). (2) b(2, 3). (3) b(1, 2). (4) c(2). (5) : a(x). Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
9 Logické programování vs. Prolog Volba následujícího rezolučního kroku lze vybrat libovolný literál v cíli pro literál lze vybrat různé klauzule Logické programování: teoretická nezávislost na pořadí voleb Programovací jazyk logického programování (Prolog) volby nutné, abychom se vyhnuli nedeterminismu volba nejlevějšího literálu a první klauzule v programu + prohledávání stromu do hloubky (backtracking) důsledek voleb: neúplnost (cíl má řešení, ale Prolog ho nenajde) stupid(x,y) :- stupid(x,y). stupid(x,y) :- stop(x,y). stop(x,y). :- stupid(x,y). Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
10 Datové struktury Prologu Struktury: n-ární funkce jmeno(osoba(jmeno,prijmeni,vek), jmeno). Seznamy [] prázdný seznam [H T] seznam skládající se z prvního prvku H (hlavy seznamu) a zbývající části seznamu T (tělo seznamu) [X1,X2,...,Xn] seznam n prvků X1,X2,...,Xn Příklad: spojení seznamů append([],y,y). append([f R],Y,[F Z]) :- append(r,y,z). Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
11 LP jako programovací jazyk pro omezení CSP = logický program složený z množiny faktů bez proměnných + jedna klauzule pro konjunkci omezení příklad: X,Y,Z in {a,b,c}, c1(x,y)={(a,a),(a,b),(b,b)}, c2(y,z)={(b,a)} c1(a,a). c1(a,b). c1(b,b). c2(b,a). csp(x,y,z) :- c1(x,y), c2(y,z). tento logický program nalezne množinu všech řešení CSP Logické programy: umožňují vyjádření složitějších vztahů, rekurze i funkcí c(x,x). c(x,x) :-!, fail. c(x,y). fail vždy neuspěje, omezení pro rovnost dvou proměnných omezení pro nerovnost dvou proměnných! (řez) zajistí, že druhá klauzule není zkoušena po volání fail Modelování a řešení CSP pomocí LP snadné LP používá pouze backtracking: neefektivní pro řešení CSP propagace omezení není zahrnuta do řešícího algoritmu Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
12 Logické programování s omezujícími podmínkami Omezení jako) formule (místo n-ticspecifického jazyka omezení různé typy omezení: lineární rovnice nad R, nerovnice nad Z,... omezení tohoto typu se vyskytují v těle klauzule specializovaný řešič omezení pro omezení daného typu Gauss-Jordanův eliminační algoritmus: řešič pro lineární aritmetická omezení nad Q hranová konzistence: neúplný řešič pro aritmetická omezení nad konečnými doménami Výhody CLP oproti LP unifikace je rozšířena na řešení omezení unifikace v LP je jedno z omezení unifikační algoritmus lze chápat jako řešič omezení pro rovnost termů vyjadřování omezení vybraným jazykem je kompaktnější př. X#=Y jako nerovnost řešič omezení (obvykle založený na neúplné propagaci omezení) umožní kombinaci backtrackingu a propagace Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
13 Syntaxe CLP Výběr jazyka omezení CLP klauzule jako LP klauzule, ale její tělo může obsahovat omezení daného jazyka p(x,y) :- X #< Y+1, q(x), r(x,y,z). Rezoluční krok v LP kontrola existence mgu mezi cílem a hlavou Krok odvození v CLP také zahrnuje kontrola konzistence aktuální množiny omezení s omezeními v těle klauzule Vyvolání dvou řešičů: unifikace + řešič omezení Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
14 Operační sémantika CLP CLP výpočet Stor e množina aktivních omezení prostor omezení (constraint store) Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
15 Operační sémantika CLP CLP výpočet Stor e množina aktivních omezení prostor omezení (constraint store) inicializace Stor e = Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
16 Operační sémantika CLP CLP výpočet Stor e množina aktivních omezení prostor omezení (constraint store) inicializace Stor e = seznamy cílů prováděny v obvyklém pořadí Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
17 Operační sémantika CLP CLP výpočet Stor e množina aktivních omezení prostor omezení (constraint store) inicializace Stor e = seznamy cílů prováděny v obvyklém pořadí pokud narazíme na cíl s omezením c: NewStor e = Stor e {c} Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
18 Operační sémantika CLP CLP výpočet Stor e množina aktivních omezení prostor omezení (constraint store) inicializace Stor e = seznamy cílů prováděny v obvyklém pořadí pokud narazíme na cíl s omezením c: NewStor e = Stor e {c} snažíme se splnit c vyvoláním jeho řešiče Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
19 Operační sémantika CLP CLP výpočet Stor e množina aktivních omezení prostor omezení (constraint store) inicializace Stor e = seznamy cílů prováděny v obvyklém pořadí pokud narazíme na cíl s omezením c: NewStor e = Stor e {c} snažíme se splnit c vyvoláním jeho řešiče při neúspěchu se vyvolá backtracking při úspěchu se podmínky v NewStor e zjednoduší propagací omezení zbývající cíle jsou prováděny s upraveným NewStor e CLP výpočet je úspěšný, pokud se dostaneme z iniciálního stavu G, do stavu G, S, kde G je prázdný cíl a S je splnitelná. Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
20 Strom odvození CLP V LP kumulace substitucí, v CLP navíc kumulace omezení Strom CLP odvození obsahuje navíc v uzlu aktuální stav prostoru omezení fac(0,1). fac(n0,f0) :- N0 #>= 1, F0 #= N0*F, N #= N0-1, fac(n,f). :- fac(2,y). Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
21 CLP(X) CLP parametrické vzhledem k volbě jazyka omezení X CLP(T r ee) odpovídá LP T r ee identifikuje třídu rovností termů (term je strom) CLP(R): třída aritmetických omezení nad R CLP(F D): třída omezení nad proměnnými s konečnými doménami (CSP) Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
22 CLP(F D) program základní struktura CLP programu solve( Variables ) :- 1. definice proměnných a jejich domén declare_variables( Variables), 2. definice omezení post_constraints( Variables ), 3. hledání řešení labeling( Variables ). (1) a (2) deklarativní část modelování problému (3) řídící část prohledávání stavového prostoru řešení procedura pro hledání řešení (enumeraci) se nazývá labeling umožní nalézt jedno, všechna nebo optimální řešení Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
23 Rozvrhování úloh úloha doba trvání A 2 B 3 C 5 D 4 minimální doba trvání všech úloh A B C D F Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
24 Rozvrhování úloh úloha doba trvání A 2 B 3 C 5 D 4 minimální doba trvání všech úloh A B C D F reseni( [A,B,C,D,F] ) :- domain( [A,B,C,D,F], 0, 14), B #>= A + 2, C #>= A + 2, D #>= B + 3, Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
25 Rozvrhování úloh úloha doba trvání A 2 B 3 C 5 D 4 minimální doba trvání všech úloh A B C D F reseni( [A,B,C,D,F] ) :- domain( [A,B,C,D,F], 0, 14), B #>= A + 2, C #>= A + 2, D #>= B + 3, F #>= C + 5, F #>= D + 4, Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
26 Rozvrhování úloh úloha doba trvání A 2 B 3 C 5 D 4 minimální doba trvání všech úloh A B C D F reseni( [A,B,C,D,F] ) :- domain( [A,B,C,D,F], 0, 14), B #>= A + 2, C #>= A + 2, D #>= B + 3, F #>= C + 5, F #>= D + 4, labeling([minimize(f)],[a,b,c,d,f]). Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
27 Reprezentace domény Konečná doména často reprezentována jako interval celých čísel interval je uspořádaný doménu lze reprezentovat pomocí minimální a maximální hodnoty nebo v případě chybějících hodnot v intervalu: (min 1, max 1 ),..., (min n, max n ), kde (max i + 1) < min i+1 a min 1 max 1 < min 2 min 2 <... < min n max n :-? domain( [A,B], 1,3). domain( Variables, Min, Max) A in 1..3 B in 1..3 :-? A in 1..5, A #\= 4. X in Min..Max, X in Range A in (1..3) \/ (5..8) :-? A in (1..3) \/ (8..15) \/ (5..9) \/ {100}. A in (1..3) \/ (5..15) \/ {100} Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
28 Aritmetická omezení Intervalová konzistence konzistence mezí pro každý z podintervalů domény Expr RelOp Expr RelOp -> #= #\= #< #=< #> #>= A + B #=< 3, A #\= (C - 4) * ( D - 5), A/2 #= 4 sum(variables,relop,suma) domain([a,b,c,f],1,3), sum([a,b,c],#=,f) Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
29 Kombinatorická omezení: příklady Globální omezení pro řešení kombinatorických úloh all_distinct(list) všechny proměnné různé Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
30 Kombinatorická omezení: příklady Globální omezení pro řešení kombinatorických úloh all_distinct(list) všechny proměnné různé global_cardinality(list, KeyCounts) omezení na počet prvků daného typu v seznamu pro každý prvek Key-Count seznamu KeyCounts platí: Count prvků seznamu List se rovná klíči Key každé Key je celé číslo a vyskytuje se mezi klíči maximálně jednou Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
31 Kombinatorická omezení: příklady Globální omezení pro řešení kombinatorických úloh all_distinct(list) všechny proměnné různé global_cardinality(list, KeyCounts) omezení na počet prvků daného typu v seznamu pro každý prvek Key-Count seznamu KeyCounts platí: Count prvků seznamu List se rovná klíči Key každé Key je celé číslo a vyskytuje se mezi klíči maximálně jednou?- A in 1..3, B in 1..3, global_cardinality( [A,B], [1-N,2-2]). Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
32 Kombinatorická omezení: příklady Globální omezení pro řešení kombinatorických úloh all_distinct(list) všechny proměnné různé global_cardinality(list, KeyCounts) omezení na počet prvků daného typu v seznamu pro každý prvek Key-Count seznamu KeyCounts platí: Count prvků seznamu List se rovná klíči Key každé Key je celé číslo a vyskytuje se mezi klíči maximálně jednou?- A in 1..3, B in 1..3, global_cardinality( [A,B], [1-N,2-2]). A = 2, B = 2, N = 0 Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
33 Příklad: rozvrhování zaměstnanců vytvoření rozvrhu pro zaměstnance pracující na směny A = {R,D,N,Z,V} ráno, den, noc, záloha, volno P = {Petr,Pavel,Marie,...} W = {Po,Út,St,Čt,...} Po Út St Čt... Petr R N V R Pavel R Z R N Marie N V D D... Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
34 Příklad: rozvrhování zaměstnanců vytvoření rozvrhu pro zaměstnance pracující na směny A = {R,D,N,Z,V} ráno, den, noc, záloha, volno P = {Petr,Pavel,Marie,...} W = {Po,Út,St,Čt,...} Po Út St Čt... Petr R N V R Pavel R Z R N Marie N V D D... matice doménových proměnných: PetrPo, PetrUt,..., PavelPo,... Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
35 Příklad: rozvrhování zaměstnanců vytvoření rozvrhu pro zaměstnance pracující na směny A = {R,D,N,Z,V} = {1,2,3,4,5} ráno, den, noc, záloha, volno P = {Petr,Pavel,Marie,...} W = {Po,Út,St,Čt,...} Po Út St Čt... Petr R N V R Pavel R Z R N Marie N V D D... matice doménových proměnných: PetrPo, PetrUt,..., PavelPo,... Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
36 Příklad: rozvrhování zaměstnanců vytvoření rozvrhu pro zaměstnance pracující na směny A = {R,D,N,Z,V} = {1,2,3,4,5} ráno, den, noc, záloha, volno P = {Petr,Pavel,Marie,...} W = {Po,Út,St,Čt,...} Po Út St Čt... Petr R N V R Pavel R Z R N Marie N V D D... matice doménových proměnných: PetrPo, PetrUt,..., PavelPo,... každý den: minimální a maximální počet zaměstnanců každou směnu Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
37 Příklad: rozvrhování zaměstnanců vytvoření rozvrhu pro zaměstnance pracující na směny A = {R,D,N,Z,V} = {1,2,3,4,5} ráno, den, noc, záloha, volno P = {Petr,Pavel,Marie,...} W = {Po,Út,St,Čt,...} Po Út St Čt... Petr R N V R Pavel R Z R N Marie N V D D... matice doménových proměnných: PetrPo, PetrUt,..., PavelPo,... každý den: minimální a maximální počet zaměstnanců každou směnu R1 in MinRano1..MaxRano1, D1 in MinDen1..MaxDen1,... Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
38 Příklad: rozvrhování zaměstnanců vytvoření rozvrhu pro zaměstnance pracující na směny A = {R,D,N,Z,V} = {1,2,3,4,5} ráno, den, noc, záloha, volno P = {Petr,Pavel,Marie,...} W = {Po,Út,St,Čt,...} Po Út St Čt... Petr R N V R Pavel R Z R N Marie N V D D... matice doménových proměnných: PetrPo, PetrUt,..., PavelPo,... každý den: minimální a maximální počet zaměstnanců každou směnu R1 in MinRano1..MaxRano1, D1 in MinDen1..MaxDen1,... global_cardinality( [PetrPo,PavelPo,MariePo,...], [1-R1,2-D1,...,5-V1] ) Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
39 Příklad: rozvrhování zaměstnanců vytvoření rozvrhu pro zaměstnance pracující na směny A = {R,D,N,Z,V} = {1,2,3,4,5} ráno, den, noc, záloha, volno P = {Petr,Pavel,Marie,...} W = {Po,Út,St,Čt,...} Po Út St Čt... Petr R N V R Pavel R Z R N Marie N V D D... matice doménových proměnných: PetrPo, PetrUt,..., PavelPo,... každý den: minimální a maximální počet zaměstnanců každou směnu R1 in MinRano1..MaxRano1, D1 in MinDen1..MaxDen1,... global_cardinality( [PetrPo,PavelPo,MariePo,...], [1-R1,2-D1,...,5-V1] ) pro každého zaměstnance: minimální a maximální počet typu směny za týden Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
40 Příklad: rozvrhování zaměstnanců vytvoření rozvrhu pro zaměstnance pracující na směny A = {R,D,N,Z,V} = {1,2,3,4,5} ráno, den, noc, záloha, volno P = {Petr,Pavel,Marie,...} W = {Po,Út,St,Čt,...} Po Út St Čt... Petr R N V R Pavel R Z R N Marie N V D D... matice doménových proměnných: PetrPo, PetrUt,..., PavelPo,... každý den: minimální a maximální počet zaměstnanců každou směnu R1 in MinRano1..MaxRano1, D1 in MinDen1..MaxDen1,... global_cardinality( [PetrPo,PavelPo,MariePo,...], [1-R1,2-D1,...,5-V1] ) pro každého zaměstnance: minimální a maximální počet typu směny za týden R2 in MinRano2..MaxRano2, D2 in MinDen2..MaxDen2,... Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
41 Příklad: rozvrhování zaměstnanců vytvoření rozvrhu pro zaměstnance pracující na směny A = {R,D,N,Z,V} = {1,2,3,4,5} ráno, den, noc, záloha, volno P = {Petr,Pavel,Marie,...} W = {Po,Út,St,Čt,...} Po Út St Čt... Petr R N V R Pavel R Z R N Marie N V D D... matice doménových proměnných: PetrPo, PetrUt,..., PavelPo,... každý den: minimální a maximální počet zaměstnanců každou směnu R1 in MinRano1..MaxRano1, D1 in MinDen1..MaxDen1,... global_cardinality( [PetrPo,PavelPo,MariePo,...], [1-R1,2-D1,...,5-V1] ) pro každého zaměstnance: minimální a maximální počet typu směny za týden R2 in MinRano2..MaxRano2, D2 in MinDen2..MaxDen2,... global_cardinality( [PetrPo,PetrUt,...,PetrNe], [1-R2,2-D2,...,5-V2] ) Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
42 Labeling labeling( [] ). labeling( [Var Rest] ) :- % výběr nejlevější proměnné k instanciaci indomain( Var ), labeling( Rest ). % výběr hodnot ve vzrůstajícím pořadí Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
43 Labeling labeling( [] ). labeling( [Var Rest] ) :- % výběr nejlevější proměnné k instanciaci indomain( Var ), labeling( Rest ). % výběr hodnot ve vzrůstajícím pořadí?- X in 4..5, indomain(x). X = 4? ; X = 5? Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
44 Labeling labeling( [] ). labeling( [Var Rest] ) :- % výběr nejlevější proměnné k instanciaci indomain( Var ), labeling( Rest ). % výběr hodnot ve vzrůstajícím pořadí?- X in 4..5, indomain(x). X = 4? ; X = 5??- A in 0..2, B in 0..2, B#< A, labeling([a,b]). Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
45 Labeling labeling( [] ). labeling( [Var Rest] ) :- % výběr nejlevější proměnné k instanciaci indomain( Var ), labeling( Rest ). % výběr hodnot ve vzrůstajícím pořadí?- X in 4..5, indomain(x). X = 4? ; X = 5??- A in 0..2, B in 0..2, B#< A, labeling([a,b]). labeling( [] ). % MAC algortimus labeling( Variables ) :- select_variable( Variables, Var, Rest ), select_value( Var, Value ), ( Var #= Value, labeling( Rest ) ; Var #\= Value, labeling( Variables ) ). Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
46 Nejpoužívanější implementace CLP Swedish Institute of Computer Science: SICStus Prolog silná CLP(F D) knihovna komerční i akademické použití pro širokou škálu platforem příklady v přednášce z této implementace :- use_module(library(clpfd)) IC-PARC, Imperial College London: ECL i PS e široké možnosti kooperace mezi různými řešičemi: konečné domény, reálná čísla, repair akademické použití, komerční použití v rámci IC-PARC, platformy: Windows, Linux, Solaris CHIP knihovny dostupné pro Prolog i C++ GNU Prolog GNU licence, tj. volně dostupný sw Programování s omezujícími podmínkami I, 5. prosince Logické programování s omezujícími podmínkami
CLP(F D) program. Základní struktura CLP programu solve( Variables ) :- 1. definice proměnných a jejich domén declare_variables( Variables),
CLP(F D) program Základní struktura CLP programu solve( Variables ) :- 1. definice proměnných a jejich domén declare_variables( Variables), 2. definice omezení post_constraints( Variables ), 3. hledání
VíceProlog PROgramming in LOGic část predikátové logiky prvního řádu rozvoj začíná po roce 1970 Robert Kowalski teoretické základy Alain Colmerauer, David
Úvod do Prologu 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 Warren (Warren Abstract Machine) implementace
Víceu odpovědí typu A, B, C, D, E: Obsah: jako 0) CLP Constraint Logic Programming
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
VíceObsah: CLP Constraint Logic Programming. u odpovědí typu A, B, C, D, E: jako 0)
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
Vícepopel, glum & nepil 16/28
Lineární rezoluce další způsob zjemnění rezoluce; místo stromu směřujeme k lineární struktuře důkazu Lineární rezoluční odvození (důkaz) z Ë je posloupnost dvojic ¼ ¼ Ò Ò taková, že Ò ½ a 1. ¼ a všechna
VíceLogika a logické programování
Logika a logické programování témata ke zkoušce Poslední aktualizace: 16. prosince 2009 Zkouška je písemná, skládá se obvykle ze sedmi otázek (může být více nebo méně, podle náročnosti otázek), z toho
VíceMatematická logika. Miroslav Kolařík
Matematická logika přednáška desátá Miroslav Kolařík Zpracováno dle textu R. Bělohlávka: Matematická logika poznámky k přednáškám, 2004. Obsah 1 Úvod do modální logiky 2 Logické programování a Prolog 3
Více2.5 Rezoluční metoda v predikátové logice
2.5. Rezoluční metoda v predikátové logice [101104-1520] 19 2.5 Rezoluční metoda v predikátové logice Rezoluční metoda v predikátové logice je obdobná stejnojmenné metodě ve výrokové logice. Ovšem vzhledem
VíceProgramování v čistém Prologu
Programování v čistém Prologu Petr Štěpánek S využitím materiálu Krysztofa R. Apta 2006 Logické programování 9 1 Ukázali jsme, že logické programy mohou sloužit k výpočtům. Volně řečeno, logiské programz
VíceLogické programy Deklarativní interpretace
Logické programy Deklarativní interpretace Petr Štěpánek S využitím materialu Krysztofa R. Apta 2006 Logické programování 7 1 Algebry. (Interpretace termů) Algebra J pro jazyk termů L obsahuje Neprázdnou
VíceLogické programování I
Logické programování I PROLOG Program popisuje "svět" Prologu = databáze faktů a pravidel (tzv. klauzulí). fakta: predikát(arg1, arg2,...argn). cíle:?- predikát(arg1, arg2,...argn). pravidla: hlava :-
VíceVýroková a predikátová logika - V
Výroková a predikátová logika - V Petr Gregor KTIML MFF UK ZS 2015/2016 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - V ZS 2015/2016 1 / 21 Dokazovací systémy VL Hilbertovský kalkul Hilbertovský
VíceSeminární práce z Teorie ICT
ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE Provozně ekonomická fakulta Seminární práce z Teorie ICT Implementace logické hádanky v Prologu Autor : Petr Pechek 1 Popis zvoleného problému Mým úkolem bylo vyřešit
VíceModely Herbrandovské interpretace
Modely Herbrandovské interpretace Petr Štěpánek S využitím materialu Krysztofa R. Apta 2006 Logické programování 8 1 Uvedli jsme termové interpretace a termové modely pro logické programy a také nejmenší
VíceVýroková a predikátová logika - II
Výroková a predikátová logika - II Petr Gregor KTIML MFF UK ZS 2015/2016 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - II ZS 2015/2016 1 / 18 Základní syntax Jazyk Výroková logika je logikou
VíceOptimalizace & soft omezení: algoritmy
Optimalizace & soft omezení: algoritmy Soft propagace Klasická propagace: eliminace nekonzistentních hodnot z domén proměnných Soft propagace: propagace preferencí (cen) nad k-ticemi hodnot proměnných
VíceVýroková a predikátová logika - XII
Výroková a predikátová logika - XII Petr Gregor KTIML MFF UK ZS 2018/2019 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - XII ZS 2018/2019 1 / 15 Rezoluční metoda v PL Rezoluční důkaz Obecné
VícePA163 Programování s omezujícími podmínkami
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
VíceVýroková a predikátová logika - X
Výroková a predikátová logika - X Petr Gregor KTIML MFF UK ZS 2015/2016 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - X ZS 2015/2016 1 / 22 Herbrandova věta Úvod Redukce nesplnitelnosti na
VíceStefan Ratschan. Fakulta informačních technologíı. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
Logika pro každodenní přežití Stefan Ratschan Katedra číslicového návrhu Fakulta informačních technologíı České vysoké učení technické v Praze Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
VíceVýroková a predikátová logika - III
Výroková a predikátová logika - III Petr Gregor KTIML MFF UK ZS 2014/2015 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - III ZS 2014/2015 1 / 21 Výroková logika Horn-SAT Horn-SAT Jednotková
VíceVýroková a predikátová logika - II
Výroková a predikátová logika - II Petr Gregor KTIML MFF UK ZS 2013/2014 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - II ZS 2013/2014 1 / 20 Základní syntax Jazyk Výroková logika je logikou
VíceProlog 1-1. Rodinné vztahy pomocí Prologu:
Prolog 1-1 - Prolog znamená programování v logice - namísto otázky jak se má získat určitá hodta se ptáme co platí mezi objekty - vhodný jazyk pro úlohy kde nás zajímají vztahy mezi objekty - namísto definic
VíceNegativní informace. Petr Štěpánek. S použitím materiálu M.Gelfonda a V. Lifschitze. Logické programování 15 1
Negativní informace Petr Štěpánek S použitím materiálu M.Gelfonda a V. Lifschitze 2009 Logické programování 15 1 Negace jako neúspěch Motivace: Tvrzení p (atomická formule) neplatí, jestliže nelze odvodit
VíceLogické programování
30. října 2012 Osnova Principy logického programování 1 Principy logického programování 2 3 1 Principy logického programování 2 3 Paradigmata programování Strukturované programování Procedurální programování
VíceVyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky
Vyučovací hodina 1vyučovací hodina: Opakování z minulé hodiny Nová látka Procvičení nové látky Shrnutí 5 min 20 min 15 min 5 min 2vyučovací hodiny: Opakování z minulé hodiny Nová látka Procvičení nové
VíceSémantika predikátové logiky
Sémantika predikátové logiky pro analýzu sémantiky potřebujeme nejprve specifikaci jazyka (doména, konstanty, funkční a predikátové symboly) příklad: formální jazyk s jediným binárním predikátovým symbolem
VíceILOG (aisa:/software/ilog/solver51/doc/index.html)
ILOG Solver ILOG (aisa:/software/ilog/solver51/doc/index.html) CSP modelován pomocí C++ tříd, různé sady knihoven napsané v C++ ILOG Solver = základní knihovny pravidelná aktualizace sw na MU definice
VíceRezoluční kalkulus pro logiku prvního řádu
AD4M33AU Automatické uvažování Rezoluční kalkulus pro logiku prvního řádu Petr Pudlák Logika prvního řádu (Někdy nepřesně nazývaná predikátová logika.) Výhody Vyšší vyjadřovací schopnost jazyka, V podstatě
VíceVýroková a predikátová logika - III
Výroková a predikátová logika - III Petr Gregor KTIML MFF UK ZS 2017/2018 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - III ZS 2017/2018 1 / 16 2-SAT 2-SAT Výrok je v k-cnf, je-li v CNF a
VíceVýroková a predikátová logika - II
Výroková a predikátová logika - II Petr Gregor KTIML MFF UK ZS 2017/2018 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - II ZS 2017/2018 1 / 17 Předběžnosti Základní pojmy n-ární relace a funkce
VíceSkolemizace. x(x + f(x) = 0). Interpretace f unární funkce, která pro daný
Skolemizace převod formulí na formule bez existenčních kvantifikátorů v jazyce, který je rozšířen o tzv. Skolemovy funkce; zachovává splnitelnost idea převodu: formuli x 1... x n yp (x 1,..., x n, y) transformujeme
VíceIB013 Logické programování I Hana Rudová. jaro 2011
IB013 Logické programování I Hana Rudová jaro 2011 Hodnocení předmětu Zápočtový projekt: celkem až 40 bodů Průběžná písemná práce: až 30 bodů (základy programování v Prologu) pro každého jediný termín:
VíceRezoluce v predikátové logice
Rezoluce v predikátové logice Jiří Velebil: AD0B01LGR 2015 Rezoluce v PL 1/16 Základní myšlenky 1 M = ϕ iff X = M { ϕ} nesplnitelná. (M musí být množina sentencí, ϕ sentence.) 2 X nesplnitelná iff X =
VíceFormální systém výrokové logiky
Formální systém výrokové logiky 1.Jazyk výrokové logiky Nechť P = {p,q,r, } je neprázdná množina symbolů, které nazýváme prvotní formule. Symboly jazyka L P výrokové logiky jsou : a) prvky množiny P, b)
Více4.2 Syntaxe predikátové logiky
36 [070507-1501 ] 4.2 Syntaxe predikátové logiky V tomto oddíle zavedeme syntaxi predikátové logiky, tj. uvedeme pravidla, podle nichž se tvoří syntakticky správné formule predikátové logiky. Význam a
VíceProgramovací jazyk Prolog
Programovací jazyk Prolog Logické programování Šárka Vavrečková Ústav informatiky, Filozoficko-přírodovědecká fakulta Slezské univerzity v Opavě sarka.vavreckova@fpf.slu.cz 1. prosince 2008 Prolog Co je
VíceSEMESTRÁLNÍ ÚLOHY S PROGRAMY V PROLOGU (zadání úloh)
Cvičení 7 SEMESTRÁLNÍ ÚLOHY S PROGRAMY V PROLOGU (zadání úloh) 1. Polynomy Návod: Polynomy lze reprezentovat (nejen v Prologu) několika způsoby, které lze rozdělit do následujících skupin: A) podle množství
VíceUmělá inteligence I. Roman Barták, KTIML.
Umělá inteligence I Roman Barták, KTIML roman.bartak@mff.cuni.cz http://ktiml.mff.cuni.cz/~bartak Na úvod Zatím pro nás byl model světa černou skříňkou, ke které přistupujeme pouze přes: funkci následníka
VíceAutomatizované řešení úloh s omezeními
Automatizované řešení úloh s omezeními Martin Kot Katedra informatiky, FEI, Vysoká škola báňská Technická universita Ostrava 17. listopadu 15, Ostrava-Poruba 708 33 Česká republika 25. října 2012 M. Kot
VíceVyužití principů, ale vlastní naprogramování řešících
Programování Cvičení 1 s omezujícími podmínkami Roman Barták Katedra teoretické informatiky a matematické logiky roman.bartak@mff.cuni.cz http://ktiml.mff.cuni.cz/~bartak Využití CSP Využití principů,
Víceplatné nejsou Sokrates je smrtelný. (r) 1/??
Predikátová logika plně přejímá výsledky výrokové logiky zabývá se navíc strukturou jednotlivých jednoduchých výroků na základě této analýzy lze odvodit platnost některých výroků, které ve výrokové logice
VíceTableaux metody. Jiří Vyskočil 2011
Tableaux metody Jiří Vyskočil 2011 Tableau [tabló] metoda Tableau metoda je další oblíbená metoda užívaná pro automatické dokazování vět v predikátové logice, ale i v dalších (modálních, temporálních,
VíceRezoluce v predikátové logice
Rezoluce v predikátové logice Jiří Velebil: X01DML 15. října 2010: Rezoluce v PL 1/16 Základní myšlenky 1 M = ϕ iff X = M { ϕ} nesplnitelná. (M musí být množina sentencí, ϕ sentence.) 2 X nesplnitelná
VíceÚvod do TI - logika Výroková logika - pokračování (3.přednáška) Marie Duží
Úvod do TI - logika Výroková logika - pokračování (3.přednáška) Marie Duží marie.duzi@vsb.cz Normální formy formulí výrokové logiky Každé formuli výrokové logiky přísluší právě jedna pravdivostní funkce,
VíceVýroková logika. Sémantika výrokové logiky
Výroková logika Výroková logika se zabývá vztahy mezi dále neanalyzovanými elementárními výroky. Nezabývá se smyslem těchto elementárních výroků, zkoumá pouze vztahy mezi nimi. Elementární výrok je takový
Víceklauzulí deklarativní (specifikace programu je přímo programem) popel, glum & nepil 1/18
IB101, log programování, Prolog Logické programování logický program: libovolná konečná množina programových Hornových klauzulí odvozování (dokazování) cílů založeno na SLD-rezoluci deklarativní (specifikace
VíceROZHODOVACÍ PROCEDURY A VERIFIKACE PAVEL SURYNEK, KTIML HTTP://KTIML.MFF.CUNI.CZ/~SURYNEK/NAIL094
10 ROZHODOVACÍ PROCEDURY A VERIFIKACE PAVEL SURYNEK, KTIML HTTP://KTIML.MFF.CUNI.CZ/~SURYNEK/NAIL094 Matematicko-fyzikální fakulta Univerzita Karlova v Praze 1 ROZHODOVÁNÍ TEORIÍ POMOCÍ SAT ŘEŠIČE (SMT)
VíceIB015 Neimperativní programování. Neimperativní programování v Prologu. Jiří Barnat
IB015 Neimperativní programování Neimperativní programování v Prologu Jiří Barnat Logické programování a Prolog IB015 Neimperativní programování 09 str. 2/35 Logické programování Deklarativní programovací
VíceLogické programování
Logické programování Petr Štěpánek S využitím materialu Krysztofa R. Apta 2006 Logické programování 1 1 Prolog a Logické programování Prolog vznikl jako programovací jazyk v Marseille 1970, jeho autorem
VícePredikátová logika. prvního řádu
Predikátová logika prvního řádu 2 Predikát Predikát je n-ární relace - vyjadřuje vlastnosti objektů a vztahy mezi objekty - z jednoduchého výroku vznikne vypuštěním alespoň jednoho jména objektu (individua)
VíceÚvod do logiky (presentace 2) Naivní teorie množin, relace a funkce
Úvod do logiky (presentace 2) Naivní teorie množin, relace a funkce Marie Duží marie.duzi@vsb.cz 1 Úvod do teoretické informatiky (logika) Naivní teorie množin Co je to množina? Množina je soubor prvků
VíceDatabázové systémy. * relační kalkuly. Tomáš Skopal. - relační model
Databázové systémy Tomáš Skopal - relační model * relační kalkuly Osnova přednášky relační kalkuly doménový n-ticový Relační kalkuly využití aparátu predikátové logiky 1. řádu pro dotazování rozšíření
VíceUmělá inteligence I. Roman Barták, KTIML.
Umělá inteligence I Roman Barták, KTIML roman.bartak@mff.cuni.cz http://ktiml.mff.cuni.cz/~bartak Už umíme používat výrokovou logiku pro reprezentaci znalostí a odvozování důsledků. Dnes Dnes zopakujeme
VíceHranová konzistence. Arc consistency AC. Nejprve se zabýváme binárními CSP. podmínka odpovídá hraně v grafu podmínek
Hranová konzistence Arc consistency AC Nejprve se zabýváme binárními CSP podmínka odpovídá hraně v grafu podmínek Hrana (V i, V j ) je hranově konzistentní, právě když pro každou hodnotu x z aktuální domény
VíceDomény. Petr Štěpánek. S využitím materialu Krysztofa R. Apta
Domény Petr Štěpánek S využitím materialu Krysztofa R. Apta 2006 Logické programování 10 1 Typy programů v čistém Prologu je možné uspořádat podle různých pohledů. Zajímavá je charakteristika podle domén,
VíceSEMESTRÁLNÍ ÚLOHY S PROGRAMY V PROLOGU (zadání úloh)
Cvičení 7 SEMESTRÁLNÍ ÚLOHY S PROGRAMY V PROLOGU (zadání úloh) 1. Polynomy Návod: Polynomy lze reprezentovat (nejen v Prologu) několika způsoby, které lze rozdělit do následujících skupin: A) podle množství
VícePredikátová logika dokončení
Predikátová logika dokončení Jiří Velebil: X01DML 1. října 2010: Predikátová logika dokončení 1/18 Syntaktická analýza Jako ve výrokové logice (syntaktické stromy). Každý list úspěšného stromu je obsazen
VíceVýroková logika - opakování
- opakování ormální zavedení Výroková formule: Máme neprázdnou nejvýše spočetnou množinu A výrokových proměnných. 1. Každá proměnná je výroková formule 2. Když α, β jsou formule, potom ( α), (α β), (α
VíceDalší (neklasické) logiky. Jiří Velebil: AD0B01LGR 2015 Predikátová logika 1/20
Predikátová logika Jiří Velebil: AD0B01LGR 2015 Predikátová logika 1/20 Jazyk predikátové logiky Má dvě sorty: 1 Termy: to jsou objekty, o jejichž vlastnostech chceme hovořit. Mohou být proměnné. 2 Formule:
VíceVyhněte se katastrofám pomocí výpočetní matematiky
Vyhněte se katastrofám pomocí výpočetní matematiky Stefan Ratschan Ústav informatiky Akademie věd ČR Stefan Ratschan Vyhněte se katastrofám 1 / 29 x. x 2 = 2 Kvíz x. x 2 = 2 x. x 2 7 p q x. x 2 + px +
Více1 REZOLUČNÍ FORMÁLNÍ DŮKAZY
Vážená kolegyně / vážený kolego, součástí Vašeho rozšiřujícího studia informatiky je absolvování předmětu Logika pro učitele 2, jehož cílem je v návaznosti na předmět Logika pro učitele 1 seznámení se
VíceProgramovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)
Programovací jazyky Programovací jazyky nižší assembler (jazyk symbolických instrukcí) vyšší imperativní (procedurální) Pascal, C/C++, Java, Basic, Python, php neimperativní (neprocedurální) Lisp, Prolog
VíceZáklady logiky Logika a logické systémy. Umělá inteligence a rozpoznávání, LS
Základy logiky 22. 4. 2015 Umělá inteligence a rozpoznávání, LS 2015 6-1 Logika je naukou, která se zabývá studiem lidského uvažování. Mezi základní úlohy logiky patří nalézání metod správného usuzování,
VíceÚvod do umělé inteligence, jazyk Prolog
Úvod do umělé inteligence, jazyk Prolog Aleš Horák E-mail: hales@fi.muni.cz http://nlp.fi.muni.cz/uui/ Obsah: Co je umělá inteligence Organizace předmětu PB016 Stručné shrnutí Prologu Úvod do umělé inteligence
VíceÚvod do umělé inteligence, jazyk Prolog
Úvod do umělé inteligence, jazyk Prolog Aleš Horák E-mail: hales@fi.muni.cz http://nlp.fi.muni.cz/uui/ Obsah: Co je umělá inteligence Organizace předmětu PB016 Stručné shrnutí Prologu Úvod do umělé inteligence
VíceRovnost lze vyjádřit jako predikát, např. můžeme zvolit, že P(x, y) reprezentujetvrzení xjerovnoy.
Rovnost Jedním z nejdůležitějších druhů relací je rovnost(identita). Prvkyxayjsousirovny,cožzapisujeme x =y, jestližesejednáojedenatentýžprvek. Rovnost lze vyjádřit jako predikát, např. můžeme zvolit,
VíceKlauzulární logika. úvod. Šárka Vavrečková. 20. října Ústav informatiky Filozoficko-Přírodovědecká fakulta Slezské univerzity, Opava
Klauzulární logika úvod Šárka Vavrečková Ústav informatiky Filozoficko-Přírodovědecká fakulta Slezské univerzity, Opava 20. října 2008 Klauzulární logika Hlavní vlastnosti pracujeme s klauzulemi, které
VíceÚvod do umělé inteligence, jazyk Prolog
Úvod do umělé inteligence, jazyk Prolog Aleš Horák E-mail: hales@fi.muni.cz http://nlp.fi.muni.cz/uui/ systém, který se chová jako člověk Turingův test (1950) zahrnuje: zpracování přirozeného jazyka (NLP)
VíceRozvrhování zaměstnanců
Rozvrhování zaměstnanců 23. dubna 2014 1 Úvod 2 Rozvrhování volných dnů 3 Rozvrhování směn 4 Cyklické rozvrhování směn 5 Rozvrhování pomocí omezujících podmínek Rozvrhování zaměstnanců Jedná se o problém
VíceÚvod do umělé inteligence, jazyk Prolog
Úvod do umělé inteligence, jazyk Prolog Aleš Horák E-mail: hales@fi.muni.cz http://nlp.fi.muni.cz/uui/ Obsah: Organizace předmětu PB016 Co je umělá inteligence Stručné shrnutí Prologu Úvod do umělé inteligence
Více1 Výroková logika 1. 2 Predikátová logika 3. 3 Důkazy matematických vět 4. 4 Doporučená literatura 7
1 Výroková logika 1 Výroková logika 1 2 Predikátová logika 3 3 Důkazy matematických vět 4 4 Doporučená literatura 7 Definice 1.1 Výrokem rozumíme každé sdělení, o kterém má smysl uvažovat, zda je, či není
VíceÚvod do umělé inteligence, jazyk Prolog
Úvod do umělé inteligence, jazyk Prolog Aleš Horák E-mail: hales@fi.muni.cz http://nlp.fi.muni.cz/uui/ Obsah: Organizace předmětu PB016 Co je umělá inteligence Stručné shrnutí Prologu Úvod do umělé inteligence
Vícerovnic), Definice y + p(x)y = q(x), Je-li q(x) = 0 na M, nazývá se y + p(x)y =
Cíle Přehled základních typů diferenciálních rovnic prvního řádu zakončíme pojednáním o lineárních rovnicích, které patří v praktických úlohách k nejfrekventovanějším. Ukážeme například, že jejich řešení
VíceOborové čí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.
PŘIJÍMACÍ TEST Z INFORMATIKY A MATEMATIKY NAVAZUJÍCÍ MAGISTERSKÉ STUDIUM V OBORU APLIKOVANÁ INFORMATIKA FAKULTA INFORMATIKY A MANAGEMENTU UNIVERZITY HRADEC KRÁLOVÉ ČÁST A Oborové číslo Hodnocení - část
VíceÚvod do TI - logika Logické programování, PROLOG (10.přednáška) Marie Duží
Úvod do TI - logika Logické programování, PROLOG (10.přednáška) Marie Duží marie.duzi@vsb.cz Základy (logika) Prologu Metoda (čistého) logického programování je speciálním případem obecné rezoluční metody.
VíceOkruh č.3: Sémantický výklad predikátové logiky
Okruh č.3: Sémantický výklad predikátové logiky Predikátová logika 1.řádu formalizuje úsudky o vlastnostech předmětů a vztazích mezi předměty pevně dané předmětné oblasti (univerza). Nebudeme se zabývat
VíceČtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:
Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury
Více1 Polynomiální interpolace
Polynomiální interpolace. Metoda neurčitých koeficientů Příklad.. Nalezněte polynom p co nejmenšího stupně, pro který platí p() = 0, p(2) =, p( ) = 6. Řešení. Polynom hledáme metodou neurčitých koeficientů,
VíceÚvod do umělé inteligence, jazyk Prolog
Úvod do umělé inteligence, jazyk Prolog Aleš Horák E-mail: hales@fi.muni.cz http://nlp.fi.muni.cz/uui/ Obsah: Organizace předmětu PB016 Co je umělá inteligence Úvod do umělé inteligence 1/12 1 / 22 Organizace
Více6. Logika a logické systémy. Základy logiky. Lucie Koloušková, Václav Matoušek / KIV. Umělá inteligence a rozpoznávání, LS
Základy logiky Umělá inteligence a rozpoznávání, LS 2012 6-1 Logika je naukou, která se zabývá studiem lidského uvažování. Mezi základní úlohy logiky patří nalézání metod správného usuzování, tedy postupů,
VíceFIT ČVUT MI-LOM Lineární optimalizace a metody. Dualita. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
FIT ČVUT MI-LOM Lineární optimalizace a metody Dualita Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Michal Černý, 2011 FIT ČVUT, MI-LOM, M. Černý, 2011: Dualita 2/5 Dualita Evropský
VíceKombinatorická minimalizace
Kombinatorická minimalizace Cílem je nalézt globální minimum ve velké diskrétní množině, kde může být mnoho lokálních minim. Úloha obchodního cestujícího Cílem je najít nejkratší cestu, která spojuje všechny
VíceMarie Duží
Marie Duží marie.duzi@vsb.cz Normální formy formulí výrokové logiky Každé formuli výrokové logiky přísluší právě jedna pravdivostní funkce, zobrazení {p, q, r } {0, 1} (pravdivostní tabulka). Naopak však
VíceAlgoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.
Algoritmus Algoritmus je schematický postup pro řešení určitého druhu problémů, který je prováděn pomocí konečného množství přesně definovaných kroků. nebo Algoritmus lze definovat jako jednoznačně určenou
VíceOccur-check (Test konfliktu proměnných)
Occur-check (Test konfliktu proměnných) Petr Štěpánek S využitím materialu Krysztofa R. Apta 2007 Logické programování 13 1 Při výpočtech v Prologu většina implementací používá zjednodušený algoritmus
VíceA4B33ZUI Základy umělé inteligence
LS 2014 Jméno: A4B33ZUI Základy umělé inteligence 11. 6. 2014 O1 O2 O3 O4 O5 Total (50) Instrukce: Na vypracování máte 150 min, můžete použít vlastní poznámky v podobě ručně popsaného listu A4. Použití
VíceKlasická predikátová logika
Klasická predikátová logika Matematická logika, LS 2012/13, závěrečná přednáška Libor Běhounek www.cs.cas.cz/behounek/teaching/malog12 PřF OU, 6. 5. 2013 Symboly klasické predikátové logiky Poznámky Motivace
VíceProgramovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)
Programovací jazyky Programovací jazyky nižší assembler (jazyk symbolických instrukcí) vyšší imperativní (procedurální) Pascal, C/C++, Java, Basic, Python, php neimperativní (neprocedurální) Lisp, Prolog
VíceOd Aristotela k Prologu
JIHOČESKÁ UNIVERZITA v ČESKÝCH BUDĚJOVICÍCH PEDAGOGICKÁ FAKULTA KATEDRA INFORMATIKY Od Aristotela k Prologu František Sedláček 2010 František Sedláček, Pedagogická fakulta Jihočeská Univerzita v Č.Budějovicích
VíceÚvod do TI - logika Predikátová logika 1.řádu (4.přednáška) Marie Duží marie.duzi@vsb.cz
Úvod do TI - logika Predikátová logika 1.řádu (4.přednáška) Marie Duží marie.duzi@vsb.cz Jednoduché úsudky, kde VL nestačí Všechny opice mají rády banány Judy je opice Judy má ráda banány Z hlediska VL
Vícevhodná pro strojové dokazování (Prolog) metoda založená na vyvracení: dokazuje se nesplnitelnost formulí
Rezoluce: další formální systém vhodná pro strojové dokazování (Prolog) metoda založená na vyvracení: dokazuje se nesplnitelnost formulí pracujeme s formulemi v nkf (též klauzulárním tvaru), ale používáme
VíceIA008 Computational logic Version: 6. května Formule je v konjunktivní normální formě (CNF), pokud má tvar α 1... α n,
1 Převody do normálních forem Příklad 1.1: Vyjádřete následující formule v DNF pomocí pravdivostní tabulky a pomocí převodu logických spojek. a) (A B) C b) (A B) C c) (A B) (C D) Formule je v disjunktivní
VíceVýroková logika. Teoretická informatika Tomáš Foltýnek
Výroková logika Teoretická informatika Tomáš Foltýnek foltynek@pef.mendelu.cz Teoretická informatika strana 2 Opakování z minulé přednášky Co je to formalismus a co je jeho cílem? Formulujte Russelův paradox
VíceSoučin matice A a čísla α definujeme jako matici αa = (d ij ) typu m n, kde d ij = αa ij pro libovolné indexy i, j.
Kapitola 3 Počítání s maticemi Matice stejného typu můžeme sčítat a násobit reálným číslem podobně jako vektory téže dimenze. Definice 3.1 Jsou-li A (a ij ) a B (b ij ) dvě matice stejného typu m n, pak
VíceVýroková a predikátová logika - VII
Výroková a predikátová logika - VII Petr Gregor KTIML MFF UK ZS 2018/2019 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - VII ZS 2018/2019 1 / 15 Platnost (pravdivost) Platnost ve struktuře
VíceVýroková a predikátová logika - XIII
Výroková a predikátová logika - XIII Petr Gregor KTIML MFF UK ZS 2013/2014 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - XIII ZS 2013/2014 1 / 13 Úvod Algoritmická (ne)rozhodnutelnost Které
Více0.1 Úvod do lineární algebry
Matematika KMI/PMATE 1 01 Úvod do lineární algebry 011 Vektory Definice 011 Vektorem aritmetického prostorur n budeme rozumět uspořádanou n-tici reálných čísel x 1, x 2,, x n Definice 012 Definice sčítání
VíceMatematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic
Přednáška třetí (a pravděpodobně i čtvrtá) aneb Úvod do lineární algebry Matice a soustavy rovnic Lineární rovnice o 2 neznámých Lineární rovnice o 2 neznámých Lineární rovnice o dvou neznámých x, y je
VíceZáklady umělé inteligence
Základy umělé inteligence Automatické řešení úloh Základy umělé inteligence - prohledávání. Vlasta Radová, ZČU, katedra kybernetiky 1 Formalizace úlohy UI chápe řešení úloh jako proces hledání řešení v
Více