PathOfBuildingCommunity / PathOfBuildingCommunity/PathOfBuilding
Proof-of-concept Genetic Algorithm Optimization Build
まだ誰も着手していません。
- 主要言語
- Lua
- スター
- 5.4k
- フォーク
- 2.4k
- 平均マージ
- 1日 12時間
- マージ済み PR(30日)
- 26
説明
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
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
リンクされているpathofbuildinggenetic forkとそのruntime_x64依存関係から始め、Lua UIとRustの遺伝的ライブラリを、メインプロジェクトのLuaJIT 2.0セットアップと比較します。最適化ワークフローを再現し、報告されている20分の実行時間、高いメモリ使用量、再起動時のリークを調査します。64-bitサポートのmerge planが定義され、残りのパフォーマンスおよびメモリの問題について合意できれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- lua, rust
- 領域
- desktop, performance
- issue の種類
- 機能追加
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 15/100