PathOfBuildingCommunity / PathOfBuildingCommunity/PathOfBuilding

Proof-of-concept Genetic Algorithm Optimization Build

Đang mở
#5,602 2 bình luận 2 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

enhancement
Ngôn ngữ chính
Lua
Star
5.4k
Fork
2.4k
Merge trung bình
1 ngày 12 giờ
Pull request đã merge (30 ngày)
26

Mô tả

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

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Hướng nghiên cứu

Bắt đầu với fork pathofbuildinggenetic được liên kết và các dependency runtime_x64 của nó, sau đó so sánh Lua UI và thư viện genetic Rust với thiết lập LuaJIT 2.0 của dự án chính. Tái hiện workflow tối ưu hóa và điều tra thời gian chạy 20 phút đã được báo cáo, mức sử dụng bộ nhớ cao và lỗi rò rỉ khi khởi động lại. Công việc được xem là hoàn tất khi có merge plan được xác định cho hỗ trợ 64-bit và đạt được sự thống nhất về các vấn đề hiệu năng và bộ nhớ còn lại.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
lua, rust
Lĩnh vực
desktop, performance
Loại issue
Tính năng
Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Cần làm rõ
Mức phù hợp với người mới
15/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.