Hướng dẫn sum of squares optimization python - tổng số bình phương tối ưu hóa python
Trong hướng dẫn này, chúng tôi giải thích cách thực hiện tổng các tính toán cơ bản của các bình phương (SOS) và cung cấp các ví dụ về tổng số của lập trình/tối ưu hóa hình vuông bằng cách sử dụng bộ giải. Tùy thuộc vào ngôn ngữ/môi trường máy tính toán học mà bạn quen thuộc nhất, bạn có thể sử dụng một trong hai công cụ sau: Show
Ở cấp độ cao, các công cụ này phân tích vấn đề SOS được thể hiện về các đa thức, thành một vấn đề tối ưu hóa semidefinite (SDP) sau đó được giải quyết bằng số bằng cách sử dụng bộ giải SDP phụ trợ. Trong các ví dụ đơn giản dưới đây, chúng tôi cung cấp các triển khai bằng cách sử dụng một trong các công cụ này. Chỉ cần nhấp vào tab tương ứng để xem mã mà sau đó bạn có thể sao chép và dán vào chương trình tương ứng. Để biết các vấn đề nâng cao hơn, xin vui lòng xem các bài tập cho khóa học ngắn AMS về các khoản tiền của hình vuông. Chúng tôi chỉ ra rằng các công cụ SOS khác cũng có sẵn, chủ yếu ở Matlab, chẳng hạn như Yalmip và Gloptipoly. Cài đặt và cấu hìnhDưới đây là các hướng dẫn đơn giản để cài đặt và định cấu hình các công cụ mong muốn. Hãy nhớ lại rằng đối với một trong hai lựa chọn, một bộ giải SDP phụ trợ là cần thiết, vì vậy bạn cũng có thể cần phải cài đặt nó. Vui lòng xem tài liệu đầy đủ của mỗi gói để biết thêm chi tiết. Gói chínhĐể cài đặt, nhập các lệnh sau.
Sau khi cài đặt, các dòng sau phải được nhập vào đầu mỗi phiên.
Sau khi cài đặt, các dòng sau phải được nhập vào đầu mỗi phiên.Bộ giải SDP phụ trợ
Python: Mosek, CVXoptVí dụVí dụ 1: Kiểm tra xem có đa thức là SOS không
0 1Sau khi cài đặt, các dòng sau phải được nhập vào đầu mỗi phiên.
2 3 4 5Sau khi cài đặt, các dòng sau phải được nhập vào đầu mỗi phiên.Bộ giải SDP phụ trợ Tính toán SOS dựa trên các bộ giải SemideFinite Lập trình (SDP). Những người giải quyết sau đây có sẵn vào tháng 12 năm 2018:
6 7 8 9Sau khi cài đặt, các dòng sau phải được nhập vào đầu mỗi phiên.
0 1Sau khi cài đặt, các dòng sau phải được nhập vào đầu mỗi phiên. 3Bộ giải SDP phụ trợ
4 5 6 7Sau khi cài đặt, các dòng sau phải được nhập vào đầu mỗi phiên.Bộ giải SDP phụ trợ
8 9 0 1Sau khi cài đặt, các dòng sau phải được nhập vào đầu mỗi phiên.
2 3 4 5Sau khi cài đặt, các dòng sau phải được nhập vào đầu mỗi phiên.Bộ giải SDP phụ trợ Tính toán SOS dựa trên các bộ giải SemideFinite Lập trình (SDP). Những người giải quyết sau đây có sẵn vào tháng 12 năm 2018:
6 7 8 9Sau khi cài đặt, các dòng sau phải được nhập vào đầu mỗi phiên. Bộ giải SDP phụ trợTính toán SOS dựa trên các bộ giải SemideFinite Lập trình (SDP). Những người giải quyết sau đây có sẵn vào tháng 12 năm 2018:
4 1 2 3Ví dụ 5: Công thức kép và PseudoExpectationsCác vấn đề kép của một vấn đề SOS có thể được hiểu là tối ưu hóa các chức năng tuyến tính của đa thức cấp độ thấp, còn được gọi là giả hành. Sử dụng sumofsquares.py, chúng ta có thể chỉ định các ràng buộc về mặt giả, cũng như trích xuất giả giả tương ứng với kép của một ràng buộc SOS. Ví dụ sau đây tính toán rõ ràng một chứng chỉ không khả thi để viết đa thức Motzkin \ (p (x, y) = x^4 y^2 + x^2 y^4 - 3 x^2 y^2 + 1 \) của hình vuông, một pseudoexpectation trong đó \ (\ tilde {\ mathbb {e}} [p (x, y)] = -1 \).
4Ví dụ 5: Công thức kép và PseudoExpectations Các vấn đề kép của một vấn đề SOS có thể được hiểu là tối ưu hóa các chức năng tuyến tính của đa thức cấp độ thấp, còn được gọi là giả hành. Sử dụng sumofsquares.py, chúng ta có thể chỉ định các ràng buộc về mặt giả, cũng như trích xuất giả giả tương ứng với kép của một ràng buộc SOS.
5Ví dụ 5: Công thức kép và PseudoExpectations
\ [\ max_ {x, y, z} \ Quad (x+\ Phi y) (x- \ Phi y) (y+\ Phi Z) x) \ Quad \ Text {S.T. } \ Quad x^2 + y^2 + z^2 = 1. \]
6 |