Tôi cần giải quyết
Tôi nghĩ rằng đây là một vấn đề bậc hai có thể giải quyết được với CVXOPT , nhưng tôi không thể tìm ra cách nào.
Tôi cần giải quyết
Tôi nghĩ rằng đây là một vấn đề bậc hai có thể giải quyết được với CVXOPT , nhưng tôi không thể tìm ra cách nào.
Câu trả lời:
Tôi đã viết một câu trả lời đầy đủ (bên dưới dòng) trước khi khám phá CVXPY , trong đó (như CVX cho MATLAB) thực hiện tất cả những điều khó khăn cho bạn và có một ví dụ rất ngắn gần giống với bạn ở đây . Bạn chỉ cần thay thế dòng có liên quan với
p = program(minimize(norm2(A*x-b)),[equals(sum(x),1),geq(x,0)])
Câu trả lời cũ của tôi, làm điều đó theo cách khó hơn với CVXOPT:
Theo đề xuất của Geoff để bình phương hàm mục tiêu của bạn đưa ra
Tất nhiên, tất cả các điều khoản này là vô hướng, vì vậy bạn có thể transpose một thứ ba và thả người cuối cùng (vì nó không phụ thuộc vào và do đó sẽ không thay đổi mà mang đến cho bạn một mức tối thiểu, mặc dù bạn sẽ cần phải thêm nó trở lại sau khi giải để có được giá trị chính xác của mục tiêu của bạn) để có được Điều này (bao gồm các ràng buộc của bạn) có dạng chương trình bậc hai, như được đưa ra trong tài liệu CVXOPT ở đây , nơi cũng có mã ví dụ để giải quyết vấn đề như vậy.
Thay vì vấn đề bạn đã giải quyết, hãy giải quyết
Vấn đề này là một vấn đề tối ưu hóa lồi, phi tuyến khác biệt, có thể được giải quyết trong CVXOPT, IPOPT hoặc bất kỳ bộ giải tối ưu hóa lồi nào khác.