Vad är en anpassningsalgoritm?
En adaptiv algoritm är en uppsättning instruktioner för att utföra en funktion som kan anpassas vid förändringar i miljö eller omständigheter. Anpassningsalgoritmer kan intelligent anpassa sin verksamhet mot bakgrund av förändrade omständigheter för att uppnå bästa möjliga resultat. De kan programmeras på ett antal datorspråk för att göra allt från att automatisera flygtrafikstyrning till att returnera sökresultat som kommer att vara korrekta och användbara för en Internetanvändare.
Den anpassningsbara algoritmen kan ändra dess beteende om den känner att det är nödvändigt. I exemplet med en sökmotor kan motorn genomsöka hela Internet och returnera resultat från en mängd platser, men den kan överväga kända parametrar om användaren först. Om användarens IP-adress till exempel härstammar från Frankrike, skulle den anpassningsbara algoritmen returnera franska resultat, eller så kan sökmotorn omdirigera användaren till sin franska webbplats.
Algoritmer kan också lära av användarnas beteende. Användare av samma sökmotor i samma land kan märka att de får olika resultat. Dessa är baserade på tidigare sökbeteenden och klicklänkar. Algoritmen kan anpassa sina resultat efter användarens behov. Till exempel lär en person som söker efter "fotboll" och klickar på länkar om amerikansk fotboll, inte fotboll, algoritmen om vilken typ av resultat han vill se.
Sådana algoritmer kan vara användbara när det är nödvändigt att installera instruktioner för att utföra ett kommando, men systemet måste kunna åsidosätta algoritmen i händelse av en pressande situation. Med delvis automatiserad flygtrafikstyrning, till exempel, kan algoritmen svara när ett plan radior i ett nödanrop. Den kommer att ge råd till flygledare om hur man omdirigerar befintlig trafik, istället för att insistera på att landa dessa plan först och sätta det nödställda planet i en väntekö. Algoritmen kan anpassa sig till omständigheterna och kan åsidosätta de normala instruktionerna för att sätta flygplan i en kö i ordning för deras ankomst när den upptäcker en nödsituation.
Att koda en adaptiv algoritm tar längre tid än att utveckla en vanlig och kan kräva några speciella överväganden. Innan en programmerare skapar en algoritm kommer hon vanligtvis att utveckla en lista med parametrar för att beskriva vad den behöver göra och hur. Med en adaptiv version kommer hon att tänka på situationer som kan uppstå och sätta upp koden så att den adaptiva algoritmen kan lära av sina erfarenheter.