An adaptive algorithm is a set of instructions to perform a function that can adapt in the event of changes in environment or circumstances. Adaptive algorithms are able to intelligently adjust their activities in light of changing circumstances to achieve the best possible outcome. They can be programmed in a number of computing languages to do everything from automating air traffic control to returning search results that will be accurate and helpful for an Internet user.
The adaptive algorithm can change its behavior if it senses a necessity to do so. In the example of a search engine, the engine can crawl the entire Internet and return results from a variety of locations, but it might consider known parameters about the user first. If the user's IP address originates in France, for instance, the adaptive algorithm would return French results, or the search engine might redirect the user to its French site.
Algorithms can also learn from the behavior of users. Users of the same search engine in the same country may notice that they get different results. These are based on past search behaviors and click-through links. The algorithm can customize its results to the needs of the user. For instance, a person who searches for “football” and clicks on links about American football, not soccer, teaches the algorithm about the kinds of results he wants to see.
Such algorithms can be useful when it is necessary to set up instructions to execute a command, but the system needs to be able to override the algorithm in the event of a pressing situation. With partially-automated air traffic control, for example, the algorithm can respond when a plane radios in a distress call. It will advise air traffic controllers on how to reroute existing traffic, instead of insisting on landing those planes first and putting the distressed plane in a waiting queue. The algorithm can adjust to the circumstances and may override the normal instructions to put planes in a queue in order of their arrival when it detects an emergency situation.
Coding an adaptive algorithm takes longer than developing a regular one, and can require some special considerations. Before a programmer creates an algorithm, she will usually develop a list of parameters to describe what it needs to do and how. With an adaptive version, she will think about situations that could arise and set up the code so the adaptive algorithm can learn from its experiences.