Tối đa hóa đồng thời hai chức năng mà không có dẫn xuất có sẵn


8

Tôi có hai biến ktlà hàm của hai biến khác p1p2. Tôi cũng biết giá trị tối đa của họ. Tôi không có bất kỳ biểu hiện phân tích cho điều này. Tôi muốn tìm các giá trị của ktđó là gần nhất với giá trị tối đa của họ.

Có cách nào để tối ưu hóa k = f1(p1, p2)t = f2(p1, p2)?

Tôi có thể thử kiểm tra sản phẩm k0 * t0hoặc sản phẩm của hình vuông k0^2 * t0^2hoặc một số mối quan hệ khác của hai.

Đây có phải là hiệu quả và cách nào để đi?

Cảm ơn bạn.


1
Bạn có thể cụ thể hơn một chút về những gì bạn đang tìm kiếm? Bạn có muốn tìm p1p2như vậy ktđạt được (càng gần càng tốt) giá trị tối đa của chúng? Tôi giả sử bạn có một hàm, đã cho p1p2, trả về giá trị của kt, nhưng không có thông tin nào về các đạo hàm của ktđối với p1p2?
Christian Clason

@ChristianClason vâng, bạn hiểu đúng rồi đấy. Tôi không thể có được các dẫn xuất, và nói chung là không có phân tích có sẵn.

Và bạn có biết liệu mức tối đa ktsẽ đạt được tại cùng một điểm (mà bạn đang cố gắng tìm kiếm) hay bạn đang tìm kiếm một sự đánh đổi?
Christian Clason

@ChristianClason Tôi giả sử (và chắc chắn) rằng các giá trị tối đa không ở cùng một điểm. Tôi đang tìm kiếm một sự đánh đổi. Nhưng không thể nói theo cách nào - có lẽ tôi có thể so sánh các sản phẩm hoặc tổng của các giá trị ...

Câu trả lời:


14

Có hai vấn đề ở đây:

  1. Vấn đề tối ưu hóa của bạn có hai mục tiêu cạnh tranh: tối đa hóa k=f1(p1,p2) và tối đa hóa t=f2(p1,p2) . Điều này được gọi là tối ưu hóa đa mục tiêu (hoặc đa tiêu chí ) và các vấn đề như vậy có vô số giải pháp, mỗi giải pháp dựa trên một lựa chọn cụ thể về trọng số tương đối của các mục tiêu (nghĩa là, điều quan trọng hơn đối với f1 là gần với giá trị tối đa hơn cho f2?). Nếu cả hai đều có cùng tầm quan trọng đối với bạn, thì bạn có thể chỉ cần thu nhỏ hàm

    F(p1,p2)=(f1(p1,p2)K)2+(f2(p1,p2)T)2,
    trong đó KT là các giá trị tối đa đã biết của kt, tương ứng. Nếu không, bạn sẽ thêm một trọng lượng tương ứng trước mỗi nhiệm kỳ. (Nếu không biết các giá trị tối đa, thay vào đó bạn sẽ thu nhỏ f12f22 )

  2. Để tìm một bộ giảm thiểu F , bạn chỉ có thể sử dụng các giá trị hàm của F tại một điểm nhất định (p1,p2) . Điều này được gọi là tối ưu hóa miễn phí phái sinh ; xem, ví dụ, Giới thiệu về Tối ưu hóa miễn phí phái sinh của Conn, Scheinberg và Vicente hoặc chương 9 trong Tối ưu hóa số . Hầu hết trong số này sử dụng các đạo hàm gần đúng dựa trên sự khác biệt hữu hạn hoặc đạo hàm của các hàm nội suy. Vì F là một hàm chỉ có hai biến, nên việc xây dựng các xấp xỉ sai phân hữu hạn của Hessian đầy đủ không quá đắt (hoặc không ổn định). Ý tưởng là như sau: cho một điểm pk=(p1k,p2k) , bạn xây dựng mô hình bậc hai cục bộ

    mk(pk+d)=F(pk)+(gk)Td+12dTHkd,
    tính toán bộ giảm thiểu của nódkvà đặtpk+1=pk+dk. Ở đây, đối với một nhỏ (nhưng không phải là quá nhỏ, xem dưới đây)ϵ>0,
    gk=(g1,g2)T,gi=F(pk+ϵei)F(pkϵei)2ϵ
    vớie1=(1,0)Te2=(0,1)T, là độ dốc gần đúng và
    Hk=(h11h12h21h22),hij=F(pk+ϵei+ϵej)F(pk+ϵei)F(pk+ϵej)+F(pk)ϵ2
    là một xấp xỉ Taylor của Hessian. Điều này đòi hỏi phải đánh giáFở 5 điểm bổ sung trong mỗi lần lặp.

    ϵϵ=u1/3u1016

    dk

    Có thể tìm thấy sự so sánh các thuật toán và triển khai để tối ưu hóa không có đạo hàm trên trang web này , kèm theo bài báo "Tối ưu hóa không có đạo hàm: Đánh giá các thuật toán và so sánh các triển khai phần mềm" của Luis Miguel Rios và Nikolaos V. Sahinidis


Cảm ơn bạn đã trả lời tuyệt vời! Nó thực sự hữu ích mặc dù đối tượng khá phức tạp đối với tôi. Xin lỗi, danh tiếng của tôi quá thấp, không thể bỏ phiếu cho câu trả lời của bạn.


2
eps

@ArnoldNeumaier: Điểm tốt. Tôi đã thêm một số nhận xét về vấn đề này.
Christian Clason

1
@ChristianClason Tôi nghĩ thuật ngữ thứ hai trong h_ij của bạn phải là F (p ^ k + \ epsilon * e_i).
Suzie

2

k+atakta

Đối với việc tối ưu hóa thực tế, việc không có biểu thức phân tích cho các chức năng không phải là kết thúc của thế giới, nhưng không có bất kỳ thông tin nào sẽ khiến nó trở nên thô ráp. Nếu bạn có thể giả định mức độ mượt mà / liên tục, ngay cả khi nó chỉ là phần khôn ngoan, bạn có thể sử dụng thuật toán tìm gốc trên một xấp xỉ đạo hàm để tìm cực đại cục bộ (có nhiều phương pháp phức tạp hơn phương pháp này, nhưng tôi không quen Họ. Những người khác ở đây có thể chỉ cho bạn đi đúng hướng). Nếu bạn có thể thiết lập độ lồi, bạn có thể mở rộng nó thành tối ưu toàn cầu.

Tối ưu hóa đa mục tiêu hộp đen thực sự không phải là một vấn đề dễ dàng, nhưng một vài giả định và một quy trình lặp với giảm mục tiêu sẽ giúp bạn có một câu trả lời chấp nhận được (giả sử tồn tại).

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.