Prolog (z fr. Programmation en Logique):
jeden z najpopularniejszych języków programowania logicznego,
stworzony przez A. Colmeraurera i P. Roussela w 1971 r.
Program w Prologu składa się z faktów oraz reguł wnioskowania.
Aby go uruchomić należy wprowadzić odpowiednie zapytanie.
Programowanie logiczne -
podstawowe pojęcia
Reguła zamkniętego świata (ang. Closed World Assumption):
założenie mówiące o tym, że informacje zawarte w bazie danych
stanowią pełny opis świata. Innymi słowy wszystko, o czym
nie wiemy czy jest prawdziwe, jest fałszywe.
4
Typy danych (termów):
Programowanie deklaratywne:
- liczbowe
paradygmat programowania, w którym programista opisuje
- rzeczywiste: real
problem do rozwiązania, natomiast nie opisuje sposobu
- całkowite: integer, short, long, ulong, byte itd.
rozwiązania.
Jedną z odmian programowania deklaratywnego jest - nieliczbowe (atomy)
- char
programowanie logiczne, w którym opis problemu jest
- symbol i string
przedstawiony w postaci bazy faktów i reguł (założenia)
oraz odpowiedniego zapytania (twierdzenie do udowodnienia).
Na ich podstawie system wnioskujący kompilatora języka - struktury złożone: funktor(argumenty)
przeprowadza wnioskowanie logiczne. - listy
Wnioskowanie to ma na celu stwierdzenie,
czy wprowadzone zapytanie jest prawdziwe czy fałszywe.
Zmienne:
- pisane z dużej litery
- zmienna anonimowa _
3 5
Unifikacja: Klauzula:
- stała = stała zdanie opisujące pewne ograniczenie w danym problemie,
- prawdziwe tylko wtedy, gdy obie stałe są takie same mogące przyjmować wartość logiczną.
Rozróżniamy klauzule w postaci:
- zmienna = stała
- jeśli zmienna jest nieuziemiona to wartość stałej zostaje - faktów, czyli zdań prawdziwych,
podstawiona za zmienną (uziemia ją) - reguł, czyli zdań warunkowych.
- jeśli zmienna jest już uziemiona to patrz stała = stała
- zmienna = zmienna Przykład faktu:
- jeśli jedna ze zmiennych jest nieuziemiona a druga posiada( Jan ,dom).
uziemiona, to wartość tej uziemionej zostaje
podstawiona za zmienną nieuziemioną Przykład reguły:
- jeśli obie zmienne są uziemione to patrz stała = stała posiada( Anna ,Przedmiot) :- posiada( Jan ,Przedmiot).
- jeśli obie zmienne są nieuziemione, wtedy unifikacja
powoduje, że stają się synonimami posiada(Ona,Coś) :- posiada(On,Coś),
małżeństwo(On,Ona).
6 8
Predykat: Składnia programu:
wyrażenie opisujące pewne własności lub relacje zachodzącej trzy podstawowe elementy składni programu w Prologu to
pomiędzy zmiennymi. Predykat nie ma wartości logicznej, tzn.
nie jest ani prawdziwy ani fałszywy, lecz jest niejednoznaczny. - predicates (definicje budowy predykatów),
Po podstawieniu pewnych stałych w miejsce zmiennych,
predykat przechodzi w klauzulę, zdanie logiczne, które może być
- clauses (baza faktów i reguł wnioskowania),
prawdziwe lub fałszywe.
- goal (czyli cel - zapytanie główne, którego prawdziwość jest
Predykaty dzielimy na:
stwierdzana).
- deterministyczne (ich sprawdzenie odbywa się na jeden sposób
i dlatego mogą dostarczyć tylko jedno rozwiązanie),
- niedeterministyczne (ich sprawdzenie może odbyć się na wiele,
Dodatkową często używaną sekcją jest domains, która zawiera
również nieskończenie wiele, sposobów).
definicje typów zmiennych.
Przykład predykatu:
posiada(Osoba,Przedmiot)
posiada(String,Symbol)
7 9
Wyszukiwarka
Podobne podstrony:
Prezentacja Wykład nr 5 PREZENTACJA wyklad TI 2prezentacja wyklad 4 PREZENTACJA wyklad TI 4prezentacja wyklad 9prezentacja wyklad 36?resowanie tcpip prezentacja wykladowaprezentacja wyklad 8 PREZENTACJA wyklad TI 1Prezentacja Wykład nr 3 Zdolność do bycia stronąprezentacja wyklad 2prezentacja wyklad 5wyklad11 prezentacjaWyklad5 Studium wykonalnosci prezentacjaMNUM wykład1 prezentacjaprezentacja do wykladu obliczenia PCR i startery optymalizacjawyklad04 prezentacjaPrezentacja do wykladu 1 2 15 celwięcej podobnych podstron