Computer-Löser

Was ist ein Computer-Löser?

Ein Computerlöser ahmt im Grunde nach, wie ein Mensch ein Sudoku löst, so dass

  • er Dir zeigen kann wie man weiterkommt in einem Sudoku (für den Fall, dass Du feststeckst)
  • er die Schwierigkeit eines bestimmten Sudokus herausfinden kann (speziell wie schwer ein Mensch ein Sudoku finden würde)

Wenn Du noch keinen Sudoku-Löser gesehen hast, ist es vielleicht am besten, Du schaust Dir einfach den sudoku.coach-Löser selbst an.

Klicke einfach auf die kleine Schaltfläche "Löser" unter dem Sudoku-Raster, um das Sudoku im Löser zu öffnen. Du kannst dann Stück für Stück alle Schritte durchgehen, die nötig sind, um dieses Sudoku zu lösen.


Lass Dich von diesem Löser nicht einschüchtern. Es gibt zwei häufige Antworten, die ich von Leuten bekomme, die keine Erfahrung mit Computer-Lösern (oder generell keine Erfahrung mit Computern) haben:

  • "Natürlich kann der Computer Sudokus lösen, er ist schließlich ein Computer..."
    Bitte sieh Computer nicht als magische Maschinen, die nicht mit Menschen vergleichbar sind. Ein Computer kann nur das tun, was ihm beigebracht wird. Wenn man ihm die Techniken beibringt, die Menschen verwenden, dann wird er nichts anderes tun als Menschen. Er wird diese Techniken viel schneller anwenden können, aber er wird nichts tun, was für Dich und mich unmöglich ist.
  • "Der Löser verwendet so viele Hilfszahlen. Ich dachte, dieser Löser sollte Menschen imitieren? Menschen tun so etwas nicht."
    Das stimmt, Menschen fangen in der Regel an, Zellkandidaten aufzuschreiben, wenn nur noch wenige Kandidaten für eine einzelne Zelle übrig sind, oder wenn sie nicht weiterkommen und fortgeschrittenere Techniken anwenden müssen. Nur aus Gründen der Konsistenz notiert der Computer-Löser die Zellkandidaten von Anfang an. Ich versichere Dir, dass du diese Notationen für die Anwendung der grundlegenden Techniken nicht brauchst. Es ist jedoch immer hilfreich, das Sudoku-Raster aus verschiedenen Blickwinkeln zu betrachten, und die Betrachtung des gesamten Rasters als Zellen mit Zellkandidaten könnte Dir eine neue Sichtweise geben.

Wie macht der Computer-Löser das?

Um einen menschlichen Löser zu imitieren, müssen wir zunächst alle Techniken nach folgenden Kriterien ordnen

  • wie schwierig es ist, die Technik anzuwenden, und auch
  • wie hilfreich diese ist. (wie wahrscheinlich es ist, dass die Technik tatsächlich zu einem Ergebnis führt)

So machen es die Menschen nun einmal. Wir fangen an, nach den einfachen Dingen zu suchen, und wenn wir nichts finden, beginnen wir, nach immer schwierigeren Dingen zu suchen.

Wir haben die Reihenfolge der Techniken schon auf der Seite Sudoku Schwierigkeit gesehen. Wir wissen also schon, in welcher Reihenfolge der Löser die Techniken ausführen sollte.

Bei jedem Schritt, den der Löser macht (bei jedem Klick auf die Schaltfläche ">"), werden die Techniken in dieser Reihenfolge ausprobiert, und nur wenn der Löser etwas für eine Technik findet, wird der Schritt abgeschlossen und sein Ergebnis dem Benutzer angezeigt.

Das heißt, wenn der Löser Dir etwas Fortgeschrittenes wie "Einfaches Einfärben" anzeigt, dann weißt Du, dass er nichts einfacheres als das finden konnte (und Du auch nicht).

Der Computer-Sudoku-Löser ist nicht perfekt

Er ist perfekt in dem Sinne, dass er alles erspähen kann was er sollte.

Worin er aber nicht perfekt ist, ist das Imitieren von Menschen.

Wir haben bereits gesagt, dass ein Computer-Löser versucht, einen menschlichen Löser zu imitieren. Das ist natürlich richtig, und dennoch gibt es einige Unterschiede zwischen den beiden, vor allem die folgenden:

Der Computer-Löser probiert strikt eine Technik nach der anderen aus (und führt immer die gleichen Prüfungen in der gleichen Reihenfolge innerhalb der Ausführung dieser Technik durch). Ein menschlicher Löser denkt und scannt das Brett viel "menschenähnlicher", was oft chaotischer und auch lokaler ist.

Was meine ich mit lokal? Es bedeutet, dass Menschen ihren nächsten Schritt meist von der Zahl abhängig machen, die sie im vorherigen Schritt gefunden haben. Der sudoku.coach Solver berücksichtigt das nicht. Wenn man z.B. eine 5 in einem Feld gefunden hat, dann prüft ein Mensch sofort alles, was dieses Feld irgendwie beeinflusst. Das erhöht die Gesamtlösungsgeschwindigkeit für Menschen und könnte auch die Geschwindigkeit des Computers erhöhen, wenn man es ihm beibrächte.