PathOfBuildingCommunity / PathOfBuildingCommunity/PathOfBuilding
Proof-of-concept Genetic Algorithm Optimization Build
Nessuno ha ancora preso questa issue.
- Lingua principale
- Lua
- Stelle
- 5.4k
- Fork
- 2.4k
- Merge medio
- 1g 12h
- PR unite (30g)
- 26
Descrizione
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
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia con il fork pathofbuildinggenetic collegato e le relative dipendenze runtime_x64, quindi confronta la Lua UI e la libreria genetica Rust con la configurazione LuaJIT 2.0 del progetto principale. Riproduci il flusso di lavoro di ottimizzazione e analizza il tempo di esecuzione segnalato di 20 minuti, l’elevato utilizzo di memoria e la perdita al riavvio. Il lavoro è completato quando è definito un piano di merge per il supporto a 64-bit e c’è accordo sui problemi rimanenti di prestazioni e memoria.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- lua, rust
- Ambito
- desktop, performance
- Tipo di issue
- Funzionalità
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Ferma
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 15/100