Algorithmen & Programmierung. Logik

Ähnliche Dokumente
Informationsverarbeitung auf Bitebene

Vorkurs Mathematik für Informatiker 5 Logik, Teil 1

Einführung in die Boolesche Algebra

Aussagenlogik. 1 Einführung. Inhaltsverzeichnis. Zusammenfassung

Grundlagen der Informationverarbeitung

1. Grundlagen der Informatik Boolesche Algebra / Aussagenlogik

Mathematik I für Studierende der Informatik und Wirtschaftsinformatik (Diskrete Mathematik) im Wintersemester 2017/18

Anwendung Informatik Daten verwalten (2) Ursprüngliche Information Logische Verknüpfungen als Grundlage für die Informationsgewinnung

Logische Aussagen können durch die in der folgenden Tabelle angegebenen Operationen verknüpft werden.

Aussagenlogik. Aussagen und Aussagenverknüpfungen

Boolesche Algebra (1)

Logik (Teschl/Teschl 1.1 und 1.3)

Kleine lateinische Buchstaben wie z. B. p, q, r, s t, usw.

Rückblick. Erweiterte b-adische Darstellung von Kommazahlen. 7,1875 dargestellt mit l = 4 und m = 4 Bits. Informatik 1 / Kapitel 2: Grundlagen

Algorithmen & Programmierung. Ausdrücke & Operatoren (1)

Was ist Logik? Was ist Logik? Aussagenlogik. Wahrheitstabellen. Geschichte der Logik eng verknüpft mit Philosophie

Mathematische Grundlagen I Logik und Algebra

Mathematik I für Studierende der Informatik und Wirtschaftsinformatik (Diskrete Mathematik) im Wintersemester 2015/16

Formale Grundlagen (Nachträge)

II. Grundlagen der Programmierung

1. Algebraische Strukturen: Boole sche Algebra

2. Tutorium Digitaltechnik und Entwurfsverfahren

Einführung in die Informatik I

2. Funktionen und Entwurf digitaler Grundschaltungen

2.2.4 Logische Äquivalenz

Kapitel 1.0. Aussagenlogik: Einführung. Mathematische Logik (WS 2011/12) Kapitel 1.0: Aussagenlogik: Einführung 1/ 1

Information und ihre Darstellung

1. Informationsdarstellung. Darstellung und Bedeutung. Darstellung und Bedeutung. Interpretation ??? 1. Kapitel

Kapitel 1. Aussagenlogik

Logik. Logik. Vorkurs Informatik Theoretischer Teil WS 2013/ September Vorkurs Informatik - Theorie - WS2013/14

3 Boole'sche Algebra und Aussagenlogik

1. Grundlegende Konzepte der Informatik

Boolesche Algebra. Hans Joachim Oberle. Vorlesung an der TUHH im Wintersemester 2006/07 Montags, 9:45-11:15 Uhr, 14täglich TUHH, DE 22, Audimax 2

Geschichte der Logik ist eng verknüpft mit (Sprach-) Philosophie. Logik untersucht, wie aus wahren Aussagen andere wahre Aussagen folgen

ELEMENTARE DISKRETE MATHEMATIK Kapitel 2: Elementare Logik und Beweise

Vorbereitungskurs Mathematik zum Sommersemester 2015 Aussagen, Logik und Beweistechniken

5. Aussagenlogik und Schaltalgebra

Grundlagen der diskreten Mathematik

Zusammenfassung der letzten LVA. Einführung in die Theoretische Informatik. Syntax der Aussagenlogik. Inhalte der Lehrveranstaltung

Digitalelektronik - Inhalt

Informatik A. Prof. Dr. Norbert Fuhr auf Basis des Skripts von Prof. Dr. Wolfram Luther und der Folien von Peter Fankhauser

Zusammenfassung der letzten LVA. Einführung in die Theoretische Informatik. Syntax der Aussagenlogik. Inhalte der Lehrveranstaltung

Rechnerstrukturen. Michael Engel und Peter Marwedel WS 2013/14. TU Dortmund, Fakultät für Informatik

Klassische Aussagenlogik

Logik für Informatiker Logic for computer scientists

der einzelnen Aussagen den Wahrheitswert der zusammengesetzten Aussage falsch falsch falsch falsch wahr falsch wahr falsch falsch wahr wahr wahr

Mathematik 1 für Wirtschaftsinformatik

Aussagenlogik: Lexikon, Syntax und Semantik

Grundlagen der Rechnerarchitektur. Binäre Logik und Arithmetik

b. Lehre des vernünftigen Schlussfolgerns (1. System von Regeln von Aristoteles ( v. Chr.); sprachliche Argumente

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration

Was ist Logik? Was ist Logik? Logische Konnektoren. Aussagenlogik. Logik stellt Sprachen zur Darstellung von Wissen zur Verfügung

Geschichte der Logik ist eng verknüpft mit (Sprach-) Philosophie. Logik untersucht, wie aus wahren Aussagen andere wahre Aussagen folgen

Algebraische Grundlagen 1

TU9 Aussagenlogik. Daniela Andrade

2. Vorlesung: Boolesche Algebra

Allgemeingültige Aussagen

Grundlagen der Programmierung

Logik für Informatiker

Thema: Logik: 2. Teil. Übersicht logische Operationen Name in der Logik. Negation (Verneinung) Nicht

Informatik I: Einführung in die Programmierung

5. Vorlesung: Normalformen

Vorkurs Mathematik für Informatiker Aussagenlogik -- Thomas Huckle Stefan Zimmer Matous Sedlacek,

Mathematischer Vorbereitungskurs für das MINT-Studium

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. Hochschule Darmstadt -Fachbereich Informatik-

WS 2015/16 Diskrete Strukturen Kapitel 2: Grundlagen (Aussagenlogik 1)

Technische Informatik I, SS03. Boole sche Algebra, Kombinatorische Logik

Logik. Ernest Peter Propädeutikum Mathematik Informatik/Wirtschaftsinformatik, Block Aussage

Logic in a Nutshell. Christian Liguda

I. Aussagenlogik. Aussagenlogik untersucht Verknüpfungen wie "und", "oder", "nicht", "wenn... dann" zwischen atomaren und komplexen Sätzen.

1. Grundlagen. Gliederung 1.1 Was ist Analysis? 1.2 Aussagen und Mengen 1.3 Natürliche Zahlen 1.4 Ganze Zahlen, rationale Zahlen

1. Grundlagen. 1.1 Was ist Analysis? 1.2 Aussagen und Mengen

A.1 Schaltfunktionen und Schaltnetze

Datentypen: integer, char, string, boolean

Aussagenlogik. Formale Methoden der Informatik WiSe 2010/2011 teil 7, folie 1 (von 50)

Aussagenlogik. Übersicht: 1 Teil 1: Syntax und Semantik. 2 Teil 2: Modellierung und Beweise. Aussagenlogik H. Kleine Büning 1/25

Informationsdarstellung

Formale Grundlagen der Informatik 1 Kapitel 16 Normalformen und Hornformeln

Geschichte der Logik ist eng verknüpft mit (Sprach-) Philosophie. Begriff Logik wird im Alltag vielseitig verwendet

Was ist Logik? Was ist Logik? Logische Konnektoren. Aussagenlogik. Geschichte der Logik ist eng verknüpft mit (Sprach-) Philosophie

Kapitel 2. Boolesche Algebra. Prof. Dr. Dirk W. Hoffmann. Hochschule Karlsruhe w University of Applied Sciences w Fakultät für Informatik

Teil 1: Digitale Logik

Brückenkurs Mathematik. Dienstag Freitag

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 12/13. Kapitel 3. Grunddatentypen, Ausdrücke und Variable

Black Box erklärt Logische Verknüpfungen

1 Aussagenlogischer Kalkül

Lineare Algebra I. Anhang. A Relationen. Heinz H. GONSKA, Maria D. RUSU, Michael WOZNICZKA. Wintersemester 2009/10

1 Einfache diskrete, digitale Verknüpfungen

Einführung in die Mathematik (Vorkurs 1 )

Grundlagen der Logik

Bei der Und-Verknüpfung müssen beide Ausdrücke wahr sein, dass der gesamte Ausdruck wahr wird. a=1; b=2; a=1; b=3; else. endif

Grundlagen der Informatik

Computational Logic Algorithmische Logik Boolesche Algebra und Resolution

( ) ( ) für x = 9 gilt:

2 Schaltalgebra bzw. Boole sche Algebra *

12 2 Mathematische Logik: Denken in Wahrheitswerten *

Boolesche Terme und Boolesche Funktionen

Intensivübung zu Algorithmen und Datenstrukturen

Technische Informatik - Eine Einführung

Transkript:

Algorithmen & Programmierung Logik

Aussagenlogik Gegenstand der Untersuchung Es werden Verknüpfungen zwischen Aussagen untersucht. Aussagen Was eine Aussage ist, wird nicht betrachtet, aber jede Aussage besitzt genau einen Wahrheitswert. Wahrheitswerte Aussage ist wahr Wahrheitswert true Aussage ist falsch Wahrheitswert false 206

So sollte man es nicht machen! Aussage 1? Pinguine sind schwarz-weiß. Aussage 2 Alte Filme sind schwarz-weiß. Verknüpfung der beiden Aussagen Pinguine sind alte Filme. 207

Verknüpfung von Aussagen Gegeben seien zwei Aussagen A und B Konjunktion (logisches Und) Die Verknüpfung A B ist eine Aussage. Disjunktion (logisches Oder) Die Verknüpfung A B ist eine Aussage. Negation (logisches Nicht) A ist eine Aussage. Prinzip der Extensionalität Der Wahrheitswert einer Aussageverknüpfung hängt ausschließlich von den Wahrheitswerten ihrer Teilaussagen ab. 208

Negation Bedeutung Die Negation negiert eine Aussage: A ist genau dann wahr, wenn A nicht wahr (d.h. falsch) ist. Alternative Darstellung Ā Alternative Bezeichnungen Komplement NOT Wahrheitstabelle A A false true true false 209

Konjunktion Bedeutung A B ist nur dann wahr, wenn Aussage A und Aussage B wahr sind. Alternative Bezeichnungen Und AND Wahrheitstabelle A B A B false false false false true false true false false true true true 210

Disjunktion Bedeutung A B ist wahr, wenn mindestens eine der beiden Aussagen A oder B wahr ist. Alternative Bezeichnungen Oder OR Wahrheitstabelle A B A B false false false false true true true false true true true true 211

Verknüpfung von Aussagen Es gibt weitere Aussageverknüpfungen, die sich jedoch mit Negation und Konjunktion bzw. Negation und Disjunktion darstellen lassen: Antivalenz Wahrheitstabelle A A Äquivalenz false true Implikation true false Logische Vollständigkeit Alle logischen Verknüpfungsvarianten lassen sich ausschließlich mit Negation und wahlweise Konjunktion oder Disjunktion ausdrücken. Wahrheitstabelle A B A B false false false false true false true false false true true true Wahrheitstabelle A B A B false false false false true true true false true true true true 212

Antivalenz Bedeutung A B ist genau dann wahr, wenn ausschließlich Aussage A wahr ist oder ausschließlich Aussage B wahr ist. Anders ausgedrückt: A und B müssen entgegengesetzte Wahrheitswerte aufweisen. Alternative Bezeichnung Exklusives Oder XOR Wahrheitstabelle A B A B false false false false true true true false true true true false 213

Äquivalenz Bedeutung A B ist nur dann wahr, wenn Aussage A den selben Wahrheitswert wie Aussage B aufweist. Hierbei spielt es keine Rolle, welcher Wahrheitswert dies konkret ist. Wahrheitstabelle A B A B false false true false true false true false false true true true 214

Implikation Bedeutung A B (Sprechweise A impliziert B oder B folgt aus A) ist nur dann wahr, wenn entweder Aussage B wahr ist oder beide Aussagen falsch sind. Wahrheitstabelle A B A B false false true false true true true false false true true true 215

Logische Vollständigkeit Es gibt zwei weitere Verknüpfungsvarianten, die ebenfalls nur eine Kombination aus Negation und Konjunktion bzw. Negation und Disjunktion sind: NAND (NOT AND) Es gilt: A NAND B = (A B) NOR (NOT OR) Es gilt: A NOR B = (A B) Bedeutung Wahrheitstabelle NAND A B A NAND B false false true false true true true false true true true false Wahrheitstabelle NOR A B A NOR B false false true false true false true false false true true false Sowohl NAND als auch NOR sind logisch vollständig, d.h. dass man lediglich mit einer dieser beiden Verknüpfungsvarianten jede andere logische Verknüpfung ausdrücken kann. NAND-Gatter stellen die Basis digitaler Technik dar. 216

Logische Vollständigkeit Beispiel A A NAND A A B (A NAND B) NAND (A NAND B) A B (A NAND A) NAND (B NAND B) Wahrheitstabelle NAND A B A NAND B false false true false true true true false true true true false A B (A NAND (B NAND B)) NAND ((A NAND A) NAND B) A B (A NAND B) NAND ((A NAND A) NAND (B NAND B)) A B A NAND (B NAND B) A NOR B ((A NAND A) NAND (B NAND B)) NAND ((A NAND A) NAND (B NAND B)) 217

Boolesche Algebra Begriff Der Begriff geht auf George Boole (1815-1869) zurück, dessen Logikkalkül von 1847 die Grundlage der heute verwendeten Form darstellt. Inhalt Beschrieben werden eine Menge von Axiomen auf der Menge der Wahrheitswerte 0 (false) und 1 (true) sowie der einstelligen Verknüpfung Negation und den zweistelligen Verknüpfungen Konjunktion und Disjunktion. 218

Boolesche Algebra De Morgansche Regeln Kommutativgesetze Idempotenz Assoziativgesetze Distributivgesetze Absorptionsregeln Konstantensubstitution 219

Logik in C Verknüpfungsoperationen C unterstützt die boolesche Algebra direkt durch die Bereitstellung der Verknüpfungsoperationen Konjunktion, Disjunktion und Negation. Wahrheitswerte Des Weiteren gelten für die Bereitstellung der Wahrheitswerte folgende Regeln: Der Integerwert 0 entspricht dem Wahrheitswert false Ein Integerwert ungleich 0 entspricht dem Wahrheitswert true Bessere Modellierung Ab dem C99 Standard gibt es einen vordefinierten Datentyp bool, der die ebenfalls vordefinierte Wertemenge true und false bereitstellt. Allerdings muss zu seiner Nutzung die Bibliothek <stdbool.h> vorher eingebunden werden. In C++ ist der Datentyp bool standardmäßig in das Sprachkonzept integriert. 220

Logik in C Wir haben bereits (unwissentlich) mit logischen Ausdrücken in C gearbeitet: Selektion Iteration if ( Bedingung ) else Anweisung1 while ( Bedingung ) Anweisung Anweisung2 Bedingung Eine Bedingung (Vergleichsoperation) ist eigentlich ein logischer Ausdruck, dessen Auswertung einen Wahrheitswert produziert (Bedingung erfüllt true, Bedingung nicht erfüllt false). 221

Verknüpfung Verknüpfungsoperationen Mit Hilfe dieser Operatoren können logische Ausdrücke gemäß der booleschen Algebra miteinander verknüpft werden: logisches Und && (Konjunktion) logisches Oder (Disjunktion) Komplement! (Negation) Ergebnis der Verknüpfung Ist ein logischer Ausdruck, dessen Wahrheitswert aus der Wahrheitstabelle der gewünschten Verknüpfungsoperation und den Wahrheitswerten der zu verknüpfenden Teilausdrücke resultiert. Anwendung Kompakte Darstellung komplexer Bedingungen. 222

Verknüpfung - Beispiel Die Vorbedingung des Euklidischen Algorithmus lautete, dass der größte gemeinsame Teiler nur von natürlichen Zahlen gebildet werden kann. Mit Hilfe der logischen Verknüpfungsoperatoren können wir diese Forderung jetzt bequem formulieren: int ggt(int a, int b) { if (a > 0 && b > 0) { while (a!= b) { if (a > b) a = a - b; else b = b - a; } } else // 0 als Fehlercode, da a = 0; // kein Teiler 0 möglich } return a; } 223

Verknüpfung - Beispiel Gregorianischer Kalender Der in der westlichen Welt seit 1582 gültige Gregorianische Kalender definiert eine Jahreslänge von 365,2425 Tagen. Weil die nächste ganzzahlige Jahreslänge von 365 Tagen zu kurz ist, wird aller vier Jahre ein zusätzlicher Tag - der Schalttag 29. Februar - eingeführt. Um weiteren Rechenungenauigkeiten (wie bei dem im römischen Reich gebräuchlichen Julianischen Kalender) vorzubeugen, gilt ergänzend noch folgende Regel: Durch 100 teilbare Jahre stellen nur dann Schaltjahre dar, wenn sie auch durch 400 teilbar sind. Aufgabe Wir wollen herausfinden, ob ein beliebiges Jahr ein Schaltjahr ist. Bedingungen für Schaltjahre 1. Wenn ein Jahr durch 400 teilbar ist, dann ist es ein Schaltjahr 2. Wenn ein Jahr durch 100 teilbar ist, dann ist es kein Schaltjahr (außer wenn 1. gilt) 3. Wenn ein Jahr durch vier teilbar ist, dann ist es ein Schaltjahr (außer wenn 2. gilt) 224

Komplementäre Ausdrücke Selektionen der Form if ( logischer Ausdruck ) Anweisung1 else Anweisung2 // Wenn logischer Ausdruck nach true ausgewertet werden kann // wird Anweisung1 ausgeführt // sonst // wird Anweisung2 ausgeführt können wir durch Negation des Selektionskriteriums umformen in if (! logischer Ausdruck ) Anweisung2 else Anweisung1 // Wenn logischer Ausdruck nach false ausgewertet werden kann // wird Anweisung2 ausgeführt // sonst // wird Anweisung1 ausgeführt Anwendung Unter Umständen bessere Modellierung bzw. Verständnis einer zu formulierenden Bedingung. 225

Äquivalenz von Vergleichen Der Vergleich zweier Werte lässt sich auf verschiedene Art und Weise beschreiben. Nutzen äquivalente Umformungen können verständlicher sein Weniger Rechenoperationen durch Wegfall der Negation Äquivalente Vergleichsoperationen x < y!(x >= y) y > x!(y <= x) x <= y!(x > y) y >= x!(y < x) x == y!(x!= y) y == x!(y!= x) x >= y!(x < y) y >= x!(y < x) x > y!(x <= y) y < x!(y >= x) x!= y!(x == y) y!= x!(y == x) 226

Ende der Vorlesung