Programowanie stożka drugiego rzędu

Program stożkowy drugiego rzędu ( SOCP ) jest wypukłym problemem optymalizacji formy

fa
z zastrzeżeniem

gdzie parametrami problemu są i . jest zmienną optymalizacyjną. jest normą euklidesową i oznacza transpozycję . „Stożek drugiego rzędu” w SOCP wynika z ograniczeń, które są równoważne wymaganiu funkcji afinicznej leżeć w stożku drugiego rzędu w R .

SOCP można rozwiązywać metodami punktów wewnętrznych i ogólnie można je rozwiązywać wydajniej niż problemy z programowaniem półokreślonym (SDP). Niektóre zastosowania inżynieryjne SOCP obejmują projektowanie filtrów, projektowanie masy anten, projektowanie kratownic i optymalizację siły chwytania w robotyce. Zastosowania w finansach ilościowych obejmują optymalizację portfela ; niektóre wpływu na rynek , ponieważ nie są liniowe, nie mogą być rozwiązane za pomocą programowania kwadratowego , ale można je sformułować jako problemy SOCP.

Stożek drugiego rzędu

Standardowy lub jednostkowy stożek drugiego rzędu o wymiarze jest zdefiniowany jako

.

Stożek drugiego rzędu jest również znany jako stożek kwadratowy , stożek lodowy lub stożek Lorentza . Stożek drugiego rzędu w to .

Zbiór punktów spełniających ograniczenie stożka drugiego rzędu jest odwrotnym obrazem jednostkowego stożka drugiego rzędu w odwzorowaniu afinicznym:

a więc jest wypukła.

Od tego czasu stożek drugiego rzędu można osadzić w stożku dodatnich półokreślonych macierzy

równoważne liniowej nierówności macierzy (tutaj oznacza , ​​jest to macierz półokreślona Podobnie mamy też,

.

Związek z innymi problemami optymalizacyjnymi

Hierarchia problemów optymalizacji wypukłej. (LP: program liniowy, QP: program kwadratowy, program stożkowy drugiego rzędu SOCP, SDP: program półokreślony, CP: program stożkowy.)

Kiedy dla , SOCP redukuje się do programu liniowego . Kiedy do dla , SOCP jest równoważne wypukłemu kwadratowo ograniczonemu programowi liniowemu.

wypukłymi ograniczeniami kwadratowymi można również formułować jako SOCP poprzez przeformułowanie funkcji celu jako ograniczenia. Programowanie półokreślone obejmuje SOCP, ponieważ ograniczenia SOCP można zapisać jako liniowe nierówności macierzowe (LMI) i można je przeformułować jako przykład programu półokreślonego. Odwrotność jednak nie jest ważna: istnieją dodatnie półokreślone stożki, które nie dopuszczają żadnej reprezentacji stożka drugiego rzędu. W rzeczywistości, podczas gdy dowolny domknięty zbiór półalgebraiczny wypukły na płaszczyźnie można zapisać jako możliwy region SOCP, wiadomo, że istnieją wypukłe zbiory semialgebraiczne, które nie są reprezentowalne przez SDP, to znaczy istnieją wypukłe zbiory semialgebraiczne, których nie można zapisać jako możliwy region SDP .

Przykłady

Ograniczenie kwadratowe

Rozważ wypukłe ograniczenie kwadratowe formy

Jest to równoważne z ograniczeniem SOCP

Stochastyczne programowanie liniowe

Rozważ stochastyczny program liniowy w postaci nierówności

zminimalizować do
z zastrzeżeniem

parametry niezależnymi wektorami losowymi Gaussa ze kowariancją i . Ten problem można wyrazić jako SOCP

zminimalizować do
z zastrzeżeniem

gdzie . _ _

Stochastyczne programowanie stożkowe drugiego rzędu

Programy stożkowe drugiego rzędu nazywamy deterministycznymi programami stożkowymi drugiego rzędu, ponieważ definiujące je dane są deterministyczne. Stochastyczne programy stożkowe drugiego rzędu to klasa problemów optymalizacyjnych, które są zdefiniowane w celu obsługi niepewności danych definiujących deterministyczne programy stożkowe drugiego rzędu.

Solvery i języki skryptowe (programowania).

Nazwa Licencja Krótka informacja
AMPL handlowy Algebraiczny język modelowania z obsługą SOCP
Artelys Knitro handlowy
CPLEX handlowy
FICO Xpress handlowy
Gurobi handlowy
MATLAB handlowy Funkcja coneprog rozwiązuje problemy SOCP przy użyciu algorytmu punktu wewnętrznego
MOSEK handlowy równoległy algorytm punktu wewnętrznego
Biblioteka numeryczna NAG handlowy Biblioteka numeryczna ogólnego przeznaczenia z solverem SOCP