Optimal matching is an algorithm used in many programs to help people find the closest match. With optimal matching, the search first will discover things that somewhat match the search term; it then will recheck the found items for optimal matches. In contrast to this is greedy matching, which does not reconsider the found matches. This is used in many programs, and it can help people find documents, websites, program functions and many other things. There are many optimal matching algorithms, and each one is made to satisfy a certain purpose.
An optimal matching algorithm often takes longer to work than other matching algorithms, because it does much more when it is used. It first looks at the inputted search term and finds any and all matches that closely resemble that term. The algorithm then will look through these matches and carefully analyze each to see if any of them truly match. Any items that survive this second cut are then showed to the user.
Opposite of optimal matching is greedy matching. With this matching schema, the user still is able to input a search term, after which the matching algorithm goes to work looking at all the similar files and documents. The difference is that the greedy algorithm does not go through a reconsidering phase, so all the documents found are immediately displayed to the user. This algorithm typically works faster and tends to be better on smaller systems in which reconsidering may not be needed or when the user wants a result that displays every single matching item.
There are many uses for optimal matching and, as a result, the algorithm is added to many different types of programs. This commonly is seen with many search engines, within databases and basic programs, and in entire operating systems. It also can be programmed into custom software if the programmer wants to use the optimal matching schema.
While the optimal matching algorithm always follows the same path of finding items before cutting them down to the most relevant items, there are many separate algorithms available to programmers. Each algorithm tells the matching feature what to look for when reconsidering the found items. By properly making and customizing the matching algorithm, programmers are able to best achieve the most accurate results. For example, a search engine generally is optimized to find phrases or keywords, while a database may be optimized to find records and tables.