La coincidencia óptima es un algoritmo que se utiliza en muchos programas para ayudar a las personas a encontrar la coincidencia más cercana. Con una coincidencia óptima, la búsqueda primero descubrirá cosas que coinciden un poco con el término de búsqueda; luego volverá a verificar los elementos encontrados para obtener coincidencias óptimas. En contraste con esto, hay coincidencias codiciosas, que no reconsideran las coincidencias encontradas. Esto se usa en muchos programas y puede ayudar a las personas a encontrar documentos, sitios web, funciones de programas y muchas otras cosas. Hay muchos algoritmos de coincidencia óptimos y cada uno está diseñado para satisfacer un propósito determinado.
Un algoritmo de coincidencia óptimo a menudo tarda más en funcionar que otros algoritmos de coincidencia, porque hace mucho más cuando se utiliza. Primero mira el término de búsqueda ingresado y encuentra todas y cada una de las coincidencias que se parecen mucho a ese término. Luego, el algoritmo examinará estas coincidencias y analizará cuidadosamente cada una para ver si alguna de ellas realmente coincide. Todos los elementos que sobreviven a este segundo corte se muestran al usuario.
Lo contrario de la coincidencia óptima es la coincidencia codiciosa. Con este esquema de coincidencia, el usuario aún puede ingresar un término de búsqueda, después de lo cual el algoritmo de coincidencia se pone a trabajar mirando todos los archivos y documentos similares. La diferencia es que el algoritmo codicioso no pasa por una fase de reconsideración, por lo que todos los documentos encontrados se muestran inmediatamente al usuario. Este algoritmo generalmente funciona más rápido y tiende a ser mejor en sistemas más pequeños en los que es posible que no sea necesario reconsiderar o cuando el usuario desea un resultado que muestre todos los elementos coincidentes.
Hay muchos usos para una coincidencia óptima y, como resultado, el algoritmo se agrega a muchos tipos diferentes de programas. Esto se ve comúnmente con muchos motores de búsqueda, dentro de bases de datos y programas básicos, y en sistemas operativos completos. También se puede programar en un software personalizado si el programador desea utilizar el esquema de coincidencia óptimo.
Si bien el algoritmo de coincidencia óptimo siempre sigue el mismo camino para encontrar elementos antes de reducirlos a los elementos más relevantes, existen muchos algoritmos separados disponibles para los programadores. Cada algoritmo le dice a la función de coincidencia qué buscar al reconsiderar los elementos encontrados. Al crear y personalizar correctamente el algoritmo de coincidencia, los programadores pueden lograr de la mejor manera los resultados más precisos. Por ejemplo, un motor de búsqueda generalmente está optimizado para encontrar frases o palabras clave, mientras que una base de datos puede optimizarse para buscar registros y tablas.