Programowanie w logice Wykład z baz danych dla
|
|
- Antoni Kozak
- 9 lat temu
- Przeglądów:
Transkrypt
1 Programowanie w logice Wykład z baz danych dla studentów matematyki 18 maja 2015
2 Programowanie w logice Programowanie w logice to podejście do programowania, w którym na program patrzymy nie jak na opis krok po kroku pewnego sekwencyjnego algorytmu, lecz jak na teorię logiczna. Przy tym podejściu koncentrujemy się na deklaratywnej specyfikacji co jest problemem do rozwiazania, a nie na proceduralnej specyfikacji jak ma on być rozwiazany. Takie języki programowania oparte sa na rachunku predykatów pierwszego rzędu, więc bliskie sa koncepcjom relacyjnych baz danych. Przy tym podejściu wywołanie procedury to twierdzenie do udowodnienia, przekazywane do interprtera jako zapytanie. Wykonanie programu odpowiada poszukiwaniu dowodu. W konsekwencji zmienne w programowaniu w logice maja bardziej matematyczny charakter można na nie przypisać wartość tylko raz.
3 Prolog Prolog jest najpopularniejszym językiem do programowania w logice. Oczywiście nie jest możliwe nauczenie programowania w Prologu w trakcie pojedynczego wykładu (ani nawet pełne opisanie go). Pobieżna znajomość pojęć programowania w logice pozwoli nam jednak lepiej zrozumieć źródła dedukcyjnych baz danych, którymi zajmiemy się na następnym wykładzie. Będziemy zatem poznawać Prolog głównie przez przykłady programów.
4 Warszawskie metro Warszawskie metro ma (na razie) tylko półtorej linii, ale w zupełności wystarczy to na pierwszy przykład użycia Prologu. Rozpoczniemy od zapisania faktów: informacji o kolejności stacji na linii connected(bielany,słodowiec). connected(słodowiec,marymont). connected(marymont,placwilsona). connected(placwilsona,dworzecgdański)....
5 Składnia Prolog używa dla literałów składni z rachunku predykatów predykat(term,...term) Nazwy zmiennych (identyfikatory) musza rozpoczynać się wielka litera lub znakiem podkreślenia ( _ ).
6 Zapytania Prologu można używać jak prostej bazy danych. Najpierw dowiemy się od interpretera, czy Marymont i Plac Wilsona sa ze soba połaczone.?- connected(marymont,placwilsona). yes Następnie zapytamy o stacje połaczone z Marymontem?- connected(marymont,x). X = placwilsona yes W zapytaniu użyliśmy zmiennej X. Interpreter zwrócił wartość zwiazan a ze zmienna X jako jedyna odpowiedź.
7 Zapytania Spytajmy teraz o wszystkie połaczenia?- connected(start,end). Start = bielany End = słodowiec? ; Start = słodowiec End = marymont? a Start = marymont End = placwilsona Start = placwilsona End = dworzecgdański no
8 Reguły Zdefiniujemy dwie stacje jako położone blisko jeśli sa one połaczone bezpośrednio lub pomiędzy nimi jest tylko jedna stacja. W rachunku predykatów wyglada to tak x y.connected(x, y) = blisko(x, y) x y. z.connected(x, z) connected(z, y)) = blisko(x, y) Możemy teraz zapisać te formuły jako reguły Prologu blisko(x,y) :- connected(x,y). blisko(x,y) :- connected(x,z),connected(z,y).
9 Reguły Najpierw łatwe zapytanie?- blisko(bielany,marymont). yes Teraz oczekujemy kilku odpowiedzi?- blisko(bielany,what). What = słodowiec? ; What = marymont yes
10 Definiowanie silni Wprowadzenie do języka programowania nie liczy się, jeśli nie obejmuje silni (albo największego wspólnego dzielnika). Pora więc na nia Najpierw definicja funkcyjna 0! = 1 n! = n (n 1)! dla n > 0. która przekształcimy na relację factorial factorial(0, 1) ( n)( f )n > 0 factorial(n 1, f ) = factorial(n, n f )
11 Definiowanie silni Pora na Prolog factorial(0,1). factorial(n,f) :- N > 0, N1 is N - 1, factorial(n1,f1), F is N * F1. Nieco testów?- factorial(0,1). true? (1 ms) yes?- factorial(3,x). X = 6? (1 ms) yes
12 Wyrażenia w Prologu Nasz program składa się z dwóch klauzul. Pierwsza z nich to klauzula unarna: tylko nagłówek, bez treści. Jest to skrót następujacego zapisu: factorial(0,1) :- true. Klauzule unarne bez zmiennych służa do zapisywania pojedynczych faktów. Druga klauzula to reguła, ponieważ posiada niepusta treść. Treść to wszystkie literały następujace po :- (możemy go czytać jeśli ). Literały w treści oddzielamy przecinkami, przecinek pełni rolę operatora koniunkcji. Argumenty literałów nazyweamy termami. Jeśli identyfikator zawarty w termie rozpoczyna się wielka litera, to jest to zmienna, w przeciwnym razie jest to stała.
13 Wyrażenia w Prologu Klauzule maja intepretację deklaratywna Klauzula pierwsza mówi: silnia 0 wynosi 1. Klauzula druga mówi: silnia N wynosi F jeśli N > 0 oraz jeśli N1 oznacza N 1, to silnia N1 wynosi F1 i F = N F1.
14 Zapytania Chcac obliczyć silnię od 3 musimy podać w zapytaniu zmienna, na której ma znaleźć się wynik niech to będzie W:?- factorial(3,w). W=6
15 Graf obliczeń
16 Zapytania W zapytaniu nie musza wystapić zmienne:?- factorial(3,6). yes?- factorial(5,2). no
17 Inna definicja silni silnia(n,f) :- silnia1(n,1,f). silnia1(0,f,f). silnia1(n,a,f) :- N > 0, A1 is N * A, N1 is N - 1, silnia1(n1,a1,f).
18 Inna definicja silni Wprowadziliśmy dodatkowy parametr pełniacy rolę akumulatora. Dzięki temu nasza definicja ma postać iteracyjna, ponieważ wywołanie rekurencyjne jest redukcyjne. Ale nic za darmo: płacimy za to zmniejszona czytelnościa.
19 Kolorowanie map Zasada: Żadne dwa sasiaduj ace regiony nie moga mieć tego samego koloru.
20 Mapa
21 Sasiedztwo Informacje o sasiedztwie można w Prologu zapisać następujaco: adjacent(1,2). adjacent(1,3). adjacent(1,4). adjacent(1,5). adjacent(2,3). adjacent(2,4). adjacent(3,4). adjacent(4,5). adjacent(2,1). adjacent(3,1). adjacent(4,1). adjacent(5,1). adjacent(3,2). adjacent(4,2). adjacent(4,3). adjacent(5,4).
22 Sasiedztwo Po załadowaniu faktów do interpretera można badać sasiedztwo regionów:?- adjacent(2,3). yes?- adjacent(5,3). no?- adjacent(3,r). R = 1 ; R = 2 ; R = 4 ; no
23 Kolorowania Kolorowania także możemy opisać klauzulami unarnymi. color(1,red,a). color(2,blue,a). color(3,green,a). color(4,yellow,a). color(5,blue,a). color(1,red,b). color(2,blue,b). color(3,green,b). color(4,blue,b). color(5,green,b). Kolorowania oznaczyliśmy symbolami a i b.
24 Kolorowania
25 Konflikty Błędne kolorowanie musi zawierać konflikt dwa sasiednie regiony pokolorowane tym samym kolorem: conflict(coloring) :- adjacent(x,y), color(x,color,coloring), color(y,color,coloring).
26 Konflikty Teraz możemy zbadać nasze kolorowania:?- conflict(a). no?- conflict(b). yes?- conflict(which). Which = b
27 Konflikty (3) Konfliktowość mozna też zdefiniować inaczej: conflict(r1,r2,coloring) :- adjacent(r1,r2), color(r1,color,coloring), color(r2,color,coloring).
28 Polimorfizm Prolog dopuszcza równoczesne definiowanie predykatów o tej samej nazwie i różnej liczbie parametrów, wewnętrznie nazywajac je conflict/1 i conflict/3.
29 Więcej o konfliktach Możemy poznać konfliktowe regiony, a nawet ich (wspólny) kolor?- conflict(r1,r2,b). R1 = 2 R2 = 4?- conflict(r1,r2,b),color(r1,c,b). R1 = 2 R2 = 4 C = blue
30 Rozpoznawanie zwierzat Spróbujmy na koniec napisać program rozpoznajacy gatunki zwierzat podstawie zaobserwowanych faktów oraz wiedzy zawartej w faktach i regułach. zoolog :- hypothesize(zwierzak), write( Przypuszczam, że ten zwierzak to: ), write(zwierzak), nl, undo.
31 Hipotezy hypothesize(gepard) :- gepard,!. hypothesize(tygrys) :- tygrys,!. hypothesize(żyrafa) :- żyrafa,!. hypothesize(zebra) :- zebra,!. hypothesize(struś) :- struś,!. hypothesize(pingwin) :- pingwin,!. hypothesize(albatros) :- albatros,!. hypothesize(nie_wiem). /* nie udało się */
32 Reguły identyfikacji gepard :- ssak, drapieżnik, verify(ma_płowy_kolor), verify(ma_ciemne_plamy). tygrys :- ssak, drapieżnik, verify(ma_płowy_kolor), verify(ma_czarne_paski). żyrafa :- kopytny, verify(ma_długą_szyję), verify(ma_długie_nogi). zebra :- kopytny, verify(ma_czarne_paski).
33 Reguły identyfikacji struś :- ptak, verify(nie_lata), verify(ma_długą_szyję). pingwin :- ptak, verify(nie_lata), verify(pływa), verify(jest_czarnobiały). albatros :- ptak, verify(występuje_w_opowieściach_morskich), verify(dobrze_lata).
34 Reguły klasyfikacji ssak :- verify(ma_sierść),!. ssak :- verify(daje_mleko). ptak :- verify(ma_pióra),!. ptak :- verify(lata), verify(znosi_jajka). drapieżnik :- verify(je_mięso),!. drapieżnik :- verify(ma_ostre_zęby), verify(ma_pazury), verify(ma_oczy_z_przodu). kopytny :- ssak, verify(ma_kopyta),!. kopytny :- ssak, verify(przeżuwacz).
35 Zadawanie pytań ask(pytanie) :- write( Czy zwierzak ma następującą cechę: ), write(pytanie), write(? ), read(odpowiedz), nl, ( (Odpowiedz == tak ; Odpowiedz == t) -> assert(tak(pytanie)) ; assert(nie(pytanie)), fail).
36 Weryfikacja verify(s) :- tak(s), true,!. verify(s) :- nie(s), fail,!. verify(s) :- ask(s).
37 Zapamiętywanie odpowiedzi Aby uniknać wielokrotonego zadawania tych samych pytań: Po otrzymaniu odpowiedzi tak na pytanie P zapisujemy tę informację jako fakt tak(p). Podobnie po otrzymaniu odpowiedzi nie na pytanie P zapisujemy tę informację jako fakt nie(p).
38 Czyszczenie faktów tak/nie Po zakończeniu konwersacji trochę ekologii trzeba po sobie posprzatać undo :- retract(tak(_)),fail. undo :- retract(nie(_)),fail. undo.
Programowanie deklaratywne
Programowanie deklaratywne Artur Michalski Informatyka II rok Plan wykładu Wprowadzenie do języka Prolog Budowa składniowa i interpretacja programów prologowych Listy, operatory i operacje arytmetyczne
Programowanie w logice
Programowanie w logice PROLOG cz.1 PROLOG język wysokiego poziomu Powstał w 1972 na Uniwersytecie w Marsylii (Francja) w zespole A.Colmerauer a i F.Roussel a PROgrammation en LOGique, PROgramming in LOGic,
Paradygmaty programowania
Paradygmaty programowania Jacek Michałowski, Piotr Latanowicz 15 kwietnia 2014 Jacek Michałowski, Piotr Latanowicz () Paradygmaty programowania 15 kwietnia 2014 1 / 12 Zadanie 1 Zadanie 1 Rachunek predykatów
PROLOG. Prolog. Programowanie, W.F. Clocksin, C.S. Mellish, HELION Prolog, język sztucznej inteligencji, Eugeniusz Gatnar, Katarzyna Stąpor, Wyd.
PROLOG 1. Informacje wstępne Podczas zajęć korzystamy z darmowej wersji interpretera Prologu SWI-Prolog dostępnego ze strony: www.swi-prolog.org 2. Literatura i materiały Prolog. Programowanie, W.F. Clocksin,
Programowanie deklaratywne
Programowanie deklaratywne Artur Michalski Informatyka II rok Plan wykładu Wprowadzenie do języka Prolog Budowa składniowa i interpretacja programów prologowych Listy, operatory i operacje arytmetyczne
Składnia rachunku predykatów pierwszego rzędu
Początek Gramatyka Kwantyfikatory Poprawność Logika obliczeniowa Instytut Informatyki Początek Gramatyka Kwantyfikatory Poprawność Plan wykładu 1 Na (dobry) początek Zrozumieć słowa Oswoić znaki 2 Gramatyka
Wykład 11a. Składnia języka Klasycznego Rachunku Predykatów. Języki pierwszego rzędu.
Andrzej Wiśniewski Logika I Materiały do wykładu dla studentów kognitywistyki Wykład 11a. Składnia języka Klasycznego Rachunku Predykatów. Języki pierwszego rzędu. 1 Logika Klasyczna obejmuje dwie teorie:
PODSTAWY SZTUCZNEJ INTELIGENCJI
Katedra Informatyki Stosowanej Politechnika Łódzka PODSTAWY SZTUCZNEJ INTELIGENCJI Laboratorium PROGRAMOWANIE SYSTEMÓW EKSPERTOWYCH Opracowanie: Dr hab. inŝ. Jacek Kucharski Dr inŝ. Piotr Urbanek Cel ćwiczenia
Dedukcyjne bazy danych i rekursja
Dedukcyjne bazy danych i rekursja Wykład z baz danych dla studentów matematyki 23 maja 2015 Bazy danych z perspektywy logiki Spojrzenie na bazy danych oczami logika pozwala jednolicie opisać szereg pojęć.
Dedukcyjne bazy danych i rekursja
Dedukcyjne bazy danych i rekursja Wykład z baz danych dla studentów matematyki 27 maja 2017 Bazy danych z perspektywy logiki Spojrzenie na bazy danych oczami logika pozwala jednolicie opisać szereg pojęć.
Dedukcyjne bazy danych
Dedukcyjne bazy danych mgr inż. Olga Siedlecka olga@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Dedukcyjne bazy danych p.1/37 Plan seminarium Wprowadzenie Podstawy matematyczne Podstawowe
Programowanie w logice
Wydział Matematyki UŁ 14 marca 2007 Plan prezentacji 1 Składnia Termy Stałe Zmienne Struktury 2 Własny operator Przeciążanie operatorów 3 Arytmetyczne i logiczne predykaty systemowe 4 Do zapamiętania Termy
Projekt 4: Programowanie w logice
Języki Programowania Projekt 4: Programowanie w logice Środowisko ECL i PS e W projekcie wykorzystane będzie środowisko ECL i PS e. Dostępne jest ono pod adresem http://eclipseclp.org/. Po zainstalowaniu
Wprowadzenie do Prologa
Wprowadzenie do Prologa Rozdział 1 Tutorial Introduction Maciej Gapiński Dominika Wałęga Spis treści 1. Podstawowe informacje 2. Obiekty i relacje 3. Reguły 4. Fakty 5. Zapytania 6. Zmienne i stałe Podstawowe
Języki programowania deklaratywnego
Katedra Inżynierii Wiedzy laborki 14 Języki deklaratywne Główne różnice między paradygmatem deklaratywnym a imperatywnym Omów główne cechy paradygmatu programowania w logice na przykładzie Prologa Główne
Prolog (Pro-Logic) Programowanie w Logice. Dr inż. Piotr Urbanek
Prolog (Pro-Logic) Programowanie w Logice Dr inż. Piotr Urbanek Do czego służy ProLog? Używany w wielu systemach informatycznych związanych z: logiką matematyczną (automatyczne dowodzenie twierdzeń); przetwarzaniem
Adam Meissner SZTUCZNA INTELIGENCJA Problem spełnialności (SAT)
Instytut Automatyki, Robotyki i Inżynierii Informatycznej Politechniki Poznańskiej Adam Meissner Adam.Meissner@put.poznan.pl http://www.man.poznan.pl/~ameis SZTUCZNA INTELIGENCJA Problem spełnialności
Andrzej Wiśniewski Logika I Materiały do wykładu dla studentów kognitywistyki. Wykład 9. Koniunkcyjne postacie normalne i rezolucja w KRZ
Andrzej Wiśniewski Logika I Materiały do wykładu dla studentów kognitywistyki Wykład 9. Koniunkcyjne postacie normalne i rezolucja w KRZ 1 Inferencyjna równoważność formuł Definicja 9.1. Formuła A jest
Programowanie deklaratywne
Programowanie deklaratywne Artur Michalski Informatyka II rok Plan wykładu Wprowadzenie do języka Prolog Budowa składniowa i interpretacja programów prologowych Listy, operatory i operacje arytmetyczne
Elementy logiki. Wojciech Buszkowski Wydział Matematyki i Informatyki UAM Zakład Teorii Obliczeń
Elementy logiki Wojciech Buszkowski Wydział Matematyki i Informatyki UAM Zakład Teorii Obliczeń 1 Klasyczny Rachunek Zdań 1.1 Spójniki logiczne Zdaniem w sensie logicznym nazywamy wyrażenie, które jest
Adam Meissner.
Instytut Automatyki i Inżynierii Informatycznej Politechniki Poznańskiej Adam Meissner Adam.Meissner@put.poznan.pl http://www.man.poznan.pl/~ameis SZTUCZNA INTELIGENCJA Podstawy logiki pierwszego rzędu
Celem ćwiczenia jest zapoznanie się z podstawowymi możliwościami języka Prolog w zakresie definiowania faktów i reguł oraz wykonywania zapytań.
Paradygmaty Programowania Język Prolog Celem ćwiczenia jest zapoznanie się z podstawowymi możliwościami języka Prolog w zakresie definiowania faktów i reguł oraz wykonywania zapytań. Wstęp Prolog (od francuskiego
Programowanie w Logice
Programowanie w Logice Działanie Prologu Przemysław Kobylański na podstawie [CM2003] Składnia Programy Prologu składają się z termów. Term to stała, zmienna lub struktura (term złożony). Term zapisuje
JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.
IŚ ćw.8 JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript są zagnieżdżane w dokumentach HTML. Skrypt JavaScript
Metoda tabel semantycznych. Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji. Logika obliczeniowa.
Plan Procedura decyzyjna Reguły α i β - algorytm Plan Procedura decyzyjna Reguły α i β - algorytm Logika obliczeniowa Instytut Informatyki 1 Procedura decyzyjna Logiczna konsekwencja Teoria aksjomatyzowalna
Laboratorium przedmiotu Paradygmaty Programowania
Laboratorium przedmiotu Paradygmaty Programowania Laboratorium 9 Prolog podstawy 1. Podstawy Prologu Programowanie w Prologu polega na deklarowaniu: Faktów dotyczących pewnych obiektów z analizowanego
Systemy ekspertowe i ich zastosowania. Katarzyna Karp Marek Grabowski
Systemy ekspertowe i ich zastosowania Katarzyna Karp Marek Grabowski Plan prezentacji Wstęp Własności systemów ekspertowych Rodzaje baz wiedzy Metody reprezentacji wiedzy Metody wnioskowania Języki do
MATEMATYKA DYSKRETNA, PODSTAWY LOGIKI I TEORII MNOGOŚCI
MATEMATYKA DYSKRETNA, PODSTAWY LOGIKI I TEORII MNOGOŚCI Program wykładów: dr inż. Barbara GŁUT Wstęp do logiki klasycznej: rachunek zdań, rachunek predykatów. Elementy semantyki. Podstawy teorii mnogości
Metoda Tablic Semantycznych
Procedura Plan Reguły Algorytm Logika obliczeniowa Instytut Informatyki Plan Procedura Reguły 1 Procedura decyzyjna Logiczna równoważność formuł Logiczna konsekwencja Procedura decyzyjna 2 Reguły α, β,
Podstawy programowania w Pythonie
Podstawy programowania w Pythonie Wykład 5 dr Andrzej Zbrzezny Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie 7 listopada 2012 dr Andrzej Zbrzezny (IMI AJD) Podstawy programowania
Logika Stosowana. Wykład 1 - Logika zdaniowa. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017
Logika Stosowana Wykład 1 - Logika zdaniowa Marcin Szczuka Instytut Informatyki UW Wykład monograficzny, semestr letni 2016/2017 Marcin Szczuka (MIMUW) Logika Stosowana 2017 1 / 30 Plan wykładu 1 Język
Definicje. Algorytm to:
Algorytmy Definicje Algorytm to: skończony ciąg operacji na obiektach, ze ściśle ustalonym porządkiem wykonania, dający możliwość realizacji zadania określonej klasy pewien ciąg czynności, który prowadzi
Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].
ABAP/4 Instrukcja IF Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. [ELSEIF warunek. ] [ELSE. ] ENDIF. gdzie: warunek dowolne wyrażenie logiczne o wartości
Podstawy programowania 2. Temat: Funkcje i procedury rekurencyjne. Przygotował: mgr inż. Tomasz Michno
Instrukcja laboratoryjna 6 Podstawy programowania 2 Temat: Funkcje i procedury rekurencyjne Przygotował: mgr inż. Tomasz Michno Wstęp teoretyczny Rekurencja (inaczej nazywana rekursją, ang. recursion)
Semantyka rachunku predykatów
Relacje Interpretacja Wartość Spełnialność Logika obliczeniowa Instytut Informatyki Relacje Interpretacja Wartość Plan Plan Relacje O co chodzi? Znaczenie w logice Relacje 3 Interpretacja i wartościowanie
Elementy logiki matematycznej
Elementy logiki matematycznej Przedmiotem logiki matematycznej jest badanie tzw. wyrażeń logicznych oraz metod rozumowania i sposobów dowodzenia używanych w matematyce, a także w innych dziedzinach, w
Programowanie logiczne a negacja
Programowanie logiczne a negacja Adrian Woźniak 12 stycznia 2006r. SPIS TREŚCI Programowanie logiczne a negacja Spis treści 1 Wstęp 2 2 Wnioskowanie negatywnych informacji 2 2.1 Reguła CWA (Closed World
Języki programowania zasady ich tworzenia
Strona 1 z 18 Języki programowania zasady ich tworzenia Definicja 5 Językami formalnymi nazywamy każdy system, w którym stosując dobrze określone reguły należące do ustalonego zbioru, możemy uzyskać wszystkie
Tautologia (wyrażenie uniwersalnie prawdziwe - prawo logiczne)
Tautologia (wyrażenie uniwersalnie prawdziwe - prawo logiczne) Definicja 1: Tautologia jest to takie wyrażenie, którego wartość logiczna jest prawdą przy wszystkich możliwych wartościowaniach zmiennych
Języki programowania deklaratywnego
Katedra Inżynierii Wiedzy laborki 1 e-mail: przemyslaw.juszczuk@ue.katowice.pl Konsultacje: na stronie katedry + na stronie domowej Pokój 202c budynek A pjuszczuk.pl Języki deklaratywne - laborki Wprowadzenie
METODY DOWODZENIA TWIERDZEŃ I AUTOMATYZACJA ROZUMOWAŃ
METODY DOWODZENIA TWIERDZEŃ I AUTOMATYZACJA ROZUMOWAŃ KONWERSATORIUM 6: REZOLUCJA V rok kognitywistyki UAM 1 Kilka uwag terminologicznych Słuchacze zapewne pamiętają z zajęć dotyczących PROLOGu poniższą
III rok kognitywistyki UAM,
METODY DOWODZENIA TWIERDZEŃ I AUTOMATYZACJA ROZUMOWAŃ WYKŁAD 14: POWTÓRKA III rok kognitywistyki UAM, 2016 2017 Dzisiejszy wykład w całości poświęcony będzie omówieniu przykładowych zadań, podobnych do
Prolog 2 (Filip Wroński, Łukasz Betkowski, Paweł Świerblewski, Konrad Kosmatka)
Prolog 2 (Filip Wroński, Łukasz Betkowski, Paweł Świerblewski, Konrad Kosmatka) Rozdział 2 Constructing Prolog Programs z książki Prolog Programming in Depth autorstwa Michael A. Covington, Donald Nute,
Programowanie w Logice Przykłady programów. Przemysław Kobylański
Programowanie w Logice Przykłady programów Przemysław Kobylański Język Imperator 1 jest prostym językiem imperatywnym. Jego składnię opisuje poniższa gramatyka BNF: PROGRAM ::= PROGRAM ::= INSTRUKCJA ;
Programowanie deklaratywne i logika obliczeniowa
Programowanie deklaratywne i logika obliczeniowa Programowanie deklaratywne i logika obliczeniowa Wykład logika 12 godzin Dr hab. inż. Joanna Józefowska, prof. PP dyżur: poniedziałek 9.30-11.00 p. 10,
Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++
Programowanie Wstęp p do programowania Klasa 3 Lekcja 9 PASCAL & C++ Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany w postaci programu
SQL, LIKE, IN, CASE, EXISTS. Marcin Orchel
SQL, LIKE, IN, CASE, EXISTS Marcin Orchel Spis treści 1 LIKE 2 2 BETWEEN 4 3 IN 5 4 EXISTS 6 5 WYRAŻENIA CASE 7 6 Zadania 9 1 Rozdział 1 LIKE Predykat LIKE jest testem dopasowującym wzorzec łańcucha. Składnia
Wykład 4. Określimy teraz pewną ważną klasę pierścieni.
Wykład 4 Określimy teraz pewną ważną klasę pierścieni. Twierdzenie 1 Niech m, n Z. Jeśli n > 0 to istnieje dokładnie jedna para licz q, r, że: m = qn + r, 0 r < n. Liczbę r nazywamy resztą z dzielenia
Programowanie funkcyjne Wykład 13. Siła wyrazu rachunku lambda
Programowanie funkcyjne Wykład 13. Siła wyrazu rachunku lambda Zdzisław Spławski Zdzisław Spławski: Programowanie funkcyjne, Wykład 13. Siła wyrazu rachunku lambda 1 Wstęp Wartości logiczne Liczby naturalne
Przeszukiwanie z nawrotami. Wykład 8. Przeszukiwanie z nawrotami. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 238 / 279
Wykład 8 J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 238 / 279 sformułowanie problemu przegląd drzewa poszukiwań przykłady problemów wybrane narzędzia programistyczne J. Cichoń, P. Kobylański
5. OKREŚLANIE WARTOŚCI LOGICZNEJ ZDAŃ ZŁOŻONYCH
5. OKREŚLANIE WARTOŚCI LOGICZNEJ ZDAŃ ZŁOŻONYCH Temat, którym mamy się tu zająć, jest nudny i żmudny będziemy się uczyć techniki obliczania wartości logicznej zdań dowolnie złożonych. Po co? możecie zapytać.
Elementy Teorii Obliczeń
Wykład 2 Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie 10 stycznia 2009 Maszyna Turinga uwagi wstępne Maszyna Turinga (1936 r.) to jedno z najpiękniejszych i najbardziej intrygujacych
Technologie baz danych
Plan wykładu Technologie baz danych Wykład 2: Relacyjny model danych - zależności funkcyjne. SQL - podstawy Definicja zależności funkcyjnych Reguły dotyczące zależności funkcyjnych Domknięcie zbioru atrybutów
Uzgadnianie formuł rachunku predykatów
Składanie podstawień Plan wykładu Uzgadnianie Logika obliczeniowa Instytut Informatyki Plan wykładu Składanie podstawień 1 Składanie podstawień Podstawienie Motywacja Złożenie podstawień 2 Uzgadnianie
1 Wprowadzenie do algorytmiki
Teoretyczne podstawy informatyki - ćwiczenia: Prowadzący: dr inż. Dariusz W Brzeziński 1 Wprowadzenie do algorytmiki 1.1 Algorytm 1. Skończony, uporządkowany ciąg precyzyjnie i zrozumiale opisanych czynności
Reprezentacja wiedzy i wnioskowanie
i wnioskowanie Dariusz Banasiak Katedra Informatyki Technicznej Wydział Elektroniki Wiedza AI to nauka o komputerowych modelach wiedzy umożliwiających rozumienie, wnioskowanie i działanie. Inteligentne
Programowanie w logice
Programowanie w logice PROLOG cz.3 Predykat sprawdzający, czy podana lista stanowi początek innej listy: poczatek([],[_ _]). poczatek([h1 T1], [H2 T2]) :- H1 = H2, poczatek(t1,t2). ------------------------------------------------------------------------
Wykład 8. Rekurencja. Iterować jest rzeczą ludzką, wykonywać rekursywnie boską. L. Peter Deutsch
Wykład 8 Iterować jest rzeczą ludzką, wykonywać rekursywnie boską. Smok podsuszony zmok (patrz: Zmok). Zmok zmoczony smok (patrz: Smok). L. Peter Deutsch Stanisław Lem Wizja lokalna J. Cichoń, P. Kobylański
Zastosowanie logiki matematycznej w procesie weryfikacji wymagań oprogramowania
Zastosowanie logiki matematycznej w procesie weryfikacji wymagań oprogramowania Testerzy oprogramowania lub osoby odpowiedzialne za zapewnienie jakości oprogramowania oprócz wykonywania testów mogą zostać
Wprowadzenie do Sztucznej Inteligencji Laboratorium lista 0.2 Elementy języka Prolog: reguły i rekurencja. Przemysław Kobylański
Wprowadzenie do Sztucznej Inteligencji Laboratorium lista 0.2 Elementy języka Prolog: reguły i rekurencja Przemysław Kobylański Część I Wprowadzenie 1 Reguły Przypomnijmy z poprzedniej listy zadań fakty
Programowanie w języku C++ Grażyna Koba
Programowanie w języku C++ Grażyna Koba Kilka definicji: Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i zasad
STUDIUM PODYPLOMOWE INFORMATYKI SPI 51
STUDIUM PODYPLOMOWE INFORMATYKI SPI 51 ALGORYTMIKA I ROZWIĄZYWANIE PROBLEMÓW Temat: Kolorowanie figur (uproszczona wersja kolorowania map grafy). Zastosowanie: Edukacja wczesnoszkolna: matematyczna, plastyczna,
Poprawność algorytmów
Poprawność algorytmów Jeśli uważasz, że jakiś program komputerowy jest bezbłędny, to się mylisz - po prostu nie zauważyłeś jeszcze skutków błędu, który jest w nim zawarty. Jakie błędy można popełnić? Błędy
Rekurencyjna przeliczalność
Rekurencyjna przeliczalność Jerzy Pogonowski Zakład Logiki Stosowanej UAM www.logic.amu.edu.pl pogon@amu.edu.pl Funkcje rekurencyjne Jerzy Pogonowski (MEG) Rekurencyjna przeliczalność Funkcje rekurencyjne
Struktury formalne, czyli elementy Teorii Modeli
Struktury formalne, czyli elementy Teorii Modeli Szymon Wróbel, notatki z wykładu dra Szymona Żeberskiego semestr zimowy 2016/17 1 Język 1.1 Sygnatura językowa Sygnatura językowa: L = ({f i } i I, {P j
Elementy logiki. Algebra Boole a. Analiza i synteza układów logicznych
Elementy logiki: Algebra Boole a i układy logiczne 1 Elementy logiki dla informatyków Wykład III Elementy logiki. Algebra Boole a. Analiza i synteza układów logicznych Elementy logiki: Algebra Boole a
Logika stosowana. Ćwiczenia Programowanie w logice i PROLOG. Marcin Szczuka. Instytut Informatyki, Uniwersytet Warszawski
Logika stosowana Ćwiczenia Programowanie w logice i PROLOG Marcin Szczuka Instytut Informatyki, Uniwersytet Warszawski Wykład monograficzny w semestrze letnim 2018/2019 Marcin Szczuka (MIMUW) Logika stosowana
Podstawy Sztucznej Inteligencji (PSZT)
Podstawy Sztucznej Inteligencji (PSZT) Paweł Wawrzyński Wnioskowanie logiczne i systemy eksperckie Systemy posługujące się logiką predykatów: część 3/3 Dzisiaj Uogólnienie Poprawność i pełność wnioskowania
Programowanie w logice Prolog 2
Programowanie w logice Prolog 2 Listy Lista to uporządkowany ciąg elementów. Elementami listy mogą być dowolne terminy: stałe, zmienne i struktury W Prologu listę zapisujemy następująco: Przykłady [element1,element2,,elementn]
Wykład 1. Informatyka Stosowana. 3 października Informatyka Stosowana Wykład 1 3 października / 26
Wykład 1 Informatyka Stosowana 3 października 2016 Informatyka Stosowana Wykład 1 3 października 2016 1 / 26 Wykłady : 45h (w semestrze zimowym) ( Egzamin) 30h (w semetrze letnim ) ( Egzamin) Zajęcia praktyczne:
Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 1. Programowanie komputerowe
Wydział Zarządzania AGH Katedra Informatyki Stosowanej Podstawy VBA cz. 1 Programowanie 1 Program wykładu Struktura programu Instrukcja przypisania Wprowadzanie danych Wyprowadzanie wyników Instrukcja
Reguły gry zaliczenie przedmiotu wymaga zdania dwóch testów, z logiki (za ok. 5 tygodni) i z filozofii (w sesji); warunkiem koniecznym podejścia do
Reguły gry zaliczenie przedmiotu wymaga zdania dwóch testów, z logiki (za ok. 5 tygodni) i z filozofii (w sesji); warunkiem koniecznym podejścia do testu z filozofii jest zaliczenie testu z logiki i zaliczenie
Rachunek predykatów. Formuły rachunku predykatów. Plan wykładu. Relacje i predykaty - przykłady. Relacje i predykaty
Rachunek predykatów Wykład 4 Plan wykładu Relacje i predykaty Formuły rachunku predykatów Interpretacje Logiczna równoważność Metoda tabel Modele skończone i nieskończone Rozstrzygalność Relacje i predykaty
Adam Meissner STUCZNA INTELIGENCJA
Instytut Automatyki i Inżynierii Informatycznej Politechniki Poznańskiej Adam Meissner Adam.Meissner@put.poznan.pl http://www.man.poznan.pl/~ameis STUCZNA INTELIGENCJA Elementy programowania w logice Literatura
KONKURS MATEMATYCZNY KOMA 2018
ELIMINACJE SZKOLNE RACHUNEK LAMBDA NOTATKI Z WYKŁADU - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Wykład 6. Reguły inferencyjne systemu aksjomatycznego Klasycznego Rachunku Zdań
Andrzej Wiśniewski Logika I Materiały do wykładu dla studentów kognitywistyki Wykład 6. Reguły inferencyjne systemu aksjomatycznego Klasycznego Rachunku Zdań System aksjomatyczny logiki Budując logikę
Języki i metody programowania
Języki i metody programowania Wykład 3 dr hab. Bożena Woźna-Szcześniak bwozna@gmail.com Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie hab. Andrzeja Zbrzezngo Wartości boolowskie
4. Funkcje. Przykłady
4. Funkcje Przykłady 4.1. Napisz funkcję kwadrat, która przyjmuje jeden argument: długość boku kwadratu i zwraca pole jego powierzchni. Używając tej funkcji napisz program, który obliczy pole powierzchni
Systemy ekspertowe. Wnioskowanie w systemach regułowych. Część piąta. Autor Roman Simiński.
Część piąta Autor Roman Simiński Kontakt siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie zastąpi uważnego w nim uczestnictwa.
JAVAScript w dokumentach HTML (1)
JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript mogą być zagnieżdżane w dokumentach HTML. Instrukcje JavaScript
Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje
Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje Opracował: Zbigniew Rudnicki Powtórka z poprzedniego wykładu 2 1 Dokument, regiony, klawisze: Dokument Mathcada realizuje
Internet Semantyczny i Logika I
Internet Semantyczny i Logika I Warstwy Internetu Semantycznego Dowód Zaufanie Logika OWL, Ontologie Podpis cyfrowy RDF, schematy RDF XML, schematy XML przestrzenie nazw URI Po co nam logika? Potrzebujemy
Programowanie funkcyjne wprowadzenie Specyfikacje formalne i programy funkcyjne
Programowanie funkcyjne wprowadzenie Specyfikacje formalne i programy funkcyjne dr inż. Marcin Szlenk Politechnika Warszawska Wydział Elektroniki i Technik Informacyjnych m.szlenk@elka.pw.edu.pl Paradygmaty
Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu
Programowanie strukturalne Opis ogólny programu w Turbo Pascalu STRUKTURA PROGRAMU W TURBO PASCALU Program nazwa; } nagłówek programu uses nazwy modułów; } blok deklaracji modułów const } blok deklaracji
Podstawy programowania. Wykład: 13. Rekurencja. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
Podstawy programowania Wykład: 13 Rekurencja 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Rekurencja - pojęcie 2 Rekurencja - pojęcie Rekurencja (rekursja) wywołanie
R. D. Tennent, The Denotational Semantics of Programming Languages [1976]
R. D. Tennent, The Denotational Semantics of Programming Languages [1976] Programowanie 2009 - seminarium grupy zaawansowanej Instytut Informatyki Uniwersytetu Wrocławskiego 1 lipca 2009 1 Motywacja Funkcje
Podstawy języka PROLOG
Dariusz Banasiak Katedra Informatyki Technicznej Wydział Elektroniki PROLOG akronim od PROgramming in LOGic Prolog został stworzony w 1971 przez Alaina Colmeraurera i Philipa Roussela. Podstawy teoretyczne
Algorytmy zapisywane w pseudojęzyku programowania. Klasa 2 Lekcja 6
Algorytmy zapisywane w pseudojęzyku programowania Klasa 2 Lekcja 6 Dlaczego stosujemy pseudojęzyk? Każdy język j programowania określa pewną notację,, służąs żącą do zapisywania tekstu programu. Zanim
Dariusz Banasiak. Instytut Informatyki, Automatyki i Robotyki. Politechniki Wrocławskiej
Dariusz Banasiak Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej PROLOG akronim od PROgramming in LOGic Prolog został stworzony w 1971 przez Alaina Colmeraurera i Philipa Roussela.
Bazy danych Algebra relacji Wykład dla studentów matematyki
Bazy danych Algebra relacji Wykład dla studentów matematyki 8 marca 2015 Algebra relacji Model teoretyczny do opisywania semantyki relacyjnych baz danych, zaproponowany przez T. Codda (twórcę koncepcji
Zadanie 1. Suma silni (11 pkt)
2 Egzamin maturalny z informatyki Zadanie 1. Suma silni (11 pkt) Pojęcie silni dla liczb naturalnych większych od zera definiuje się następująco: 1 dla n = 1 n! = ( n 1! ) n dla n> 1 Rozpatrzmy funkcję
1. Wstęp do logiki. Matematyka jest nauką dedukcyjną. Nowe pojęcia definiujemy za pomocą pojęć pierwotnych lub pojęć uprzednio wprowadzonych.
Elementy logiki i teorii zbiorów. 1. Wstęp do logiki. Matematyka jest nauką dedukcyjną. Nowe pojęcia definiujemy za pomocą pojęć pierwotnych lub pojęć uprzednio wprowadzonych. Pojęcia pierwotne to najprostsze
Nazwa wariantu modułu (opcjonalnie): Laboratorium programowania w języku C++
Uniwersytet Śląski w Katowicach str. 1 Kierunek i poziom studiów: Chemia, poziom pierwszy Sylabus modułu: Laboratorium programowania (0310-CH-S1-019) Nazwa wariantu modułu (opcjonalnie): Laboratorium programowania
Dana jest baza: kobieta(katarzyna). kobieta(anna). kobieta(maria). kobieta(marianna). kobieta(marta). Zdefiniujemy predykat kobiety/0 następująco:
STEROWANIE PROCESEM WNIOSKOWANIA. Predykat true/0 fail/0 cut/0 lub! not( W) lub \+W repeat/0 Objaśnienie zawsze spełniony, deterministyczny zawsze zawodzi, deterministyczny odcięcie; zawsze spełniony spełniony,
Obliczenia inspirowane Naturą
Obliczenia inspirowane Naturą Wykład 01 Modele obliczeń Jarosław Miszczak IITiS PAN Gliwice 05/10/2016 1 / 33 1 2 3 4 5 6 2 / 33 Co to znaczy obliczać? Co to znaczy obliczać? Deterministyczna maszyna Turinga
Instalacja Pakietu R
Instalacja Pakietu R www.r-project.org wybór źródła wybór systemu operacyjnego: Download R for Windows opcja: install R for the first time opcja: Download R 3.3.3 for Windows uruchomienie R-3.3.3-win MAGDA
Matematyczne Podstawy Informatyki
Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Gramatyki bezkontekstowe I Gramatyką bezkontekstową
Rekurencja (rekursja)
Rekurencja (rekursja) Rekurencja wywołanie funkcji przez nią samą wewnątrz ciała funkcji. Rekurencja może być pośrednia funkcja jest wywoływana przez inną funkcję, wywołaną (pośrednio lub bezpośrednio)