Ѭ Ѭ Ѭ Ѭ Ѭ Normal style Print style No style
PB016 Úvod do umělé inteligence
01. 20.09.2013
Poznámky od Maki

Organisace

Co je UMI?

Prolog

Unifikace

Backtracking

Rekurze

Konec poznámek od Maki
  je_auto(X) :-  ma_motor(X),          ma_ctyri_kola(X).
# X je auto pokud X ma motor a zaroven X ma ctyri kola.

Klauzule

Term

02. 27.09.2013 12:06:10

Datove struktury

Seznam

Operace nad seznamy

Vyhledani

member(X,[_|T]) :- member[X,T] # do volne promenne se unifikuje 1. prvek seznamu, kdyz je unifikovatelny → TRUE

Mazani, pridavani

Permutace

perm1([],[])
perm1([H|T],L):-perm1(T,V), insert(H,V,L)
?- perm1([1,2,3],L)
L = [1,2,3] ;
L = [2,1,3] ;
...

Spojování seznamu a seznamu


Umí to udělat doplněk:
?- append(X,[ab],[abcd])
X = [cd]
Jde s tím dělat cokoliv:
member(X,Ys) 		:− 	append(As,[X|Xs],Ys).
last (X,Xs) 		:− 	append(As,[X],Xs).
prefix (Xs,Ys) 		:− 	append(Xs,As,Ys).
suffix (Xs,Ys) 		:− 	append(As,Xs,Ys).
sublist (Xs,AsXsBs) 	:− 	append(AsXs,Bs,AsXsBs), append(As,Xs,AsXs).
adjacent(X,Y,Zs) 	:− 	append(As,[X,Y|Ys],Zs).

Difference lists

4. 04.10.2013 12:28:36

Binární stromy

Uspořádané binární stromy

Representace bin. stromu:
     t(L,root,R)
       /   |   \
   levý kořen  pravý podstrom

addleaf

addleaf(+T,+X,-T)
           6
          / \
         2   8
        / \
       1   4

delleaf

Vícesměrné add / del

add(?T,+X,?Vysl)

Representace grafů

4. xxx

Prohledavani stavoveho prostoru

Prohledávací strategie

Neinformované prohledávání

Do hloubky

Do hloubky s limitem

Do šířky

Podle ceny

Do hloubky s postupným prohlubováním

Informovane prohledavani

Heuristické hledání nejlepší cesty (best-first search)

h1() a h2() - různé heur. fce
h*() - skutečná vzdálenost do cíle (že by většinou h1 + h2?)

Algoritmus A*

Hledání heuristiky

Složitosti algoritmů

b - faktor větvení
d - hloubka cíle
m - maximální hloubka větve/délka cesty


VlastnostDFSDFS limitBFSDle cenyIDSGreedy BFS1A*
úplnostneano (pro l >= d)ano *6ano *7ano *6obecně ne2ano5
optimálnostneneano *8ano *ano *neano
časová složitostO(bm)O(bl)O(bd+1)O(b1+(C*/e))O(bd)O(bm)3O((b*)d)
prostorová složitostO(b*m)O(b*l)O(bd+1)O(b1+(C*/e))O(b*d)O(bm)4O((b*)d)
1: best-first search
2: nekonečný prostor, cykly
3: záleží na h
4: každý uzel v paměti
5: pokud počet uzlů s f < C* != inf
6: pro konečné b
7: pro cena >= e
8: není optimální pro obecné ceny cest

Quicksort

qsort(+L,-Vysl)

AND/OR grafy

Representace

a −−−> or:[b,c].
b −−−> and:[d,e].
c −−−> and:[f,g].
e −−−> or:[h].
f −−−> and:[h,i].
goal(d ).
goal(g ).
goal(h ).

Strom řešení

P = problem; G = graf; T = řešení
  1. P je kořen T.
  2. if P je OR uzel v G → právě jedna větev (následník) bude v T.
  3. if P je AND uzel v G → všechny větve budou v T.
  4. každý list T je řešením.

Heurestické hledání v AND/OR grafu

Uzel −−−> AndOr:[NaslUzel1/Cena1, NaslUzel2/Cena2, …, NaslUzelN/CenaN].

Prohledávání AND/OR grafů

Predikáty

http://www.cse.unsw.edu.au/~billw/prologdict.html
assert/1
append/3
bagof/3
cut (!, řez)
member/2
op/3
-
ComparisonDefinitionEvaluates?
X = Ysucceeds if X and Y unify (match) in the Prolog senseNo
X \= Ysucceeds if X and Y do not unify; i.e. if not (X = Y)No
T1 == T2succeeds if terms T1 and T2 are identical; e.g. names of variables have to be the sameNo
T1 \== T2succeeds if terms T1 and T2 are not identicalNo
E1 =:= E2succeeds if values of expressions E1 and E2 are equalYes
E1 =\= E2succeeds if values of expressions E1 and E2 are not equalYes
E1 < E2succeeds if numeric value of expression E1 is < numeric value of E2Yes
E1 =< E2succeeds if numeric value of expression E1 is ≤ numeric value of E2Yes
E1 > E2succeeds if numeric value of expression E1 is > numeric value of E2Yes
E1 >= E2succeeds if numeric value of expression E1 is ≤ numeric value of E2Yes
T1 @< T2succeeds if T1 is alphabetically < T2No
T1 @=< T2succeeds if T1 is alphabetically ≤ T2No
T1 @> T2succeeds if T1 is alphabetically > T2No
T1 @>= T2succeeds if T1 is alphabetically ≥ T2No
006

Constraint Satisfaction Problems

CLP - Constraint Logic Programming

% Promennym X, Y se prirazuji hodnoty z range 1,5 a 2,8. Soucet se nesmi rovnat prom. T.
X in 1..5, Y in 2..8, X+Y #= T.
X in 1..5,
Y in 2..8,
T in 3..13.	% T se priradi hodnota z range 3,13.

CSP → inkrementální formulace

Řešení CSP

007

Hry

Typy her

Minimax

Vlastnosti minimaxu

Alfa-beta prořezávání (Alpha-Beta Pruning)

Ohodnocovací fce

Eval(s) = w1f1(s) + w2f2(s) + … + wnfn(s) = summ[i=1,n]:wifi(s)

Nedeterministické hry

008

Logické agenty

Návrh

  1. znalostní hledisko
  2. implementační hledisko

Wumpusova jeskyně

Vlastnosti Wumpusovy jeskyně

  1. pozorovatelné: ne, lokální vnímání
  2. deterministické: ano
  3. episodické: ne
  4. statické: ano, wumpus + jámy se nehýbou
  5. diskrétní: ano
  6. více agentů: ne, wumpus je prostředí

Logika - syntax a sémantika

Důkazové metody

009

výroková logika

Predikátová logika 1. řádu (FOPL)

TIL - Transparent intensional logic

Možný svět

$date 010 - sémentické sítě
- dědičnost (→ prvky, podtřídy)
- rámce
- sém. sítě, akorát místo grafů rámce a tak
- OOP
- pravidlové systémy
- mají spoustu podmínek if (neco) then (akce)
- bayesovská síť - acyklický graf, uzly mají tabulky (podmíněných) pravděpodobností rodičů; vyvozování nejistých událostí
1. E
2. ?
3. C
a: !false AND (false OR true) → true AND true → true
b: !true OR (true => (true OR false)) → false OR (true => true) → true
c: true AND (false <=> true) AND (true <=> false) → true AND false AND false → false
-log2(0.05)*0.05-log2(0.19)*0.19-log2(0.12)*0.12-log2(0.23)*0.23-log2(0.08)*0.08-log2(0.33)*0.33 = 2.34
4.32*0.05+3.64*0.08+3.06*0.12+2.4*0.19+2.12*0.23+1.6*0.33 = 2.34
Last update: 2014-01-16 11:18:53 UTC