Je voulais ajouter comment résoudre la transformation des contraintes dans une forme utilisable pour la programmation quadratique, car ce n'est pas aussi simple que je le pensais. Il n'est pas possible de trouver une matrice A réelletelle que A w ≤ s ↔ ∑ | w i | ≤ s .∑|wi|≤sAAw≤s↔∑|wi|≤s
L'approche que j'ai utilisée était de diviser les éléments du vecteur w en w + i et w - i , de sorte que w i = w + i - w - i . Si w i ≥ 0 , vous avez w + i = w i et w - i + i = 0wiww+iw−iwi=w+i−w−iwi≥0w+i=wi , sinon vous avez w - i = | w i | et ww−i=0w−i=|wi|w+i=0 . Ou en termes plus mathématiques, w+i=|wi|+wi2 et Les deuxw - i etw + i sontnombres non négatifs. L'idée derrière la répartition des nombres est que vous avez maintenant| wi| =w + i +w - i , éliminant efficacement les valeurs absolues.w−i=|wi|−wi2.w−iw+i|wi|=w+i+w−i
La fonction d'optimisation se transforme en: , sous réserve de
w + i + w - i ≤ s ,12(w+−w−)TQ(w+−w−)+cT(w+−w−)w+i+w−i≤s,w+i,w−i≥0
Où et c sont donnés comme indiqué ci-dessus par Glen_bQc
Cela doit être transformé en une forme utilisable, c'est-à-dire que nous avons besoin d'un vecteur. Cela se fait de la manière suivante:
12[w+w−]T[Q−Q−QQ][w+w−]+[cT−cT][w+w−]
sujet à
[ID−I2DID][w+w−]≤[sD02D]
Où est le D matrice unité de dimension, s D a D de dimension vecteur constitué uniquement de la valeur s et 0 D a 2 * D de dimension de vecteur nul. Le premier semestre assure | w i | = w + i + w - i ≤ s , le second w w + et w -IDDsDDs0D2∗D|wi|=w+i+w−i≤sMaintenant, il est sous une forme utilisable d'utiliser la programmation quadratique pour rechercherw+i,w−i≥0w+w− , étant donné l' . Une fois cela fait, votre paramètre optimal par rapport à s est w = w + - w - .ssw=w+−w−
Source et lectures complémentaires: Résolution d'un problème de programmation quadratique avec des contraintes linéaires contenant des valeurs absolues