Podręcznik
2. Zadanie minimalizacji
2.5. Uwzględnianie ograniczeń w optymalizacji – kiedy nie wszystko wolno
Uwzględnianie ograniczeń w optymalizacji – kiedy nie wszystko wolno
W większości realistycznych problemów optymalizacyjnych nie możemy swobodnie dobierać zmiennych – jesteśmy ograniczeni przez warunki fizyczne, ekonomiczne, prawne czy techniczne. W tym rozdziale przyjrzymy się, jak klasyczne algorytmy radzą sobie z ograniczeniami. Omówimy metody jawne i niejawne, twarde i miękkie, dokładne i przybliżone.
Rodzaje ograniczeń
Zacznijmy od klasyfikacji. Ograniczenia w problemie optymalizacji można zapisać jako:
Mogą one dotyczyć jednej zmiennej lub całego ich zestawu, np. .
Z punktu widzenia praktyki dzieli się je na:
- twarde (hard) – muszą być spełnione bez wyjątku,
- miękkie (soft) – można je naruszyć, ale z konsekwencjami (np. kara w funkcji celu).
Dodatkowo, wyróżniamy:
- ograniczenia jawne – znane i zapisane bezpośrednio,
- ograniczenia niejawne – wynikające z ukrytej logiki zadania lub symulacji.
Przypomnijmy sobie zadanie z rozdziału 2.1, gdzie projektowaliśmy prostopadłościenne zbiorniki na chemikalia. Naszą funkcją celu był koszt transportu, a zmiennymi decyzyjnymi były wymiary pojemników.
W tym przypadku ograniczenia obejmowało:W bardziej realistycznym przykładzie pewnie należałoby dodać jakieś ograniczenie na pojemność (zarówno dolne jaki i górne), czy też na poszczególne wymiary. Przy czym można wyobrazić sobie część z nich jako miękkie - z powodów ergonomicznych lepiej, by wysokość nie była większa niż 2 m.
Metoda eliminacji – tylko to, co dopuszczalne
Najprostsza strategia to nie wpuszczać do przestrzeni przeszukiwania żadnego punktu, który nie spełnia ograniczeń. To tzw. metoda eliminacji (feasibility filter).
Jak to działa?
- Generujemy kandydatów (np. losowo lub iteracyjnie),
- Sprawdzamy, czy spełniają wszystkie ograniczenia,
- Jeśli nie – odrzucamy i szukamy dalej.
Zalety:
- prostota,
- 100% pewności, że rozwiązania są dopuszczalne.
Wady:
- może być ekstremalnie nieefektywna, jeśli dopuszczalna przestrzeń jest wąska,
- problematyczna w przestrzeniach ciągłych o trudnych ograniczeniach geometrycznych.
Metoda ta jest powszechna w prostych algorytmach przeszukiwania losowego.
Kara - niedobrze jak opuścisz obszar poszukiwań
Inna popularna strategia to włączenie ograniczeń do funkcji celu w postaci dodatkowej kary (penalty function). To pozwala naruszać ograniczenia, ale z kosztami.
Nowa funkcja celu ma postać:





Parametry i /(s_j\) to współczynniki kar. Ich dobór jest krytyczny – zbyt małe kary powodują lekceważenie ograniczeń, zbyt duże całkowicie blokują eksplorację.
Zalety:
- łatwa do zastosowania w istniejących algorytmach,
- działa także z funkcjami niegładkimi.
Wady:
- trudność w doborze wag kary,
- ryzyko, że dobre rozwiązania dopuszczalne będą pominięte, jeśli punkt niedopuszczalny ma niską wartość oryginalnej funkcji celu.
Metoda barier – podejście od wewnątrz
Alternatywą dla kar jest metoda barier, szczególnie w przestrzeni ciągłej. Zamiast pozwalać wejść do strefy niedozwolonej, bariera zapobiega zbliżaniu się do granicy dopuszczalności.
Typowa postać funkcji barierowej:
Bariera działa tylko dla punktów wewnątrz dopuszczalnego obszaru – im bliżej granicy, tym kara większa. to współczynnik kontrolujący siłę działania bariery.
Zalety:
- zachowujemy się "bezpiecznie", nie przekraczając granic,
- sprzyja optymalizacji wewnątrz trudnych wielowymiarowych obszarów.
Wady:
- nie działa dla równości,
- wymaga funkcji różniczkowalnej i pochodnych,
- może prowadzić do utknięcia daleko od minimum globalnego.
Metody rzutowania – powrót na ścieżkę
Jeśli w kolejnych krokach algorytmu zdarza się, że punkt wyjdzie poza dopuszczalną przestrzeń, możemy go ręcznie przywrócić do niej – poprzez tzw. rzutowanie.
Mamy ograniczenie .
Jeśli nowy punkt
, to zamiast odrzucić, robimy ustawiamy
.
Rzutowanie działa na granicy dopuszczalności i zachowuje sens matematyczny przeszukiwania.
Zalety:
- prosta implementacja,
- pozwala używać standardowych algorytmów nawet w obecności ograniczeń.
Wady:
- może prowadzić do "ślizgania się" po granicy,
- nie uwzględnia geometrii problemu.
Naprawianie (repair) – sprytna korekta
Zamiast odrzucać lub karać – można próbować naprawiać niedopuszczalne rozwiązania. Np. jeśli suma udziałów w portfelu przekracza 100%, można je przeskalować. Jeśli punkt leży poza granicą, można przesunąć go najkrótszą drogą do wnętrza.
Zalety:
- elastyczne i skuteczne w praktyce,
- pozwala korzystać z silnych heurystyk bez komplikowania algorytmu.
Wady:
- często wymaga znajomości problemu i specjalnych procedur,
- może zaburzać rozkład rozwiązań (np. w metodach losowych).
Metody hybrydowe i adaptacyjne
W rzeczywistości często stosuje się kombinacje powyższych metod:
- kara + rzutowanie,
- bariera + naprawianie,
- kara adaptacyjna – która zmienia siłę działania w czasie (np. rośnie w miarę trwania optymalizacji).
Szczególnie algorytmy ewolucyjne często korzystają z adaptacyjnych funkcji kary, które uwzględniają np. liczbę spełnionych ograniczeń w danej populacji.
Uwagi praktyczne
Dobór odpowiedniej strategii postępowania z ograniczeniami w optymalizacji zależy od wielu czynników. Przede wszystkim trzeba wziąć pod uwagę naturę problemu: czy mamy do czynienia z przestrzenią ciągłą, gdzie możemy wykorzystać pochodne i gładkość funkcji celu, czy z przestrzenią dyskretną, gdzie takie założenia nie obowiązują. Problemy ciągłe z ograniczeniami równościowymi wymagają często stosowania metod analitycznych lub przybliżających – na przykład przez przekształcenie równości w funkcje kary kwadratowe. W przypadku ograniczeń nierównościowych dobrze sprawdzają się metody barierowe lub adaptacyjne kary. Z kolei w przestrzeniach dyskretnych bardziej praktyczne okazują się metody naprawcze lub prosta eliminacja rozwiązań niedopuszczalnych.
Ważną rolę odgrywa także geometria przestrzeni rozwiązań – w niektórych problemach dopuszczalny obszar jest nieregularny, pełen dziur i nieciągłości. W takich przypadkach warto rozważyć metody rzutowania lub adaptacyjne przekształcanie przestrzeni przeszukiwania. W praktyce inżynierskiej, zwłaszcza w dziedzinach takich jak projektowanie mechaniczne, inżynieria materiałowa czy chemiczna, dobrze działa połączenie strategii optymalizacji z wiedzą ekspercką. Na przykład zamiast jedynie penalizować naruszenie granic geometrycznych, można wprowadzić sprytne algorytmy naprawcze, które przekształcają rozwiązania w realne i wykonalne, zgodnie z zasadami fizyki czy standardami technicznymi.
Warto też zauważyć, że sposób traktowania ograniczeń może wpływać nie tylko na skuteczność optymalizacji, ale również na jakość znalezionych rozwiązań – zwłaszcza w problemach, gdzie między ograniczeniami a funkcją celu istnieje subtelna zależność. Dlatego wybór metody powinien być dokonywany świadomie, w oparciu o analizę problemu, a nie przez przyzwyczajenie czy wygodę implementacyjną. (np. optymalizacja konstrukcji) warto wspomagać się informacjami z domeny.