Für eine Studienaufgabe habe ich Norvigs Algorithmus in C# neu erstellt, um Sudokus als Constraint Satisfaction Problem (CSP) kombiniert mit lokaler Suche zu lösen, wobei die Anzahl möglicher Werte für ein Quadrat heuristisch ist. Jetzt muss ich eine Erweiterung oder Variante davon erstellen, und ich bin irgendwie verwirrt, bis zu welchem Grad der Algorithmus die Bogenkonsistenz gewährleistet. Was der aktuelle Algorithmus im Grunde dafür tut, ist:Sudoku als CSP (Bogenkonsistenz)
Initialisieren Sie die möglichen Werte (Domänen) jedes Quadrats als [1, ..., n * n].
Jede Zuweisung eines Werts an ein Quadrat erfolgt durch Eliminieren aller möglichen Werte aus der Domäne und Aktualisieren jedes Peers (Quadrat in demselben Untergitter/Zeile/Spalte) durch Entfernen des zugewiesenen Werts aus ihren Domänen. (Gewährleistet dies nicht vollständig die Bogenkonsistenz, da dies die einzigen Einschränkungen zwischen den Peers sind, dass sie möglicherweise nicht den gleichen Wert haben?)
Wenn ein Wert aus der Domäne eines Quadrats eliminiert wird, wird auch geprüft, ob nur noch 1 Quadrat übrig ist Wert in seiner Einheit. Wenn ja, wird es diesem Quadrat zugewiesen (auch indem mögliche Werte eliminiert und auf genau diesen Wert reduziert werden).
Jetzt ist meine Frage: stellt dieser Algorithmus vollständige Bogenkonsistenz sicher? Und wenn nicht, wie könnte ich meinen CPS-Algorithmus dafür verbessern?
Wenn mir jemand dabei helfen könnte, wäre es sehr geschätzt!
Vielen Dank im Voraus.
Mit freundlichen Grüßen.