8
Predikatska logika PROLOG Auditorne vežbe 3 Računarska inteligencija

PLa3

  • Upload
    chokla

  • View
    212

  • Download
    0

Embed Size (px)

DESCRIPTION

Ori

Citation preview

Page 1: PLa3

Predikatska logika PROLOG Auditorne vežbe 3

Računarska inteligencija

Page 2: PLa3

Binarna stabla

st(a, st(b, st(d, p, p), st(e, p, p)), st(c, st(f, p, p), p)).

Page 3: PLa3

Binarna stabla

b_stablo(p). b_stablo(st(X, L, D)):-b_stablo(L), b_stablo(D).

Provera da li je struktura binarno stablo

element(X, st(X, L, D)). element(X, st(S, L, D)):-element(X, L); element(X, D).

Traženje elementa binarnom stablu

Page 4: PLa3

Uređeno binarno stablo

Svi elementi u levom podstablu su manji od korena.Svi elementi u desnom podstablu su veći od korena.

12

8

115

17

2214

Page 5: PLa3

Uređeno binarno stablo

Traženje elementa u uređenom binarnom stablu

element(X, st(X, L, D)). element(X, st(G, L, D)):-X<G, element(X, L).element(X, st(G, L, D)):-X=>G, element(X, D).

dodaj(X, p, st(X, p, p)). dodaj(X, st(G, L, D), st(G, L1, D)):-X<G, dodaj(X, L, L1). dodaj(X, st(G, L, D), st(G, L, D1)):-X=>G, dodaj(X, D, D1).

Dodavanje elementa u uređeno binarno stablo

Page 6: PLa3

Uređeno binarno stabloBrisanje elementa iz uređenog binarnog stabla

brisi(X, st(X, p, D), D). brisi(X, st(X, L, D), st(Ym, L1, D)):-najveci(L, Ym, L1). brisi(X, st(Y, L, D), st(Y, L1, D)):-X<Y, brisi(X, L, L1). brisi(X, st(Y, L, D), st(Y, L, D1)):-X>Y, brisi(X, D, D1).

najveci(st(Ym, L, p), Ym, L). najveci(st(Y, L, D), Ym, st(Y, L, D1)):-najveci(D, Ym, D1).

12

8

115

17

2214

11

8

115

17

2214

Page 7: PLa3

Uređeno binarno stablo

Konverzija liste u uređeno binarno stablo

lista_stablo([], p). lista_stablo([G|R], S):-lista_stablo(R, S1), dodaj(G, S1, S).

stablo_lista(p, []). stablo_lista(st(G, L, D), Rez)):-stablo_lista(L, L1), stablo_lista(D, D1), pripoji(L1, [G|D1], Rez).

Konverzija stabla u listu

Page 8: PLa3

Primeri

sortiraj(L, SL):- lista_stablo(L, S), stablo_lista(S, Sl).

Sortiranje

fibonaci(0,1). fibonaci(1,1). fibonaci(N,F):- N2 is N-2, N1 is N-1, fibonaci(N1, F1), fibonaci(N2, F2), F is F1 + F2.

Fibonačijev niz