Vad är en adaptiv algoritm?

En adaptiv algoritm är en uppsättning instruktioner för att utföra en funktion som kan anpassas i händelse av förändringar i miljö eller omständigheter. Adaptiva algoritmer kan intelligent anpassa sina aktiviteter i ljuset 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 flygtrafikledning till att returnera sökresultat som kommer att vara korrekta och användbara för en internetanvändare.

Den adaptiva algoritmen kan ändra sitt beteende om den känner att det är nödvändigt att göra det. I exemplet med en sökmotor kan motorn genomsöka hela Internet och returnera resultat från en mängd olika platser, men den kan överväga kända parametrar om användaren först. Om användarens IP-adress till exempel kommer från Frankrike, skulle den adaptiva algoritmen returnera franska resultat, eller så kan sökmotorn omdirigera användaren till sin franska webbplats.

Algoritmer kan också lära sig 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 genomklickningslänkar. Algoritmen kan anpassa sina resultat efter användarens behov. Till exempel, en person som söker efter ”fotboll” och klickar på länkar om amerikansk fotboll, inte fotboll, lär ut algoritmen om vilken typ av resultat han vill se.

Sådana algoritmer kan vara användbara när det är nödvändigt att sätta upp 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 flygtrafikledning, till exempel, kan algoritmen svara när ett flygplan avger radio 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 ställa det nödställda planet i en väntekö. Algoritmen kan anpassa sig till omständigheterna och kan åsidosätta de normala instruktionerna att ställa flygplan i kö i ordningsföljd 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 vissa 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 ställa in koden så att den adaptiva algoritmen kan lära av sina erfarenheter.