encyklopedia.space

Algorytmy optymalizacji

Algorytmy optymalizacji to klasa metod i procedur obliczeniowych służących do znajdowania najlepszego (maksymalnego lub minimalnego) rozwiązania w zadanym zbiorze dopuszczalnych rozwiązań. Są one fundamentem wielu dziedzin, w tym programowania liniowego, programowania nieliniowego, sztucznej inteligencji, uczenia maszynowego oraz analizy numerycznej. W praktyce algorytmy te wykorzystywane są w optymalizacji logistycznej, finansowej, inżynieryjnej, a także w zadaniach badawczych, takich jak problem podróżującego sprzedawcy (ang. Travelling Salesman Problem).

Klasyfikacja algorytmów optymalizacji

W literaturze wyróżnia się kilka podstawowych grup algorytmów:

Historia rozwoju

Pierwsze formalne koncepcje optymalizacji pojawiły się w latach 1940‑ w pracach Leonida Kantorowicza i George’a Dantzig’a. W 1947 roku Dantzig opublikował metodę simpleks, rewolucjonizującą programowanie liniowe. Lata 1950‑ przyniosły rozwój metod numerycznych, a w 1965 roku powstały pierwsze algorytmy genetyczne zaproponowane przez Johna Hollanda. W kolejnych dekadach rozwinięto symulowane wyżarzanie (Kirkpatrick, 1983), metody gradientowe oraz wiele technik metaheurystycznych.

Podstawowe pojęcia

Funkcja celu (objective function)
Matematyczna funkcja, której wartość ma być zminimalizowana lub zmaksymalizowana.
Zmienne decyzyjne
Wartości, które algorytm modyfikuje w trakcie poszukiwania optimum.
Przestrzeń rozwiązań
Zbiór wszystkich dopuszczalnych kombinacji zmiennych decyzyjnych.
Warunki brzegowe i ograniczenia
Równości lub nierówności (np. ograniczenia liniowe), które muszą być spełnione przez rozwiązanie.

Metody dokładne

Metody dokładne gwarantują znalezienie globalnego optimum, ale zazwyczaj wiążą się z wysoką złożonością obliczeniową. Najważniejsze techniki to:

  • Simpleks – algorytm opracowany w 1947 roku dla problemów liniowych. Działa w przestrzeni wierzchołków wielościanu ograniczeń.
  • Branch‑and‑bound – technika podziału problemu na podproblemy i wyznaczania ograniczeń dolnych i górnych, wykorzystywana w programowaniu całkowitoliczbowym.
  • Dynamiczne programowanie – metoda rozkładająca problem na podproblemy o mniejszej skali; klasycznym przykładem jest problem plecakowy.

Metody przybliżone i metaheurystyki

W praktyce wiele problemów optymalizacyjnych jest NP‑zupełnych, co sprawia, że algorytmy dokładne są niepraktyczne. Dlatego stosuje się heurystyki i metaheurystyki:

Algorytmy genetyczne

Inspirują się procesem ewolucji biologicznej. Populacja rozwiązań (chromosomów) podlega operacjom krzyżowania, mutacji i selekcji. W 1985 roku Hoffmeister i Schwefel opracowali pierwsze praktyczne zastosowania w optymalizacji inżynieryjnej.

Symulowane wyżarzanie

Modeluje proces wygrzewania i powolnego schładzania materiału. W 1983 roku Kirkpatrick, Gelatt i Vecchi przedstawili algorytm, który potrafi wydostać się z lokalnych minimów dzięki probabilistycznemu przyjmowaniu gorszych rozwiązań.

Algorytm mrówek (Ant Colony Optimization)

Metoda bazuje na zachowaniu kolonii mrówek poszukujących najkrótszej ścieżki do pożywienia. Została zaproponowana przez Marco Dorigo w 1992 roku.

Metody gradientowe

Stosowane najczęściej w optymalizacji ciągłej, zwłaszcza w uczeniu maszynowym. Podstawowe algorytmy:

  • Metoda gradientu prostego – w każdym kroku przesuwa punkt w kierunku przeciwnym do gradientu funkcji celu.
  • Gradient prosty z przyspieszeniem (momentum) – dodaje składnik zależny od poprzedniego kroku, przyspieszając zbieżność.
  • Adam – adaptacyjny algorytm oparty na pierwszych i drugich momentach gradientu, szeroko stosowany w sieciach neuronowych.

Zastosowania

Algorytmy optymalizacji znajdują zastosowanie w wielu gałęziach przemysłu i nauki:

  • Logistyka i transport – planowanie tras, przydział zasobów, optymalizacja floty.
  • Finanse – portfelowa optymalizacja assetów, wycena instrumentów pochodnych.
  • Energetyka – zarządzanie sieciami elektroenergetycznymi, optymalizacja produkcji odnawialnej.
  • Projektowanie inżynieryjne – kształtowanie elementów, minimalizacja masy przy zachowaniu wytrzymałości.
  • Sztuczna inteligencja – strojenie hiperparametrów modeli, optymalizacja funkcji nagrody w uczeniu ze wzmocnieniem.

Wyzwania i perspektywy

Rozwój algorytmów optymalizacji kierowany jest przez:

Zobacz także

Algorytm | Optymalizacja | Programowanie liniowe | Programowanie nieliniowe | Złożoność obliczeniowa | NP‑zupełny | Sztuczna inteligencja