Heurystyka
Ogólnie mówiąc, heurystyka to „praktyczna zasada” lub dobra wskazówka, której warto przestrzegać podczas podejmowania decyzji. W informatyce heurystyka ma podobne znaczenie, ale odnosi się konkretnie do algorytmów.
Podczas programowania oprogramowania programiści dążą do tworzenia najbardziej wydajnych algorytmów do wykonywania różnych zadań. Mogą to być proste procesy, takie jak sortowanie liczb, lub złożone funkcje, takie jak przetwarzanie obrazów albo klipów wideo. Ponieważ funkcje te często przyjmują szeroki zakres danych wejściowych, jeden algorytm może działać dobrze w określonych przypadkach, a w innych — nie najlepiej.
Na przykład algorytm kompresji obrazów GIF działa dobrze w przypadku małych obrazów z niewielką liczbą kolorów, ale nie tak dobrze jak kompresja JPEG w przypadku dużych obrazów z wieloma kolorami. Jeśli wiedziałbyś, że będziesz zajmować się wyłącznie małymi obrazami, które nie mają szerokiej gamy kolorów, kompresja GIF byłaby wszystkim, czego potrzebujesz. Nie musiałbyś martwić się dużymi, kolorowymi obrazami, więc optymalizowanie algorytmu pod kątem takich obrazów nie miałoby sensu. Podobnie programiści często używają algorytmów, które dobrze sprawdzają się w większości sytuacji, nawet jeśli w nietypowych przypadkach mogą działać nieefektywnie.
Dlatego proces heurystyczny może obejmować przeprowadzanie testów i uzyskiwanie wyników metodą prób i błędów. W miarę testowania większej liczby przykładowych danych łatwiej jest utworzyć wydajny algorytm do przetwarzania podobnych typów danych. Jak wspomniano wcześniej, algorytmy te nie zawsze są doskonałe, ale przez większość czasu działają dobrze. Celem heurystyk jest opracowanie prostego procesu, który generuje dokładne wyniki w akceptowalnym czasie.
Sprawdź swoją wiedzę