Tôi muốn thêm cách giải quyết chuyển đổi các ràng buộc thành một dạng có thể sử dụng để lập trình bậc hai, vì nó không hoàn toàn đơn giản như tôi nghĩ. Không thể tìm thấy ma trận thực sao cho .Một Một w ≤ s ↔ Σ | w i | ≤ s∑|wi|≤sAAw≤s↔∑|wi|≤s
Cách tiếp cận tôi đã sử dụng là chia các phần tử của vectơ thành và , sao cho . Nếu , bạn có và , nếu không bạn cóvà . Hoặc theo thuật ngữ toán học nhiều hơn, vàCả và đều là số không âm. Ý tưởng đằng sau việc chia số lên là bây giờ bạn cówiww+iw−iwi=w+i−w−iwi≥0w+i=wiw−i=0w−i=|wi|w+i=0w+i=|wi|+wi2w−i=|wi|−wi2.w−iw+i|wi|=w+i+w−i, có hiệu quả thoát khỏi các giá trị tuyệt đối.
Hàm để tối ưu hóa biến thành: , chủ đề đến
12(w+−w−)TQ(w+−w−)+cT(w+−w−)w+i+w−i≤s,w+i,w−i≥0
Trong đó và được đưa ra như đã nêu ở trên bởi Glen_bQc
Điều này cần phải được chuyển đổi thành một hình thức có thể sử dụng, tức là chúng ta cần một vector. Điều này được thực hiện theo cách sau:
12[w+w−]T[Q−Q−QQ][w+w−]+[cT−cT][w+w−]
tùy thuộc vào
[ID−I2DID][w+w−]≤[sD02D]
Trong đó là ma trận đơn vị , một vectơ -chiều chỉ bao gồm các giá trị và một vectơ 0 chiềuNửa đầu đảm bảo , Bây giờ, nó ở dạng có thể sử dụng để sử dụng lập trình bậc hai để tìm kiếm và , cho . Khi đã xong, tham số tối ưu của bạn đối với là . D s D D s 0 D 2 * D | w i | = w + i + w - i ≤ s w + i , w - i ≥ 0 w + w - s s w = w + - w -IDDsDDs0D2∗D|wi|=w+i+w−i≤sw+i,w−i≥0w+w−ssw=w+−w−
Nguồn và đọc thêm: Giải bài toán lập trình bậc hai với các ràng buộc tuyến tính chứa các giá trị tuyệt đối