14.08.2009, 15:42
Ich habe seit einiger Zeit auch schon darüber nachgedacht, mir ein solches Programm zu schreiben, diese Idee dann aber verworfen:
Meines Erachtens ist es ohne größeren Programmieraufwand erst einmal nur möglich, "leichte" Rätsel zu lösen bzw zu erzeugen, also solche mit Standard-Aussagen wie "Peter besitzt (k)einen Audi", um mal bei deinem Beispiel zu bleiben. Für solche Rätsel brauche ich allerdings kein Programm
Hinzu kommt, daß es extrem schwer ist, eine Art Spracherkennung einzubauen, die mit Aussagen der Form "Peter besitzt einen Audi" zurechtkommt (ich würde mir so etwas nicht zutrauen). Das bedeutet, zum Lösen muß ich die in Textform gegebenen Aussagen erst einmal in eine mathematische Formelsprache übersetzen - und in der Zeit, die ich dafür benötige, habe ich das Rätsel vermutlich schon gelöst.
Spannender sind Rätsel mit Relativhinweisen, etwa in der Form "Peters Auto ist 3 Jahre älter als das Auto des Münchners", oder verschärft "Peters Auto ist 3 Jahre älter als das Auto, das 5000 Euro teurer war als das Auto des Münchners". Interessante und schwierige Rätsel bekommt man vermutlich nur hin, indem man viele derartige Relativhinweise kombiniert. Wie löst man jetzt derartige Rätsel per Computer? Intelligente Algorithmen zu schreiben, ist nicht ganz einfach, da man dabei auf alle möglichen Arten von Hinweisen vorbereitet sein muß, und die Kreativität von Rätselautoren einem dabei immer wieder einen Strich durch die Rechnung machen kann. Natürlich ist es möglich, per Brute Force einfach alle Möglichkeiten durchzuprobieren - für die von dir genannte Rätselgröße wären das 120^4 Möglichkeiten, also rund 200 Millionen, was mit heutigen Rechnerleistungen überhaupt kein Problem darstellt - aber was steckt da für ein Sinn dahinter?
Und das ist meines Erachtens die Kernfrage: Wozu ein solches Programm?
Um Rätsel zu lösen? Entweder mir macht diese Art von Rätseln Spaß, dann möchte ich sie auch selbst lösen und mir nicht simpel von einem Programm die Lösung ausgeben lassen, oder mir machen diese Rätsel keinen Spaß, dann wird sich das durch ein Programm auch nicht ändern...
Oder um Rätsel zu erstellen? In dieser Community überwiegt die Meinung, daß händisch erstellte Rätsel höherwertig sind als computergenerierte. Ein Grund ist, daß es bei einem ohne Computer erstellten Rätsel zwangsläufig einen Lösungsweg gibt, den ein menschlicher Löser finden kann. Bei einem computergenerierten Rätsel kann es passieren, daß der Computer zwar sieht, daß von den 200 Millionen Möglichkeiten nur eine in Frage kommt, aber das menschliche Gehirn ist dazu nicht in der Lage... dann besteht der Lösungsweg darin, vieles auszuprobieren und nur langsam Fortschritte zu machen; der Spaß dabei hält sich in Grenzen.
Natürlich läßt sich das vermeiden, indem man ein Programm schreibt, welches möglichst menschlich vorgeht, also beim Lösen nur Schlußfolgerungen verwendet, die ein menschlicher Löser auch nutzen würde. Aber das führt wieder auf die Kernfrage zurück - wozu ein solches Programm?
Grüße,
uvo
Meines Erachtens ist es ohne größeren Programmieraufwand erst einmal nur möglich, "leichte" Rätsel zu lösen bzw zu erzeugen, also solche mit Standard-Aussagen wie "Peter besitzt (k)einen Audi", um mal bei deinem Beispiel zu bleiben. Für solche Rätsel brauche ich allerdings kein Programm
Hinzu kommt, daß es extrem schwer ist, eine Art Spracherkennung einzubauen, die mit Aussagen der Form "Peter besitzt einen Audi" zurechtkommt (ich würde mir so etwas nicht zutrauen). Das bedeutet, zum Lösen muß ich die in Textform gegebenen Aussagen erst einmal in eine mathematische Formelsprache übersetzen - und in der Zeit, die ich dafür benötige, habe ich das Rätsel vermutlich schon gelöst.
Spannender sind Rätsel mit Relativhinweisen, etwa in der Form "Peters Auto ist 3 Jahre älter als das Auto des Münchners", oder verschärft "Peters Auto ist 3 Jahre älter als das Auto, das 5000 Euro teurer war als das Auto des Münchners". Interessante und schwierige Rätsel bekommt man vermutlich nur hin, indem man viele derartige Relativhinweise kombiniert. Wie löst man jetzt derartige Rätsel per Computer? Intelligente Algorithmen zu schreiben, ist nicht ganz einfach, da man dabei auf alle möglichen Arten von Hinweisen vorbereitet sein muß, und die Kreativität von Rätselautoren einem dabei immer wieder einen Strich durch die Rechnung machen kann. Natürlich ist es möglich, per Brute Force einfach alle Möglichkeiten durchzuprobieren - für die von dir genannte Rätselgröße wären das 120^4 Möglichkeiten, also rund 200 Millionen, was mit heutigen Rechnerleistungen überhaupt kein Problem darstellt - aber was steckt da für ein Sinn dahinter?
Und das ist meines Erachtens die Kernfrage: Wozu ein solches Programm?
Um Rätsel zu lösen? Entweder mir macht diese Art von Rätseln Spaß, dann möchte ich sie auch selbst lösen und mir nicht simpel von einem Programm die Lösung ausgeben lassen, oder mir machen diese Rätsel keinen Spaß, dann wird sich das durch ein Programm auch nicht ändern...
Oder um Rätsel zu erstellen? In dieser Community überwiegt die Meinung, daß händisch erstellte Rätsel höherwertig sind als computergenerierte. Ein Grund ist, daß es bei einem ohne Computer erstellten Rätsel zwangsläufig einen Lösungsweg gibt, den ein menschlicher Löser finden kann. Bei einem computergenerierten Rätsel kann es passieren, daß der Computer zwar sieht, daß von den 200 Millionen Möglichkeiten nur eine in Frage kommt, aber das menschliche Gehirn ist dazu nicht in der Lage... dann besteht der Lösungsweg darin, vieles auszuprobieren und nur langsam Fortschritte zu machen; der Spaß dabei hält sich in Grenzen.
Natürlich läßt sich das vermeiden, indem man ein Programm schreibt, welches möglichst menschlich vorgeht, also beim Lösen nur Schlußfolgerungen verwendet, die ein menschlicher Löser auch nutzen würde. Aber das führt wieder auf die Kernfrage zurück - wozu ein solches Programm?
Grüße,
uvo