Tôi có vấn đề về tối ưu hóa tôi đang cố gắng giải quyết bằng thuật toán di truyền. Về cơ bản, có một danh sách 10 biến có giá trị thực (-1 < = x < = 1), và tôi cần tối đa hóa một số chức năng của danh sách đó. Việc nắm bắt được rằng chỉ có tối đa 4 biến trong danh sách có thể là! = 0 (điều kiện tập hợp con).Thuật toán di truyền trên kính hiển vi hình chữ nhật giống hệt nhau
Nói toán học: Đối với một số chức năng f: [-1, 1]^10 -> R min f (X) s.t. | {var in X with var! = 0} | < = 4
Một số nền trên f: Chức năng KHÔNG giống với bất kỳ loại chức năng mục tiêu ba lô nào như trọng lượng Sum x * hoặc bất kỳ thứ gì tương tự.
Những gì tôi đã cố gắng cho đến nay:
Chỉ cần một thuật toán di truyền cơ bản trên bộ gen [-1, 1]^10 với 1 điểm chéo và một số đột biến gaussian trên các biến. Tôi đã cố gắng mã hóa điều kiện tập hợp con trong chức năng thể dục bằng cách chỉ sử dụng 4 giá trị không đồng nhất đầu tiên (không như trong đủ gần 0). Cách tiếp cận này không hoạt động tốt và thuật toán bị mắc kẹt tại 4 biến đầu tiên và không bao giờ sử dụng các giá trị vượt ra ngoài đó. Tôi thấy một số loại GA cho vấn đề 01-knapsack mà cách tiếp cận này làm việc tốt, nhưng rõ ràng điều này chỉ hoạt động với các biến nhị phân.
Bạn sẽ đề xuất tôi thử cái gì tiếp theo?
Tôi không có ý tưởng về thuật toán di truyền, nhưng bạn có thể thử để mã hóa các vấn đề khác nhau: chọn 4 giá trị thực tế và 4 số nguyên phân biệt trong khoảng 0-9. – Patrick
Tổng số giải pháp nhỏ hơn 10^4, tại sao không sử dụng điều tra? Đây có phải là bài tập về nhà không? – willem