Your SlideShare is downloading. ×
0
Sztuczna Inteligencja - Prolog 1
Sztuczna Inteligencja - Prolog 1
Sztuczna Inteligencja - Prolog 1
Sztuczna Inteligencja - Prolog 1
Sztuczna Inteligencja - Prolog 1
Sztuczna Inteligencja - Prolog 1
Sztuczna Inteligencja - Prolog 1
Sztuczna Inteligencja - Prolog 1
Sztuczna Inteligencja - Prolog 1
Sztuczna Inteligencja - Prolog 1
Sztuczna Inteligencja - Prolog 1
Sztuczna Inteligencja - Prolog 1
Sztuczna Inteligencja - Prolog 1
Sztuczna Inteligencja - Prolog 1
Sztuczna Inteligencja - Prolog 1
Sztuczna Inteligencja - Prolog 1
Sztuczna Inteligencja - Prolog 1
Sztuczna Inteligencja - Prolog 1
Sztuczna Inteligencja - Prolog 1
Sztuczna Inteligencja - Prolog 1
Sztuczna Inteligencja - Prolog 1
Sztuczna Inteligencja - Prolog 1
Sztuczna Inteligencja - Prolog 1
Sztuczna Inteligencja - Prolog 1
Sztuczna Inteligencja - Prolog 1
Sztuczna Inteligencja - Prolog 1
Sztuczna Inteligencja - Prolog 1
Sztuczna Inteligencja - Prolog 1
Sztuczna Inteligencja - Prolog 1
Sztuczna Inteligencja - Prolog 1
Sztuczna Inteligencja - Prolog 1
Sztuczna Inteligencja - Prolog 1
Sztuczna Inteligencja - Prolog 1
Sztuczna Inteligencja - Prolog 1
Sztuczna Inteligencja - Prolog 1
Sztuczna Inteligencja - Prolog 1
Sztuczna Inteligencja - Prolog 1
Sztuczna Inteligencja - Prolog 1
Sztuczna Inteligencja - Prolog 1
Sztuczna Inteligencja - Prolog 1
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Sztuczna Inteligencja - Prolog 1

3,533

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,533
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
40
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Sztuczna Inteligencja i Systemy Ekspertowe Prolog 1 Aleksander Pohl Wy˙ sza Szkoła Zarzadzania i Bankowo´ ci z ˛ s 12 marca 2009 Aleksander Pohl WSZiB Prolog 1
  • 2. Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Plan prezentacji Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Aleksander Pohl WSZiB Prolog 1
  • 3. Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Plan prezentacji Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Aleksander Pohl WSZiB Prolog 1
  • 4. Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Historia Alain Colmerauer, Phillipe Roussel pocz. lat 70-tych: ◮ Uniwersytet w Aix-Marseilles (1975) Robert Kowalski: Uniwersytet w Edynburgu (1974) ◮ David H.D. Warren – U.C. Berkeley (1985) ◮ WAM – „Warren Abstract Machine” ◮ s´ Ograniczona ilo´ c instrukcji ◮ put, get, unify, variable, value, execute, proceed, try, retry, trust e´ ´ Standard ISO (1995) uzgadniajacy cz˛ sc wspólna ˛ ˛ ◮ dialektów Aleksander Pohl WSZiB Prolog 1
  • 5. Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Historia Prolog: ◮ jezyk proceduralny ˛ ◮ unifikacja ◮ przeszukiwanie z nawrotami ◮ WAM: ◮ kontrola sekwencyjna ◮ unifikacja ◮ przeszukiwanie z nawrotami ◮ optymalizacje ◮ Aleksander Pohl WSZiB Prolog 1
  • 6. Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Plan prezentacji Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Aleksander Pohl WSZiB Prolog 1
  • 7. Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Unifikacja Unifikacja dwóch termów polega na znalezieniu takich ◮ ´ podstawien za zmienne wystepujace w tych termach aby ˛ ˛ po ich wykonaniu termy stały sie identyczne. ˛ W Prologu do unifikacji dwóch termów słu˙ y predykat =. z ◮ Podczas sprawdzenia warunku t1 = t2 albo termy zostana ˛ zunifikowane i zostanie wykonane na nich odpowiednie podstawienie zmiennych albo, je´ li takie podstawienie nie s istnieje, warunek nie bedzie spełniony i nastapi nawrót ˛ Unifikator dla Q(a, Y, Z), Q(Y, b, c) ◮ Q(a, Y, Z), Q(Y1, b, c), Y1 = a, Y = b, Z = c Aleksander Pohl WSZiB Prolog 1
  • 8. Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Klauzule Horna Klauzula – to zbiór literałów i zanegowanych literałów, ◮ który jest prawdziwy wtedy i tylko wtedy, gdy ich alternatywa jest prawdziwa. Klauzula pusta jest fałszywa. Klauzula Horna (ang. Horn Clause) – to klauzula w której ◮ co najwy˙ ej jeden element jest niezanegowany. z Dla formuły r ∧ q ∧ s ⇒ p klauzula Horna w postaci: ◮ logicznej: (¬r ∨ ¬q ∨ ¬s) ∨ p ◮ prologowej: p :- r,q,s; ◮ Aleksander Pohl WSZiB Prolog 1
  • 9. Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Plan prezentacji Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Aleksander Pohl WSZiB Prolog 1
  • 10. Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Wyra˙ enia atomowe z Wyra˙ eniami atomowymi sa: z ˛ ´ łancuchy zło˙ one z liter, cyfr, znaku _ zaczynajace sie od z ˛ ˛ ◮ małej litery np. anna, x25 ´ łancuchy zło˙ one ze znaków specjalnych np. <-->, .:. z ◮ ´ łancuchy ograniczone pojedynczymi cudzysłowami np. ◮ ’Tom’, ’Jan Kowalski’ Aleksander Pohl WSZiB Prolog 1
  • 11. Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Zmienne Zmiennymi sa: ˛ ´ łancuchy zło˙ one z liter, cyfr, znaku _, zaczynajace sie od z ˛ ˛ ◮ ´ du˙ ej litery bad´ znaku podkreslenia, np. Number, z ˛z _value zmienna anonimowa : oznaczona przez _ ◮ Aleksander Pohl WSZiB Prolog 1
  • 12. Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Fakty i reguły Fakty ◮ parent(jan, anna) Reguły ◮ ojciec(X, Y) :- rodzic(X, Y), m˛˙czyzna(X). ez „X jest ojcem Y, je´ li X jest rodzicem Y i X jest me˙ czyzna.” s ˛z ˛ :- – „wtedy, gdy”, „je´ li” s ◮ , – koniunkcja ◮ ; – alternatywa ◮ Aleksander Pohl WSZiB Prolog 1
  • 13. Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Fakty i reguły – przykłady Fakty ◮ ssak(lew) ◮ stolica(polska,warszawa) ◮ Reguły ◮ rodzic(X,Y) :- ojciec(X,Y). ◮ rodzic(X,Y) :- matka(X,Y). ◮ Zespół reguł - procedura ◮ Aleksander Pohl WSZiB Prolog 1
  • 14. Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Funktory Funktory – predykaty, termy zło˙ one z nazwa – takie same reguły jak nazwa atomu ◮ s´ arno´ c – liczba argumentów ◮ np. parent(X, Y) ◮ efekty uboczne, np. write(’hello’) ◮ Aleksander Pohl WSZiB Prolog 1
  • 15. Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Przykład parent(anna, jan). ◮ haschild(X) :- parent(X,Y). ◮ ?- haschild(anna). ◮ yes ◮ Aleksander Pohl WSZiB Prolog 1
  • 16. Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Plan prezentacji Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Aleksander Pohl WSZiB Prolog 1
  • 17. Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Deklaratywne znaczenie programu Program jest sterowany celem (ang. goal driven) ◮ Cel C (ang. goal) jest osiagniety (prawdziwy), je´ li istnieje ˛˛ s ◮ ˙ instancja klauzuli K = F :- C1 , C2 , ... Cn taka, ze jej funktor główny F jest identyczny z celem C ◮ jej wszystkie cele składowe C1 , C2 , ... Cn sa˛ ◮ osiagniete (prawdziwe) ˛˛ Aleksander Pohl WSZiB Prolog 1
  • 18. Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Przykład omylny(X) :- czlowiek(X). ◮ czlowiek(sokrates). ◮ ?- omylny(sokrates). ◮ yes ◮ Aleksander Pohl WSZiB Prolog 1
  • 19. Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Imperatywne (proceduralne) znaczenie programu ´ 1. je´ li lista celów (ang. goal) jest pusta zakoncz sukcesem, s w przeciwny razie: 2. znajd´ klauzule K, o takim samym funktorze głównym jak z ˛ ´ pierwszy cel C1 , bad´ zakoncz niepowodzeniem ˛z 3. dokonaj dopasowania (ang. matching) K i C1 4. je´ li K jest postaci H :- B1 ,...,Bn uzupełnij liste celów s ˛ o B1 ... Bn ˙ 5. je´ li K jest faktem – n = 0 (tzn. nie dodajemy zadnego celu) s 6. powtórz w/w procedure (od p. 1) ˛ ´ je´ li zakonczy sie sukcesem, zwró´ sukces s ˛ c ◮ je´ li pora˙ ka – odrzu´ cele B1 ...Bn , szukaj kolejnych s z˛ c ◮ predykatów pasujacych do K ˛ Aleksander Pohl WSZiB Prolog 1
  • 20. Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Dopasowanie Dwa termy pasuja do siebie je´ li: ˛ s sa identyczne ˛ ◮ jeden z termów jest zmienna – nastepuje podstawienie ˛ ˛ ◮ sa wyra˙ eniami zło˙ onymi – zmienne w obu termach moga ˛ z z ˛ ◮ zosta´ podstawione tak, aby po podstawieniu termy jako c s´ cało´ c stały sie identyczne ˛ Aleksander Pohl WSZiB Prolog 1
  • 21. Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Przykład wykonania programu big(bear). ◮ big(elephant). ◮ small(cat). ◮ brown(bear). ◮ black(cat). ◮ gray(elephant). ◮ dark(Z) :- black(Z). ◮ dark(Z):- brown(Z). ◮ ?- dark(X), big(X). ◮ Aleksander Pohl WSZiB Prolog 1
  • 22. Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Przykład – cd. Lista celów: dark(X), big(X) ◮ 1-szy przebieg: black(X), big(X) ◮ 2-gi: big(cat) ◮ 3-ci: pora˙ ka, wracamy do z ◮ dark(X), big(X) 4ty: brown(X), big(X) ◮ 5ty: big(bear) ◮ X = bear ◮ Aleksander Pohl WSZiB Prolog 1
  • 23. Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum ´ Zagro˙ enia – petle nieskonczone z ˛ Jeden z 4 wariantów: ◮ przodek(X,Z) :- przodek(X,Y), rodzic(Y,Z). przodek(X,Y) :- rodzic(X,Y). Uwage na lewostronna rekursje ˛ ˛ ◮ Aleksander Pohl WSZiB Prolog 1
  • 24. Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum ´ Zagro˙ enia – petle nieskonczone z ˛ Poprawne warianty: przodek(X,Z) :- rodzic(Y,Z),przodek(X,Y). ◮ przodek(X,Y) :- rodzic(X,Y). przodek(X,Y) :- rodzic(X,Y). ◮ przodek(X,Z) :- przodek(X,Y), rodzic(Y,Z). przodek(X,Y) :- rodzic(X,Y). ◮ przodek(X,Z) :- rodzic(Y,Z)., przodek(X,Y) Aleksander Pohl WSZiB Prolog 1
  • 25. Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Odciecie ˛ H :- B1, B2 , ... , Bm , ! , ... , Bn ◮ Przy napotkaniu odciecia, odciecie zwraca sukces, ale dla ˛ ˛ ◮ skutecznego spełnienia głównego funktora, musza zosta´ ˛ c spełnione cele pomiedzy głównym funktorem a odcieciem ˛ ˛ Aleksander Pohl WSZiB Prolog 1
  • 26. Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Odciecie – przykład ˛ C :- P,Q,R,!,S,T,U. ◮ C :- V. ◮ A :- B,C,D. ◮ ?- A. ◮ Aleksander Pohl WSZiB Prolog 1
  • 27. Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Przykład – if-else Bez odciecia ˛ ◮ max(X,Y,X) :- X >= Y. ◮ max(X,Y,Y) :- X < Y. ◮ s´ Z odcieciem – wieksza wydajno´ c ˛ ˛ ◮ max(X,Y,X) :- X >= Y, !. ◮ max(X,Y,Y). ◮ Problem: ◮ max(3, 1, 1). ◮ max(X,Y,Max) :- X >= Y, !, Max = X; Max = ◮ Y. Aleksander Pohl WSZiB Prolog 1
  • 28. Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Negacja Przykład: ◮ different(X,X) :- !, fail. ◮ different(X,Y). ◮ Ogólnie: ◮ not(P) :- P, !, fail; true. Aleksander Pohl WSZiB Prolog 1
  • 29. Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Negacja – zagro˙ enia z ˛s´ „Zało˙ enie o zamknieto´ ci swiata” (ang. closed world z ◮ assumption) ?- not(human(mary)). yes przy negacji – zmiana kwantyfikatora na ogólny ◮ Aleksander Pohl WSZiB Prolog 1
  • 30. Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Negacja – przykład zagro˙ enia z dobrarestauracja(wierzynek). droga(wierzynek). dobrarestauracja(ubabcimaliny). rozsadna(X) :- not droga(X). ?- dobrarestauracja(X), rozsadna(X). X=ubabcimaliny ?- rozsadna(X), dobrarestauracja(X) . no Aleksander Pohl WSZiB Prolog 1
  • 31. Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Negacja – wyja´ nienie s not droga(X) ◮ to samo co ◮ ¬(∃X : droga(X )) ◮ czyli ◮ ∀X : ¬droga(X ) ◮ Aleksander Pohl WSZiB Prolog 1
  • 32. Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Plan prezentacji Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Aleksander Pohl WSZiB Prolog 1
  • 33. Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Listy [ann, tom, tennis] ◮ „głowa” – head: ann ◮ „ogon” – tail: [tom, tennis] ◮ Aleksander Pohl WSZiB Prolog 1
  • 34. Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Operatory sklejanie .(Head, Tail) ◮ rozdzielanie L = [Head | Tail] ◮ Aleksander Pohl WSZiB Prolog 1
  • 35. Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Przykłady (1) Element listy member(X, [X | Tail]). ◮ member(X, [Head | Tail]) :- ◮ member(X, Tail). Aleksander Pohl WSZiB Prolog 1
  • 36. Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Przykłady (2) Element listy z wykorzystaniem odciecia ˛ member(X, [X | Tail]) :- !. ◮ member(X, [Head | Tail]) :- ◮ member(X, Tail). Aleksander Pohl WSZiB Prolog 1
  • 37. Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Przykłady (3) Konkatenacja listy conc([],L,L). ◮ conc([X | L1], L2, [X | L3]) :- ◮ conc(L1, L2, L3). Dekompozycja conc(L1, L2, [a, b, c]). ◮ Wyszukiwanie conc(Przed, [c | Po], [a, b, c, d, e, f]). ◮ Aleksander Pohl WSZiB Prolog 1
  • 38. Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Plan prezentacji Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Aleksander Pohl WSZiB Prolog 1
  • 39. Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Materiały zródłowe ´ L.Sterling, E.Shapiro - „The Art Of Prolog” ◮ Ivan Bratko - „Prolog – Programming For Artificial ◮ Intelligence” Slajdy zostały przygotowane za zgoda˛ ◮ dr. Michała Korzyckiego na podstawie jego wykładu. Aleksander Pohl WSZiB Prolog 1
  • 40. Historia Podstawy teoretyczne Składnia Wykonanie programu Listy Postscriptum Dziekuje! ˛ ˛ Aleksander Pohl WSZiB Prolog 1

×