Sposoby konstruowania algorytmów
"dziel i zwyciężaj" - problem jest dzielony na kilka mniejszych problemów, które znów są dzielone na mniejsze - aż do momentu, kiedy otrzymamy problemy łatwe do rozwiązania.
Programowanie dynamiczne - problem jest dzielony na kilka mniejszych problemów, ale w odróżnieniu od "dziel i zwyciężaj" podproblemy w programowaniu dynamicznym nie są rozłączne.
Metoda zachłanna - algorytm w każdym kroku dokonuje zachłannego, tj. najlepiej rokującego w danym momencie wyboru rozwiązania częściowego. Algorytm dokonuje decyzji lokalnie optymalnej.
Poszukiwanie i wyliczanie - zbiór danych jest przeszukiwany aż do znalezienia rozwiązania.
Algorytm heurystyczny – algorytm niedający gwarancji znalezienia rozwiązania optymalnego, umożliwiający jednak znalezienie rozwiązania dość dobrego w rozsądnym czasie.
|