Optymalne dopasowanie to algorytm używany w wielu programach, aby pomóc ludziom znaleźć najbliższe dopasowanie. Przy optymalnym dopasowaniu wyszukiwanie najpierw odkryje rzeczy, które w pewnym stopniu pasują do wyszukiwanego hasła; następnie ponownie sprawdzi znalezione elementy pod kątem optymalnych dopasowań. W przeciwieństwie do tego jest chciwe dopasowanie, które nie rozpatruje znalezionych dopasowań. Jest to używane w wielu programach i może pomóc ludziom znaleźć dokumenty, strony internetowe, funkcje programów i wiele innych rzeczy. Istnieje wiele optymalnych algorytmów dopasowywania, a każdy z nich ma na celu spełnienie określonego celu.
Optymalny algorytm dopasowywania często zajmuje więcej czasu niż inne algorytmy dopasowujące, ponieważ działa znacznie więcej, gdy jest używany. Najpierw przygląda się wprowadzonemu wyszukiwanemu terminowi i znajduje wszystkie dopasowania, które bardzo przypominają ten termin. Algorytm następnie przejrzy te dopasowania i dokładnie przeanalizuje je, aby sprawdzić, czy którekolwiek z nich naprawdę pasuje. Wszelkie elementy, które przetrwają to drugie cięcie, są następnie pokazywane użytkownikowi.
Przeciwieństwem optymalnego dopasowania jest dopasowanie zachłanne. Dzięki temu dopasowującemu schematowi użytkownik nadal może wprowadzić wyszukiwane hasło, po czym algorytm dopasowujący przystępuje do pracy, przeglądając wszystkie podobne pliki i dokumenty. Różnica polega na tym, że zachłanny algorytm nie przechodzi przez fazę ponownego rozpatrzenia, więc wszystkie znalezione dokumenty są natychmiast wyświetlane użytkownikowi. Algorytm ten zazwyczaj działa szybciej i wydaje się być lepszy w mniejszych systemach, w których ponowne rozpatrzenie może nie być potrzebne lub gdy użytkownik chce uzyskać wynik, który wyświetla każdy pasujący element.
Istnieje wiele zastosowań optymalnego dopasowania, w wyniku czego algorytm jest dodawany do wielu różnych typów programów. Jest to często widoczne w wielu wyszukiwarkach, w bazach danych i podstawowych programach oraz w całych systemach operacyjnych. Można go również zaprogramować w niestandardowym oprogramowaniu, jeśli programista chce użyć optymalnego schematu dopasowania.
Chociaż optymalny algorytm dopasowywania zawsze podąża tą samą ścieżką wyszukiwania elementów przed przycięciem ich do najbardziej odpowiednich elementów, istnieje wiele oddzielnych algorytmów dostępnych dla programistów. Każdy algorytm informuje funkcję dopasowującą, czego należy szukać podczas ponownego rozpatrywania znalezionych elementów. Dzięki prawidłowemu tworzeniu i dostosowywaniu algorytmu dopasowywania programiści są w stanie najlepiej osiągnąć najdokładniejsze wyniki. Na przykład wyszukiwarka jest ogólnie zoptymalizowana pod kątem znajdowania fraz lub słów kluczowych, podczas gdy baza danych może być zoptymalizowana pod kątem wyszukiwania rekordów i tabel.