Heurystyka
Ogólnie rzecz biorąc, heurystyka jest „zasadą kciuka” lub dobrym przewodnikiem do naśladowania przy podejmowaniu decyzji. W informatyce, heurystyka ma podobne znaczenie, ale odnosi się konkretnie do algorytmów.
Podczas programowania oprogramowania, programiści komputerowi dążą do stworzenia najbardziej efektywnych algorytmów do wykonania różnych zadań. Mogą one obejmować proste procesy, takie jak sortowanie liczb lub złożone funkcje, takie jak przetwarzanie obrazów lub klipów wideo. Ponieważ funkcje te często akceptują szeroki zakres danych wejściowych, jeden algorytm może działać dobrze w pewnych przypadkach, a niezbyt dobrze w innych.
Na przykład, algorytm kompresji obrazu GIF działa dobrze na małych obrazach z niewielką ilością kolorów, ale nie tak dobrze jak kompresja JPEG na dużych obrazach z wieloma kolorami. Gdybyś wiedział, że będziesz miał do czynienia tylko z małymi obrazkami, które nie mają szerokiej gamy kolorów, kompresja GIF byłaby wszystkim, czego potrzebujesz. Nie musiałbyś się martwić o duże, kolorowe obrazy, więc nie byłoby sensu optymalizować algorytmu dla tych obrazów. Podobnie, programiści komputerowi często używają algorytmów, które działają dobrze w większości sytuacji, mimo że mogą działać nieefektywnie w niecodziennych sytuacjach.
W związku z tym proces heurystyczny może obejmować przeprowadzanie testów i uzyskiwanie wyników metodą prób i błędów. W miarę testowania większej ilości przykładowych danych, łatwiej jest stworzyć wydajny algorytm do przetwarzania podobnych typów danych. Jak stwierdzono wcześniej, algorytmy te nie zawsze są doskonałe, ale przez większość czasu działają dobrze. Celem heurystyki jest opracowanie prostego procesu, który generuje dokładne wyniki w akceptowalnym czasie.