Ich wollte hinzufügen, wie man die Transformation der Einschränkungen löst in eine verwendbare Form für die quadratische Programmierung, da es nicht ganz so einfach ist, wie ich dachte. Es ist nicht möglich, eine reelle Matrix A zu finden, so dass A w ≤ s ↔ ∑ | ist w i | ≤ s .∑|wi|≤sAAw≤s↔∑|wi|≤s
Der Ansatz, den ich benutzte, bestand darin, die Elemente des Vektors w in w + i und w - i aufzuteilen , so dass w i = w + i - w - i . Wenn w i ≥ 0 ist , haben Sie w + i = w i und w - i = 0 , sonst haben Sie w - i = | w i | und wwiww+iw−iwi=w+i−w−iwi≥0w+i=wiw−i=0w−i=|wi|. Oder mathematischer ausgedrückt,w + i =| wi| +wiw+i=0 undw - i =| wi| -wiw+i=|wi|+wi2Sowohlw - i als auchw + i sind nicht negative Zahlen. Die Idee hinter der Aufteilung der Zahlen ist, dass Sie jetzt| haben wi| =w + i +w - i , wodurch die absoluten Werte effektiv beseitigt werden.w−i=|wi|−wi2.w−iw+i|wi|=w+i+w−i
Die zu optimierende Funktion wird zu: , vorbehaltlich
w + i +w - i ≤s,12(w+−w−)TQ(w+−w−)+cT(w+−w−)w+i+w−i≤s,w+i,w−i≥0
Wobei und c wie oben von Glen_b angegeben sindQc
Dies muss in eine verwendbare Form umgewandelt werden, dh wir benötigen einen Vektor. Dies geschieht folgendermaßen:
12[w+w−]T[Q−Q−QQ][w+w−]+[cT−cT][w+w−]
vorbehaltlich
[ID−I2DID][w+w−]≤[sD02D]
Wobei die D- dimensionale Einheitsmatrix ist, s D ein D- dimensionaler Vektor, der nur aus dem Wert s und 0 D a 2 ∗ D -dimensionaler Nullvektor besteht. Die erste Hälfte sorgt für | w i | = w + i + w - i ≤ s , das zweite w + i , w - i ≥ 0 Jetzt ist es in einer verwendbaren Form, nach quadratischer Programmierung zu suchenIDDsDDs0D2∗D|wi|=w+i+w−i≤sw+i,w−i≥0 und w - , gegeben s . Sobald dies geschehen ist, Ihre optimalen Parameter in Bezug auf s sind w = w + - w - .w+w−ssw=w+−w−
Quelle und weiterführende Literatur: Lösung eines quadratischen Programmierproblems mit linearen Einschränkungen, die absolute Werte enthalten