Chciałem dodać, jak rozwiązać transformację ograniczeń w użyteczną formę do programowania kwadratowego, ponieważ nie jest to tak proste, jak myślałem. Nie można znaleźć prawdziwej macierzy A takiej, że A w ≤ s ↔ ∑ | w i | ≤ s .∑|wi|≤sAAw≤s↔∑|wi|≤s
Metoda I zastosowano do dzielenia elementów wektora W w W + I i W - I tak, w I = W + I - W - I . Jeśli w i ≥ 0 , masz w + i = w i oraz w - i = 0 , w przeciwnym razie masz w - i = | w i | i wwiww+iw−iwi=w+i−w−iwi≥0w+i=wiw−i=0w−i=|wi|. Lub bardziej matematycznie,w + i =| wi| +wiw+i=0 orazw - i =| wi| -wiw+i=|wi|+wi2Zarównow - i, jak iw + i są liczbami nieujemnymi. Pomysł dzielenia liczb jest taki, że masz| wi| =w + i +w - i , skutecznie pozbywając się wartości bezwzględnych.w−i=|wi|−wi2.w−iw+i|wi|=w+i+w−i
Funkcja optymalizacji zmienia się w: , z zastrzeżeniem
w + i +w - i ≤s,12(w+−w−)TQ(w+−w−)+cT(w+−w−)w+i+w−i≤s,w+i,w−i≥0
Gdzie i c podano jak podano powyżej przez Glen_bQc
To musi zostać przekształcone w użyteczną formę, tzn. Potrzebujemy jednego wektora. Odbywa się to w następujący sposób:
12[w+w−]T[Q−Q−QQ][w+w−]+[cT−cT][w+w−]
z zastrzeżeniem
[ID−I2DID][w+w−]≤[sD02D]
Gdzie jest macierzą D- wymiarowej jednostki, s D jest wektorem D- wymiarowym składającym się tylko z wartości s, a 0 D jest w wymiarze wektora zerowego 2 ∗ D. Pierwsza połowa zapewnia | w i | = w + i + w - i ≤ s , drugie w + i , w - i ≥ 0 Teraz w użytecznej formie można użyć programowania kwadratowego do wyszukiwaniaIDDsDDs0D2∗D|wi|=w+i+w−i≤sw+i,w−i≥0 i w - , biorąc pod uwagę s . Po wykonaniu tego optymalnym parametrem w odniesieniu do s jest w = w + - w - .w+w−ssw=w+−w−
Źródło i dalsze czytanie: Rozwiązywanie problemu programowania kwadratowego z ograniczeniami liniowymi zawierającymi wartości bezwzględne