Kleiner Ausflug in Logik und Verkehrssteuerung Ein logisches Rätsel Ausgangslage: Drei Frauen stehen hintereinander. Jede trägt einen Hut auf dem Kopf und sieht nur die Hüte der voran stehenden Personen. Die Hüte sind entweder weiss oder schwarz. Nicht alle Hüte haben dieselbe Farbe. Frage: Kann eine Frau die Farbe des eigenen Hutes nennen? (Wir gehen davon aus, dass eine Frau dies Schwarz? Schwarz? auch tut, falls sie es kann.) Weiss? Weiss? Ja, es geht! • Falls die hinterste Frau vorne zwei gleichfarbige Hüte sieht, entscheidet sie sich für die andere Farbe. Nicht alle Hüte haben ja die gleiche Farbe. • Falls die hinterste Frau nichts sagt, weiss die mittlere Frau, dass ihr Hut die andere Farbe hat als der von der vordersten Frau. Denn sonst hätte ja die hinterste Frau zwei gleiche Hüte gesehen und dies gesagt. …logisch? Idee: logische Formel zur Sicherheit an einer Strassenkreuzung! Anforderung: keine Kollisionen bei Kreuzungen! B A Kollision möglich!... Was muss gelten, damit keine Kollisionen möglich sind? Wie kann man das spezifizieren? Programm heute • Interaktive Einführung „Logik“ (40‘) – Logik als Grundlage der Rationalität – Einführung Aussagenlogik • Aussagen • Operatoren • Wahrheitstabellen • Aufgaben zu LogicTraffic (45‘) – Selbstständig Aufgaben lösen, mit Compi – Lösungen besprechen Logik als Grundlage der Rationalität Logik ist letztendlich die Grundlage jeglicher Wissenschaft und jeglicher rationaler Argumentation. Das heisst: Wir alle müssen einige Grundregeln des logischen Denkens akzeptieren, sonst gibt es kein „vernünftiges“ Denken (und Handeln). Der Satz vom Widerspruch Eine Aussage kann nicht gleichzeitig mit ihrem Gegenteil wahr sein. – z.B.: „Zürich ist ein Kontinent.“ und „Zürich ist kein Kontinent.“ kann nicht gleichzeitig wahr sein. – weder beweis- noch widerlegbar. J Aristoteles, Begründer der Logik * 384 v. Chr. in Stageira † 322 v. Chr. in Chalkis Logische Folgerung z.B.: Aussage 1: „Wenn es regnet, wird die Straße nass.“ Aussage 2: „Es regnet.“ Folgerung: „Die Straße wird nass.“ Aus den zwei Aussagen “wenn A, dann B“ und „A“ kann die Aussage „B“ hergeleitet werden. J Auf diese Weise können wir argumentieren und mittels gemeinsam anerkannten „Regeln“ und wahren Aussagen neue Aussagen als wahr herleiten. Was sind Aussagen? Aussagen sind Sätze, die entweder wahr (1) oder falsch (0) sind. • 2+4=6 • Zürich ist die Hauptstadt der Schweiz. • Peter (23) ist älter als Paul (17). Keine Aussagen: • Wo ist der Bahnhof? • Ruhe jetzt! 1 0 1 unklar! • Bern ist eine schöne Stadt. • Dieses Wasser (20°) ist kalt. Zusammengesetzte Aussagen… …sind ebenfalls Aussagen, also auch entweder wahr oder falsch. • Peter (23) ist älter als Paul (17) und 4+4=9. • Peter (23) ist älter als Paul (17) und 2+4=6. • Zürich ist die Hauptstadt der Schweiz oder Bern die Hauptstadt der Schweiz. 0 1 ist 1 Aussagenlogik Aussagen… …werden durch Variablen repräsentiert …haben Wahrheitswert (wahr/falsch, resp. 0/1) • A = „Zürich ist die Hauptstadt der Schweiz.“ • B = „2+4=6“ 0 1 Aussagenlogische Formeln sind zusammengesetzte Aussagen: – Wahrheitswert (wahr/falsch, resp. 0/1) • A UND B • A ODER B • (NICHT A) UND B 0 1 1 George Boole Begründer der Aussagenlogik – englischer Mathematiker * 1815 in Lincoln † 1864 in Ballintemple (Irland) ÖBoolesche Variablen – Können immer nur einen von zwei Werten annehmen • true/false, wahr/falsch, 1/0 – In vielen Programmiersprachen als „Datentyp“ vorhanden • Oft gebraucht für bedingte Anweisungen • z.B. in Java, C, PHP, Pascal oder VisualBasic Logische Operatoren • Logische Operatoren verbinden Aussagen zu neuen (zusammengesetzten) Aussagen • Welche Operatoren gibt es? ÖNICHT, UND, ODER - Sind die gebräuchlichsten, es gibt noch mehr. (z.B. wenn/dann) NICHT (Negation) Abgekürzte Schreibweise: ¬ • Wahrheitstabelle: A ¬A 0 1 1 0 UND (Konjunktion) • Abgekürzte Schreibweise: ∧ • Wahrheitstabelle: A B A∧B 0 0 0 0 1 0 1 0 0 1 1 1 ODER (Disjunktion) • Abgekürzte Schreibweise: ∨ • Wahrheitstabelle: A B A∨B 0 0 0 0 1 1 1 0 1 1 1 1 Aussagenlogik (Kurzreferenz) Variablen Negation “NICHT“ Konjunktion Disjunktion “UND“ “ODER“ A B ¬A A∧B A∨B 0 0 1 0 0 0 1 1 0 1 1 0 0 0 1 1 1 0 1 1 Ö Aussagenlogischen Formeln, z.B.: - (¬A∧B)∨(A∨¬B) - A∨(¬B∨¬C)∧(D∨B) Jetzt Aussagen praktisch: Verkehrssteuerung & Logik Verkehrssituation: B A Aussagen: • A = „Spur A hat grün.“ • B = „Spur B hat grün.“ Aufgabe: Beschreibe obige Situation mit einer zusammengesetzten Aussage! (d.h. mit Hilfe von logischen Operatoren und der den Variablen A und B.) Bemerkung: Benutze dazu die erhaltene Tabelle. Jetzt Aussagen praktisch: Verkehrssteuerung & Logik Verkehrssituation: Aussagen: • A = „Spur A hat grün.“ • B = „Spur B hat grün.“ B A Lösung: A ∧ (¬B) Aufgabe: Beschreibe obige Situation mit einer zusammengesetzten Aussage! (d.h. mit Hilfe von logischen Operatoren und der den Variablen A und B.) Bemerkung: Benutze dazu die erhaltene Tabelle. Lösung: A ∧ (¬B) A A A A A B A ∧ (¬B) 1 0 1 B B B B Lösung: A ∧ (¬B) A A A A B A B A ∧ (¬B) 0 0 0 1 0 1 B B B Lösung: A ∧ (¬B) A A A A B B B B A B A ∧ (¬B) 0 0 0 0 1 0 1 0 1 Lösung: A ∧ (¬B) A A A A B B B B A B A ∧ (¬B) 0 0 0 0 1 0 1 0 1 1 1 0 Wahrheitstabelle Gibt für alle Kombinationen der Variablenwerte die Wahrheitswerte einer aussagenlogischen Formel an. A B A B A ∧ (¬B) 0 0 0 0 1 0 1 0 1 1 1 0 Aufgabe: Wie wird diese Zeile interpretiert? Idee: Formel zur Sicherheit an einer Strassenkreuzung! Anforderung: keine Kollisionen bei Kreuzungen! B A Kollision möglich!... Was muss gelten, damit keine Kollisionen möglich sind? Wie sieht die Wahrheitstabelle aus? Gibt es aussagenlogische Formeln dafür? Programm „LogicTraffic“ Grundidee: Finde eine aussagenlogische Formel, welche die gegebene Verkehrssituation sicher macht. ÖVerschiedene Strategien! LogicTraffic Verkehrs– situation Wahr– heits– tabelle Formel zur Wahrheitstabelle Formeleditor Statusanzeige unsicher (Kollisionen möglich) sicher (keine Kollisionen, aber mehr Grünphasen möglich) optimal (keine Kollisionen und nicht mehr Grünphasen möglich) Maus - Interaktionspunkte Visualisierung des Parse-Baums LogicTraffic - Demo! Jetzt Ihr… • Anleitung durchlesen • Aufgaben bearbeiten mit Hilfe von LogicTraffic