PathOfBuildingCommunity / PathOfBuildingCommunity/PathOfBuilding
Proof-of-concept Genetic Algorithm Optimization Build
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Lua
- Estrellas
- 5.4k
- Forks
- 2.4k
- Merge medio
- 1 d 12 h
- PR fusionados (30 d)
- 26
Descripción
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
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza con el fork pathofbuildinggenetic enlazado y sus dependencias runtime_x64, y después compara la Lua UI y la biblioteca genética de Rust con la configuración de LuaJIT 2.0 del proyecto principal. Reproduce el flujo de trabajo de optimización e investiga el tiempo de ejecución de 20 minutos reportado, el alto uso de memoria y la fuga al reiniciar. Se considerará completado cuando exista un plan de merge definido para la compatibilidad con 64-bit y haya acuerdo sobre los problemas restantes de rendimiento y memoria.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- lua, rust
- Área
- desktop, performance
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Estancado
- Claridad
- Necesita aclaración
- Aptitud para principiantes
- 15/100