Heurystyki nie są niczym nowym, odgrywają one ważną rolę w naszym codziennym życiu, zarówno w rozwiązywaniu problemów jak i podejmowaniu decyzji. Ponieważ w dzisiejszych czasach świat jest pełen informacji, a nasze mózgi są w stanie przetworzyć tylko pewną ich ilość, heurystyki bardzo nam w tym pomagają. Bo gdybyś próbował analizować każdy aspekt każdej sytuacji czy decyzji, nigdy nic by Ci się nie udało. Podejmujemy tysiące decyzji każdego dnia i nad większością z nich tak naprawdę się nie zastanawiamy, „wiemy” jak zachować się w pewnych sytuacjach na podstawie naszego doświadczenia i na tym właśnie polega heurystyka. Kiedy próbujemy rozwiązać jakiś problem lub podjąć decyzję, często sięgamy do tych skrótów myślowych, gdy potrzebujemy szybkiego rozwiązania.
Więc, czym jest programowanie heurystyczne?
Heurystyki to skróty myślowe, które pomagają nam szybko podejmować decyzje i osądy bez konieczności poświęcania dużej ilości czasu na wyszukiwanie i analizowanie informacji. Zazwyczaj polegają one na skupieniu się na jednym aspekcie złożonego problemu i ignorowaniu innych. W większości okoliczności sprawdzają się one dobrze, ale mogą prowadzić do systematycznych odstępstw od logiki, prawdopodobieństwa lub racjonalnego wyboru. Przykłady, które wykorzystują heurystykę obejmują użycie reguły kciuka, wykształconego domysłu, intuicyjnego osądu, szacunku, stereotypów, profilowania lub zdrowego rozsądku.
W informatyce, sztucznej inteligencji i optymalizacji matematycznej, heurystyka jest techniką zaprojektowaną do rozwiązywania problemu szybciej, gdy klasyczne metody są zbyt wolne, lub do znajdowania przybliżonego rozwiązania, gdy klasyczne metody nie znajdują żadnego dokładnego rozwiązania. Osiąga się to poprzez zamianę optymalności, kompletności, dokładności lub precyzji na szybkość.
Programowanie heurystyczne wykorzystuje praktyczną metodę, która nie gwarantuje, że będzie optymalna, doskonała, logiczna lub racjonalna, ale jest wystarczająca do osiągnięcia natychmiastowego celu. Ważne jest, aby podkreślić, że Heurystyki są strategiami pochodzącymi z poprzednich doświadczeń z podobnymi problemami. Strategie te polegają na wykorzystaniu łatwo dostępnych, choć luźno stosowanych, informacji do kontrolowania rozwiązywania problemów u ludzi, maszyn i abstrakcyjnych zagadnień. elem heurystyki jest stworzenie rozwiązania w rozsądnych ramach czasowych, które jest wystarczająco dobre do rozwiązania danego problemu.
Kryteria kompromisu przy podejmowaniu decyzji, czy użyć heurystyki do rozwiązania danego problemu:
- Optymalność: Gdy dla danego problemu istnieje kilka rozwiązań, czy heurystyka gwarantuje, że zostanie znalezione najlepsze rozwiązanie? Czy rzeczywiście konieczne jest znalezienie najlepszego rozwiązania?
- Kompletność: Gdy dla danego problemu istnieje kilka rozwiązań, czy heurystyka jest w stanie znaleźć je wszystkie? Czy rzeczywiście potrzebujemy wszystkich rozwiązań? Wiele heurystyk ma za zadanie znaleźć tylko jedno rozwiązanie.
- Dokładność i precyzja: Czy heurystyka może podać przedział ufności dla rzekomego rozwiązania? Czy pasek błędu na rozwiązaniu jest nieracjonalnie duży?
- Czas wykonania: Czy jest to najlepsza znana heurystyka do rozwiązywania tego typu problemów? Niektóre heurystyki zbiegają się szybciej niż inne. Niektóre heurystyki są tylko nieznacznie szybsze od klasycznych metod.
A teraz główne pytanie: dlaczego polegamy na heurystykach?
Psychologowie zaproponowali kilka różnych teorii:
- Zmniejszenie wysiłku: Według tej teorii, ludzie wykorzystują heurystyki jako rodzaj lenistwa poznawczego. Heurystyki zmniejszają wysiłek umysłowy potrzebny do dokonywania wyborów i podejmowania decyzji.
- Zastępowanie atrybutów: Inne teorie sugerują, że ludzie zastępują prostsze, ale powiązane pytania w miejsce bardziej złożonych i trudnych pytań.
- Szybko i oszczędnie: Jeszcze inne teorie twierdzą, że heurystyki są w rzeczywistości bardziej dokładne niż tendencyjne. Innymi słowy, używamy heurystyk, ponieważ są one szybkie i zazwyczaj poprawne.
Jest to w przeciwieństwie do programowania algorytmicznego, które opiera się na matematycznie sprawdzalnych procedurach. Ważne jest jednak, aby zrozumieć, że programowanie heurystyczne charakteryzuje się programami, które są samouczące się; stają się lepsze z doświadczeniem. Programy heurystyczne nie zawsze osiągają najlepszy wynik, ale zazwyczaj dają dobry wynik.