Laws of Form - Editor - Termumwandlung - Rätsellöser

Als ich die Seiten "Das Kalkül interpretiert für die Logik" gelesen habe, wurde ich neugierig, ob sich das Kalkül verwenden lässt, um die Lösungen von Logikrätseln, wie sie bspw. im "P.M. Logik-Trainer" oder in den "Logeleien von Zweistein" zu finden sind, zu berechnen.

Zunächst versuchte ich es mit Wahrheitstabellen in Excel. Dies war jedoch schon für relativ einfache Aufgaben ein großer Aufwand, da für jedes "ab" in Excel "ODER(a;b)" und für jedes Kreuz "NICHT()" geschrieben werden musste. Ein Formeleditor musste her.

Nachdem ich eine Formel eingeben konnte, versuchte ich mich daran, dem Programm die Initiale und Konsequenzen nahezubringen, so dass es in die Lage versetzt werden sollte, komplexe Terme in einfachere umzuformen. Theorem 14 gab mir sowohl die Richtung wie auch das Hilfsmittel an. Die Termumformung überführt einen Ausdruck in einen äquivalenten Ausdruck, der maximal 2 Kreuze tief ist und zeigt die Zwischenschritte, sowie die verwendeten Initiale und Konsequenzen an.

Da ich ja das Ziel hatte Logikrätsel zu lösen, musste als nächstes eine Schnittstelle zwischen Textform des Rätsels und Symbolform des Kalküls her. Außerdem sollte das Ergebnis in einer Ergebnistabelle, wie sie in den P.M. Logik-Trainern unten zu finden sind, mit den Rätselbegriffen und nicht in Symbolform ausgegeben werden.

Wenn die Terme von Logikrätseln vereinfacht werden entsteht ein Term der auf oberster Ebene nur Kreuze enthält und darunter die einzelnen Symbole entweder gekreuzt oder nicht gekreuzt. Stellt man sich eine Wahrheitstabelle vor, so entspricht jedes Kreuz der obersten Eben einer Zeile in der Wahrheitstabelle. Jedes enthaltene Kreuz den Wert WAHR für das gekreuzte Symbol, jedes nicht gekreuzte Symbol den Wert FALSCH:

[a[b]cd] entspricht also einer der 16 Zeilen einer Wahrheitstabelle, die folgende Werte enthält:
a=FALSCH; b=WAHR; c=FALSCH; d=FALSCH.
Für diese Zeile der Wahrheitstabelle ergibt sich der Ergebniswert WAHR. Ist das angegebene Kreuz das einzige im Term, dann ergeben alle anderen Zeilen der Wahrheitstabelle den Wert FALSCH.

Bei den P.M. Rätseln gibt es regelmäßig 5 Antwortzeilen, d.h. der Ergebnisterm sollte 5 Kreuze enthalten, von denen jedes eine Antwortzeile darstellt. Allerdings musste ich feststellen, dass oft mehr Antwortzeilen ausgegeben werden. Das liegt daran, dass diese Logikrätsel die Bedingung implizieren, dass in allen Lösungszeilen zusammen genommen jedes Symbol nur und genau ein einziges Mal mit dem Wert WAHR auftauchen darf. Diese Bedingung kann ich jedoch nicht für den Rätselterm formulieren. Vielleicht ist hier eine Grenze des Kalküls erreicht, zumindest jedoch eine Grenze meines Verständnisses vom Kalkül. Vielleicht ist es erst mit Gleichungen zweiten Grades möglich, einander widersprechende Antwortzeilen auszusortieren bzw. einander nicht widersprechende Antwortzeilen als Lösung zu präsentieren.

Einstweilen behelfe ich mir damit, dass das Programm im Anschluss an die Termumformung die Antwortkreuze nach eindeutigen Lösungen durchsucht. Dann werden die in diesen Termen mit WAHR bezeichneten Variablen für eine weitere Termumformung als FALSCH bezeichnet, so dass sich wieder mindestens eine eindeutige Lösungzeile ergibt usw. Bei den meisten Rätseln ist diese "Nachbearbeitung" notwendig.

Weiterhin unlösbar sind für das Programm Rätsel, die Bedingungen enthalten, die mehrere Antwortzeilen vergleichen.
Beispiel: "Das blaue Haus liegt neben dem Haus des Engländers."
Zunächst lässt sich hieraus ableiten, dass "das blaue Haus" NICHT das "Haus des Engländers" ist, daher sind sie in zwei verschiedenen Zeilen der Wahrheitstabelle mit WAHR bezeichnet. Nehmen wir an, es gibt 3 Positionen (links, mitte und rechts), dann bedeutet "neben" eine ganze Reihe von möglichen Implikationen, von denen jedoch nur eine einzige zutrifft:
Wenn das blaue Haus (b) links (l) ist, dann ist das Haus des Engländers (e) in der Mitte (m).
ODER
Wenn das blaue Haus (b) in der Mitte (m) ist, dann ist das Haus des Engländers (e) links (l).
ODER
Wenn das blaue Haus (b) in der Mitte (m) ist, dann ist das Haus des Engländers (e) rechts (r).
ODER
Wenn das blaue Haus (b) rechts (r) ist, dann ist das Haus des Engländers (e) in der Mitte (m).
In das Kalkül übersetzt, hieße es:
[[[b][l]]][[e][m]][[[b][m]]][[e][l]][[[b][m]]][[e][r]][[[b][r]]][[e][m]]
vereinfacht ergibt sich der Term: [b][l][m][r]e
Übersetzt heißt das, dass alle Zeilen zur Lösung gehören, bei der b=FALSCH (bool'sches) oder l=FALSCH oder m=FALSCH oder r=FALSCH oder e=WAHR ist. Da von l, m und r in jeder Antwortzeile jedoch nur eines WAHR sein darf, alle anderen hingegen FALSCH sind, ist in jeder Zeile der Wahrheitstabelle einer dieser Werte FALSCH und somit die Bedingung IMMER erfüllt.

Folgerung:
Obwohl die Implikationen korrekt formuliert scheinen, sind sie bedeutungslos für die Antwort. Der Grund hierfür liegt wohl daran, dass "das blaue Haus" und das "Haus des Engländers" in verschiedenen Zeilen der Wahrheitstabelle mit WAHR bezeichnet werden. Ich habe bisher keinen Weg gefunden, zwei Zeilen einer Wahrheitstabelle miteinander in logische Beziehung zu setzen, daher kann das Programm solche Rätsel nicht lösen. Dies ist eng verknüpft mit dem oben beschriebenen Problem, dass sich nach der Termumformung zu viele Antwortzeilen ergeben. In beiden Fällen ist die Auswahl einer Antwortzeile von der Auswahl einer anderen Antwortzeile abhängig. Hierfür suche ich noch nach einer Lösung.

Kurzbeschreibung

DOWNLOAD und Bedienung

 

Diese Seite ist zu finden unter http://www.freie-ressourcen.de/lof