9 - Grundlagen der Logik in der Informatik [ID:5830]
50 von 523 angezeigt

Ja, herzlich willkommen. Wir hatten letztes Mal besprochen die Semantik von Logik erster

Stufe. Da gibt es ein paar lose Enden, damit sind wir also noch nicht fertig. Die werde

ich aber nächste Woche erledigen, um heute nochmal ein kompaktes Thema zu erledigen,

bevor alle nun noch weiter in den Weihnachtsurlaub entschwinden. Ich sehe, die Hälfte ist ohnehin

schon im Weihnachtsurlaub und zwar Unifikation. Ja, Unifikation ist ein,

ziemlich wichtiges Thema in sämtlichen Bereichen der Implementierung von Logik. Insbesondere,

wenn wir noch logische Programmierung im Programm hätten, gut das haben wir nur extra rausgenommen,

dann hätte man auch gleich eine Maschine zur Hand, die eigentlich ständig nichts anderes tut als

unifizieren. Also das ist das, was ein Prolog-Engine zum Beispiel hauptsächlich tut, der läuft durch

die Gegend und unifiziert. Ja, was heißt das? Einmal kurz motivationsmäßig vorweg.

So, wir alle können Gleichungen lösen, so richtig schwere Gleichungen mit Unbekannten,

wie diese hier. Unifikation ist auch Gleichungslösen, aber Gleichungslösen für viel weniger schlaue Leute

als uns, zum Beispiel für einen Computer. So, viel weniger schlaue Leute als wir, die würden

nicht erkennen, dass wenn man da eine 1 einsetzt für dieses x, dass dann 1 plus 7 eben gerade 8

ergibt, sondern die würden sagen, naja, 1 plus 7 ist ja doch eigentlich was völlig anderes als 8,

nämlich 1 plus 7. Und genau auf dem Level werden wir jetzt Gleichungen lösen. Ja, das gibt es dann

mal an lösbaren Gleichungen. So, diese hier können wir zum Beispiel nehmen. Ja gut, die ist arithmetisch

eigentlich viel komplizierter, weil sie so einen großen Lösungsraum hat. So, wir wollen das jetzt

aber so lösen wie unser nicht ganz so schlauer Zeitgenosse von eben. Und das wird der hinkriegen,

ja? Der sieht, ach Mensch, ich kann hier für x 3 einsetzen und für z 8 und dann steht da 3 plus 8

gleich 3 plus 8. Das glaube ich. Ja, gut. Und, okay, also ich meine, das kommt einem, wenn man das jetzt

sieht zunächst mal nicht so schwierig vor. Sobald sich die Terme so ein bisschen tiefer schachteln

als die beiden, die wir da sehen, wird es dann doch irgendwie einen Tacken komplizierter. Es ist

andererseits zum Glück vielleicht keins von diesen tatsächlich beweisbar schwierigen Problemen,

also es ist nicht NP-hard oder sowas. Man kann es in Polynomialzeit lösen. Und wir werden einen

Algorithmus vorführen oder nicht einführen, von dem wir nicht zeigen werden, dass er das in

Polynomialzeit löst. Wir werden genug Mühe haben zu zeigen, dass er terminiert. In der Tat werden

Sie wahrscheinlich das erste Semester, was mich nicht bei einem kleineren Patzer ertappt, beim

Terminationsbeweis dieses Algorithmus. Jetzt mal vorausgesetzt, dass nicht doch noch ein Bug drin

ist. Wir werden nicht zeigen, dass er in Polynomialzeit terminiert, aber man kann zeigen,

dass man das zumindest hinbekommt, ihn so zu tweaken, dass er in Polynomialzeit terminiert.

Trotzdem tut sowas niemand. Also es gibt praktische Algorithmen zur Unifikation. Diese praktischen

Algorithmen laufen alle theoretischen Exponentialzeit. Theoretisch. Gut. Wir haben also irgendwie zu tun

mit Gleichungen. Wenn man sich an die Mittelschule oder Mittelstufe erinnert, an die Mittelschule,

das heißt ja was anderes, Mittelstufe, dann wird man sich erinnern, dass auf die Gleichungen dann

irgendwie relativ bald auch Gleichungssysteme folgten. So und jetzt werden wir uns also in

der Tat hier mit Gleichungssystemen befassen. Fangen also gleich ohne weiteres Geschwafel an

mit einer Definition. Ja, wir müssen also dann zunächst mal sagen, was überhaupt eine Gleichung

ist. So, eine Gleichung ist jetzt erstmal schlicht und einfach ein paar von Termen. Logisch. Eine linke

Seite und eine rechte Seite der Gleichung, jeweils ein Term. Und dann führen wir ein bisschen

Notation ein, damit wir uns bei so einem paar das Richtige denken und also gewissermaßen nicht

vergessen, dass es eine Gleichung ist. Wir würden es eigentlich gerne so schreiben, aber wir wollen

unterscheiden zwischen tatsächlicher syntaktischer Gleichheit, die schon gilt und syntaktischer

Gleichheit, die erst hergestellt werden soll. Bisher, also es kam ja das Gleichseitssymbol

einerseits in Formeln vor. Da meint es natürlich Gleichheit im Modell. Das haben wir in der Semantik

gesehen. Und wenn wir auf der Meta-Ebene Gleichheit verwenden, also in der Diskussion über die Logik,

meinen wir mit Gleichheit immer syntaktische Gleichheit. So und hier so eine Gleichung meint

aber jetzt noch keine syntaktische Gleichung, die schon gilt, sondern eine, die wir erst noch

herstellen wollen. Deswegen packen wir einen Punkt darüber. Ja, da müssen wir sagen, was ein

Gleichungssystem ist. Und ein Gleichungssystem ist eben schlicht und einfach eine Menge von Gleichungen,

Zugänglich über

Offener Zugang

Dauer

01:27:58 Min

Aufnahmedatum

2015-12-14

Hochgeladen am

2015-12-15 07:18:27

Sprache

de-DE

Aussagenlogik:

  • Syntax und Semantik
  • Automatisches Schließen: Resolution
  • Formale Deduktion: Korrektheit, Vollständigkeit


Prädikatenlogik erster Stufe:

  • Syntax und Semantik
  • Automatisches Schließen: Unifikation, Resolution
  • Quantorenelimination
  • Anwendung automatischer Beweiser
  • Formale Deduktion: Korrektheit, Vollständigkeit
Einbetten
Wordpress FAU Plugin
iFrame
Teilen