Aufgabe 9.4 Sokoban - BitSet Denkanstoß

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Aufgabe 9.4 Sokoban - BitSet Denkanstoß
Hallo,

ich habe die Sokoban Aufgabe größtenteils gelöst und sie funktioniert auch. Allerdings speichere ich aktuell noch die bereits erkundeten Pfade in einer Synchronized List als String. Das ist dementsprechend auch relativ langsam, die nicht ausgeklammerten Tests brauchen über 29 Minuten, eine Lösung zu finden. Vor allem 154 ist hier ein Problem.

Wie soll ich das ganze Speicher- und Leistungseffizient in einem BitSet speichern und wie wickle ich das ganze Thread-Safe ab?
Komme da gerade nicht wirklich weiter.

Danke euch :slight_smile:


Ich denke es ist sinnvoller, sich bereits erkundete Zustände zu merken, denn es ist ja egal wie ich da hingekommen bin; von dort an wird die Lösung unabhängig von dem was zuvor war sein.
Für Zustände hatten wir in der Vorlesung schon Konzepte wie man das machen kann im AccidentLogger; idealerweise bräuchte man eine Hashmap - die aber selbst auch threadsicher ist. (Aber bitte nicht einfach ein synchronized um jeden Hashmapzugriff hauen :wink: )


Ich hab mich da glaube ich etwas falsch ausgedrückt. Ich meine schon die Zustände.

Aber ich verstehe nicht, wie ich das in einem BitSet speichern soll.