Я хотел добавить, как решить преобразование ограничений очень удобная форма для квадратичного программирования, поскольку она не так проста, как я думал. Невозможно найти вещественную матрицу такую, что .A A w ≤ s ↔ ∑ | ш я | ≤ с∑|wi|≤sAAw≤s↔∑|wi|≤s
Подход, который я использовал, состоял в том, чтобы разделить элементы вектора на и , так что . Если , у вас есть и , иначе у вас естьи . Или, в более математических терминах, иИ и - неотрицательные числа. Идея разделения чисел состоит в том, что теперь у вас есть w w + i w - i w i = w + i - w - i w i ≥ 0 w + i = w i w - i = 0 w - i = | ш я | w + i = 0 w + i = | ш я | + ш яwiww+iw−iwi=w+i−w−iwi≥0w+i=wiw−i=0w−i=|wi|w+i=0 ш - я =| шя| -шIw+i=|wi|+wi2w - i w + i | шя| =w + i +w - iw−i=|wi|−wi2.w−iw+i|wi|=w+i+w−i, эффективно избавляясь от абсолютных значений.
Функция для оптимизации превращается в: , субъект к
12(w+−w−)TQ(w+−w−)+cT(w+−w−)w+i+w−i≤s,w+i,w−i≥0
Где и даны как указано выше Glen_bQc
Это должно быть преобразовано в удобную форму, то есть нам нужен один вектор. Это делается следующим образом:
12[w+w−]T[Q−Q−QQ][w+w−]+[cT−cT][w+w−]
при условии
[ID−I2DID][w+w−]≤[sD02D]
Где - мерная единичная матрица, - мерный вектор, состоящий только из значения а - -мерный нулевой вектор. Первая половина обеспечивает , второй Теперь можно использовать квадратичное программирование для поиска и , заданных . Как только это будет сделано, вашим оптимальным параметром по отношению к будет . D s D D s 0 D 2 ∗ D | ш я | = 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−
Источник и дальнейшее чтение: Решение квадратичного программирования с линейными ограничениями , содержащие абсолютные значения