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

Rozměr: px
Začít zobrazení ze stránky:

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

Transkript

1 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, 18. prosince Logické programování s omezujícími podmínkami

2 Implementace vlastních omezení Mechanismus používaný v SICStus Prologu Vestavěný predikát fd_global(+c,+s,+v) sešle omezení C s iniciálním stavem S fd_global(my_constr(a,b),term,[min(a)]) V říká, kdy se má omezení probudit dom(x) při libovolné změně domény proměnné X min(x)/max(x) při změně minima/maxima proměnné X minmax(x) při změně minima nebo maxima proměnné X val(x) v případě, že proměnná je instanciována na konkrétní hodnotu Programování s omezujícími podmínkami I, 18. prosince Logické programování s omezujícími podmínkami

3 Implementace vlastních omezení Mechanismus používaný v SICStus Prologu Vestavěný predikát fd_global(+c,+s,+v) sešle omezení C s iniciálním stavem S fd_global(my_constr(a,b),term,[min(a)]) V říká, kdy se má omezení probudit dom(x) při libovolné změně domény proměnné X min(x)/max(x) při změně minima/maxima proměnné X minmax(x) při změně minima nebo maxima proměnné X val(x) v případě, že proměnná je instanciována na konkrétní hodnotu Uživatel definuje: clpfd:dispatch_global(+c,+s0,-s,-a) vyvoláno při propagaci omezení C se stavem S0 výsledkem je nový stav S (pomocí stavů lze předat informace z minulého volání dispatch_global, např. jaká byla doména některé proměnné v posledním volání) seznam A požadavků na řešič (např. X in NewMinX..NewMaxX, call(goal)) implementace nesmí obsahovat rekurzivní volání řešice, tj. omezení (k tomu je určeno A) Programování s omezujícími podmínkami I, 18. prosince Logické programování s omezujícími podmínkami

4 Příklad: dispatch_global less_then(a,b) :- fd_global(a2b(a,b),no_state,[min(a)]), fd_global(b2a(a,b),no_state,[max(b)]). Implementace podmínky A<B pomocí propagace mezí dispatch_global(a2b(a,b),s,s,actions) :- A #< B => fd_min(a,mina), fd_max(a,maxa), fd_min(b,minb) ( MaxA<MinB -> Actions = [exit] ; LowerBoundB is MinA+1, min(b) = min(a)+1 Actions = [B in LowerBoundB..sup] ). dispatch_global(b2a(a,b),s,s,actions) :- fd_max(a,maxa), fd_min(b,minb), fd_max(b,maxb), ( MaxA<MinB -> Actions = [exit] ; UpperBoundA is MaxB-1, max(a) = max(b)-1 Actions = [A in inf..upperbounda] ). Programování s omezujícími podmínkami I, 18. prosince Logické programování s omezujícími podmínkami

5 Příklad: houpačka Zadání: Adam (36kg), Boris (32kg) a Cecil (15kg) se chtějí usadit na houpačku s deseti sedátky tak, aby byla houpačka vyvážená a měli mezi sebou vždy alespoň dvě sedačky. Programování s omezujícími podmínkami I, 18. prosince Logické programování s omezujícími podmínkami

6 Příklad: houpačka Zadání: Adam (36kg), Boris (32kg) a Cecil (15kg) se chtějí usadit na houpačku s deseti sedátky tak, aby byla houpačka vyvážená a měli mezi sebou vždy alespoň dvě sedačky. CSP model: A, B, C in 5..5 pozice na houpačce 36 A + 32 B + 16 C = 0 vyvážený stav A B > 2, A C > 2, B C > 2 minimální vzdálenosti Programování s omezujícími podmínkami I, 18. prosince Logické programování s omezujícími podmínkami

7 Houpačka: implementace houpacka(sol):- Sol = [A,B,C], domain(sol,-5,5), 36*A+32*B+16*C #= 0, abs(a-b)#>2,abs(a-c)#>2,abs(b-c)#>2, labeling([ff],sol). Programování s omezujícími podmínkami I, 18. prosince Logické programování s omezujícími podmínkami

8 Houpačka: implementace houpacka(sol):- Sol = [A,B,C], domain(sol,-5,5), 36*A+32*B+16*C #= 0, abs(a-b)#>2,abs(a-c)#>2,abs(b-c)#>2, labeling([ff],sol).?- houpacka(x). X = [-4,2,5]? ; X = [-4,4,1]? ; X = [-4,5,-1]? ; X = [4,-5,1]? ; X = [4,-4,-1]? ; X = [4,-2,-5]? ; no Programování s omezujícími podmínkami I, 18. prosince Logické programování s omezujícími podmínkami

9 Houpačka: implementace houpacka(sol):- Sol = [A,B,C], domain(sol,-5,5), 36*A+32*B+16*C #= 0, A #< 0, abs(a-b)#>2,abs(a-c)#>2,abs(b-c)#>2, labeling([ff],sol).?- houpacka(x). X = [-4,2,5]? ; X = [-4,4,1]? ; X = [-4,5,-1]? ; X = [4,-5,1]? ; X = [4,-4,-1]? ; X = [4,-2,-5]? ; no Programování s omezujícími podmínkami I, 18. prosince Logické programování s omezujícími podmínkami

10 Houpačka: implementace houpacka(sol):- Sol = [A,B,C], domain(sol,-5,5), 36*A+32*B+16*C #= 0, A #< 0, abs(a-b)#>2,abs(a-c)#>2,abs(b-c)#>2, labeling([ff],sol).?- houpacka(x). s A #< 0 X = [-4,2,5]? ; X = [-4,4,1]? ; X = [-4,5,-1]? ; no?- houpacka(x). X = [-4,2,5]? ; X = [-4,4,1]? ; X = [-4,5,-1]? ; X = [4,-5,1]? ; X = [4,-4,-1]? ; X = [4,-2,-5]? ; no Programování s omezujícími podmínkami I, 18. prosince Logické programování s omezujícími podmínkami

11 Houpačka: implementace houpacka(sol):- Sol = [A,B,C], domain(sol,-5,5), 36*A+32*B+16*C #= 0, A #< 0, abs(a-b)#>2,abs(a-c)#>2,abs(b-c)#>2, labeling([ff],sol).?- houpacka(x). X = [-4,2,5]? ; X = [-4,4,1]? ; X = [-4,5,-1]? ; X = [4,-5,1]? ; X = [4,-4,-1]? ; X = [4,-2,-5]? ; no?- houpacka(x). s A #< 0 X = [-4,2,5]? ; X = [-4,4,1]? ; X = [-4,5,-1]? ; no Odstranění symetrií nejen odstranění symetrických řešení zároveň odstranění částí stavového prostoru v případě, že byla prozkoumána symetrická část a nebylo nalezeno řešení př. A 5 A 5 velice důležité pro zmenšení prohledávacího prostoru Programování s omezujícími podmínkami I, 18. prosince Logické programování s omezujícími podmínkami

12 Houpačka: globální omezení Omezení pro vzdálenosti: množina podobných omezení nezávislá propagace pomocí hranové konzistence lze vylepšit použitím globálního omezení Programování s omezujícími podmínkami I, 18. prosince Logické programování s omezujícími podmínkami

13 Houpačka: globální omezení Omezení pro vzdálenosti: množina podobných omezení nezávislá propagace pomocí hranové konzistence lze vylepšit použitím globálního omezení Každý člověk na houpačce představuje "úlohu s dobou trvání 3" minimální vzdálenost mezi dvěma lidmi je 2 navzájem si do této vzdálenosti nesmí zasahovat, tj. nesmí se překrývat absolutní hodnoty nahradíme: serialized([a,b,c],[3,3,3]). serialized(starts,durations): úlohy se navzájem nesmí překrývat úlohy zadány startovními časy (1.seznam) a dobou trvání (2.seznam) Programování s omezujícími podmínkami I, 18. prosince Logické programování s omezujícími podmínkami

14 Houpačka: globální omezení Omezení pro vzdálenosti: množina podobných omezení nezávislá propagace pomocí hranové konzistence lze vylepšit použitím globálního omezení Každý člověk na houpačce představuje "úlohu s dobou trvání 3" minimální vzdálenost mezi dvěma lidmi je 2 navzájem si do této vzdálenosti nesmí zasahovat, tj. nesmí se překrývat absolutní hodnoty nahradíme: serialized([a,b,c],[3,3,3]). serialized(starts,durations): úlohy se navzájem nesmí překrývat úlohy zadány startovními časy (1.seznam) a dobou trvání (2.seznam) Domény proměnných před labeling pro abs: A in -4..0, B in -1..5, C in při použití serialized: A in -4..0, B in -1..5, C in (-5..-3)\/(-1..5) Programování s omezujícími podmínkami I, 18. prosince Logické programování s omezujícími podmínkami

15 Příklad: přiřazovací problém Zadání: Přiřad te čtyři pracovníky na výrobu čtyř produktů tak, že každý pracovní dělá jeden produkt a každý produkt je vyráběn jedním pracovníkem. Efektivita výrovy je dána následující tabulkou a celková efektivita musí být minimálně 19. P1 P2 P3 P4 W W W W Programování s omezujícími podmínkami I, 18. prosince Logické programování s omezujícími podmínkami

16 Příklad: přiřazovací problém Zadání: Přiřad te čtyři pracovníky na výrobu čtyř produktů tak, že každý pracovní dělá jeden produkt a každý produkt je vyráběn jedním pracovníkem. Efektivita výrovy je dána následující tabulkou a celková efektivita musí být minimálně 19. P1 P2 P3 P4 W W W W CSP model: W 1, W 2, W 3, W 4 in 1..4 all_dif f er ent([w 1, W 2, W 3, W 4] T [1,W1] + T [2,W2] + T [3,W3] + T [4,W4] 19 produkt pro pracovníka různé produkty celková efektivita Programování s omezujícími podmínkami I, 18. prosince Logické programování s omezujícími podmínkami

17 Přiřazovací problém: implementace prirazovani(sol) :- Sol = [W1,W2,W3,W4], domain(sol,1,4), all_distinct(sol), element(w1,[7,1,3,4],ew1), element(w2,[8,2,5,1],ew2), element(w3,[4,3,7,2],ew3), element(w4,[3,2,6,3],ew4), EW1+EW2+EW3+EW4 #>= 19, labeling([ff],sol). Programování s omezujícími podmínkami I, 18. prosince Logické programování s omezujícími podmínkami

18 Přiřazovací problém: implementace prirazovani(sol) :- Sol = [W1,W2,W3,W4], domain(sol,1,4), all_distinct(sol), element(w1,[7,1,3,4],ew1), element(w2,[8,2,5,1],ew2), element(w3,[4,3,7,2],ew3), element(w4,[3,2,6,3],ew4), EW1+EW2+EW3+EW4 #>= 19, labeling([ff],sol).?- prirazovani(x). cena: X = [1,2,3,4]? ; 19 X = [2,1,3,4]? ; 19 X = [4,1,2,3]? ; 21 X = [4,1,3,2]? ; 21 no Programování s omezujícími podmínkami I, 18. prosince Logické programování s omezujícími podmínkami

19 Přiřazovací problém: implementace prirazovani(sol) :- Sol = [W1,W2,W3,W4], domain(sol,1,4), all_distinct(sol), element(w1,[7,1,3,4],ew1), element(w2,[8,2,5,1],ew2), element(w3,[4,3,7,2],ew3), element(w4,[3,2,6,3],ew4), EW1+EW2+EW3+EW4 #>= 19, labeling([ff],sol). Optimalizace metodou větví a mezí při hledání optimálního řešení není nutné měnit model náhrada labeling EW1+EW2+EW3+EW4 #= E, maximize(labeling([ff],sol),e).?- prirazovani(x). cena: X = [1,2,3,4]? ; 19 X = [2,1,3,4]? ; 19 X = [4,1,2,3]? ; 21 X = [4,1,3,2]? ; 21 no Programování s omezujícími podmínkami I, 18. prosince Logické programování s omezujícími podmínkami

20 Přiřazovací problém: implementace prirazovani(sol) :- Sol = [W1,W2,W3,W4], domain(sol,1,4), all_distinct(sol), element(w1,[7,1,3,4],ew1), element(w2,[8,2,5,1],ew2), element(w3,[4,3,7,2],ew3), element(w4,[3,2,6,3],ew4), EW1+EW2+EW3+EW4 #>= 19, labeling([ff],sol).?- prirazovani(x). cena: X = [1,2,3,4]? ; 19 X = [2,1,3,4]? ; 19 X = [4,1,2,3]? ; 21 X = [4,1,3,2]? ; 21 no Optimalizace metodou větví a mezí při hledání optimálního řešení není nutné měnit model náhrada labeling EW1+EW2+EW3+EW4 #= E, maximize(labeling([ff],sol),e).?- prirazovani(x). X = [4,1,2,3]? ; no Programování s omezujícími podmínkami I, 18. prosince Logické programování s omezujícími podmínkami

21 Přiřazování: duální model Role proměnných a hodnot lze často přehodit Primární a duální model se někdy spojují dohromady pro zlepšení propagace Současný model: proměnné pro pracovníky, hodnoty definují produkt Duální model: proměnné pro produkty, hodnoty určují pracovníka prirazovani(sol) :- Sol = [P1,P2,P3,P4], domain(sol,1,4), all_distinct(sol), element(p1,[7,8,4,3],ep1), element(p2,[1,2,3,1],ep2), element(p3,[3,5,7,6],ep3), element(p4,[3,1,6,3],ep4), EP1+EP2+EP3+EP4 #>= 19, labeling([ff],sol). Programování s omezujícími podmínkami I, 18. prosince Logické programování s omezujícími podmínkami

22 Přiřazování: duální model Role proměnných a hodnot lze často přehodit Primární a duální model se někdy spojují dohromady pro zlepšení propagace Současný model: proměnné pro pracovníky, hodnoty definují produkt Duální model: proměnné pro produkty, hodnoty určují pracovníka prirazovani(sol) :- Sol = [P1,P2,P3,P4], domain(sol,1,4), all_distinct(sol), element(p1,[7,8,4,3],ep1), element(p2,[1,2,3,1],ep2), element(p3,[3,5,7,6],ep3), element(p4,[3,1,6,3],ep4), EP1+EP2+EP3+EP4 #>= 19, labeling([ff],sol). Modely se zdají ekvivalentní, ale domény před labeling jsou: W1 in 1..4 P1 in 1..2 W2 in 1..4 P2 in 1..4 W3 in 1..4 P3 in 2..4 W4 in 1..4 P4 in 1..4 Počet voleb pro nalezení všech řešení: duální model 11, primární model 15 Důvody: zisk více závislý na produktu než na pracovníkovi. Programování s omezujícími podmínkami I, 18. prosince Logické programování s omezujícími podmínkami

23 Přiřazování: oba modely zároveň Bohužel: určení efektivity různých modelů obtížné obvykle: nejlepší je model, který propaguje informace nejdříve Oba modely lze kombinovat do jednoho omezení obou modelů jsou použita assignment(xs, Y s) omezení umožní propojit modely Xs, Y s seznamy doménových proměnných nebo celých čísel délky n všechna Xi, Y i 1... n a Xi = j právě tehdy, když Y j = i větší množství omezení vyšší náročnost propagací pozor na konflikt: velikost stavového prostoru vs. náročnost propagací Programování s omezujícími podmínkami I, 18. prosince Logické programování s omezujícími podmínkami

24 Přiřazování: implementace obou modelů zároveň prirazovani(workers) :- Workers = [W1,W2,W3,W4], Products = [P1,P2,P3,P4], domain(sol,1,4), all_distinct(workers), element(w1,[7,1,3,4],ew1), element(w2,[8,2,5,1],ew2), element(w3,[4,3,7,2],ew3), element(w4,[3,2,6,3],ew4), EW1+EW2+EW3+EW4 #>= 19, domain(products,1,4), all_distinct(products), element(p1,[7,8,4,3],ep1), element(p2,[1,2,3,1],ep2), element(p3,[3,5,7,6],ep3), element(p4,[3,1,6,3],ep4), EP1+EP2+EP3+EP4 #>= 19, assignment(workers,products), labeling([ff],workers). Programování s omezujícími podmínkami I, 18. prosince Logické programování s omezujícími podmínkami

25 Přiřazování: implementace obou modelů zároveň prirazovani(workers) :- Workers = [W1,W2,W3,W4], Products = [P1,P2,P3,P4], domain(sol,1,4), all_distinct(workers), element(w1,[7,1,3,4],ew1), element(w2,[8,2,5,1],ew2), element(w3,[4,3,7,2],ew3), element(w4,[3,2,6,3],ew4), EW1+EW2+EW3+EW4 #>= 19, domain(products,1,4), all_distinct(products), element(p1,[7,8,4,3],ep1), element(p2,[1,2,3,1],ep2), element(p3,[3,5,7,6],ep3), element(p4,[3,1,6,3],ep4), EP1+EP2+EP3+EP4 #>= 19, W1 in (1..2)\/{4} P1 in 1..2 W2 in 1..4 P2 in 1..4 W3 in 2..4 P3 in 2..4 W4 in 2..4 P4 in 1..4 počet voleb pro nalezení všech řešení: 9 assignment(workers,products), labeling([ff],workers). Programování s omezujícími podmínkami I, 18. prosince Logické programování s omezujícími podmínkami

26 Příklad: Golombovo pravítko Pravítko s M značkami umístěnými tak, že vzájemné vzdálenosti mezi dvojicemi jsou navzájem různé Optimální pravítko má nejkratší délku Řešení pro M = 5 : [0, 1, 4, 9, 11] Pro M 16 těžké, pro M 24 není znám exaktní algoritmus Použití v radioastronomii Programování s omezujícími podmínkami I, 18. prosince Logické programování s omezujícími podmínkami

27 Golombovo pravítko: CSP model Základní model: Proměnné X 1,..., X M s doménou 0... M M X 1 = 0 začátek pravítka X 1 < X 2 < < X M odstranění permutací Programování s omezujícími podmínkami I, 18. prosince Logické programování s omezujícími podmínkami

28 Golombovo pravítko: CSP model Základní model: Proměnné X 1,..., X M s doménou 0... M M X 1 = 0 začátek pravítka X 1 < X 2 < < X M odstranění permutací i < j : D i,j = X j X i proměnné pro rozdíly vzdáleností all_dif f er ent({d 1,2, D 1,3,..., D 1,M, D 2,3,..., D M,M }) Programování s omezujícími podmínkami I, 18. prosince Logické programování s omezujícími podmínkami

29 Golombovo pravítko: CSP model Základní model: Proměnné X 1,..., X M s doménou 0... M M X 1 = 0 začátek pravítka X 1 < X 2 < < X M odstranění permutací i < j : D i,j = X j X i proměnné pro rozdíly vzdáleností all_dif f er ent({d 1,2, D 1,3,..., D 1,M, D 2,3,..., D M,M }) Rozšíření modelu: D 1,2 < D M,M 1 odstranění symetrie (srovnej [0,1,4,9,11] a [0,2,7,10,11]) Programování s omezujícími podmínkami I, 18. prosince Logické programování s omezujícími podmínkami

30 Základní model: Golombovo pravítko: CSP model Proměnné X 1,..., X M s doménou 0... M M X 1 = 0 X 1 < X 2 < < X M i < j : D i,j = X j X i začátek pravítka odstranění permutací proměnné pro rozdíly vzdáleností all_dif f er ent({d 1,2, D 1,3,..., D 1,M, D 2,3,..., D M,M }) Rozšíření modelu: D 1,2 < D M,M 1 odstranění symetrie (srovnej [0,1,4,9,11] a [0,2,7,10,11]) Přesnější meze pro D i,j D i,j =D i,i+1 + D i+1,i D j 1,j (D k,m v součtu jsou různá, je jich j i) Tedy: D i,j j i = (j i)(j i+1) 2 dolní mez ( n = n(n+1) 2 ) Programování s omezujícími podmínkami I, 18. prosince Logické programování s omezujícími podmínkami

31 Základní model: Golombovo pravítko: CSP model Proměnné X 1,..., X M s doménou 0... M M X 1 = 0 X 1 < X 2 < < X M i < j : D i,j = X j X i začátek pravítka odstranění permutací proměnné pro rozdíly vzdáleností all_dif f er ent({d 1,2, D 1,3,..., D 1,M, D 2,3,..., D M,M }) Rozšíření modelu: D 1,2 < D M,M 1 odstranění symetrie (srovnej [0,1,4,9,11] a [0,2,7,10,11]) Přesnější meze pro D i,j D i,j =D i,i+1 + D i+1,i D j 1,j (D k,m v součtu jsou různá, je jich j i) Tedy: D i,j j i = (j i)(j i+1) 2 dolní mez ( n = n(n+1) 2 ) X M = X M X 1 = D 1,M = D 1,2 + D 2,3 + + D i 1,i +D i,j +D j,j D M 1,M D i,j = X M (D 1,2 + D 2,3 + + D i 1,i + D j,j D M 1,M Programování s omezujícími podmínkami I, 18. prosince Logické programování s omezujícími podmínkami

32 Základní model: Golombovo pravítko: CSP model Proměnné X 1,..., X M s doménou 0... M M X 1 = 0 X 1 < X 2 < < X M i < j : D i,j = X j X i začátek pravítka odstranění permutací proměnné pro rozdíly vzdáleností all_dif f er ent({d 1,2, D 1,3,..., D 1,M, D 2,3,..., D M,M }) Rozšíření modelu: D 1,2 < D M,M 1 odstranění symetrie (srovnej [0,1,4,9,11] a [0,2,7,10,11]) Přesnější meze pro D i,j D i,j =D i,i+1 + D i+1,i D j 1,j (D k,m v součtu jsou různá, je jich j i) Tedy: D i,j j i = (j i)(j i+1) 2 dolní mez ( n = n(n+1) 2 ) X M = X M X 1 = D 1,M = D 1,2 + D 2,3 + + D i 1,i +D i,j +D j,j D M 1,M D i,j = X M (D 1,2 + D 2,3 + + D i 1,i + D j,j D M 1,M Tedy: D i,j X M (M 1 j+i)(m j+i) 2 horní mez Programování s omezujícími podmínkami I, 18. prosince Logické programování s omezujícími podmínkami

33 Golombovo pravítko: výsledky Časy běhu na Mobile Pentium 4-M 1.7GHz, 768MB RAM Zákl.model Zákl.model Zákl.model Zákl.model Zákl.model - all_diff + symetrie + symetrie + symetrie + meze + meze - all_diff all_diff: místo all_dif f er ent je použita množina binárních nerovností Optimální pravítka pro danou velikost: 1 [0] 2 [0,1] 3 [0,1,3] 4 [0,1,4,6] 5 [0,1,4,9,11] 6 [0,1,4,10,12,17] 7 [0,1,4,10,18,23,25] 8 [0,1,4,9,15,22,32,34] 9 [0,1,5,12,25,27,35,41,44] 10 [0,1,6,10,23,26,34,41,53,55] 11 [0,1,4,13,28,33,47,54,64,70,72] 12 [0,2,6,24,29,40,43,55,68,75,76,85] Programování s omezujícími podmínkami I, 18. prosince Logické programování s omezujícími podmínkami

34 element(n,list,x) Shrnutí: globální omezení N-tý prvek v seznamu List je roven X assignment(xs,ys) Xs, Y s seznamy doménových proměnných nebo celých čísel délky n všechna Xi, Y i 1... n a Xi = j právě tehdy, když Y j = i all_distinct(list) všechny proměnné různé, úplný algoritmus udržující doménovou konzistenci all_different(list) má stejnou propagaci jako množina binárních nerovností global_cardinality(list, [Key-Count _ ]) pro Key-Count platí: Count prvků seznamu List se rovná klíči Key serialized(starts,durations) disjoint2( [Name(X, Delka, Y, Vyska) _ ] ) Programování s omezujícími podmínkami I, 18. prosince Logické programování s omezujícími podmínkami

35 Disjunktivní rozvrhování serialized(starts,durations) rozvržení úloh zadaných startovním časem (seznam Starts) a dobou trvání (seznam nezáporných Durations) tak, aby se nepřekrývaly příklad s konstantami: serialized([0,3,5],[2,1,1]) Programování s omezujícími podmínkami I, 18. prosince Logické programování s omezujícími podmínkami

36 Disjunktivní rozvrhování serialized(starts,durations) rozvržení úloh zadaných startovním časem (seznam Starts) a dobou trvání (seznam nezáporných Durations) tak, aby se nepřekrývaly příklad s konstantami: serialized([0,3,5],[2,1,1]) příklad: vytvoření rozvrhu, za předpokladu, že doba trvání hodin není stejná D in 1..2, C = 3, serialized([jan,petr,anna,ota,eva,marie], [D,D,D,C,C,C]) Programování s omezujícími podmínkami I, 18. prosince Logické programování s omezujícími podmínkami

37 Disjunktivní rozvrhování serialized(starts,durations) rozvržení úloh zadaných startovním časem (seznam Starts) a dobou trvání (seznam nezáporných Durations) tak, aby se nepřekrývaly příklad s konstantami: serialized([0,3,5],[2,1,1]) příklad: vytvoření rozvrhu, za předpokladu, že doba trvání hodin není stejná D in 1..2, C = 3, serialized([jan,petr,anna,ota,eva,marie], [D,D,D,C,C,C]) princip algoritmu: hledáme úlohu, která předchází nebo následuje množinu jiných úloh SB in 6..12, DB#=4, SC in 7..10, DC#=5, SA in 4..14, DA#=2 SA in 4..5 Programování s omezujícími podmínkami I, 18. prosince Logické programování s omezujícími podmínkami

38 Nepřekrývání obdélníků disjoint2(rectangles) disjoint1(lines) disjoint2( [Name(X, Delka, Y, Vyska) _ ] ) umístění obdélníků ve dvourozměrném prostoru doménové proměnné X,Y,Delka,Vyska mohou být z oboru celých čísel příklad s konstantami: disjoint2([rect(0,3,0,1),rect(1,3,1,2),rect(4,2,2,-2)]) Programování s omezujícími podmínkami I, 18. prosince Logické programování s omezujícími podmínkami

39 Nepřekrývání obdélníků disjoint2(rectangles) disjoint1(lines) disjoint2( [Name(X, Delka, Y, Vyska) _ ] ) umístění obdélníků ve dvourozměrném prostoru doménové proměnné X,Y,Delka,Vyska mohou být z oboru celých čísel příklad s konstantami: disjoint2([rect(0,3,0,1),rect(1,3,1,2),rect(4,2,2,-2)]) příklad: vytvoření rozvrhu za předpokladu, že učitelé učí v různých místnostech D in 1..2, C = 3, disjoint2(class(jan,d,m1,1), class(petr,d,m2,1), class(petr,d,m3,1),...]) Programování s omezujícími podmínkami I, 18. prosince Logické programování s omezujícími podmínkami

40 Shrnutí Odstranění symetrií Použití globálních omezení Definice duálního problému Použití redundantních omezení R. Barták, Practical Constraints: A Tutorial on Modelling with Constraints. V J. Figwer (ed.) Proceedings of the 5th Workshop on Constraint Programming for Decision and Control (CPDC 2003). Gliwice, příklady i vysvětlení převzato z tohoto článku Programování s omezujícími podmínkami I, 18. prosince Logické programování s omezujícími podmínkami

41 Ukončení předmětu 3 řádné termíny: aktualizace viz IS MU Pá :00 C511 (řádný), max 8 Pá :00 C511 (řádný, opravný), max. 8 Út :00 C511 (řádný, opravný), max. 8 přihlášení a odhlášení možné 1 den před zkouškou další opravné termíny vypsány dle zájmu a potřeby kratší písemná práce pro každý řádný termín (maximum: 1 hodina) společná příprava pro všechny cca 5 otázek: přehledové, srovnávací, algoritmy, pojmy, příklady (model) ústní zkouška ve stejný den jako písemná práce (cca 30 minut) příprava na individuální otázky během zkoušky diskuse nad písemnou prací opravný termín pouze jako ústní zkouška (není už písemná práce) Programování s omezujícími podmínkami I, 18. prosince Logické programování s omezujícími podmínkami

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

Logické programování s omezujícími podmínkami. Constraint Logic Programming: CLP Logické programování s omezujícími podmínkami Constraint Logic Programming: CLP CP a programovací jazyk Dosavadní předpoklady (pro CSP) omezení jsou dostupná na začátku prohledávání omezení jsou reprezentována

Více

Optimalizace & soft omezení: algoritmy

Optimalizace & 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íce

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

Umě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íce

Hranová 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 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íce

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

PA163 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íce

IB013 Logické programování I Hana Rudová. jaro 2011

IB013 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íce

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

u 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íce

Učební texty k státní bakalářské zkoušce Matematika Základy lineárního programování. študenti MFF 15. augusta 2008

Učební texty k státní bakalářské zkoušce Matematika Základy lineárního programování. študenti MFF 15. augusta 2008 Učební texty k státní bakalářské zkoušce Matematika Základy lineárního programování študenti MFF 15. augusta 2008 1 15 Základy lineárního programování Požadavky Simplexová metoda Věty o dualitě (bez důkazu)

Více

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

Obsah: 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íce

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Vyuč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íce

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

fakulty MENDELU v Brně (LDF) s ohledem na disciplíny společného základu http://akademie.ldf.mendelu.cz/cz (reg. č. CZ.1.07/2.2.00/28. Základy lineárního programování Vyšší matematika, Inženýrská matematika LDF MENDELU Podpořeno projektem Průřezová inovace studijních programů Lesnické a dřevařské fakulty MENDELU v Brně (LDF) s ohledem

Více

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

ILOG (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íce

Binární vyhledávací stromy pokročilé partie

Binární vyhledávací stromy pokročilé partie Binární vyhledávací stromy pokročilé partie KMI/ALS lekce Jan Konečný 30.9.204 Literatura Cormen Thomas H., Introduction to Algorithms, 2nd edition MIT Press, 200. ISBN 0-262-5396-8 6, 3, A Knuth Donald

Více

Úvod do teorie grafů

Úvod do teorie grafů Úvod do teorie grafů Neorientovaný graf G = (V,E,I) V množina uzlů (vrcholů) - vertices E množina hran - edges I incidence incidence je zobrazení, buď: funkce: I: E V x V relace: I E V V incidence přiřadí

Více

e-mail: RadkaZahradnikova@seznam.cz 1. července 2010

e-mail: RadkaZahradnikova@seznam.cz 1. července 2010 Optimální výrobní program Radka Zahradníková e-mail: RadkaZahradnikova@seznam.cz 1. července 2010 Obsah 1 Lineární programování 2 Simplexová metoda 3 Grafická metoda 4 Optimální výrobní program Řešení

Více

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

LDF MENDELU. Simona Fišnarová (MENDELU) Základy lineárního programování VMAT, IMT 1 / 25 Základy lineárního programování Vyšší matematika, Inženýrská matematika LDF MENDELU Podpořeno projektem Průřezová inovace studijních programů Lesnické a dřevařské fakulty MENDELU v Brně (LDF) s ohledem

Více

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

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 Ú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íce

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

SEMESTRÁ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íce

3. ANTAGONISTICKÉ HRY

3. ANTAGONISTICKÉ HRY 3. ANTAGONISTICKÉ HRY ANTAGONISTICKÝ KONFLIKT Antagonistický konflikt je rozhodovací situace, v níž vystupují dva inteligentní rozhodovatelé, kteří se po volbě svých rozhodnutí rozdělí o pevnou částku,

Více

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

SEMESTRÁ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íce

Numerické metody a programování. Lekce 8

Numerické metody a programování. Lekce 8 Numerické metody a programování Lekce 8 Optimalizace hledáme bod x, ve kterém funkce jedné nebo více proměnných f x má minimum (maximum) maximalizace f x je totéž jako minimalizace f x Minimum funkce lokální:

Více

Dynamické rozvrhování

Dynamické rozvrhování Dynamické rozvrhování Hana Rudová Fakulta informatiky, Masarykova universita http://www.fi.muni.cz/~hanka Informatické kolokvium, 9.10.2007 Dynamické rozvrhování (Dynamic scheduling) 1 Úvod 2 Popis problému

Více

ANTAGONISTICKE HRY 172

ANTAGONISTICKE HRY 172 5 ANTAGONISTICKÉ HRY 172 Antagonistický konflikt je rozhodovací situace, v níž vystupují dva inteligentní rozhodovatelé, kteří se po volbě svých rozhodnutí rozdělí o pevnou částku, jejíž výše nezávisí

Více

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

Automatizované ř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íce

3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem

3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem ČVUT FEL X36PAA - Problémy a algoritmy 3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem Jméno: Marek Handl Datum: 1. 1. 2009 Cvičení: Pondělí 9:00 Zadání Naprogramujte

Více

Optimizing Limousine Service with AI. David Marek

Optimizing Limousine Service with AI. David Marek Optimizing Limousine Service with AI David Marek Airport Limousine Services Ltd. (ALS) Jedna z největších firem zajišťujících dopravu v Hong Kongu Luxusní limuzíny a kyvadlová doprava 24 hodin denně 2

Více

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

Programování. s omezujícími podmínkami. Roman Barták. roman.bartak@mff.cuni.cz http://ktiml.mff.cuni.cz/~bartak Programování 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 Konzistenční techniky Dosud jsme podmínky

Více

Matematika pro informatiky

Matematika pro informatiky (FIT ČVUT v Praze) Konvexní analýza 13.týden 1 / 1 Matematika pro informatiky Jaroslav Milota Fakulta informačních technologíı České vysoké učení technické v Praze Letní semestr 2010/11 Extrémy funkce

Více

1 Úvod do celočíselné lineární optimalizace

1 Úvod do celočíselné lineární optimalizace Úvod do celočíselné lineární optimalizace Martin Branda, verze 7.. 7. Motivace Reálné (smíšeně-)celočíselné úlohy Optimalizace portfolia celočíselné počty akcií, modelování fixních transakčních nákladů,

Více

Obecná úloha lineárního programování. Úloha LP a konvexní množiny Grafická metoda. Jiří Neubauer. Katedra ekonometrie FEM UO Brno

Obecná úloha lineárního programování. Úloha LP a konvexní množiny Grafická metoda. Jiří Neubauer. Katedra ekonometrie FEM UO Brno Přednáška č. 3 Katedra ekonometrie FEM UO Brno Optimalizace portfolia Investor se s pomocí makléře rozhoduje mezi následujícími investicemi: akcie A, akcie B, státní pokladniční poukázky, dluhopis A, dluhopis

Více

TGH02 - teorie grafů, základní pojmy

TGH02 - teorie grafů, základní pojmy TGH02 - teorie grafů, základní pojmy Jan Březina Technical University of Liberec 28. února 2017 Metainformace materiály: jan.brezina.matfyz.cz/vyuka/tgh (./materialy/crls8.pdf - Introduction to algorithms)

Více

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

Programování. s omezujícími podmínkami. Roman Barták.   rová hranová konzistence Programování 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 Směrov rová hranová konzistence Definice:

Více

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

Plánováníá a rozvrhování Plánováníá a rozvrhování Roman Barták, KTIML roman.bartak@mff.cuni.cz cz http://ktiml.mff.cuni.cz/~bartak Čas a plánování Konceptuální model plánování pracuje s implicitním časem: akce a události jsou

Více

Kombinatorická minimalizace

Kombinatorická 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íce

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Č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íce

Numerické metody optimalizace - úvod

Numerické metody optimalizace - úvod Numerické metody optimalizace - úvod Petr Tichý 16. února 2015 1 Organizace přednášek a cvičení 13 přednášek a cvičení. Zápočet: úloha programování a testování úloh v Matlabu. Další informace na blogu

Více

4EK311 Operační výzkum. 5. Teorie grafů

4EK311 Operační výzkum. 5. Teorie grafů 4EK311 Operační výzkum 5. Teorie grafů 5. Teorie grafů definice grafu Graf G = uspořádaná dvojice (V, E), kde V označuje množinu n uzlů u 1, u 2,, u n (u i, i = 1, 2,, n) a E označuje množinu hran h ij,

Více

type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik;

type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik; Vícerozměrné pole type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik; M[2,3] := 3145; - počet indexů není omezen (v praxi obvykle nejvýše tři) - více indexů pomalejší přístup k prvku (počítá

Více

Grafové algoritmy. Programovací techniky

Grafové algoritmy. Programovací techniky Grafové algoritmy Programovací techniky Grafy Úvod - Terminologie Graf je datová struktura, skládá se z množiny vrcholů V a množiny hran mezi vrcholy E Počet vrcholů a hran musí být konečný a nesmí být

Více

Grafové algoritmy. Programovací techniky

Grafové algoritmy. Programovací techniky Grafové algoritmy Programovací techniky Grafy Úvod - Terminologie Graf je datová struktura, skládá se z množiny vrcholů V a množiny hran mezi vrcholy E Počet vrcholů a hran musí být konečný a nesmí být

Více

Metody lineární optimalizace Simplexová metoda. Distribuční úlohy

Metody lineární optimalizace Simplexová metoda. Distribuční úlohy Metody lineární optimalizace Simplexová metoda Dvoufázová M-úloha Duální úloha jednofázová Post-optimalizační analýza Celočíselné řešení Metoda větví a mezí Distribuční úlohy 1 OÚLP = obecná úloha lineárního

Více

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

Teorie her a ekonomické rozhodování. 2. Maticové hry Teorie her a ekonomické rozhodování 2. Maticové hry 2.1 Maticová hra Teorie her = ekonomická vědní disciplína, která se zabývá studiem konfliktních situací pomocí matematických modelů Hra v normálním tvaru

Více

Název předmětu: Školní rok: Forma studia: Studijní obory: Ročník: Semestr: Typ předmětu: Rozsah a zakončení předmětu:

Název předmětu: Školní rok: Forma studia: Studijní obory: Ročník: Semestr: Typ předmětu: Rozsah a zakončení předmětu: Plán předmětu Název předmětu: Algoritmizace a programování (PAAPK) Školní rok: 2007/2008 Forma studia: Kombinovaná Studijní obory: DP, DI, PSDPI, OŽPD Ročník: I Semestr: II. (letní) Typ předmětu: povinný

Více

4EK213 LINEÁRNÍ MODELY

4EK213 LINEÁRNÍ MODELY 4EK213 LINEÁRNÍ MODELY Úterý 11:00 12:30 hod. učebna SB 324 Mgr. Sekničková Jana, Ph.D. 2. PŘEDNÁŠKA MATEMATICKÝ MODEL ÚLOHY LP Mgr. Sekničková Jana, Ph.D. 2 OSNOVA PŘEDNÁŠKY Obecná formulace MM Množina

Více

IB112 Základy matematiky

IB112 Základy matematiky IB112 Základy matematiky Řešení soustavy lineárních rovnic, matice, vektory Jan Strejček IB112 Základy matematiky: Řešení soustavy lineárních rovnic, matice, vektory 2/53 Obsah Soustava lineárních rovnic

Více

MĚŘENÍ STATISTICKÝCH ZÁVISLOSTÍ

MĚŘENÍ STATISTICKÝCH ZÁVISLOSTÍ MĚŘENÍ STATISTICKÝCH ZÁVISLOSTÍ v praxi u jednoho prvku souboru se často zkoumá více veličin, které mohou na sobě různě záviset jednorozměrný výběrový soubor VSS X vícerozměrným výběrovým souborem VSS

Více

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

4EK311 Operační výzkum. 1. Úvod do operačního výzkumu 4EK311 Operační výzkum 1. Úvod do operačního výzkumu Mgr. Jana SEKNIČKOVÁ, Ph.D. Nová budova, místnost 433 Konzultační hodiny InSIS E-mail: jana.seknickova@vse.cz Web: jana.seknicka.eu/vyuka Garant kurzu:

Více

analytické geometrie v prostoru s počátkem 18. stol.

analytické geometrie v prostoru s počátkem 18. stol. 4.. Funkce více proměnných, definice, vlastnosti Funkce více proměnných Funkce více proměnných se v matematice začal používat v rámci rozvoje analtické geometrie v prostoru s počátkem 8. stol. I v sami

Více

Dynamické programování

Dynamické programování Dynamické programování prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy (BI-EFA)

Více

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

Třídy složitosti P a NP, NP-úplnost Třídy složitosti P a NP, NP-úplnost Cíle přednášky: 1. Definovat, za jakých okolností můžeme problém považovat za efektivně algoritmicky řešitelný. 2. Charakterizovat určitou skupinu úloh, pro které není

Více

Parametrické programování

Parametrické programování Parametrické programování Příklad 1 Parametrické pravé strany Firma vyrábí tři výrobky. K jejich výrobě potřebuje jednak surovinu a jednak stroje, na kterých dochází ke zpracování. Na první výrobek jsou

Více

FIT Č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 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íce

TOKY V SÍTÍCH II. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

TOKY V SÍTÍCH II. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze TOKY V SÍTÍCH II Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze BI-GRA, LS 010/011, Lekce 10 Evropský sociální fond Praha & EU: Investujeme do vaší

Více

Přiřazovací problém. Přednáška č. 7

Přiřazovací problém. Přednáška č. 7 Přiřazovací problém Přednáška č. 7 Přiřazovací problém je jednou podtřídou logistických úloh. Typickým problémem může být nejkratší převoz materiálu od dodavatelů ke spotřebitelům. spotřebitelé a i dodavatelé

Více

Dijkstrův algoritmus

Dijkstrův algoritmus Dijkstrův algoritmus Hledání nejkratší cesty v nezáporně hranově ohodnoceném grafu Necht je dán orientovaný graf G = (V, H) a funkce, která každé hraně h = (u, v) H přiřadí nezáporné reálné číslo označované

Více

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

Celočíselné lineární programování(ilp) Celočíselné lineární programování(ilp) Zdeněk Hanzálek, Přemysl Šůcha {hanzalek}@fel.cvut.cz ČVUT FEL Katedra řídicí techniky 2. března 2010 Z. Hanzálek (ČVUT FEL) Celočíselné lineární programování(ilp)

Více

4EK213 Lineární modely. 12. Dopravní problém výchozí řešení

4EK213 Lineární modely. 12. Dopravní problém výchozí řešení 4EK213 Lineární modely 12. Dopravní problém výchozí řešení 12. Distribuční úlohy LP Úlohy výrobního plánování (alokace zdrojů) Úlohy finančního plánování (optimalizace portfolia) Úlohy reklamního plánování

Více

Schéma identifikační procedury

Schéma identifikační procedury Schéma identifikační procedury systém S generátor rekonstrukčních hypotéz G a S nejsou porovnatelné nelze srovnat kvalitu G a S S a S jsou porovnatelné kvalita dekompozice S? S : (S,S ) = G dekompozice

Více

12. Globální metody MI-PAA

12. Globální metody MI-PAA Jan Schmidt 2011 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Zimní semestr 2011/12 MI-PAA EVROPSKÝ SOCIÁLNÍ FOND PRAHA & EU: INVESTUJENE DO VAŠÍ BUDOUCNOSTI

Více

Metody síťové analýzy

Metody síťové analýzy Metody síťové analýzy Řeší problematiku složitých systémů, zejména pak vazby mezi jejich jednotlivými prvky. Vychází z teorie grafů. Základní metody síťové analýzy: CPM (Critical Path Method) deterministický

Více

Optimalizace úvěrových nabídek. EmbedIT 7.11.2013 Tomáš Hanžl

Optimalizace úvěrových nabídek. EmbedIT 7.11.2013 Tomáš Hanžl Optimalizace úvěrových nabídek EmbedIT 7.11.2013 Tomáš Hanžl Obsah Spotřebitelský úvěr Popis produktu Produktová definice v HC Kalkulace úvěru Úloha nalezení optimálního produktu Shrnutí Spotřebitelský

Více

METODY DOLOVÁNÍ V DATECH DATOVÉ SKLADY TEREZA HYNČICOVÁ H2IGE1

METODY DOLOVÁNÍ V DATECH DATOVÉ SKLADY TEREZA HYNČICOVÁ H2IGE1 METODY DOLOVÁNÍ V DATECH DATOVÉ SKLADY TEREZA HYNČICOVÁ H2IGE1 DOLOVÁNÍ V DATECH (DATA MINING) OBJEVUJE SE JIŽ OD 60. LET 20. ST. S ROZVOJEM POČÍTAČOVÉ TECHNIKY DEFINICE PROCES VÝBĚRU, PROHLEDÁVÁNÍ A MODELOVÁNÍ

Více

Algoritmizace. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

Algoritmizace. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Úvod stránky předmětu: https://cw.felk.cvut.cz/doku.php/courses/a4b33alg/start cíle předmětu Cílem je schopnost samostatné implementace různých variant základních

Více

Rozhodovací procedury a verifikace Pavel Surynek, KTIML

Rozhodovací procedury a verifikace Pavel Surynek, KTIML 6 Rozhodovací procedury a verifikace Pavel Surynek, KTIML http://ktiml.mff.cuni.cz/~surynek/nail094 Matematicko-fyzikální fakulta Univerzita Karlova v Praze 1 Lineární aritmetika Budeme zabývat rozhodovacími

Více

3. Podmíněná pravděpodobnost a Bayesův vzorec

3. Podmíněná pravděpodobnost a Bayesův vzorec 3. Podmíněná pravděpodobnost a Bayesův vzorec Poznámka: V některých úlohách řešíme situaci, kdy zkoumáme pravděpodobnost náhodného jevu za dalších omezujících podmínek. Nejčastěji má omezující podmínka

Více

Vzdálenost uzlů v neorientovaném grafu

Vzdálenost uzlů v neorientovaném grafu Vzdálenosti a grafy Vzdálenost uzlů v neorientovaném grafu Je dán neorientovaný neohodnocený graf G = (V,E,I) vzdálenost uzlů u a v v neorientovaném souvislém grafu G je délka nejkratší cesty spojující

Více

NPRG030 Programování I, 2018/19 1 / :03:07

NPRG030 Programování I, 2018/19 1 / :03:07 NPRG030 Programování I, 2018/19 1 / 20 3. 12. 2018 09:03:07 Vnitřní třídění Zadání: Uspořádejte pole délky N podle hodnot prvků Měřítko efektivity: * počet porovnání * počet přesunů NPRG030 Programování

Více

f(x) = arccotg x 2 x lim f(x). Určete všechny asymptoty grafu x 2 2 =

f(x) = arccotg x 2 x lim f(x). Určete všechny asymptoty grafu x 2 2 = Řešení vzorové písemky z předmětu MAR Poznámky: Řešení úloh ze vzorové písemky jsou formulována dosti podrobně podobným způsobem jako u řešených příkladů ve skriptech U zkoušky lze jednotlivé kroky postupu

Více

7. přednáška Systémová analýza a modelování. Přiřazovací problém

7. přednáška Systémová analýza a modelování. Přiřazovací problém Přiřazovací problém Přiřazovací problémy jsou podtřídou logistických úloh, kde lze obecně říci, že m dodavatelů zásobuje m spotřebitelů. Dalším specifikem je, že kapacity dodavatelů (ai) i požadavky spotřebitelů

Více

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

Využ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íce

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

Stefan 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íce

Komprese dat. Jan Outrata KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI. přednášky

Komprese dat. Jan Outrata KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI. přednášky Komprese dat Jan Outrata KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI přednášky Statistické metody Jan Outrata (Univerzita Palackého v Olomouci) Komprese dat Olomouc, únor březen 2016 1 / 23 Tunstallův

Více

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

OPTIMALIZACE A MULTIKRITERIÁLNÍ HODNOCENÍ FUNKČNÍ ZPŮSOBILOSTI POZEMNÍCH STAVEB D24FZS OPTIMALIZACE A MULTIKRITERIÁLNÍ HODNOCENÍ FUNKČNÍ ZPŮSOBILOSTI POZEMNÍCH STAVEB Optimalizace a multikriteriální hodnocení funkční způsobilosti pozemních staveb Anotace: Optimalizace objektů pozemních staveb

Více

Operační výzkum. Teorie her. Hra v normálním tvaru. Optimální strategie. Maticové hry.

Operační výzkum. Teorie her. Hra v normálním tvaru. Optimální strategie. Maticové hry. Operační výzkum Hra v normálním tvaru. Optimální strategie. Maticové hry. Operační program Vzdělávání pro konkurenceschopnost Název projektu: Inovace magisterského studijního programu Fakulty ekonomiky

Více

5. Lokální, vázané a globální extrémy

5. Lokální, vázané a globální extrémy 5 Lokální, vázané a globální extrémy Studijní text Lokální extrémy 5 Lokální, vázané a globální extrémy Definice 51 Řekneme, že f : R n R má v bodě a Df: 1 lokální maximum, když Ka, δ Df tak, že x Ka,

Více

Učební texty k státní bakalářské zkoušce Matematika Skalární součin. študenti MFF 15. augusta 2008

Učební texty k státní bakalářské zkoušce Matematika Skalární součin. študenti MFF 15. augusta 2008 Učební texty k státní bakalářské zkoušce Matematika Skalární součin študenti MFF 15. augusta 2008 1 10 Skalární součin Požadavky Vlastnosti v reálném i komplexním případě Norma Cauchy-Schwarzova nerovnost

Více

Logické programování I

Logické 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íce

Stromy, haldy, prioritní fronty

Stromy, haldy, prioritní fronty Stromy, haldy, prioritní fronty prof. Ing. Pavel Tvrdík CSc. Katedra počítačů FEL České vysoké učení technické DSA, ZS 2008/9, Přednáška 6 http://service.felk.cvut.cz/courses/x36dsa/ prof. Pavel Tvrdík

Více

12. Lineární programování

12. Lineární programování . Lineární programování. Lineární programování Úloha lineárního programování (lineární optimalizace) je jedním ze základních problémů teorie optimalizace. Našim cílem je nalézt maximum (resp. minimum)

Více

Lineární programování

Lineární programování 24.9.205 Lineární programování Radim Farana Podklady pro výuku pro akademický rok 203/204 Obsah Úloha lineárního programování. Formulace úlohy lineárního programování. Typické úlohy lineárního programování.

Více

Popis zobrazení pomocí fuzzy logiky

Popis zobrazení pomocí fuzzy logiky Popis zobrazení pomocí fuzzy logiky diplomová práce Ján Fröhlich KM, FJFI, ČVUT 23. dubna 2009 Ján Fröhlich ( KM, FJFI, ČVUT ) Popis zobrazení pomocí fuzzy logiky 23. dubna 2009 1 / 25 Obsah 1 Úvod Základy

Více

OPTIMALIZAČNÍ ÚLOHY. Modelový příklad problém obchodního cestujícího:

OPTIMALIZAČNÍ ÚLOHY. Modelový příklad problém obchodního cestujícího: OPTIMALIZAČNÍ ÚLOHY Problém optimalizace v různých oblastech: - minimalizace času, materiálu, - maximalizace výkonu, zisku, - optimalizace umístění komponent, propojení,... Modelový příklad problém obchodního

Více

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

FRAMEWORK PRO ŘEŠENÍ VÝPOČETNÍCH ÚLOH S OMEZUJÍCÍMI PODMÍNKAMI FRAMEWORK PRO ŘEŠENÍ VÝPOČETNÍCH ÚLOH S OMEZUJÍCÍMI PODMÍNKAMI Petr Kahánek Logis s.r.o., pkahanek@logis.cz Ostravská Univerzita, Přírodovědecká fakulta, Katedra informatiky, petr.kahanek@osu.cz ABSTRAKT:

Více

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

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 Plánování proektu 3. dubna 2018 1 Úvod 2 Reprezentace proektu 3 Neomezené zdroe 4 Variabilní doba trvání 5 Přidání pracovní síly Problémy plánování proektu Zprostředkování, instalace a testování rozsáhlého

Více

Příklady ke cvičením. Modelování produkčních a logistických systémů

Příklady ke cvičením. Modelování produkčních a logistických systémů Modelování produkčních a logistických systémů Katedra logistiky, kvality a automobilové techniky Garant, přednášející, cvičící: Jan Fábry 10.12.2018 Příklady ke cvičením Opakování lineárního programování

Více

Binární soubory (datové, typované)

Binární soubory (datové, typované) Binární soubory (datové, typované) - na rozdíl od textových souborů data uložena binárně (ve vnitřním tvaru jako v proměnných programu) není čitelné pro člověka - všechny záznamy téhož typu (může být i

Více

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

5 Orientované grafy, Toky v sítích Petr Hliněný, FI MU Brno, 205 / 9 FI: IB000: Toky v sítích 5 Orientované grafy, Toky v sítích Nyní se budeme zabývat typem sít ových úloh, ve kterých není podstatná délka hran a spojení, nýbž jejich propustnost

Více

Numerická matematika. Zadání 25. Řešení diferenciální rovnice Rungovou Kuttovou metodou

Numerická matematika. Zadání 25. Řešení diferenciální rovnice Rungovou Kuttovou metodou Numerická matematika Zadání 25. Řešení diferenciální rovnice Rungovou Kuttovou metodou Václav Bubník, xbubni01, sk. 60 FIT VUT v Brně, 2004 Obsah Numerická matematika...1 1. Teorie... 3 1.1 Diferenciální

Více

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

Vraťme se k základům: DFS = Depth First Search Prohledávání do hloubky Vraťme se k základům: DFS = Depth First Search DFS Programování s omezujícími podmínkami Roman Barták Katedra teoretické informatiky a matematické logiky roman.bartak@mff.cuni.cz

Více

DEFINICE,VĚTYADŮKAZYKÚSTNÍZKOUŠCEZMAT.ANALÝZY Ib

DEFINICE,VĚTYADŮKAZYKÚSTNÍZKOUŠCEZMAT.ANALÝZY Ib INFORMACE O PRŮBĚHU A POŽADAVKY KE ZKOUŠCE Z MAT. ANALÝZYIbVLS2010/11 Ke zkoušce mohou přistoupit studenti, kteří získali zápočet. Do indexu jej zapíši na zkoušce, pokud cvičící potvrdí, že na něj student

Více

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

Metody návrhu algoritmů, příklady. IB111 Programování a algoritmizace Metody návrhu algoritmů, příklady IB111 Programování a algoritmizace 2011 Návrhu algoritmů vybrané metody: hladové algoritmy dynamické programování rekurze hrubá síla tato přednáška: především ilustrativní

Více

Diferenciální počet funkcí jedné reálné proměnné LOKÁLNÍ A GLOBÁLNÍ EXTRÉMY FUNKCÍ JEDNÉ REÁLNÉ PROMĚNNÉ LOKÁLNÍ EXTRÉMY

Diferenciální počet funkcí jedné reálné proměnné LOKÁLNÍ A GLOBÁLNÍ EXTRÉMY FUNKCÍ JEDNÉ REÁLNÉ PROMĚNNÉ LOKÁLNÍ EXTRÉMY Diferenciální počet funkcí jedné reálné proměnné - 4.1 - LOKÁLNÍ A GLOBÁLNÍ EXTRÉMY FUNKCÍ JEDNÉ REÁLNÉ PROMĚNNÉ LOKÁLNÍ EXTRÉMY Při hledání lokálních etrémů postupujeme podle následujícího programu Nalezneme

Více

13. Lineární programování

13. Lineární programování Jan Schmidt 2011 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Zimní semestr 2011/12 MI-PAA EVROPSKÝ SOCIÁLNÍ FOND PRAHA & EU: INVESTUJENE DO VAŠÍ BUDOUCNOSTI

Více

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

4EK201 Matematické modelování. 2. Lineární programování 4EK201 Matematické modelování 2. Lineární programování 2.1 Podstata operačního výzkumu Operační výzkum (výzkum operací) Operational research, operations research, management science Soubor disciplín zaměřených

Více

Úvod do celočíselné optimalizace

Úvod do celočíselné optimalizace Úvod do celočíselné optimalizace Martin Branda Univerzita Karlova v Praze Matematicko-fyzikální fakulta Katedra pravděpodobnosti a matematické statistiky Výpočetní aspekty optimalizace Martin Branda (KPMS

Více

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh Algoritmizace prostorových úloh Vektorová data Daniela Szturcová Prostorová data Geoobjekt entita definovaná v prostoru. Znalost jeho identifikace, lokalizace umístění v prostoru, vlastností vlastních

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 Ú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íce

Booleova algebra. ZákonyBooleovy algebry Vyjádření logických funkcí

Booleova algebra. ZákonyBooleovy algebry Vyjádření logických funkcí Booleova algebra ZákonyBooleovy algebry Vyjádření logických funkcí pravdivostní tabulka logický výraz seznam indexů vstupních písmen mapa vícerozměrná krychle 30-1-13 O. Novák 1 Booleova algebra Booleova

Více

Matematické modelování 4EK201

Matematické modelování 4EK201 Matematické modelování 4EK0 Ukázkový test Maimum 00 bodů. Pokud má úloha lineárního programování více optimálních řešení, pak (a) jich může být nekonečně mnoho, (b) jich musí být nekonečně mnoho.. Doplňte

Více

Diskrétní matematika. DiM /01, zimní semestr 2016/2017

Diskrétní matematika. DiM /01, zimní semestr 2016/2017 Diskrétní matematika Petr Kovář petr.kovar@vsb.cz Vysoká škola báňská Technická univerzita Ostrava DiM 470-2301/01, zimní semestr 2016/2017 O tomto souboru Tento soubor je zamýšlen především jako pomůcka

Více