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
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 |