PathOfBuildingCommunity / PathOfBuildingCommunity/PathOfBuilding

Proof-of-concept Genetic Algorithm Optimization Build

Ouverte
#5,602 2 commentaires 2 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

enhancement
Langage dominant
Lua
Étoiles
5.4k
Forks
2.4k
Merge moyen
1 j 12 h
PR mergées (30 j)
26

Description

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

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par le fork pathofbuildinggenetic lié et ses dépendances runtime_x64, puis comparez la Lua UI et la bibliothèque génétique Rust avec la configuration LuaJIT 2.0 du projet principal. Reproduisez le workflow d’optimisation et étudiez le temps d’exécution de 20 minutes signalé, l’utilisation élevée de la mémoire et la fuite lors du redémarrage. Le travail sera considéré comme terminé lorsqu’un plan de merge pour la prise en charge de 64-bit sera défini et qu’un accord aura été trouvé sur les problèmes restants de performances et de mémoire.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
lua, rust
Domaine
desktop, performance
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
15/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.