Podręcznik
Wersja podręcznika: 1.0
Data publikacji: 01.01.2022 r.
Wykłady
W1…WN, odpowiadające w sumie ok. 10-12 godz. standardowego wykładu
1. Podstawy programowania matematycznego
1.4. Wypukłość w optymalizacji
Wprowadzimy teraz serię podstawowych pojęć, w szczególności związanych z wypukłością, która jest niezmiernie ważna w problemach optymalizacji.
Złożoność obliczeniową problemów definiujemy w ramach klas złożoności.
Klasa NP – problemy weryfikowalne w czasie wielomianowym na maszynie Turing, a rozwiązywalne w czasie wielomianowym na niedeterministycznej maszynie Turinga (maszynie z wyrocznią)
Klasa NP-zupełnych – problemy z NP., takie, że dowolny problem z NP może być zredukowany do problemu w klasie NP-zupełnej w czasie wielomianowym.
NP-trudny – problem co najmniej tak trudny jak każdy problem z klasy NP (ale potencjalnie jeszcze trudniejszy)

źródło: wikipedia
\(\min_x f(x)\)
p.o.
\(x \in \mathcal{F}\)
Skrót “p.o” należy czytać „przy ograniczeniach”. W modelu \(x \in \mathbb{R}^n\) to zmienne decyzyjne. Zmienne \(x\) mogą być ciągłe lub dyskretne. \(\mathcal{F} \subset \mathbb{R}^n\) to zbiór rozwiązań dopuszczalnych. Jego opis może przyjmować postać zbioru funkcji liniowych lub zbiór funkcji wypukłych. W niektórych sytuacjach może nie być podany jawnie, a np. być dostępny przez algorytm/symulacje. Funkcja celu to \(f:\mathcal{F} \mapsto \mathbb{R}\).
Tak ogólnie postawiony problem może być trudny do rozwiązania, a czasem nawet znalezienia rozwiązania dopuszczalnego jest kłopotliwe. Dlatego szczególnie interesuje nas znajomość przynależności danego problemu/modelu do klasy problemów, które mogą być efektywnie rozwiązywane. Do problemów łatwych należy zaliczyć np. zadania programowania liniowego (ze zmiennymi ciągłymi) oraz modele sieci przepływowych. Są to przykłady problemów wypukłych (lub możliwych do uwypuklenia). Generalnie optymalizacja wypukła jest zadaniem, które można efektywnie rozwiązać. Stąd ważkość zagadnienia wypukłości, którą dalej poruszamy.
Przyładowy zbiór wypukły:

Oraz przykład zbioru niewypukłego:

Przykłady innych zbiorów wypukłych:
Odcinek
![]()
Prosta

Hiperpłaszczyzna

Stożek

Niektóre operacja na zbiorach mogą zachowywać wypukłość. Przykładowe operacje zachowujące wypukłość:
Przecięcie zbiorów

Przekształcenie afiniczne \(x \longmapsto Ax + b\)

\(\texttt{conv } X = \bigcap\{M: X\subset M \wedge M \texttt{ jest wypukły}\}\)
Otoczka wypukła jest szczególnie ważna w przypadku zbiorów dyskretnych

Funkcja \(g: X \longrightarrow \mathbb{R}\) określona na zbiorze wypukłym \(X\) jest wypukła, jeżeli dla każdego \(0 \leq t \leq 1$ i $x_1, x_2 \in X\) spełniona jest nierówność
\(g(tx_1+(1-t)x_2) \leq tg(x_1)+(1-t)g(x_2)\), co obrazuje poniższy obrazek

Funkcja jest wypukła, jeżeli jej nadgrafik jest zbiorem wypukłym:

Równoważnie można powiedzieć, że funkcja jednokrotnie różniczkowalna jest wypukła jeżeli zachodzi poniższy warunek:

Zaś dla funkcji podwójnie różniczkowalnej musi zachodzić następujących warunek dla hesjanu:
\( H(x) \succeq 0\)
Istnieją operacje, które zachowują wypukłość.
Nieujemna suma ważona:

Maksimum funkcji

Funkcja celu wypukła i zbiór rozwiązań dopuszczalnych wypukły.
\(\min f_0(x)\)
p.o.
\(f_i(x) \leq 0, \qquad i=1,\ldots,m\)
\(a^T_ix=b_i, \qquad i=1, \ldots, p\)
gdzie \(f_0, f_1, \ldots, f_m$\) są wypukłe, a ograniczenia równościowe afiniczne.
Dla optymalizacji wypukłej lokalne optimum jest również optimum globalnym.