Khi các thuật toán di truyền là một lựa chọn tốt để tối ưu hóa?


20

Các thuật toán di truyền là một dạng của phương pháp tối ưu hóa. Thường thì độ dốc gốc ngẫu nhiên và các dẫn xuất của nó là lựa chọn tốt nhất để tối ưu hóa chức năng, nhưng thuật toán di truyền đôi khi vẫn được sử dụng. Ví dụ, ăng-ten của tàu vũ trụ ST5 của NASA đã được tạo ra bằng thuật toán di truyền:

Ăng-ten ST5

Khi các phương pháp tối ưu hóa di truyền là sự lựa chọn tốt hơn so với các phương pháp giảm độ dốc phổ biến hơn?


7
+1 cho ví dụ, tôi đã tìm thấy bài báo gốc: alglobus.net/NASAwork/ con /Space2006Antenna.pdf
Tim

Câu trả lời:


19

Thuật toán di truyền (GA) là một gia đình của chẩn đoán là theo kinh nghiệm tốt cung cấp một phong nha câu trả lời trong nhiều trường hợp, mặc dù họ hiếm khi là lựa chọn tốt nhất cho một tên miền nhất định.

Bạn đề cập đến các thuật toán dựa trên đạo hàm, nhưng ngay cả khi không có đạo hàm, có rất nhiều thuật toán tối ưu hóa không có đạo hàm thực hiện cách tốt hơn GA. Xem điều này và câu trả lời này cho một số ý tưởng.

Điều mà nhiều thuật toán tối ưu hóa tiêu chuẩn có chung (thậm chí là các phương pháp không có đạo hàm) là giả định rằng không gian bên dưới là một đa tạp trơn tru (có lẽ với một vài chiều rời rạc) và chức năng tối ưu hóa có phần hoạt động tốt.

Tuy nhiên, không phải tất cả các chức năng được xác định trên một đa tạp trơn tru. Đôi khi bạn muốn tối ưu hóa qua biểu đồ hoặc các cấu trúc rời rạc khác (tối ưu hóa tổ hợp) - ở đây có các thuật toán chuyên dụng, nhưng GA cũng sẽ hoạt động.

Bạn càng đi về phía các chức năng được xác định trên các cấu trúc phức tạp, rời rạc, GA càng có thể hữu ích, đặc biệt là nếu bạn có thể tìm thấy một đại diện trong đó các toán tử di truyền hoạt động tốt nhất (đòi hỏi nhiều kiến ​​thức về điều chỉnh và tên miền).

Tất nhiên, tương lai có thể dẫn đến việc quên hoàn toàn GA và phát triển các phương pháp để ánh xạ các không gian riêng biệt sang không gian liên tục và sử dụng máy móc tối ưu hóa mà chúng ta có trên biểu diễn liên tục.


2

Các phương pháp di truyền rất phù hợp để tối ưu hóa đa tiêu chí khi giảm độ dốc được dành riêng cho tối ưu hóa tiêu chí. Giảm dần độ dốc cho phép tìm tối thiểu các hàm khi các dẫn xuất tồn tại và chỉ có một giải pháp tối ưu (nếu chúng ta ngoại trừ minimas cục bộ). Một thuật toán di truyền có thể được sử dụng trong các vấn đề đa tiêu chí và dẫn đến một giải pháp liên tục, mỗi cá thể nuôi ong của một quần thể, đã tiến hóa từ một quần thể ban đầu. Các giá trị để tối ưu hóa là kiểu hình của các cá thể và có thể có một số kiểu hình. Generaly, không ai trong số các cá nhân có đồng thời giá trị tốt hơn của từng kiểu hình, vì vậy không chỉ có một giải pháp. Các cá nhân trong quần thể cuối cùng, đó là tất cả các giải pháp tối ưu hóa, là một phần của "Mặt trận Pareto" và được đánh dấu là "Pareto xếp hạng một" cá nhân. Điều này có nghĩa là so với mọi cá nhân khác có cùng hiệu suất cho từng kiểu hình, họ ít nhất là tốt hơn cho một kiểu hình so với các kiểu hình khác.


Ok cho một downvote, nhưng bạn có thể giải thích tôi sai ở đâu?
manu190466

5
Trang web này đánh giá các câu trả lời cung cấp bối cảnh và nền tảng. Xem trang trợ giúp này để biết cách cung cấp câu trả lời sẽ thêm vào kho câu trả lời hữu ích của chúng tôi cho các câu hỏi thú vị. Giải thích câu trả lời của bạn cũng là một cách tốt để kiểm tra sự hiểu biết của chính bạn. Ví dụ, trong trường hợp này, bạn có thể muốn mở rộng về cách các thuật toán di truyền "rất phù hợp để tối ưu hóa đa tiêu chí", vì trang Wikipedia dường như ngụ ý các hàm thể dục có giá trị đơn lẻ làm mục tiêu cho các thuật toán di truyền.
EdM

0

Tốt nhất theo nghĩa nào?

Theo kinh nghiệm của tôi, GA là một trong những tối ưu hóa thực dụng nhất. Mặc dù nhiều thuật toán chính xác hơn đòi hỏi thời gian và nỗ lực để chính thức hóa các vấn đề thực trong thế giới toán học, GA có thể xử lý bất kỳ hàm chi phí nào với các quy tắc và ràng buộc phức tạp (GA có liên quan theo cách tiếp cận thực hiện chứ không phải bằng cách tính toán cụ thể). Quá trình này rất đơn giản và bạn có thể thử nhiều cách tiếp cận cho công việc khám phá.

Tôi cũng đánh giá cao khả năng từ chối các giải pháp trong quá khứ cho thuật toán cho các lần chạy trong tương lai, điều này tốt cho nhiệm vụ lặp đi lặp lại.

Về mặt khái niệm, một thuật toán di truyền có thể được biểu diễn bằng hàm băm của các hàm và phù hợp với các ngôn ngữ chức năng giống như Clojure, đây cũng là ngôn ngữ mà bạn có thể đạt được kết quả lớn rất nhanh.

Thuật toán di truyền cũng có thể được lồng nhau: hàm chi phí của một GA có thể là GA! Các thuật toán này tận dụng phần cứng và cơ sở hạ tầng hiện đại cho phép chúng tính toán một dân số rất lớn để - ngay cả với các thao tác chọn / đột biến đơn giản - bạn vẫn có thể đạt được kết quả tốt.

Ngay cả đối với các vấn đề đơn giản như tìm tối thiểu của hàm sóng, GA cũng không tệ và có thể đạt được độ chính xác khá trong thời gian chấp nhận được.

Vì vậy, yeah, các giải pháp phân tích có thể có thời gian thực hiện nhanh hơn và độ chính xác nhanh hơn, nhưng thời gian cần thiết để tạo ra chúng vượt trội thường mang lại lợi ích mong đợi! Vậy khi nào? Hầu như mọi lúc với tôi, ít nhất là để tối ưu hóa meta.


Lực đẩy chính của lập luận này dường như là các thuật toán di truyền là các trình tối ưu hóa hộp đen. Nhưng có rất nhiều tối ưu hóa hộp đen ngoài kia. Tại sao điều này sẽ tốt hơn so với các lựa chọn khác? Ngoài ra, tôi không nghĩ rằng đó thực sự là trường hợp GA có thể dễ dàng xử lý các ràng buộc. Ví dụ: nếu chức năng không được xác định ngoại trừ không gian con 3D trong thế giới 4D, chắc chắn GA GA sẽ thất bại.
Vách đá AB

@CliffAB Thực tế tôi không nói gì về điều đó và có lẽ ngược lại. Trong GA, bạn có nhiều quyền kiểm soát tính toán cốt lõi, bản thân GA là một chuỗi các bước và thứ tự nhẹ. Khi bạn xác định các hàm chi phí, bạn có thể xử lý bất cứ điều gì trong hàm, thậm chí các ràng buộc bên ngoài mà bạn có thể truy vấn. Lập luận chính của tôi là: xử lý nhiều vấn đề, bạn không cần phải quan tâm đến tính tương thích với khung (bạn phải trả lại chi phí), đưa ra giải pháp thực tế tốt trong hầu hết các trường hợp kinh doanh NGAY nếu không phải lúc nào cũng vậy tốt nhất
Joseph Yourine
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.