Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Evolution of the Sudoku Solver ... #14

Open
ghost opened this issue Oct 28, 2022 · 2 comments
Open

Evolution of the Sudoku Solver ... #14

ghost opened this issue Oct 28, 2022 · 2 comments

Comments

@ghost
Copy link

ghost commented Oct 28, 2022

  • Visualisierung der Lösungsstrategie mit pygame

  • Weiterentwicklung der Strategie, z.B. nicht alle leeren_Felder checken, sondern erstmal die vom letzen Versuch veränderten Zellen (Spalte, Zeile und Block). Ich habe dein Projekt mal in C++ nachgeschrieben. Mit deinem Python_Code komme ich bei deinem Referenz-Sudoku auf 0,118 Sekunden, in C++ auf 0,062 Sekunden und mit dem verbesserten Algorithmus auf 0,019 Sekunden.

  • Hab noch eine weitere Optimierung mit Pointern im Kopf, dies ließe sich jedoch nicht in Python umsetzen, dürfte jedoch nochmal eine deutliche Beschleunigung bedeuten, da die Listen für die Kandidaten und die freien Felder wegfallen würden. In meineM C++_Code habe ich jedoch nur für die freien Felder eine Liste verwendet und die Kandidaten als Array von Bool-Werten dargestellt, mit Listen war C++ langsamer als Python.

Hab mir schon überlegt ob ich dazu mal ein Video machen soll.

@Gravitar64
Copy link
Owner

Hi, das hört sich gut an. Mach doch mal das Video. Ich würde es mir auf jeden Fall anschauen. Man lernt ja immer gerne weiter

@ghost
Copy link
Author

ghost commented Oct 28, 2022

ich hab inzwischen eine Lösung die nur noch 0.006 Sekunden benötigt. Die in einer Rekursion kontrollierten Felder werden in einem Array von Bool-Werten hinterlegt und dadurch nicht doppelt geprüft und ich verzichte auf die Liste der freien Felder. Die Kandidaten werden weiterhin ebenfalls in einem Array von Bool-Werten dargestellt. Die Pointer sind noch nicht implementiert.

Ich hab vorhin mal angefangen mich mit der Video-Aufnahme zu beschäftigen. Wenn ich das Video fertig hab geb ich es dir frei zu reviewen.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant