2009-03-26 35 views

Trả lời

13

riêng tôi, bởi vì nó là dễ nhất để tùy chỉnh :)

EDIT: Đã có một số up-phiếu gần đây, vì vậy tôi figured nó là giá trị cập nhật câu trả lời này. Bây giờ là 8 năm kể từ khi tôi trả lời câu hỏi này và rất nhiều thư viện khác đã có sẵn kể từ đó. Tôi sẽ không còn đề xuất tung ra mã của riêng bạn nữa. Thay vào đó, tôi sẽ tìm thấy một thư viện nguồn mở bằng ngôn ngữ bạn chọn và đóng góp lại cho nó.

ví dụ: Jenetics nếu bạn sử dụng Java, DEAP cho trăn và GeneticSharp cho C#.

+0

Tình cảm của tôi - Tôi đã thay đổi GAlib rất nhiều đến mức tôi sẽ sử dụng tùy chỉnh của riêng mình - tùy biến là phải! – bias

+0

Yea, GA không quá khó để mã hóa. Viết của riêng bạn rất nhiều làm cho các nhức đầu thiếu chức năng trong các công cụ tải về. –

+0

Điều gì về ngôn ngữ tốt nhất của tất cả, C + +? :) Điều này có thể gây ra một số cuộc thảo luận ở đây;) – Ralf

15

Tôi đã hoàn thành hai dự án nghiên cứu cấp sau đại học sử dụng thuật toán di truyền để tự động thiết kế động cơ điện.

Đối với dự án đầu tiên, tôi đã sử dụng EO Evolutionary Computation Framework dựa hoàn toàn vào lập trình mẫu C++. Nó là rất mạnh mẽ nhưng đòi hỏi (IMO) rất nhiều tập trung để mở rộng nó vì bản chất meta của các mẫu và các thông báo lỗi vô nghĩa tương ứng từ trình biên dịch.

Đối với dự án thứ hai, tôi đã chuyển mọi thứ qua Open BEAGLE EC Framework dựa trên kế thừa C++ thay vì mẫu. Nó cũng có một hệ thống dựa trên XML hoàn chỉnh để kiểm soát các thông số và lưu trữ các mốc và kết quả. Tôi tìm thấy nó dễ dàng hơn để mở rộng và thích ứng với nhu cầu cụ thể của tôi (chủ yếu là các thông số nguyên và các thông số thiết kế phao với dung sai sản xuất).

Tôi cũng sử dụng ngắn gọn Open BEAGLE trong một thử nghiệm Lập trình di truyền đơn giản và nó cũng dễ sử dụng ở đó.

7

Nếu bạn đang sử dụng Python, pyevolve rất dễ sử dụng. Tôi đã sử dụng nó với thành công. http://pyevolve.sourceforge.net/

+1

0.6rc1 là lựa chọn tốt hơn so với chính thức phát hành 0.5 http://pyevolve.sourceforge.net/0_6rc1/ –

1

Tôi đã chơi xung quanh với TinyGP để có cảm giác về cách triển khai hệ thống GP của riêng mình. Nó thường được viết bằng C nhưng được viết lại bằng Java. Vì nó rất nhỏ, nó rất dễ dàng để thích nghi nó cho việc sử dụng C++/D của tôi.

0

Tôi đã phát triển thư viện openGA của riêng mình.

Thư viện này là để giải quyết:

  • vấn đề đơn khách quan.
  • Vấn đề đa mục tiêu (và nhiều mục tiêu) (phương pháp NSGA-III).
  • Sự cố GA tương tác.

Thư viện này cho phép chúng tôi sử dụng mẫu C++ để xác định thiết kế nhiễm sắc thể của riêng bạn.

Mã có sẵn trên Github. Ấn phẩm là trên smc2017 và hướng dẫn sử dụng của nó có sẵn trên researchgate của tôi.

Các vấn đề liên quan