PLa3

Preview:

DESCRIPTION

Ori

Citation preview

Predikatska logika PROLOG Auditorne vežbe 3

Računarska inteligencija

Binarna stabla

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

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

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

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

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

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

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