Metody heurystyczne stosuje się najczęściej do rozwiązywania trudnych problemów optymalizacyjnych, często ważnych z praktycznego punktu widzenia, dla których nie są znane efektywne algorytmy wielomianowe. W informatyce algorytmy heurystyczne służą do znajdowania rozwiązań dla takich zadań, dla których nie ma gwarancji znalezienia rozwiązania optymalnego, a często nawet prawidłowego. Rozwiązań tych używa się np. wtedy, gdy algorytm pełnego przeglądu jest z przyczyn technicznych zbyt kosztowny, lub gdy jest nieznany. Metod tych używa się też często do znajdowania rozwiązań zbliżonych do optymalnych.
**Program:**
1. Pojęcie problemu optymalizacyjnego w kontekście teorii złożoności obliczeniowej.
2. Algorytmy pełnego przeglądu zbioru rozwiązań, pojęcie heurystyki, klasyfikacja heurystyk przeszukiwania.
3. Przeszukiwanie lokalne, heurystyki lokalnych ulepszeń.
4. Symulowane wyżarzanie.
5. Przeszukiwanie z tabu.
6. Przeszukiwanie rozproszone.
7. Algorytmy ewolucyjne.
8. Zrandomizowane heurystyki populacyjne.
9. Systemy mrówkowe.
10. Rój cząsteczek.
11. Sztuczne systemy immunologiczne.
12. Algorytmy memetyczne.
**Wymagania:**
Algorytmy i struktury danych
Programowanie