PathOfBuildingCommunity / PathOfBuildingCommunity/PathOfBuilding

Proof-of-concept Genetic Algorithm Optimization Build

Abierto
#5,602 2 comentarios 2 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

enhancement
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:

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

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. 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

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.