2010-07-21 12 views
21

Tôi muốn thực hiện một số thuật toán di truyền đơn giản trong Java.Thư viện/thư viện Java nào cho các thuật toán di truyền?

Cho đến nay tôi chỉ tìm thấy JGAP. Có ai đó có một số kinh nghiệm với điều đó không? Và bạn có biết các thư viện Java khác cho GA không?

Tôi không muốn tự viết nó như trong GA written in Java và tôi phải sử dụng Java, vì vậy What is the most active genetic programming library? cũng không hữu ích.

Trả lời

25

tôi viết Watchmaker Framework nên ý kiến ​​của tôi là không thiên vị. ECJ và JGAP là hai tùy chọn được thiết lập nhiều nhất và có lẽ là toàn diện nhất. Mặt khác độ tuổi của chúng có nghĩa là chúng nhắm vào các phiên bản Java cũ hơn, có nghĩa là không có generics.

Blog Ẩn khoản đã làm một số series of posts (cuộn xuống danh sách để xem chúng) so sánh JGAP, ECJ và Nhà sản xuất đồng hồ.

Trong số các khung mà tôi không viết, Jenes có lẽ là một trong số đó có API mà tôi thích nhất. Nó cũng sử dụng một phương pháp tiếp cận dựa trên generics hiện đại hơn.

+1

Câu trả lời hữu ích thực sự và blog rất đẹp! Sẽ đọc bản thân mình thông qua nó. Cảm ơn bạn cũng đã đề cập, câu trả lời của bạn không hoàn toàn không thiên vị. –

+0

Upvote vì tham chiếu đến Jenes. Đó là một thư viện cấu trúc đẹp – EdgeCaseBerg

1

Tôi biết Apache Mahout (dựa trên Apache Hadoop) có tải các thuật toán loại máy học - mặc dù không chắc chắn nếu đó chính xác là những gì bạn đang tìm kiếm?

http://mahout.apache.org/

+0

Thuật toán tiến hóa trong Mahout sử dụng Nhà sản xuất đồng hồ. Vì vậy, nếu bạn cần các công cụ phân cụm Hadoop, đi mà không có Mahout, nếu không bạn chỉ có thể sử dụng Watchmaker độc lập (về mặt lý thuyết bạn cũng có thể cluster Watchmaker sử dụng Terracotta nhưng tôi không biết hiệu suất so sánh như thế nào). –

1

Đây là một sự thay thế tôi đã đánh dấu cho sự soi sáng của riêng của tôi sau này. Tôi đã sử dụng JGAP trong quá khứ và đã hài lòng với nó, nhưng điều này dường như có rất nhiều ví dụ tuyệt vời và tôi nghĩ tôi sẽ thử lần sau khi tôi cần mã tối ưu hóa.

http://watchmaker.uncommons.org/

0

Có một cái nhìn tại Java GALib, Genetic Algorithm Library: thư viện

Galib, Java thuật toán di truyền (JAR), các mô hình nhiễm sắc thể như số thực, ký tự, chuỗi, và chuỗi chuỗi. Rất dễ sử dụng, chỉ cần mở rộng một trong các lớp GA hiện có và triển khai chức năng thể dục của bạn. Đã bao gồm các GA mẫu.

1

Kiểm tra Apache Math - Genetics Algorithm. Tôi đã bắt đầu nhìn vào nó. Vì tôi mới sử dụng thuật toán di truyền, không chắc chắn về tính toàn diện hay không của thư viện này. Nó có một mô hình cấp phép tốt đẹp cho nhiều mục đích sử dụng cho mục đích học thuật và thương mại (Apache 2.0).

5

Có thể bạn sẽ xem GA (Jenetics) mà tôi đã writt vi. Nó sử dụng thư viện Javolution để song song và thư viện JScience cho các công cụ số. Tôi nghĩ nó đáng xem.