PathOfBuildingCommunity / PathOfBuildingCommunity/PathOfBuilding
Proof-of-concept Genetic Algorithm Optimization Build
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Lua
- Sterne
- 5.4k
- Forks
- 2.4k
- Ø Merge
- 1 T. 12 Std.
- Gemergte PRs (30 T.)
- 26
Beschreibung
Check for duplicates
- I've checked for duplicate issues by using the search function of the issue tracker
Is your feature request related to a problem?
Yes.
Describe the solution you'd like
I did two separate projects. In the first Lua implementation of the UI and the implementation of the genetic algorithm itself in Rust.
https://github.com/Tiikara/path_of_building_genetic_genetic_lualib - genetic library on rust for lua
https://github.com/Tiikara/pathofbuildinggenetic - PoB with genetic
Describe alternatives you've considered
No response
Additional context
Currently implemented:
- Genetic algorithm
- Multithreaded calculation
- UI interface for setting the values the genetic algorithm will aim for
- Saving the genetic algorithm settings in Build xml
- Displaying the best results in the UI during the optimization process
- Use of conventional nodes
- Using ascendence nodes
- Using mastery nodes
Current issues:
- Slow performance due to long shortest path search (the algorithm takes 20 minutes on my Intel Core i9 12900k and uses 8 gigabytes of memory)
- Memory leak on optimization restart
What needs to be done before merge:
- My fork uses the 64bit architecture and luajit2.1 from https://github.com/openresty/luajit2. Can we already recompile the project to 64bit? :)
The 64bit architecture is necessary because of threads' memory usage. The luajit2.0 used in the project now cannot allocate more than 2 Gbytes of memory, that's why I chose https://github.com/openresty/luajit2 without this limitation.
Project dependencies (runtime_x64) https://github.com/Tiikara/pathofbuildinggenetic compiled with Visual Studio 2019
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne mit dem verlinkten pathofbuildinggenetic-Fork und seinen runtime_x64-Abhängigkeiten und vergleiche dann die Lua UI und die genetische Rust-Bibliothek mit dem LuaJIT 2.0-Setup des Hauptprojekts. Reproduziere den Optimierungs-Workflow und untersuche die gemeldete Laufzeit von 20 Minuten, den hohen Speicherverbrauch und das Leck beim Neustart. Als abgeschlossen gilt die Definition eines Merge-Plans für 64-bit-Unterstützung und eine Einigung über die verbleibenden Performance- und Speicherprobleme.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- lua, rust
- Bereich
- desktop, performance
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 15/100