Optimaalinen vastaavuus on algoritmi, jota käytetään monissa ohjelmissa auttamaan ihmisiä löytämään lähimmän vastaavuuden. Optimaalisen haun avulla haku löytää ensin asioita, jotka vastaavat jonkin verran hakutermiä; se tarkistaa sitten löydetyt kohteet uudelleen optimaalisten osumien löytämiseksi. Toisin kuin tämä on ahne vastaavuus, joka ei harkitse löydettyjä osumia uudelleen. Tätä käytetään monissa ohjelmissa, ja se voi auttaa ihmisiä löytämään asiakirjoja, verkkosivustoja, ohjelman toimintoja ja monia muita asioita. Optimaalisia täsmäytysalgoritmeja on monia, ja jokainen niistä on tehty täyttämään tietty tarkoitus.
Optimaalisen sovitusalgoritmin toiminta kestää usein kauemmin kuin muiden vastaavien algoritmien, koska se tekee paljon enemmän, kun sitä käytetään. Se tarkastelee ensin syötettyä hakutermiä ja löytää kaikki haut, jotka muistuttavat läheisesti kyseistä termiä. Algoritmi sitten tutkii nämä ottelut ja analysoi huolellisesti jokainen nähdäkseen, vastaako jokin niistä todella. Kaikki tämän toisen leikkauksen jälkeen selviytyvät kohteet näytetään käyttäjälle.
Optimaalisen vastaavuuden vastakohta on ahne yhdistäminen. Tällä sovituskaavalla käyttäjä voi silti syöttää hakutermin, jonka jälkeen vastaava algoritmi siirtyy töihin ja tarkastelee kaikkia vastaavia tiedostoja ja asiakirjoja. Ero on siinä, että ahne algoritmi ei käy läpi uudelleenarviointivaihetta, joten kaikki löydetyt asiakirjat näytetään välittömästi käyttäjälle. Tämä algoritmi toimii tyypillisesti nopeammin ja on yleensä parempi pienemmissä järjestelmissä, joissa uudelleenarviointia ei ehkä tarvita tai kun käyttäjä haluaa tuloksen, joka näyttää jokaisen vastaavan kohteen.
Optimaaliselle sovittamiselle on monia käyttötarkoituksia, ja sen seurauksena algoritmi lisätään monenlaisiin ohjelmiin. Tämä näkyy yleensä monissa hakukoneissa, tietokannoissa ja perusohjelmissa sekä kokonaisissa käyttöjärjestelmissä. Se voidaan myös ohjelmoida mukautettuun ohjelmistoon, jos ohjelmoija haluaa käyttää optimaalista sovituskaavaa.
Vaikka optimaalinen täsmäytysalgoritmi seuraa aina samaa polkua löytääkseen kohteita ennen kuin ne leikataan osuvimpiin kohteisiin, ohjelmoijille on tarjolla monia erillisiä algoritmeja. Jokainen algoritmi kertoo hakutoiminnolle, mitä etsiä, kun löydettyjä kohteita tarkastellaan uudelleen. Ohjelmoijat voivat parhaiten saavuttaa tarkimmat tulokset tekemällä ja mukauttamalla täsmäytysalgoritmin oikein. Esimerkiksi hakukone on yleensä optimoitu löytämään lauseita tai avainsanoja, kun taas tietokanta voidaan optimoida tietueiden ja taulukoiden löytämiseksi.