2011-10-16 12 views
13

Tôi đã đọc một vài phần giới thiệu của sách cũng như một vài bài báo về cả hai chủ đề và có vẻ như với tôi như hai phương pháp này khá giống nhau.Sự khác biệt giữa các thuật toán di truyền và chiến lược tiến hóa là gì?

Điều đó nói rằng tôi chưa có thời gian để thực sự nghiên cứu kỹ các chủ đề, vì vậy tôi có thể sai.

Sự khác biệt giữa thuật toán di truyền và chiến lược tiến hóa là gì? Điều gì khiến chúng khác biệt và chúng giống nhau ở đâu?

Trả lời

19

Trong ES, các cá thể được mã hóa dưới dạng vectơ của các số thực. Khi sinh sản, cha mẹ được chọn ngẫu nhiên và các chế độ bù trừ thích hợp nhất được chọn và chèn vào thế hệ tiếp theo. Các cá nhân ES tự điều chỉnh. Kích thước bước hoặc cường độ đột biến được mã hóa trong các thông số riêng lẻ để có được thế hệ tiếp theo bằng cách chọn các cá nhân tốt.

Trong GA, các cá thể được mã hóa dưới dạng số nguyên. Việc lựa chọn được thực hiện bằng cách chọn cha mẹ tỷ lệ thuận với tập thể dục của họ. Vì vậy, các cá nhân phải được đánh giá trước khi lựa chọn đầu tiên được thực hiện. Các toán tử di truyền hoạt động ở mức bit (ví dụ: cắt một chuỗi bit thành nhiều phần và trao đổi chúng với các phần của bố mẹ kia hoặc chuyển đổi các bit đơn).

Đó là lý thuyết. Trong thực tế, đôi khi khó phân biệt giữa hai thuật toán tiến hóa và bạn cần tạo các thuật toán lai (ví dụ: các số nguyên (chuỗi bit) cá nhân mã hóa các tham số của các toán tử di truyền).

+2

Tôi nghĩ rằng câu trả lời hơi quá chung chung, xem xét biểu diễn gen GA chuẩn và nguyên bản không phải là số nguyên, mà đúng hơn là chuỗi bit nhị phân là 1 và 0. Ngoài ra lựa chọn không giới hạn đối với lựa chọn Tỷ lệ Thể dục, có nhiều thứ khác như Giải đấu ... để tránh nhầm lẫn có thể câu trả lời phải được viết lại hơi khác thay vì suy luận rằng GA phải có điều này và ... etc – chutsu

+0

Tôi nghĩ nó là một giới thiệu tuyệt vời cho sự khác biệt. Vấn đề với việc gọi đại diện cho một tập hợp các số nguyên là gì?Ở cấp độ phần mềm chính xác cách chúng được xử lý bằng thuật toán và nó giúp hình dung chúng giống như mã di truyền. Lời khuyên chung không phải là để xử lý các đại diện như một chuỗi anyway, ít nhất đó là cách tôi đã được đào tạo. – Adam893

+0

Bạn có thể đưa ra ví dụ về ES và GA thường được áp dụng ở đâu không? –

0

Sự khác biệt chính dường như là một thuật toán di truyền đại diện cho một giải pháp sử dụng một chuỗi các số nguyên, trong khi một chiến lược phát triển sử dụng một chuỗi các số thực - tài liệu tham khảo: http://en.wikipedia.org/wiki/Evolutionary_algorithm#

0

Khi nguồn wikipedia (http://en.wikipedia.org/wiki/Genetic_algorithm) và @Vaughn Cato cho biết sự khác biệt trong cả hai kỹ thuật đều dựa vào việc thực hiện. EA sử dụng số thực và số nguyên sử dụng GA.

Tuy nhiên, trong thực tế, tôi nghĩ bạn có thể sử dụng số nguyên hoặc số thực trong việc xây dựng vấn đề của bạn và trong chương trình của bạn. Nó phụ thuộc vào bạn. Ví dụ, đối với việc gấp protein, bạn có thể nói tập hợp các góc di chuyển hình thành một vectơ. Đây là một vectơ số thực, nhưng các mục được gắn nhãn bằng số nguyên vì vậy tôi nghĩ bạn có thể xây dựng vấn đề của mình và viết cho bạn chương trình dựa trên số trên số học số nguyên. Nó chỉ là một ý tưởng.

2

Trong hầu hết các sách giáo khoa mới hơn trên GA, mã hóa có giá trị thực được giới thiệu như là một thay thế cho số nguyên, tức là cá nhân có thể được mã hóa dưới dạng vectơ của số thực. Đây được gọi là tham số liên tục GA (xem ví dụ: Haupt & Haupt, "Thuật toán di truyền thực tế", J.Wiley & Sons, 1998). Vì vậy, đây là thực tế giống với mã hóa số thực ES.

Đối với lựa chọn của phụ huynh, có nhiều chiến lược khác nhau được xuất bản cho GA. Tôi không biết tất cả, nhưng tôi cho rằng lựa chọn trong số tất cả (không chỉ tốt nhất đã được sử dụng cho một số ứng dụng).