2. Modelowanie zależności

2.3. Funkcje kawałkami liniowe

Wiele rzeczywistych problemów wymaga użycia bardziej złożonych funkcji kosztów, niż tylko prostych liniowych współczynników. Funkcje kawałkami liniowe mogą być wtedy interpretowane jako przybliżenia zależności nieliniowych, np. kwadratowych, wykładniczych, logarytmicznych, i in. Ponadto, funkcje tego typu mają zastosowanie jako funkcje kary, umożliwiające pewne naruszanie tzw. miękkich ograniczeń.

W sytuacji, gdy funkcja kawałkami liniowa, którą chcemy użyć w zadaniu spełnia warunek ciągłości i wypukłości, to odpowiedni model optymalizacji może być formułowany jako zadanie PL.

Funkcja kawałkami liniowa f(x) składa się z i\in I liniowych odcinków, z których każdy można opisać odpowiednią  funkcją liniową: f_i(x)=a_ix+b_i, gdzie a_i jest współczynnikiem nachylenia i-tego odcinka, a b_i jest współczynnikiem przesunięcia.
Funkcja jest wypukła, gdy współczynniki  a_i dla kolejnych odcinków są niemalejące:  a_i\leq  a_{i+1}
Przykładową funkcję kosztów produkcji, przybliżoną funkcją kawałkami liniową przedstawia poniższy rysunek.

Zauważmy, że wypukłość funkcji powoduje, że prawdziwa jest zależność:  f(x)= \max_i f_i(x), czyli przy minimalizacji kosztów mamy do czynienia z problemem typu minmax, który wyjaśniliśmy w poprzednim podrozdziale!
Stąd, stosując bezpośrednio technikę zamiany problemu minmax na zapis PL, możemy przedstawić odpowiedni zapis PL dla zadania, w którym występują funkcje kawałkami liniowe.
Minimalizacja funkcji kawałkami liniowej w zadaniu PL wymaga wprowadzenia dodatkowej zmiennej, symbolizującej wartość funkcji w konkretnym odcinku liniowym:
\min f(x)= \min \max_i\{ a_ix+b_i\} \equiv \min y
a następnie wprowadzenia tej zmiennej do ograniczeń : y \geq a_ix+b_i,\;\forall i.
Zauważmy przy tym, że rozważana wcześniej funkcja wartości bezwzględnej jest, de facto, funkcją kawałkami liniową. To prowadzi do równoważnego sformułowania problemu z wartością bezwzględną.
Innym sposobem na zapisanie w sposób liniowy |x| jest spostrzeżenie że:

f(x) = |x| = \max\{x, -x\}

czyli możemy zastąpić tą wartość nową zmienną y, powiązaną z pierwotną zmienną x ograniczeniami: 

y \geq x,

y \geq -x.

W zależności od konkretnego problemu, może być bardziej wygodne użycie pierwszego (przedstawionego w poprzednim podrozdziale), lub drugiego sposobu na przedstawienie wartości bezwzględnej, co pokażemy w poniższym przykładzie.
Niepewność współczynników macierzy A.   Załóżmy, że w zadaniu \{\min_x \mathbf{c}^T x, \mathbf{A}x \geq \mathbf{b}\}, współczynniki macierzy A nie mogą być wyznaczone w sposób dokładny. Oznaczmy je jako \tilde{a}_i, zatem problem ma postać:

\min\sum_i c_ix_i, p.o.:

\sum_i\tilde{a}_ix_i\geq b.

Jeśli można przyjąć, że wartości współczynników mieszczą się w pewnym zakresie [L_i, U_i] to [a_i-\delta_i,a_i+\delta_i], gdzie \delta_i=0.5(U_i-L_i) oraz a_i=0.5(U_i+L_i).
Aby rozwiązanie PL spełniało ograniczenia \tilde{a}_ix\geq b w każdym przypadku, wystarczy jeśli spełni ograniczenia w najgorszym przypadku:
  • dla x_i\geq 0 to ograniczenie będzie spełnione jeśli \tilde{a}_ix\geq (a_i-\delta_i)x_i,
  •  dla x_i\leq 0 to ograniczenie będzie spełnione jeśli \tilde{a}_ix\geq (a_i+\delta_i)x_i.
Czyli problem można sformułować jako:

\sum_i\tilde{a}_ix\geq a_ix_i-\sum_i\delta_i|x_i|\geq b.

Wtedy stosując metodę przedstawienia wartości bezwzględnej jako f. wypukłej  |x_i| = y_i , używamy teraz nowych zmiennych  y_i w początkowym ograniczeniu, dodając ograniczenia wiążące te zmienne z x_i dla funkcji celu:

\min\sum_i c_ix_i, p.o.:     

\begin{eqnarray} & &\sum_i a_ix_i- \sum_i\delta_i y_i \geq b, \\ &-y_i \leq & x_i\leq y_i,\\ & &y_i\geq 0. \end{eqnarray} Uwaga, często warto uwzględnić dodatkowo współczynnik tolerancji \epsilon, pozwalający na nieznaczne naruszenie prawej strony ograniczeń: \begin{eqnarray} && \sum_i a_ix_i-\sum_i\delta_i y_i\geq b-\epsilon\max(1,|b|).\end{eqnarray}

Przyjmij, że firma ponosi stały koszt utrzymania magazynu, wynoszący C, o ile jego pojemność P jest wykorzystywana w nie więcej niż 80%. W sytuacji, gdy ilość przechowywanych towarów przekracza 0.8\cdot P, ponoszone są dodatkowe koszty, rosnące wraz ze współczynnikiem k za każdą nadmiarową jednostkę towaru. Przyjmując horyzont planowania T lat, oraz wielkość zapotrzebowania w wysokości d_t w każdym roku, zapisz w postaci PL problem wyznaczenia optymalnego planu zakupów towaru w każdym roku. Plan ten, przy znajomości cen zakupu c_t, powinien minimalizować koszty magazynowania. Wskazówka - zauważ, że koszt magazynowania towaru można przedstawić w postaci funkcji, składającej się z dwóch liniowych kawałków.