Wykład 5 Logika binarna, Logika, inne logiki Algebry, Algebra Boole’a, Funkcje boole’owskie, minimalizacja wyrażeń, Strukturu danych: Kolejka, Stos, Odwrotna Notacja Polska
Logika binarna Jest używana do opisu działania maszyn cyfrowych (sygnał jest: 1, nie ma: 0) Występują w niej zmienne logiczne i operacje logiczne Zmienne logiczne oznaczane są symbolami a, b, c. Każda ze zmiennych może przyjąć jedną z dwóch wartości jeden lub zero. Operacjami logicznymi są: koniunkcja („i”, „*”), alternatywa („lub”, „+”) i negacja („nie”, „~”) Jest jedną z możliwych logik, (są jeszcze np. logiki wielowartościowe, logika rozmyta).
Operacje logiczne i 1 lub 1 1 Nie 1 Nie i 1 lub 1 1+1=1 1*1=1 1*0=0 1+0=1 1+(~1)=1 1*(~1)=0
Logika Logika to dział filozofii i jednocześnie matematyki zajmujący się analizą elementarnych zasad poprawnego rozumowania. Logika (zarówno matematyczna, jak i filozoficzna) nie analizuje zawartości merytorycznej badanych zdań, lecz tylko bada czy są one poprawnie skonstruowane z czysto formalnego punktu widzenia.
Logika matematyczna We współczesnej logice matematycznej można wyodrębnić następujące działy: klasyczny rachunek logiczny teoria dowodu teoria modeli teoria rekursji teoria mnogości Niektórzy matematycy (mniejszość) nie uznają teorii mnogości jako części logiki matematycznej).
Logika matematyczna Dział matematyki, który powstał właściwie dopiero na przełomie XIX i XX wieku, W zasadzie zajmuje się ona tym samym, co logika filozoficzna, jednak jej badania koncentrują się przede wszystkim na analizowaniu pojęć matematycznych, Do swoich analiz stosuje się wiele metod i narzędzi wypracowanych przez setki lat rozwoju logiki filozoficznej, jednak po ich odpowiednim sformalizowaniu i uściśleniu, Formalizowanie logiki tradycyjnej przez logikę matematyczną polega na tworzeniu systemów algebraicznych, dzięki którym można zamiast słownych określeń stosować proste symbole zdań oraz dokonywać obliczeń symbolicznych.
Algebra Powstała w starożytności słowo „algebra” pochodzi z tytułu dzieła „Hisab al-dzabr wa'l-mukabala” (O odtwarzaniu i przeciwstawianiu) arabskiego uczonego Alchwarizmiego (IX wiek) Do końca XIX wieku była nauką o rozwiązaniach równań (poszukiwanie ogólnych wzorów),
Algebra W roku 1591 matematyk francuski Francois Viete zastąpił współczynniki liczbowe występujące w równaniach literami i wykrył pewne zależności miedzy pierwiastkami równania (bez znajdowania dla nich wzorów), a jego współczynnikami (tak zwane wzory Viete'a). Odtąd symbole literowe, występujące dotychczas tylko w geometrii, pojawiły się w arytmetyce. Wyrażenie podstawowych własności działań arytmetycznych za pomocą liter zapoczątkowało tak zwany rachunek literowy i wpłynęło na zmianę poglądu na algebrę: z nauki o rozwiązywaniu równań przekształciła się ona w naukę o działaniach na literach (tak właśnie rozumie się obecnie algebrę w nauczaniu szkolnym). Nie jest to jeszcze całkowite oderwanie się algebry od arytmetyki, gdyż działania w tak rozumianej algebry maja wszystkie własności działań arytmetycznych, a litery zastępują liczby.
Algebra Odkrycie w 1832 roku przez matematyka francuskiego Evariste Galois warunków koniecznych i dostatecznych na istnienie ogólnych wzorów na pierwiastki równań stopnia wyższego niż czwarty zapoczątkowało nowy kierunek badań noszący nazwę teorii Galois (kilka lat wcześniej matematyk norweski Niels Abel wykazał, że wzory te nie istnieją) gdy określono w matematyce działania na obiektach nieliczbowych, na przykład na wektorach, macierzach czy zbiorach, pojawiły się: algebra wektorów, algebra macierzy, algebra zbiorów i inne struktury tego typu.
Algebra Klasyfikacja zbiorów ze względu na własności określonych na nich działań we współczesnej matematyce - algebrą został nazwany nie dział matematyki, lecz pewien obiekt matematyczny Algebra ogólna Jest to para (A, D), gdzie A jest dowolnym zbiorem, a D zbiorem dowolnych operacji określonych na zbiorze A. Dział matematyki zajmujący się algebrami ogólnymi nosi nazwę algebry uniwersalnej. Wprowadzane są pewne ogólne struktury - systemy algebraiczne : ciało, ciało algebraicznie domknięte, pierścień, grupa, grupa symetryczna, grupa abelowa itp… ciało liczb wymiernych (zbiór liczb wymiernych z działaniem + i * oraz wyróżnionym elementem 0 i 1 ciało liczb zespolonych
Algebra Niektóre ważniejsze działy algebry to: algebra Boole'a algebra homologiczna algebra liniowa algebra uniwersalna geometria algebraiczna równania algebraiczne teoria ciał teoria grup teoria kategorii teoria kodów teoria modułów teoria pierścieni.
Pojęcia stosowane w algebrach Domknięcie zbioru ze względu na działanie Element neutralny działania Element przeciwny (odwrotny) do pewnego elementu Łączność działania Przemienność działania Rozdzielność działań względem siebie (uwaga: w algebrach mogą występować działania rozdzielne prawo- lub lewostronnie)
Pojęcia stosowane w algebrach Domknięcie zbioru ze względu na działanie: zbiór A jest domknięty ze względu na działanie jeśli dla dowolnych elementów ,∈A zachodzi ∈A (wynik działania też należy do zbioru A) Element neutralny działania: Element ∈A nazywamy elementem neutralnym działania jeśli dla dowolnego elementu ∈A zachodzi = =
Pojęcia stosowane w algebrach cd Element odwrotny (przeciwny) do Jeśli działanie ma element neutralny oraz ∈A to element ∈A nazywamy przeciwnym do (ze względu na działanie ) jeśli = = Działanie jest przemienne, jeśli dla dowolnych elementów ,∈A zachodzi =
Pojęcia stosowane w algebrach cd Działanie jest łączne, jeśli dla dowolnych elementów ,,∈A zachodzi ()=() Działanie jest rozdzielne względem działania , jeśli dla dowolnych elementów ,,∈A zachodzi ()=
Algebra Boole’a Sformalizowany, ogólny opis logiki binarnej odpowiada ogólnej strukturze nazywanej algebrą Boole’a
Algebra Boole’a Postulaty Huntingtona – definicja aksjomatyczna Weryfikacja algebry
Postulaty Huntingtona – definicja aksjomatyczna Istnieją przynajmniej dwa elementy x,y∈B takie, że x≠y. Domknięcie zbioru B względem operatora + Domknięcie zbioru B względem operatora * Element neutralny względem + oznaczony jako 0 : x + 0 = 0 + x = x Element nautralny względem * oznaczony jako 1 : x * 1 = 1 * x = x Przemienność operacji dodawania : x + y = y + x
Postulaty Huntingtona – definicja aksjomatyczna Przemienność operacji mnożenia: x * y = y * x Rozdzielność mnożenia względem dodawania: x* (y + z) = (x * y) + (x * z) Rozdzielność dodawania względem mnożenia: x + (y * z) = (x + y) * (x + z) Dla każdego elementu x∈B istnieje taki element x’∈B, że: x + x’ = 1 oraz x* x’ = 0
Operacje logiczne 1 ~ * 1 + 1
Postulaty Huntingtona są spełnione dla zbioru {0, 1} oraz zdefiniowanych operatorów binarnych Istnieją dwa różne elementy – 0 i 1 Domknięcie zbioru –widać bezpośrednio z tablic Przemienność, rozdzielność – symetrii tablic Na podstawie tabeli „nie” : x + x’ = 1, stąd 0 + 0’ = 0 + 1 = 1 oraz 1 + 1’ = 1 + 0 = 1 x * x’ = 0, stąd 0 * 0’ = 0 * 1 = 0 oraz 1 * 1’ = 1 * 0 = 0
Własności Postulat 2 a) x + 0 = x b) x * 1 = x Postulat 5 Twierdzenie 1 a) x + x = x b) x * x = x Twierdzenie 2 a) x + 1 = 1 b) x * 0 = 0 INWOLUCJA (x’)’ = x PRZEMIENNOŚĆ a) x + y = y + x b) x * y = y * x ŁĄCZNOŚĆ a) x +(y + z) = (x + y) + z b) x *(y * z) = (x * y)* z ROZDZIELNOŚĆ a) x *(y + z) = x * y + x * z b) x +y * z = (x + y) * (x + z) PRAWA DE MORGANA a) (x + y)’ = x’ * y’ b) (x * y)’ = x’ + y’ ABSORPCJA a) x + x * y = x b) x *(x + y) = x
Funkcje boole’owskie Funkcje mogące przyjmować jedną z dwóch wartości: 0 lub 1 Minimalizacja funkcji boole’owskich Ogólna definicja funkcji (jako szczególny przypadek relacji)
Funkcja, funkcja boole’owska Jeśli każdemu elementowi x ze zbioru X przyporządkujemy jeden element y ze zbioru Y, to takie przyporządkowanie nazywane jest funkcją. Jeżeli dziedziną i zbiorem wartości funkcji jest zbiór dwuelementowy {0,1} to funkcja jest funkcja boole’owską. Funkcje boole’owskie można zapisywać: słownie w tabeli zależności w postaci wyrażeń boole’owskich
Funkcje boole’owskie cd F=x*y Funkcja ma wartość 1 jeśli x=1 i y=1; w pozostałych przypadkach ma wartość 0 F=~x*y Funkcja ma wartość 1 jeśli x=0 i y=1; w pozostałych przypadkach ma wartość 0 Liczba możliwych funkcji boole’owskich wynosi 22n , gdzie n jest liczbą zmiennych
Minimalizacja funkcji boole’owskich F=~a*[~(a+b)]=~a*[~a*~b]=~a*~a*~b=~a*~b=~(a+b) Atr 1 Atr 2 Atr 3 Atr 4 Atr 5 Obiekt a,b,c c a,b ~c,b b F=a+b+c*c*a+b*(~c+b)*b= ??? inne przykłady… Wynik (zminimalizowaną funkcję) zapisuje się zwykle w tzw. postaci kanonicznej: sumy iloczynów lub iloczynu sum.
Struktury danych Kolejka (FIFO – ang. First In First Out) Stos (LIFO – ang. Last In First Out)
Wykorzystuje strukturę stosu, ma zastosowanie w arytmetyce komputerów, Ogranicznik Priorytet ( + - ) 1 * / ÷ NEG 2 3 sin cos tg ctg 4 Odwrotna notacja polska (ONP) (zapis wyrażeń arytmetycznych w postaci beznawiasowej) Wykorzystuje strukturę stosu, ma zastosowanie w arytmetyce komputerów, do zapisu wykorzystywane są liczby oraz symbole operatorów (zwane również ogranicznikami) Operatory mają określone priorytety: Ogranicznik Priorytet ( + - ) 1 * / ÷ NEG 2 ^ 3 sin cos tg ctg 4
Zapis do postaci ONP Pobierz kolejny element (nazwę zmiennej, stałą lub ogranicznik) źródłowego wyrażenia arytmetycznego. Jeśli ten element jest nazwą zmiennej lub stałą, przekaż go na wyjście; w przeciwnym wypadku, jeśli priorytet ogranicznika jest wyższy od priorytetu ogranicznika zajmującego szczyt stosu lub jeśli stos jest pusty, dopisz go na stos, jeśli wreszcie na szczycie stosu znajduje się ogranicznik o wyższym lub równym priorytecie - odczytaj go ze stosu i prześlij na wyjście, a ogranicznik z wejścia dopisz na stosie, chyba, że nowy ogranicznik zajmujący szczyt stosu w wyniku odczytania priorytetu ma priorytet nie mniejszy niż ogranicznik z wejścia. W takim przypadku należy kontynuować odczytywanie ze stosu i przesyłanie na wyjście aż do wystąpienia na szczycie stosu ogranicznika o priorytecie niższym od priorytetu ogranicznika nadchodzącego z wejścia. Jeśli wyrażenie źródłowe zostało wyczerpane, odczytaj wszystkie ograniczniki ze stosu na wyjście automatu.
Przykład wyrażenie ONP (x+y)^3-2xyz xy+3^2xyz***- (2+y)*x-3x^2