Giải hệ phương trình khó


10

Tôi có một hệ thống phương trình phi tuyến tính mà tôi muốn giải bằng số:n

f = ( f 1 , Mạnh , f n )

f(x)=a
f=(f1,,fn)x=(x1,,xn)

Hệ thống này có một số đặc điểm khiến nó đặc biệt khó xử lý. Tôi đang tìm kiếm ý tưởng về cách đối phó với hệ thống hiệu quả hơn.

Tại sao hệ thống khó khăn?

  • Các chức năng tương tự như chức năng này (nhưng tất nhiên trong nhiều chiều):

    Đồ họa toán học

    Họ có các cao nguyên phẳng cách nhau bởi một khu vực thay đổi trơn tru. Trong 2D, bạn có thể tưởng tượng một cái gì đó như thế này cho một :fi

    Đồ họa toán học

    Nói chung, mỗi có hai cao nguyên cách nhau bởi sự thay đổi trơn tru xung quanh một siêu phẳng n - 1 chiều.fin1

    fin=1

  • Các chức năng rất chậm để tính toán. Tôi đang tìm kiếm một phương pháp có thể có được một xấp xỉ hợp lý của gốc trong càng ít lần lặp càng tốt.

  • Các chức năng được tính toán bằng phương pháp Monte Carlo. Điều này có nghĩa là mỗi lần chúng được tính toán, tôi nhận được một giá trị ngẫu nhiên hơi khác nhau. Các công cụ phái sinh rất khó ước tính. Một khi chúng ta đủ gần gốc, tiếng ồn sẽ bắt đầu chiếm ưu thế và cần phải sử dụng trung bình để tăng độ chính xác. Lý tưởng nhất là có thể khái quát hóa phương pháp thành một phiên bản gần đúng ngẫu nhiên tương đương (ví dụ: Newton → Robbins-Monro).

  • nn=2f1(x1,x2)=0f2(x1,x2)=0

Tôi biết gì khác về hệ thống?

  • Có chính xác một gốc (từ kết quả lý thuyết).

  • fii

  • fixifi(,xi,)xixji


Bạn có biết giới hạn dưới và trên của tất cả các biến, trong đó giải pháp phải nằm? Những giới hạn càng chặt thì càng tốt. Bạn có thể đưa ra một ví dụ xác định, ở một chiều cao như bạn muốn, minh họa cho các cao nguyên và khó khăn của bạn, nhưng không yêu cầu mô phỏng Monte Carlo và không có lỗi ngẫu nhiên trong các chức năng (điểm thưởng nếu các dẫn xuất có thể được tính toán)? Mục đích của một ví dụ xác định như vậy là để hiểu những khó khăn của vấn đề, không nói rằng đánh giá Monte Carlo sẽ không được sử dụng trong giải pháp cuối cùng cho vấn đề thực tế của bạn.
Mark L. Stone

f

Tôi mong muốn được nhìn thấy nó,
Mark L. Stone

Câu trả lời:


1

Vì có một gốc duy nhất và không có ràng buộc nào, bạn có thể may mắn đặt nó là một vấn đề tối ưu hóa: tối thiểu hóa tổng (dọc theo mỗi chiều) của các bình phương của hàm ban đầu của bạn.

Các phương pháp tối ưu hóa cổ điển có thể sẽ thất bại, nhưng các phương pháp heuristic như thuật toán di truyền hoặc CME-ES (điều chỉnh ma trận covariant vv - chiến lược tiến hóa) có thể hoạt động.


Đó thực sự là cách tiếp cận để đi. Tôi đặc biệt sẽ xem xét thuật toán SPSA được phát triển riêng cho mục đích của bạn và khá mạnh mẽ.
Wolfgang Bangerth

2
OP đề cập rằng chức năng này rất tốn kém để đánh giá (áp dụng mô phỏng Monte Carlo để đánh giá chức năng). Không phải điều đó đặt ra một vấn đề rất lớn cho các thuật toán di truyền và các thuật toán tiến hóa khác sao? Chúng là "song song tầm thường" (và MC thường cũng vậy) nên có thể tính toán song song lớn nhưng chúng có phải là cách tốt nhất để đến đây không?
GertVdE

@WolfgangBangerth Cảm ơn bạn, như bạn nói nó có vẻ là giải pháp đúng. Tôi sẽ xem xét SPSA.
Szabolcs

1
Về đánh giá chức năng đắt tiền: Đúng là các thuật toán di truyền và các phương pháp chẩn đoán liên quan có xu hướng yêu cầu số lượng đánh giá chức năng lớn hơn các phương pháp truyền thống. Lợi ích là các phương pháp heuristic thường có thể giải quyết các vấn đề mà 1) nếu không sẽ yêu cầu một phương pháp dành riêng cho vấn đề hoặc 2) sẽ thất bại do các vấn đề về số. Trong ví dụ này, có khả năng các phương thức truyền thống sẽ gặp sự cố do tính chất ngẫu nhiên của hàm mục tiêu và độ dốc nhỏ dọc theo một số chiều. SPSA trông giống như một phương pháp ứng cử viên tuyệt vời cho vấn đề này.
MattKelly
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.