1.1.5 Wybrane elementy teorii analizy tekstów
|
|
- Kacper Kowalczyk
- 7 lat temu
- Przeglądów:
Transkrypt
1 1.1.5 Wybrane elementy teorii analizy tekstów Poprzednie podrozdziały przedstawiły dwie podstawowe metody formalizacji: formalizację języka danej dziedziny wiedzy oraz formalizację dziedziny wiedzy opisanej matematycznie jako wielosortowa struktura relacyjna. Pokazane przykłady formalizacji ujawniły nam jednak, Ŝe formalizacja dokonywana jest z wykorzystaniem innej wiedzy niŝ wiedza, którą reprezentujemy wykorzystujemy dodatkowo wiedzę o tym jak rozumieć formalnie (logicznie) opisywane reprezentacje wiedzy z danej dziedziny (obrazy, napisy, tabele decyzyjne itp.). ZauwaŜmy, Ŝe w kaŝdym obiekcie reprezentującym wiedzę W moŝe być reprezentowana takŝe wiedza o odniesieniach do wiedzy W, jak i wiedza o tworzeniu (produkcji, konstruowaniu, budowie) tych reprezentacji; ta dodatkowa wiedza jest niezbędna do tego, aby człowiek (agent) dysponując konkretną reprezentacją wiedzy W mógł wiedzę W pozyskać i zrozumieć (ogólnie, przetwarzać tę wiedzę). JeŜeli jakiś konkretny obiekt słuŝący do reprezentacji wiedzy obejmuje wszystkie wyŝej opisane reprezentacje wiedzy: reprezentacje danej wiedzy, reprezentacje wiedzy na jaką wskazują te reprezentacje oraz reprezentacje o budowaniu reprezentacji wiedzy, to te reprezentacje będziemy nazywali tekstami (obiekty zawierające wszystkie z wymienionych typów reprezentacji nazywamy znakami). Przykładami obiektów zawierających czy udostępniających teksty są konkretne ksiąŝki, teksty dowodów twierdzeń czy wyszukiwarki internetowe. W ramach nauki logika, systemy wiedzy o tekstach (znakach) reprezentujących wiedzę i odnoszących się do wiedzy z danej dziedziny wiedzy nazywane są systemami tekstowymi (systemami znakowymi) lub systemami semiotycznymi w dziedzinie logiki zwanej semiotyką. Np. systemami tekstowymi są: wcześniej określana w systemie multimedialnym dowolna rzeczywistość wirtualna, a takŝe system znaków drogowych ustawionych na ulicach miasta, system tekstów mowy pisanej, reprezentującej słownictwo oraz zasady pisowni i zasady gramatyki, system określający język w lingwistyce matematycznej czy teorii automatów, system tekstów definiujących język programowania, systemy notacji języka formalnego sieci semantyczne, systemy BNF, drzew wyprowadzeń oraz drzew struktur budowy formuł. W 1981 r. została wydana ksiąŝka Witolda Marciszewskiego Metody analizy tekstu naukowego. ChociaŜ praca ta była przygotowana dla wydawnictwa jako poradnik, czy przewodnik po wskazanej w tytule ksiąŝki dziedzinie wiedzy, poradnik przeznaczony dla nauczycieli akademickich i studentów, to prezentowała ona takŝe nowatorskie idee oraz wytyczała nowe kierunki badań. Zwłaszcza prekursorskie było zaproponowanie, jako głównego
2 celu logicznej analizy tekstu, badania logicznego związku pomiędzy tematem (tekstem lub symbolem nieterminalnym) a rematem (tekstem lub symbolem terminalnym), tj. pomiędzy tymi fragmentami tekstu, które reprezentują wiedzę potrzebną do wyznaczenia i reprezentowania innej wiedzy, a tymi fragmentami tekstu, które reprezentują wiedzę wyznaczoną na podstawie tematu (symbolu nieterminalnego). W tym ujęciu, istotą logicznej poprawności jednostki tekstu jest występowanie logicznego stosunku pomiędzy tematem (symbolem nieterminalnym) i rematem (symbolem terminalnym). Ten związek logiczny ustala się dokonując formalnego opisu relacji określających zwartość tematyczną tekstów z danej dziedziny wiedzy, do której analizowany tekst naleŝy. Analizowane relacje zwane są relacjami nawiązywania. Na podstawie tych relacji jedne teksty są wyprowadzane z drugich, adekwatnie do wyznaczania jednej wiedzy przez drugą. W sensie wyprowadzalności tekstów, w dowolnym wyprowadzeniu jedne teksty są następnikami innych, w tym teksty wyprowadzane (rematy) są następnikami tekstów (tematów), z którymi pozostają w relacji nawiązywania. Relacja bycia następnikiem ustala pewien porządek tekstów, umoŝliwiający wykorzystanie do badania struktury tematycznej tekstu aparatu pojęciowego teorii krat. Ze względu na znaczenie pojęć tematu i rematu dla analizy tekstu, postuluje się utworzenie teorii, którą Autor omawianej pracy proponuje nazwać logiczną teorią tekstu. Standardowe procedury logicznej analizy tekstu mogły być rozpoznane dzięki określaniu języków programowania i zastosowaniom tych języków do implementacji algorytmów rozwiązujących zadania informatyczne, np. w programowaniu logicznym języka Prolog, czy bardziej dojrzałej postaci tego języka - języka Turbo Prolog 1. Języki programowania określa się uŝywając symboli nieterminalnych (tematów) oznaczających operacje tworzące słowa języka z symboli terminalnych (rematów). Działanie wyszukiwarki internetowej wiąŝe podany prze uŝytkownika temat poszukiwań z z rematem wynikiem tych poszukiwań. Definicja tekstu w edytorze TEX jest tematem edycji, a rematem jest wynik kompilacji tej definicji przez stosowny program edytora. W informatyce sformułowanie zadania (problemu) zawiera: dane wejściowe, stanowiące temat zadania oraz dane wyjściowe, stanowiące jego remat. W zapisie programu, tematy są zaimplementowane jako ciągi instrukcji przetwarzających dane wejściowe w dane wyjściowe, rematy są określone przez instrukcji określające, które z uzyskanych danych są wyjściowe oraz instrukcje ustalające zatrzymanie realizacji programu (instrukcje stop ). Istotą programowania logicznego jest, jak się zazwyczaj postuluje: 1) taka formalizacja tekstu zadania, wyraŝonego w języku jakiejś dziedziny wiedzy, która reprezentuje (wyraŝa, przedstawia) wiedzę logiczną o danych i faktach, do których odwołuje się (nawiązuje) tekst zadania, a więc reprezentacja tego co jest dla tego tekstu i dla danej dziedziny wiedzy 1 Przystępne wprowadzenie do programowania w języku Turbo Prolog moŝna znaleźć w: J. Szajna, M. Adamski, T. Kozłowski, Programowanie w języku logiki, Warszawa 1991.
3 tematem, utoŝsamianym w programowaniu logicznym z siecią semantyczną, 2) formalizacja relacji nawiązywania, ustalających sekwencje operacji prowadzących od danych i faktów do innych danych i faktów lub do nowych danych (szukanych) i ustaleń (tj. do rematu); w programowaniu logicznym sekwencjom tych operacji odpowiada przestrzeń rozwiązań, a zbiorowi relacji nawiązywania - baza wiedzy, 3) formalizacja wszystkich faktów określonych przez relacje nawiązywania występujące w tekście zadania; w programowaniu logicznym reprezentacji tych faktów odpowiada dynamiczna baza danych, 4) formalizacja zbioru danych, niekoniecznie występujących w tekście zadania, do których trzeba się odwołać, aby uzyskać to co jest szukane; w programowaniu logicznym odpowiada temu zewnętrzna baza danych, formalizacja zapytań, określających to co szukane i co ma być ustalone, a więc reprezentacja tego co jest dla danego tekstu zadania rematem. Podsumowując rozwaŝania dotyczące formalizacji naszkicujemy aparat pojęciowy umoŝliwiający sformułowanie logicznej teorii tekstu, podając stosowne postulaty znaczeniowe w języku teorii mnogości. Przez wiedzę będziemy rozumieć, jak poprzednio, informację przetwarzaną w umyśle człowieka, a przez reprezentację wiedzy, przedstawianie (kodowanie) wiedzy za pomocą róŝnorakich środków w ramach systemów komunikacji międzyludzkiej. Reprezentacje wiedzy są więc tekstami. Zrelatywizowanie reprezentacji wiedzy do dziedzin wiedzy prowadzi do wyodrębnienia tekstowych dziedzin wiedzy, a wyraŝanie tych tekstów w jakimś języku, do wyodrębnienia języka dziedziny wiedzy. Gdy wszystkie równokształtne teksty reprezentują tę samą wiedzę (w szczególności są pusto spełnione), a równokształtność jest kongruencją w tekstowej dziedzinie wiedzy, to tekstową dziedzinę wiedzy nazywamy systemem reprezentacji wiedzy Analiza tekstu w tekstowej dziedzinie wiedzy Strukturę relacyjną < U, U 0, ε, R> nazywamy tekstową dziedziną wiedzy, gdy U jest niepustym zbiorem wszystkich tekstów reprezentujących wiedzę z pewnej dziedziny, U 0 wyróŝnionym niepustym podzbiorem zbioru U zwanym bazą tekstową, ε jest relacją częściowego porządku określoną na zbiorze U zwaną relacją bycia częścią tekstów, a R jest ustalonym zbiorem relacji określonych w U zwanych relacjami nawiązywania tekstów.
4 Niech TDW = < U, U 0, ε, R> jest tekstową dziedziną wiedzy. (a) Dwa teksty α,β U są równokształtne, gdy dwie struktury relacyjne powstałe przez ograniczenie uniwersum struktury TDW odpowiednio do zbiorów {t U : t ε α}, {t U : t ε β}, są izomorficzne oraz części tekstu α pozostają w tych samych relacjach w strukturze TDW co ich obrazy izomorficzne będące częściami tekstu β. (b) Tekst α jest wyprowadzalny ze zbioru tekstów X U, co zapisujemy X - R α, gdy istnieje taki tekst β, zwany wyprowadzeniem tekstu α ze zbiory X, i istnieje taki ciąg tekstów α 1, α 2,..., α n U, Ŝe spełnione są warunki (1) teksty α 1, α 2,..., α n zawarte są w tekście β, (2) α n = α, (3) dla dowolnych i n: bądź α i X, bądź istnieją takie i 1, i 2,..., i k < i oraz istnieje taka relacja r R, Ŝe <α i1, α i2,..., α ik,, α i > r (4) β jest najmniejszym tekstem w <U, ε > spełniającym warunki (1)-(3). (c) Ramą zbioru tekstów X U jest zbiór Fr(X) = {α U : X - R α } (d) Poprawnie zbudowanymi są teksty naleŝące do zbioru Fr(U 0 ). (e) Dla dowolnych tekstów α, β U, α β wttw istnieje taki zbiór X tekstów, Ŝe β X i X - R α i nieprawdą jest X\{β} - R α, napis α β czytamy: α nawiązuje do β, lub α jest następnikiem β, (f) Dla dowolnego tekstu α U, zbiór Parts(α) = {t U : t ε α} zwany jest budową tekstu α. (g) Tekst β jest rematem tekstu α wttw β Fr(U 0 ), α β, β Parts(α) oraz nie istnieje taki tekst t Parts(α), Ŝe t β; innymi słowy: tekst β jest rematem tekstu α, gdy jest wyprowadzalny z tekstów bazowych (nawiązuje do tych tekstów), jest częścią właściwą tekstu α oraz Ŝadna część tekstu α nie jest jego następnikiem; intuicyjnie, remat danego tekstu jest tą jego częścią, która nie słuŝy do zrozumienia innych części tego tekstu, a jedynie sama moŝe być zrozumiana dzięki nawiązaniu do wcześniejszych tekstów, (h) Tekst t jest tematem tekstu α wttw t Fr(U 0 ), α t, t Parts(α) oraz kaŝdy następnik t naleŝący do Parts(α) jest rematem α; innymi słowy: tekst t jest tematem tekstu α, gdy jest jego częścią właściwą, której kaŝdy następnik będący częścią α jest rematem; intuicyjnie, tematem danego tekstu jest kaŝda jego właściwa część, która słuŝy do zrozumienia rematu tego tekstu, tak więc, aby zrozumieć remat nawiązujemy najpierw do tematów, a następnie do tekstów, z których tematy są wyprowadzone, (i) Dowolny tekst jest jednostką tekstu, gdy posiada w swojej budowie rematy i tematy oraz gdy ze zbioru wszystkich tematów tego tekstu wyprowadzalny jest kaŝdy z rematów. ZauwaŜmy, Ŝe dowolne wyprowadzenie tekstu poprawnie zbudowanego jest jednostką tekstu.
5 Definicja systemu reprezentacji wiedzy WaŜne jest takŝe stwierdzenie, Ŝe dla dowolnej tekstowej dziedziny wiedzy TDW, w której wszystkie równokształtne teksty reprezentują tę samą wiedzę, jeŝeli relacja ~ równokształtności tekstów jest kongruencją w TDW (tj. zachodzenie relacji pomiędzy danymi tekstami przechodzi na zachodzenie tych samych relacji pomiędzy tekstami równokształtnymi do odpowiednich danych tekstów, np. jeśli relacja(tekst1, tekst2) i tekst1~tekst1 oraz tekst2~tekst2, to relacja(tekst1, tekst2 )), to struktura ilorazowa TDW/~ jest takŝe tekstową dziedziną wiedzy. Uzasadnione jest więc sformułowanie następującej definicji: Niech w tekstowej dziedzinie wiedzy TDW wszystkie równokształtne teksty reprezentują tę samą wiedzę, a relacja ~ równokształtności tekstów jest kongruencją w TDW. Wtedy strukturę ilorazową TDW/~ nazywamy systemem reprezentacji wiedzy, relacje nawiązywania nazywamy relacjami konkatenacji, a o wyprowadzeniu danego tekstu mówimy, Ŝe jest konkatenacją pewnego ciągu tekstów określonego przez definicję wyprowadzenia tekstu. Tekstami są typy, tj. zbiory wszystkich tekstów równokształtnych w TDW Definicja języka sformalizowanego Przyjmijmy dalej, Ŝe wiedza logiczna jest informacją przetwarzaną w umyśle identyfikującą ogólną budowę, cechy i przyporządkowania wszelkich obiektów odnoszących się do danej dziedziny wiedzy oraz identyfikującą relacje pomiędzy tymi obiektami. Język, w którym przedstawiamy schematycznie, za pomocą schematów, tj. formuł, wzorów, planów, diagramów itp., wiedzę logiczną nazywamy językiem sformalizowanym. Język ten jest określony przez cztery zbiory symboli < Al, Tr, Fm, W>, Al jest alfabetem, Tr zbiorem termów, Fm zbiorem formuł, a W jest rodziną zbiorów formuł takich, Ŝe do kaŝdego z tych zbiorów naleŝą formuły reprezentujące wiedzę o tej samej wartości logicznej. Alfabet składa się ze stałych i zmiennych indywiduowych, będących zarazem termami, symboli funkcyjnych wiąŝących stałe i zmienne w termy, predykatów wiąŝących stałe i zmienne w formuły, spójników wiąŝących formuły w inne formuły, kwantyfikatorów wiąŝących zmienne i formuły w inne formuły oraz symboli pomocniczych (np. nawiasów, ramek, kropek, linii, strzałek itd.). Przykładem języka sformalizowanego jest język będący wynikiem formalizacji (schematyzacji) języka dowolnej dziedziny wiedzy.
6 Definicja systemu reprezentacji wiedzy Systemem reprezentacji wiedzy logicznej nazywamy system reprezentacji wiedzy, w którym zbiorem tekstów bazowych jest zbiór wszystkich symboli języka sformalizowanego, a zbiór relacji konkatenacji pozwala 1) wyróŝnić wszystkie składniki języka sformalizowanego, 2) wyprowadzić formuły poprawnie zbudowane, 3) tworzyć teksty wywodów prowadzących od formuł o określonej wartości logicznej do formuł o określonej wartości logicznej (niezmienniczość wartości logicznych względem wywodów). Systemy reprezentacji wiedzy logicznej są niekiedy nazywane logikami. W podrozdziale 1.2 określimy system zwany logiką pierwszego rzędu Pojęcie języka w lingwistyce matematycznej Najprostszymi przykładami systemów tekstowych w lingwistyce matematycznej lub teorii automatów skończonych albo teorii obliczeń (takŝe teorii algorytmów) są systemy dla których określamy pewne języki sformalizowane zwane językami abstrakcyjnymi, krótko językami. Niech V jest dającym się określić zbiorem, zwanym alfabetem, którego elementy nazywane są literami, dowolne ciągi liter słowami. KaŜdą literę moŝna utoŝsamiać ze słowem. Alfabet jest tak określony, Ŝe moŝna w nim wyróŝnić jedną literę oznaczaną symbolem Λ. Słowo zbudowane tylko z litery Λ nazywa się słowem pustym. Liczbę liter w słowie określa się jako liczbę liter l(x) w ciągu x, ale dla słowa pustego przyjmuje się: l(λ)=0. Dalej, określa się relację dwuargumentową zwaną konkatenacją w taki sposób, Ŝe dla dwu dowolnych słów x, y konkatenacją jest słowo będące sklejeniem tych słów oznaczane xy lub x y. Przyjmuje się dla dowolnego słowa x, Ŝe Λx = xλ = x. Posługując się słowem pustym moŝna w sposób prosty zdefiniować zawieranie się słowa x w słowie y: x zawiera się w y wtedy i tylko wtedy, gdy istnieją takie słowa w 1, w 2, Ŝe y=w 1 xw 2. Zbiór V* zwany zbiorem słów nad alfabetem V moŝemy określić takŝe rekurencyjnie: S1. Λ V*, S2. s V* x V xs, S3. nic innego nie jest słowem. Podobnie, długość l(x) słowa x moŝna określić rekurencyjnie: L1. l(λ) = 0, L2. x V s V* l(xs) = 1+l(s).
7 Dowolny podzbiór L zbioru słów V* nazywamy językiem abstrakcyjnym lub krótko językiem. Niech zbiór T V jest zbiorem liter zwanych literami terminalnymi. Litery, które nie są terminalne będziemy nazywać nieterminalnymi. WyróŜnijmy jedno słowo nieterminalne S. Słowo to nazywamy wyjściowym. Określmy funkcję częściową π przyporządkowującą pewnym słowom pewne litery nieterminalne. Funkcję π nazywamy operacją przypisania słów literom nieterminalnym. Przypisanie słowa s literze nieterminalnej M, jako słowu, nazywamy regułą produkcji i oznaczamy: M::=s lub M s. Wprowadzamy następującą operację wyprowadzalności: słowo s 2 jest wyprowadzane ze słowa s 1 wtedy i tylko wtedy, gdy dla pewnej reguły produkcji M::=s jeśli M jest literą naleŝąca do słowa s 1 i zastąpimy ją w kaŝdym miejscu, gdzie występuje w słowie s 1 przez słowo s, to w wyniku tego postawienia otrzymamy słowo s 2. JeŜeli dla słowa s 1 Ms 2 zastosujemy regułę M::=s, to otrzymamy słowo s 1 ss 2. Układ G = <V, T, S, π> nazywamy gramatyką bezkontekstową. PoniewaŜ, dla operacji przypisania, kaŝdemu słowu naleŝącemu do dziedziny tej operacji, odpowiada litera nieterminalna, która moŝe teŝ być słowem naleŝącym do dziedziny operacji przypisania, więc moŝna iterować (wielokrotnie stosować) operację przypisania do danego słowa. Gdy po tych iteracjach operacji przypisania, dla danego słowa przypisanego słowu wyjściowemu S, moŝna przekształć to słowo w słowo będące konkatenacją tyko symboli terminalnych, to takie słowo nazywać będziemy akceptowalnym lub generowanym przez gramatykę G. Zbiór słów w tym sensie akceptowalnych określa język bezkontekstowy L(G). Przykład Zbiór V = {Λ, S, A, B, 0, 1}, gdzie T = {0, 1} z regułami produkcji: S::= SAB, S::= Λ A::= 0, B::= 1 określa gramatykę bezkontekstową języka bezkontekstowego L V*. PokaŜemy, Ŝe słowo 0101 jest generowane przez tę gramatykę (akceptowalne). 1. S słowo wyjściowe, 2. SAB Reg. S::= SAB,
8 3. S0B Reg. A::= 0, 4. S01 Reg. B::= 0, 5. SAB01 Reg. S::= SAB, 6. S0B01 Reg. A::= 0, 7. S0101 Reg. B::= 0, 8. Λ0101 Reg. S::= Λ 0101 z Λ0101=0101 na podstawie własności konkatenacji. Przykład Implementacja powyŝszego przykładu w języku Turbo Prolog PREDICATES /*deklaracje predykatów */ litera_alfabetu(string) /*predykat uznający litery w jednoelementowych łańcuchach za litery budowanego języka */ litera_terminalna(string) /*predykat ustalajacy, Ŝe litera w jednoelementowym łańcuchu jest literą terminalną */ słowo(string) /* predykat ustalający, Ŝe łańcuch liter jest słowem */ CLAUSES /*deklaracja formuł klauzul faktów i reguł */ /* deklaracja liter alfabetu */ litera_alfabetu(""). /* "" - słowo puste */ litera_alfabetu("s"). litera_alfabetu("a"). litera_alfabetu("b"). litera_alfabetu("0"). litera_alfabetu("1"). /* deklaracja liter terminalnych */ litera_terminalna("0"). litera_terminalna("1"). /* deklaracja słów */ słowo(x) :- litera_alfabetu(x). słowo(z) :- słowo(x), słowo(y), concat(x,y,z).
9 /* concat(x,y,z) jest standardowym zapisem tworzącym dla łańcuchów słów X, Y ich konkatenację Z=XY lub dla X,Z znajdujący Y, lub dla Y,Z znajdujący X */ Przykład Relacje i operacje na tekstach (łańcuchach znaków, słowach języka) PREDICATES zawieranie(string,string) /* zawieranie(t1,t2) tekst T1 zawarty jest w tekście T2, np. tekst bc zawarty jest w tekście aabcd */ podstawienie(string,string,string,string) /* podstawienie(t1,t2,t3,t4) tekst T4 jest wynikiem podstawienia tekstu T1 za tekst T2 w tekście T3 na pierwszym miejscu, na którym tekst T2 występuje w tekście T3. Np. tekst aabbc jest wynikiem podstawienie tekstu a za tekst b na pierwszym miejscu w tekście abbbc, gdzie tekst b występuje */ poczatek(string,string,string) /* poczatek(t1,t2,p) tekst P jest częścią tekstu T2 poprzedzającą występowanie w nim tekstu T1 */ koniec(string,string,string) /* koniec(t1,t2,p) tekst P jest częścią tekstu T2 następującą po występowaniu w nim tekstu T1 */ podstawienie_globalne(string,string,string,string) /* podstawienie_globalne(t1,t2,t3,t4) tekst T4 jest wynikiem podstawienia tekstu T1 za tekst T2 w tekście T3 w kaŝdym miejscu, na którym tekst T2 występuje w tekście T3. Np. tekst aaaac jest wynikiem podstawienie tekstu a za tekst b w kaŝdym miejscu w tekście abbbc, gdzie tekst b występuje */ cyfra(string)
10 /* predykat cyfra(t)rozpoznaje wśród łańcuchów znaków cyfry: 0, 1,... 9 */ ciag_cyfr(string) /* predykat ciag_cyfr(t)rozpoznaje wśród łańcuchów znaków ciągi cyfr: np. 019 */ ciag_cyfr_w_tekscie(string,string,string) /* ciag_cyfr_w_tekscie(t,l,r) L jest ciągiem cyfr na początku tekstu T, a R jest pozostałą częścią tekstu T */ napis_liczby(string) /* predykat napis_liczby(t) rozpoznaje wśród ciągów cyfr napisy liczb, tj. ciągi cyfr nie zaczynające się od cyfry 0 */ napis_liczby_w_tekscie(string,string,string) /* - predykat rozpoznaje na początku tekstu napis liczby oraz wyróŝnia pozostałą część takstu */ CLAUSES % % ZAWIERANIE TEKSTÓW % zawieranie("",""). zawieranie(t1,t2):- T2<>"",concat(T1,_,T2); T2<>"",frontStr(1,T2,_,N_T2), zawieranie(t1,n_t2). /* występowanie w argumencie formuły atomowej symbolu _ oznacza, Ŝe istnieje jakaś wartość tego argumentu przy której formuła ta zachodzi; wyraŝenie postaci frontstr(1,t2,_,n_t2)oznacza, Ŝe z tekstu T2 została pobrana pierwsza litera i reszta po pobraniu tej litery jest tekstem N_T2;
11 zawieranie tekstów zostało określone rekurencyjnie: 1) tekst pusty zawiera się w tekście pustym, 2) zawieranie tekstu T1 w tekście T2 zachodzi, gdy istnieje jakiś tekst taki, Ŝe konkatenacja T1 z tym tekstem daje tekst T2, jeśli tak nie jest, to sprawdzamy ten warunek po popraniu a tekstu T2 pierwszej litery, a pobieranie liter powtarzamy do momentu uzyskania zawierania, lub do momentu otrzymania tekstu pustego, a wtedy zawieranie nie zachodzi */ T2<>"",concat(T1,K,T2),!; T2<>"",frontStr(1,T2,_,N_T2), koniec(t1,n_t2,k). /* prosimy o wyjaśnienie powyŝszej reguły: określenie tekstu K, który przy zawieraniu tekstu T1 w tekście T2 jest pozostałą częścią tekstu T2 występującą po pierwszym zakończeniu tekstu T1 (tekst T1 moŝe wystąpić w róŝnych miejscach tekstu T2) */ koniec(t1,t2,k):- poczatek(t1,t2,p):- koniec(t1,t2,k),concat(t,k,t2),concat(p,t1,t). /* poczatek(t1,t2,p)- zachodzi przy zawieraniu tekstu T1 w tekście T2; jeśli za pomocą predykatu konkatenacji i predykatu koniec pomniejszymy T2 o koniec K, a tekst który pozostanie pomniejszymy o tekst T1, to otrzymamy szukany początek P występujący w tekście T2 przed tekstem T1; P moŝe być tekstem pustym */ % % PODSTAWIANIE TEKSTU ZA TEKST W TEKŚCIE podstawienie(t1,t2,t3,t4):- T1<>T2, T3<>"", poczatek(t2,t3,p),koniec(t2,t3,k),!, concat(p,t1,t),concat(t,k,t4). /* podstawienie(t1,t2,t3,t4) pierwsze, jednokrotne, podstawienie tekstu T1 za tekst T2 w tekście T3, w wyniku czego otrzymujemy tekst T4; prosimy o wyjaśnienie podanej reguły */
12 podstawienie(t1,t2,t3,n_t3),!, podstawienie_globalne(t1,t2,n_t3,t4); T4=T3,!. /* podstawienie_globalne(t1,t2,t3,t4) kolejne podstawienia tekstu T1 za tekst T2 w tekście T3 wszędzie tam gdzie tekst T2 występuje przy pierwszym i po następnych podstawieniach, w wyniku czego otrzymujemy tekst T4; prosimy o wyjaśnienie podanej reguły */ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % NAPIS LICZBY % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% cyfra("0"). cyfra("1"). cyfra("2"). cyfra("3"). cyfra("4"). cyfra("5"). cyfra("6"). cyfra("7"). cyfra("8"). cyfra("9"). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Rozpoznawanie napisu jako ciągu cyfr %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X<>"", cyfra(x),!; X<>"", cyfra(c), concat(c,n_x,x),cyfra(n_x),!; X<>"", cyfra(c), concat(c,n_x,x),!, ciag_cyfr(n_x). podstawienie_globalne(t1,t2,t3,t4):- ciag_cyfr(x):- napis_liczby(x):- X= 0,!; ciag_cyfr(x),frontstr(1,x,c,_),c<>"0",!.
13 % Rozpoznawanie ciągu cyfr na początku napisu ciag_cyfr_w_tekscie("","",""). T<>"",ciag_cyfr(T),L=T,R="",!; T<>"", frontstr(1,t,l,r),cyfra(l), frontstr(2,t,l1,_),not(ciag_cyfr(l1)); T<>"", frontstr(1,t,c,n_t), cyfra(c), ciag_cyfr_w_tekscie(n_t,n_l,r), concat(c,n_l,l). ciag_cyfr_w_tekscie(t,l,r):- napis_liczby_w_tekscie(t,l,r):- ciag_cyfr_w_tekscie(t,l,r), frontstr(1,l,c,_),c<>"0",!. Problem Wykorzystując podane implementacje dokonać implementacji definicji języka niekontekstowego w języku Turbo Prolog Notacja Backusa-Naura (BNF) KaŜdy język programowania trzeba poprawnie zdefiniować i opisać reguły produkcji (tworzenia) napisów poprawnych i dopuszczalnych w tym języku. Trzeba to uczynić nie tylko dla uczących się tego języka programistów, lecz takŝe na uŝytek translatorów (kompilatorów), których przecieŝ podstawowym zadaniem jest rozstrzyganie, czy dany ciąg symboli źródłowych jest programem. Aby opis języka programowania był formalny, trzeba do tego celu uŝywać pewnego nadjęzyka, czyli metajęzyka. Takim metajęzykiem jest właśnie notacja zaproponowana pierwszy raz przez Backusa, a zastosowana na szeroką skalę przez duńskiego informatyka Naura. Wprowadzona notacja jest wynikiem prowadzenia specyficznej metody budowy języków bezkontekstowych, w których symbole nieterminalne są pisanymi w nawiasach <,> symbolami reprezentującymi nazwy składników metajęzyka słuŝącego do opisu budowy języka formalnego, w tym najczęściej języka programowania. Do opisu ciągu reguł produkcji słów uznanych za poprawnie zbudowane, ciągu postaci: N x 1, N x 2, N x 3, N x 4,, N x k, stosuje się bardzo uŝyteczną umowę notacyjną, ciąg tych reguł zapisuje się w postaci: N::= x 1 x 2 x 3 x 4... x k.
14 W notacji Backusa-Naura występują zmienne metajęzykowe (reprezentujące nazwy składników języka formalnego) oznaczone przy pomocy dowolnych napisów ujętych w nawiasy kątowe <, >, symbol ::= oraz kreska pionowa (rozumiana jako albo ). Symbol ::= ma znaczenie z definicji równa się. Przykładowo podamy określenie cyfry, litery i identyfikatora w języku Pascal: <cyfra> ::= , co czytamy cyfrą w Pascalu z definicji jest 0 albo 1, albo 2, itd. <litera> ::= a b c... x y z A B C... X Y Z, <identyfikator> ::= <litera> <identyfikator><litera> <identyfikator><cyfra>. Tę ostatnią definicję czytamy identyfikator jest literą albo ciągiem identyfikatora i litery (ich konkatenacją, np. Aa), albo ciągiem identyfikatora i cyfry (ich konkatenacją, np. A1). Przykład Rozpatrzmy język wyraŝeń algebraicznych. Symbolami nieterminalnymi są: <zmienna>, <operacja>, <wyraŝenie>, zaś terminalnymi symbole liter: A, B,, Z, i symbole działań: +, -,, /, a ponadto symbole nawiasów: (,) oraz symolbol równości: =. Symbolem wyjściowym (początkowym) jest <wyraŝenie>. Określmy reguły produkcji języka wyraŝeń algebraicznych następująco: <zmienna>::= A B Z <operacja>::= + - / ^ <relacja>::= < = > <nawiasy>::= <nawias lewy> <nawias prawy> <nawias lewy>::= ( <nawias prawy>::= ) <wyraŝenie>::=<zmienna> <nawias lewy><wyraŝenie><operacja><wyraŝenie><nawias prawy> <nawias lewy>-<wyraŝenie><nawias prawy> <nawias lewy> +<wyraŝenie><nawias prawy> <wyraŝenie> <wyraŝenie><relacja><wyraŝenie>. Stosując zapis strzałkowy dla reguł produkcji moŝemy wywód wyraŝenia (A- (B ((A+C))/D)) napisać w postaci: <wyraŝenie> <nawias lewy><wyraŝenie><operacja><wyraŝenie><nawias prawy> (A-<nawias lewy><wyraŝenie><operacja><wyraŝenie><nawias prawy>)
15 (A-(B <nawias lewy><wyraŝenie><operacja><wyraŝenie><nawias prawy>)) (A-(B (<wyraŝenie>/d))) (A-(B (<nawias lewy><wyraŝenie><operacja><wyraŝenie> <nawias prawy>/d))) (A-(B ((A+C)/D))) JeŜeli zbiór reguł produkcji tekstu rozszerzymy o operacje pozwalające podstawiać za dowolnie wybrane zmienne <wyraŝenie>, co np. dla zmiennej A zapisujemy w skrócie A := <wyraŝenie>, zamiast zapisu reguły produkcji <wyraŝenie>::= A:= <wyraŝenie>, to tak określoną regułę produkcji będziemy nazywać regułą przypisania. Reguła przypisania najczęściej jest uŝywana w językach programowania do implementacji obliczeń liczbowych lub przetwarzania tekstów. Przykład Operacja przypisania dla wyraŝeń algebraicznych. Niech w zaproponowanym języku wyraŝeń algebraicznych określone jest takŝe tworzenie napisów liczbowych w notacji dziesiętnej dla symbolu nieterminalnego <napis liczby>. Wykorzystując zaproponowaną notację reguły przypisania zapisać tekst obliczenia wyraŝenia: 3,145 2, wykorzystując w zapisie wyniku kaŝdej operacji tylko jedną zmienną X (tak wykorzystywane zmienne reprezentują rejestry pamięci komputera; minimalna ilość wykorzystanych zmiennych oznacza wykorzystanie minimalnego obszaru pamięci komputera). Obliczenie: 1. X:=2 2. X:= X 3. X:=(X 3,415) 4. X:= X
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:
Bardziej szczegółowoLogiczna analiza tekstu
Logiczna analiza tekstu Większość współczesnych środków informatycznych obsługujących Internet wykorzystuje lepiej lub gorzej określone operacje i reguły logicznej analizy tekstu. W tym kontekście, znajomość
Bardziej szczegółowoWprowadzenie: języki, symbole, alfabety, łańcuchy Języki formalne i automaty. Literatura
Wprowadzenie: języki, symbole, alfabety, łańcuchy Języki formalne i automaty Dr inŝ. Janusz Majewski Katedra Informatyki Literatura Aho A. V., Sethi R., Ullman J. D.: Compilers. Principles, Techniques
Bardziej szczegółowoWykł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ę
Bardziej szczegółowoGramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka
Gramatyki, wyprowadzenia, hierarchia Chomsky ego Teoria automatów i języków formalnych Dr inŝ. Janusz Majewski Katedra Informatyki Gramatyka Gramatyką G nazywamy czwórkę uporządkowaną gdzie: G =
Bardziej szczegółowoAdam 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
Bardziej szczegółowoJę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
Bardziej szczegółowoJęzyki formalne i automaty Ćwiczenia 1
Języki formalne i automaty Ćwiczenia Autor: Marcin Orchel Spis treści Spis treści... Wstęp teoretyczny... 2 Wprowadzenie do teorii języków formalnych... 2 Gramatyki... 5 Rodzaje gramatyk... 7 Zadania...
Bardziej szczegółowoJAO - Wprowadzenie do Gramatyk bezkontekstowych
JAO - Wprowadzenie do Gramatyk bezkontekstowych Definicja gramatyki bezkontekstowej Podstawowymi narzędziami abstrakcyjnymi do opisu języków formalnych są gramatyki i automaty. Gramatyka bezkontekstowa
Bardziej szczegółowoSymbol, alfabet, łańcuch
Łańcuchy i zbiory łańcuchów Teoria automatów i języków formalnych Dr inŝ. Janusz Majewski Katedra Informatyki Symbol, alfabet, łańcuch Symbol Symbol jest to pojęcie niedefiniowane (synonimy: znak, litera)
Bardziej szczegółowoDefinicje. 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
Bardziej szczegółowoMatematyczne Podstawy Informatyki
Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Automat ze stosem Automat ze stosem to szóstka
Bardziej szczegółowoProgramowanie 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
Bardziej szczegółowoPredykat. Matematyka Dyskretna, Podstawy Logiki i Teorii Mnogości Barbara Głut
Predykat Weźmy pod uwagę następujące wypowiedzi: (1) Afryka jest kontynentem. (2) 7 jest liczbą naturalną. (3) Europa jest mniejsza niż Afryka. (4) 153 jest podzielne przez 3. Są to zdania jednostkowe,
Bardziej szczegółowoWprowadzenie do logiki Zdania, cz. III Język Klasycznego Rachunku Predykatów
Wprowadzenie do logiki Zdania, cz. III Język Klasycznego Rachunku Predykatów Mariusz Urbański Instytut Psychologii UAM Mariusz.Urbanski@amu.edu.pl Plan na pytanie o odniesienie przedmiotowe zdań odpowiedź
Bardziej szczegółowoMatematyczne 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ą
Bardziej szczegółowoGRAMATYKI BEZKONTEKSTOWE
GRAMATYKI BEZKONTEKSTOWE PODSTAWOWE POJĘCIE GRAMATYK Przez gramatykę rozumie się pewien układ reguł zadający zbiór słów utworzonych z symboli języka. Słowa te mogą być i interpretowane jako obiekty językowe
Bardziej szczegółowoMATEMATYKA 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
Bardziej szczegółowo2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego
2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego Gramatyka Gramatyką G nazywamy czwórkę uporządkowaną G = gdzie: N zbiór symboli nieterminalnych, T zbiór symboli terminalnych, P zbiór
Bardziej szczegółowoZadanie analizy leksykalnej
Analiza leksykalna 1 Teoria kompilacji Dr inŝ. Janusz Majewski Katedra Informatyki Zadanie analizy leksykalnej Przykład: We: COST := ( PRICE + TAX ) * 0.98 Wy: id 1 := ( id 2 + id 3 ) * num 4 Tablica symboli:
Bardziej szczegółowoPODSTAWY 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
Bardziej szczegółowoWprowadzenie. Teoria automatów i języków formalnych. Literatura (1)
Wprowadzenie Teoria automatów i języków formalnych Dr inŝ. Janusz Majewski Katedra Informatyki Literatura (1) 1. Aho A. V., Sethi R., Ullman J. D.: Compilers. Principles, Techniques and Tools, Addison-Wesley,
Bardziej szczegółowoMonoidy wolne. alfabetem. słowem długością słowa monoidem wolnym z alfabetem Twierdzenie 1.
3. Wykłady 3 i 4: Języki i systemy dedukcyjne. Klasyczny rachunek zdań. 3.1. Monoidy wolne. Niech X będzie zbiorem niepustym. Zbiór ten będziemy nazywać alfabetem. Skończony ciąg elementów alfabetu X będziemy
Bardziej szczegółowoLingwistyka Matematyczna Języki formalne i gramatyki Analiza zdań
Katedra Informatyki Stosowanej Politechnika Łódzka Lingwistyka Matematyczna Języki formalne i gramatyki Analiza zdań dr hab. inŝ. Lidia Jackowska-Strumiłło Historia rozwoju języków programowania 1955 1955
Bardziej szczegółowoRACHUNEK ZDAŃ 7. Dla każdej tautologii w formie implikacji, której poprzednik również jest tautologią, następnik także jest tautologią.
Semantyczne twierdzenie o podstawianiu Jeżeli dana formuła rachunku zdań jest tautologią i wszystkie wystąpienia pewnej zmiennej zdaniowej w tej tautologii zastąpimy pewną ustaloną formułą, to otrzymana
Bardziej szczegółowoTemat: Zastosowanie wyrażeń regularnych do syntezy i analizy automatów skończonych
Opracował: dr inż. Zbigniew Buchalski KATEDRA INFORMATYKI TECHNICZNEJ Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych ćwiczenie Temat: Zastosowanie wyrażeń regularnych do syntezy i analizy automatów
Bardziej szczegółowoGramatyki (1-2) Definiowanie języków programowania. Piotr Chrząstowski-Wachjtel
Gramatyki (1-2) Definiowanie języków programowania Piotr Chrząstowski-Wachjtel Zagadnienia Jak zdefiniować język programowania? Gramatyki formalne Definiowanie składni Definiowanie semantyki l 2 Pożądane
Bardziej szczegółowoAnaliza leksykalna 1. Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki
Analiza leksykalna 1 Teoria kompilacji Dr inż. Janusz Majewski Katedra Informatyki Zadanie analizy leksykalnej Kod źródłowy (ciąg znaków) Analizator leksykalny SKANER Ciąg symboli leksykalnych (tokenów)
Bardziej szczegółowoWprowadzenie do programowania języki i gramatyki formalne. dr hab. inż. Mikołaj Morzy
Wprowadzenie do programowania języki i gramatyki formalne dr hab. inż. Mikołaj Morzy plan wykładu wprowadzenie gramatyki podstawowe definicje produkcje i drzewa wywodu niejednoznaczność gramatyk hierarchia
Bardziej szczegółowoWprowadzenie do XML. Joanna Jędrzejowicz. Instytut Informatyki
Instytut Informatyki Literatura http://www.w3c.org/tr/ - Technical Reports K. B. Stall - XML Family of Specifications, Addison-Wesley 2003 P. Kazienko, K. Gwiazda - XML na poważnie, Helion 2002 XML Rozszerzalny
Bardziej szczegółowoSystemy iteracyjne. Podstawy programowania. wykład 2
Systemy iteracyjne Podstawy programowania wykład 2 Pojęcie iteracji Systemy rzeczywistości, tj. wyróŝnione struktury relacyjne (często z relacją porządku), w których realizowane jest powtarzalne wykonywanie
Bardziej szczegółowoNp. Olsztyn leży nad Łyną - zdanie prawdziwe, wartość logiczna 1 4 jest większe od 5 - zdanie fałszywe, wartość logiczna 0
ĆWICZENIE 1 Klasyczny Rachunek Zdań (KRZ): zdania w sensie logicznym, wartości logiczne, spójniki logiczne, zmienne zdaniowe, tabele prawdziwościowe dla spójników logicznych, formuły, wartościowanie zbioru
Bardziej szczegółowoHierarchia Chomsky ego Maszyna Turinga
Hierarchia Chomsky ego Maszyna Turinga Języki formalne i automaty Dr inż. Janusz Majewski Katedra Informatyki Gramatyka Gramatyką G nazywamy czwórkę uporządkowaną gdzie: G = V skończony zbiór
Bardziej szczegółowoHierarchia Chomsky ego
Hierarchia Chomsky ego Gramatyki nieograniczone Def. Gramatyką nieograniczoną (albo typu 0) nazywamy uporządkowaną czwórkę G= gdzie: % Σ - skończony alfabet symboli końcowych (alfabet, nad którym
Bardziej szczegółowo11. Blok ten jest blokiem: a. decyzyjnym b. końcowym c. operacyjnym
1. Instrukcja warunkowa a. słuŝy do wprowadzania danych oraz wprowadzania wyników b. to instrukcja decyzyjna c. to sposób przedstawienia algorytmu 2. Instrukcja, która opisuje wykonanie róŝnych czynności
Bardziej szczegółowoAlgorytm. Krótka historia algorytmów
Algorytm znaczenie cybernetyczne Jest to dokładny przepis wykonania w określonym porządku skończonej liczby operacji, pozwalający na rozwiązanie zbliżonych do siebie klas problemów. znaczenie matematyczne
Bardziej szczegółowoKATEDRA INFORMATYKI TECHNICZNEJ. Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych. ćwiczenie 204
Opracował: prof. dr hab. inż. Jan Kazimierczak KATEDA INFOMATYKI TECHNICZNEJ Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych ćwiczenie 204 Temat: Hardware'owa implementacja automatu skończonego pełniącego
Bardziej szczegółowoJęzyki i operacje na językach. Teoria automatów i języków formalnych. Definicja języka
Języki i operacje na językach Teoria automatów i języków formalnych Dr inŝ. Janusz Majewski Katedra Informatyki Definicja języka Definicja języka Niech Σ będzie alfabetem, Σ* - zbiorem wszystkich łańcuchów
Bardziej szczegółowoKlasyczny rachunek predykatów
Kultura logiczna Klasyczny rachunek predykatów Bartosz Gostkowski bgostkowski@gmail.com Alfabet klasycznego rachunku zdań reguły konsytutywne języka Alfabet klasycznego rachunku predykatów (KRP Do alfabetu
Bardziej szczegółowoJęzyki formalne i automaty Ćwiczenia 4
Języki formalne i automaty Ćwiczenia 4 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Sposób tworzenia deterministycznego automatu skończonego... 4 Intuicyjne rozumienie konstrukcji
Bardziej szczegółowoSemantyka 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
Bardziej szczegółowoSystemy 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
Bardziej szczegółowoMaszyna Turinga. Algorytm. czy program???? Problem Hilberta: Przykłady algorytmów. Cechy algorytmu: Pojęcie algorytmu
Problem Hilberta: 9 Czy istnieje ogólna mechaniczna procedura, która w zasadzie pozwoliłaby nam po kolei rozwiązać wszystkie matematyczne problemy (należące do odpowiednio zdefiniowanej klasy)? 2 Przykłady
Bardziej szczegółowoMetody Kompilacji Wykład 3
Metody Kompilacji Wykład 3 odbywa się poprzez dołączenie zasad(reguł) lub fragmentów kodu do produkcji w gramatyce. Włodzimierz Bielecki WI ZUT 2 Na przykład, dla produkcji expr -> expr 1 + term możemy
Bardziej szczegółowoRachunek logiczny. 1. Język rachunku logicznego.
Rachunek logiczny. Podstawową własnością rozumowania poprawnego jest zachowanie prawdy: rozumowanie poprawne musi się kończyć prawdziwą konkluzją, o ile wszystkie przesłanki leżące u jego podstaw były
Bardziej szczegółowoJęzyki formalne i automaty Ćwiczenia 6
Języki formalne i automaty Ćwiczenia 6 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Wyrażenia regularne... 2 Standardy IEEE POSIX Basic Regular Expressions (BRE) oraz Extended
Bardziej szczegółowoProgramowanie w Logice Gramatyki metamorficzne. Przemysław Kobylański na podstawie [CM2003] i [SS1994]
Programowanie w Logice Gramatyki metamorficzne Przemysław Kobylański na podstawie [CM2003] i [SS1994] Gramatyki bezkontekstowe Gramatyką bezkontekstową jest uporządkowana czwórka G = Σ, N, S, P, gdzie
Bardziej szczegółowoLogika Matematyczna (1)
Logika Matematyczna (1) Jerzy Pogonowski Zakład Logiki Stosowanej UAM www.logic.amu.edu.pl pogon@amu.edu.pl Wprowadzenie Jerzy Pogonowski (MEG) Logika Matematyczna (1) Wprowadzenie 1 / 20 Plan konwersatorium
Bardziej szczegółowoProgramowanie 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,
Bardziej szczegółowoGramatyki atrybutywne
Gramatyki atrybutywne, część 1 (gramatyki S-atrybutywne Teoria kompilacji Dr inŝ. Janusz Majewski Katedra Informatyki Gramatyki atrybutywne Do przeprowadzenia poprawnego tłumaczenia, oprócz informacji
Bardziej szczegółowo1. 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
Bardziej szczegółowoAlgorytm. a programowanie -
Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik
Bardziej szczegółowoProgramowanie 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
Bardziej szczegółowoJęzyki formalne i automaty Ćwiczenia 9
Języki formalne i automaty Ćwiczenia 9 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Maszyna Mealy'ego... 2 Maszyna Moore'a... 2 Automat ze stosem... 3 Konwersja gramatyki bezkontekstowej
Bardziej szczegółowoJęzyki formalne i automaty Ćwiczenia 2
Języki formalne i automaty Ćwiczenia 2 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Metoda brute force... 2 Konwersja do postaci normalnej Chomskiego... 5 Algorytm Cocke a-youngera-kasamiego
Bardziej szczegółowoObliczenia 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
Bardziej szczegółowoAutomat ze stosem. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki
Automat ze stosem Języki formalne i automaty Dr inż. Janusz Majewski Katedra Informatyki Automat ze stosem (1) dno stosu Stos wierzchołek stosu Wejście # B B A B A B A B a b b a b a b $ q i Automat ze
Bardziej szczegółowoWprowadzenie do analizy składniowej. Bartosz Bogacki.
Wprowadzenie do analizy składniowej Bartosz Bogacki Bartosz.Bogacki@cs.put.poznan.pl Witam Państwa. Wykład, który za chwilę Państwo wysłuchają dotyczy wprowadzenia do analizy składniowej. Zapraszam serdecznie
Bardziej szczegółowoINFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227
INFORMATYKA W SZKOLE Dr inż. Grażyna KRUPIŃSKA grazyna@fis.agh.edu.pl D-10 pokój 227 Podyplomowe Studia Pedagogiczne 2 Algorytmy Nazwa algorytm wywodzi się od nazwiska perskiego matematyka Muhamed ibn
Bardziej szczegółowoTautologia (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
Bardziej szczegółowoLOGIKA Klasyczny Rachunek Zdań
LOGIKA Klasyczny Rachunek Zdań Robert Trypuz trypuz@kul.pl 5 listopada 2013 Robert Trypuz (trypuz@kul.pl) Klasyczny Rachunek Zdań 5 listopada 2013 1 / 24 PLAN WYKŁADU 1 Alfabet i formuła KRZ 2 Zrozumieć
Bardziej szczegółowoSystemy liczenia. 333= 3*100+3*10+3*1
Systemy liczenia. System dziesiętny jest systemem pozycyjnym, co oznacza, Ŝe wartość liczby zaleŝy od pozycji na której się ona znajduje np. w liczbie 333 kaŝda cyfra oznacza inną wartość bowiem: 333=
Bardziej szczegółowoDefinicja pochodnej cząstkowej
1 z 8 gdzie punkt wewnętrzny Definicja pochodnej cząstkowej JeŜeli iloraz ma granicę dla to granicę tę nazywamy pochodną cząstkową funkcji względem w punkcie. Oznaczenia: Pochodną cząstkową funkcji względem
Bardziej szczegółowoProgramowanie komputerów
Programowanie komputerów Wykład 1-2. Podstawowe pojęcia Plan wykładu Omówienie programu wykładów, laboratoriów oraz egzaminu Etapy rozwiązywania problemów dr Helena Dudycz Katedra Technologii Informacyjnych
Bardziej szczegółowo1. Synteza automatów Moore a i Mealy realizujących zadane przekształcenie 2. Transformacja automatu Moore a w automat Mealy i odwrotnie
Opracował: dr hab. inż. Jan Magott KATEDRA INFORMATYKI TECHNICZNEJ Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych ćwiczenie 207 Temat: Automaty Moore'a i Mealy 1. Cel ćwiczenia Celem ćwiczenia jest
Bardziej szczegółowoJęzyki i gramatyki formalne
Języki i gramatyki formalne Języki naturalne i formalne Cechy języka naturalnego - duża swoboda konstruowania zdań (brak ścisłych reguł gramatycznych), duża ilość wyjątków. Języki formalne - ścisły i jednoznaczny
Bardziej szczegółowoAlgorytmika i pseudoprogramowanie
Przedmiotowy system oceniania Zawód: Technik Informatyk Nr programu: 312[ 01] /T,SP/MENiS/ 2004.06.14 Przedmiot: Programowanie Strukturalne i Obiektowe Klasa: druga Dział Dopuszczający Dostateczny Dobry
Bardziej szczegółowoWstęp do informatyki- wykład 2
MATEMATYKA 1 Wstęp do informatyki- wykład 2 Systemy liczbowe Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy
Bardziej szczegółowoJęzyki formalne i automaty Ćwiczenia 7
Języki formalne i automaty Ćwiczenia 7 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Automaty... 2 Cechy automatów... 4 Łączenie automatów... 4 Konwersja automatu do wyrażenia
Bardziej szczegółowoFormalizacja jako reprezentacja wiedzy logicznej
Formalizacja jako reprezentacja wiedzy logicznej Edward Bryniarski Uniwersytet Opolski, Instytut Matematyki i Informatyki, Zakład Informatyki Stosowanej edlog@uni.opole.pl W 1981 r. została wydana ksiąŝka
Bardziej szczegółowovf(c) =, vf(ft 1... t n )=vf(t 1 )... vf(t n ).
6. Wykład 6: Rachunek predykatów. Język pierwszego rzędu składa się z: symboli relacyjnych P i, i I, gdzie (P i ) oznaczać będzie ilość argumentów symbolu P i, symboli funkcyjnych f j, j J, gdzie (f j
Bardziej szczegółowoMaszyna Turinga języki
Maszyna Turinga języki Teoria automatów i języków formalnych Dr inż. Janusz Majewski Katedra Informatyki Maszyna Turinga (1) b b b A B C B D A B C b b Q Zależnie od symbolu obserwowanego przez głowicę
Bardziej szczegółowoSystemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).
Wprowadzenie do inżynierii przetwarzania informacji. Ćwiczenie 1. Systemy liczbowe Cel dydaktyczny: Poznanie zasad reprezentacji liczb w systemach pozycyjnych o różnych podstawach. Kodowanie liczb dziesiętnych
Bardziej szczegółowoPrzykładowe dowody formuł rachunku kwantyfikatorów w systemie tabel semantycznych
Przykładowe dowody formuł rachunku kwantyfikatorów w systemie tabel semantycznych Zapoznaj z poniŝszym tekstem reprezentującym wiedzę logiczną o wartościach logicznych będących interpretacjami formuł złoŝonych
Bardziej szczegółowoLogika Matematyczna (1)
Logika Matematyczna (1) Jerzy Pogonowski Zakład Logiki Stosowanej UAM www.logic.amu.edu.pl pogon@amu.edu.pl 4 X 2007 Jerzy Pogonowski (MEG) Logika Matematyczna (1) 4 X 2007 1 / 18 Plan konwersatorium Dzisiaj:
Bardziej szczegółowoJęzyki formalne i automaty Ćwiczenia 3
Języki formalne i automaty Ćwiczenia 3 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Algorytm LL(1)... 2 Definicja zbiorów FIRST1 i FOLLOW1... 3 Konstrukcja tabeli parsowania
Bardziej szczegółowo- Dla danego zbioru S zbiór wszystkich jego podzbiorów oznaczany symbolem 2 S.
1 Zbiór potęgowy - Dla danego zbioru S zbiór wszystkich jego podzbiorów oznaczany symbolem 2 S. - Dowolny podzbiór R zbioru 2 S nazywa się rodziną zbiorów względem S. - Jeśli S jest n-elementowym zbiorem,
Bardziej szczegółowoGramatyki grafowe. Dla v V, ϕ(v) etykieta v. Klasa grafów nad Σ - G Σ.
Gramatyki grafowe Def. Nieskierowany NL-graf (etykietowane wierzchołki) jest czwórką g = (V, E, Σ, ϕ), gdzie: V niepusty zbiór wierzchołków, E V V zbiór krawędzi, Σ - skończony, niepusty alfabet etykiet
Bardziej szczegółowoMetody dowodzenia twierdzeń i automatyzacja rozumowań Systemy aksjomatyczne I
Metody dowodzenia twierdzeń i automatyzacja rozumowań Systemy aksjomatyczne I Mariusz Urbański Instytut Psychologii UAM Mariusz.Urbanski@.edu.pl OSTRZEŻENIE Niniejszy plik nie zawiera wykładu z Metod dowodzenia...
Bardziej szczegółowoTechnologie informacyjne - wykład 12 -
Zakład Fizyki Budowli i Komputerowych Metod Projektowania Instytut Budownictwa Wydział Budownictwa Lądowego i Wodnego Politechnika Wrocławska Technologie informacyjne - wykład 12 - Prowadzący: Dmochowski
Bardziej szczegółowoII Matematyka 2 stopnia( 3W). Logika i podstawy matematyki. Janusz Czelakowski. Wykład 8. Arytmetyka
II Matematyka 2 stopnia( 3W). Logika i podstawy matematyki Janusz Czelakowski Wykład 8. Arytmetyka Jak dobrze wiadomo, jednym z kluczowych praw zachodzących w dziedzinie liczb naturalnych jest Zasada Indukcji.
Bardziej szczegółowoAndrzej Wiśniewski Logika I Materiały do wykładu dla studentów kognitywistyki. Wykłady 12 i 13. Dowód i dowodzenie w KRP. Tezy KRP
Andrzej Wiśniewski Logika I Materiały do wykładu dla studentów kognitywistyki Wykłady 12 i 13. Dowód i dowodzenie w KRP. Tezy KRP 1 Pojęcie dowodu w KRP Pojęcia: formuły zdaniowej języka Klasycznego Rachunku
Bardziej szczegółowoElementy 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
Bardziej szczegółowoLOGIKA I TEORIA ZBIORÓW
LOGIKA I TEORIA ZBIORÓW Logika Logika jest nauką zajmującą się zdaniami Z punktu widzenia logiki istotne jest, czy dane zdanie jest prawdziwe, czy nie Nie jest natomiast istotne o czym to zdanie mówi Definicja
Bardziej szczegółowoZbiory, relacje i funkcje
Zbiory, relacje i funkcje Zbiory będziemy zazwyczaj oznaczać dużymi literami A, B, C, X, Y, Z, natomiast elementy zbiorów zazwyczaj małymi. Podstawą zależność między elementem zbioru a zbiorem, czyli relację
Bardziej szczegółowoINFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE
Studia podyplomowe dla nauczycieli INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Przedmiot JĘZYKI PROGRAMOWANIA DEFINICJE I PODSTAWOWE POJĘCIA Autor mgr Sławomir Ciernicki 1/7 Aby
Bardziej szczegółowoJęzyki, automaty i obliczenia
Języki, automaty i obliczenia Wykład 9: Własności języków bezkontekstowych Sławomir Lasota Uniwersytet Warszawski 27 kwietnia 2016 Plan 1 Pompowanie języków bezkontekstowych 2 Własności domknięcia 3 Obrazy
Bardziej szczegółowoFUNKCJE. (odwzorowania) Funkcje 1
FUNKCJE (odwzorowania) Funkcje 1 W matematyce funkcja ze zbioru X w zbiór Y nazywa się odwzorowanie (przyporządkowanie), które każdemu elementowi zbioru X przypisuje jeden, i tylko jeden element zbioru
Bardziej szczegółowoWyszukiwanie. Wyszukiwanie binarne
Wyszukiwanie Wejście: posortowana, n-elementowa tablica liczbowa T oraz liczba p. Wyjście: liczba naturalna, określająca pozycję elementu p w tablicy T, bądź 1, jeŝeli element w tablicy nie występuje.
Bardziej szczegółowoMetoda 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
Bardziej szczegółowoR O Z D Z I A Ł V I I
R O Z D Z I A Ł V I I 1. Podstawowe definicje RozwaŜane w poprzednim rozdziale automaty Rabina-Scotta były urządzeniami o bardzo ograniczonej zdolności przechowywania informacji. Rzeczywista pojemność
Bardziej szczegółowoWprowadzenie 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
Bardziej szczegółowoMetalogika (1) Jerzy Pogonowski. Uniwersytet Opolski. Zakład Logiki Stosowanej UAM
Metalogika (1) Jerzy Pogonowski Zakład Logiki Stosowanej UAM www.logic.amu.edu.pl pogon@amu.edu.pl Uniwersytet Opolski Jerzy Pogonowski (MEG) Metalogika (1) Uniwersytet Opolski 1 / 21 Wstęp Cel: wprowadzenie
Bardziej szczegółowo5. Algebra działania, grupy, grupy permutacji, pierścienie, ciała, pierścień wielomianów.
5. Algebra działania, grupy, grupy permutacji, pierścienie, ciała, pierścień wielomianów. Algebra jest jednym z najstarszych działów matematyki dotyczącym początkowo tworzenia metod rozwiązywania równań
Bardziej szczegółowoRachunek zdań. Zdanie w sensie logicznym jest to wyraŝenie jednoznacznie stwierdzające, na gruncie reguł danego języka, iŝ tak a
Zdanie w sensie logicznym jest to wyraŝenie jednoznacznie stwierdzające, na gruncie reguł danego języka, iŝ tak a tak jest alboŝe tak a tak nie jest. Wartość logiczna zdania jest czymś obiektywnym, to
Bardziej szczegółowoPodstawy programowania. Wykład PASCAL. Zmienne wskaźnikowe i dynamiczne. dr Artur Bartoszewski - Podstawy prograowania, sem.
Podstawy programowania Wykład PASCAL Zmienne wskaźnikowe i dynamiczne 1 dr Artur Bartoszewski - Podstawy prograowania, sem. 1- WYKŁAD Rodzaje zmiennych Zmienne dzielą się na statyczne i dynamiczne. Zmienna
Bardziej szczegółowoPodstawy Informatyki. Algorytmy i ich poprawność
Podstawy Informatyki Algorytmy i ich poprawność Błędy Błędy: językowe logiczne Błędy językowe Związane ze składnią języka Wykrywane automatycznie przez kompilator lub interpreter Prosty sposób usuwania
Bardziej szczegółowoElementy rachunku lambda. dr hab. inż. Joanna Józefowska, prof. PP 1
Elementy rachunku lambda λ 1 Notacja λ x 3x + 7 3x + 7 jest różniczkowalna 3x + 7 jest mniejsze od 2 (2,3) 5 f(2, 3) = 2 + 3 g(2) = 2 + 3 λx(3x + 7) 3x + 7 λx λy(x + y) = λxy(x + y) λx(x + 3) 2 Rachunek
Bardziej szczegółowoWstęp do logiki. Semiotyka cd.
Wstęp do logiki Semiotyka cd. Semiotyka: język Ujęcia języka proponowane przez językoznawców i logików różnią się istotnie w wielu punktach. Z punktu widzenia logiki każdy język można scharakteryzować
Bardziej szczegółowoZasada indukcji matematycznej
Zasada indukcji matematycznej Twierdzenie 1 (Zasada indukcji matematycznej). Niech ϕ(n) będzie formą zdaniową zmiennej n N 0. Załóżmy, że istnieje n 0 N 0 takie, że 1. ϕ(n 0 ) jest zdaniem prawdziwym,.
Bardziej szczegółowo