Hopp til innhold
Fagartikkel

Hva er en algoritme?

Vi kan bruke datamaskiner til å løse avanserte oppgaver for oss, som å hente inn informasjon om hvilke nettsteder du besøker på Internett. Slike programmer som forteller hva datamaskinen skal gjøre, kaller vi algoritmer.
Video: Applaus! Film & TV / CC BY-ND 4.0

Enkelt forklart kan vi si at en algoritme er en framgangsmåte eller en oppskrift som beskriver steg for steg hva som skal gjøres for å løse et problem eller oppnå et bestemt resultat. Slike oppskrifter bruker du hele tiden, og gjerne uten å tenke over det.

Vi kan bruke et konkret eksempel: For å komme deg til skolen kan du ta buss, sykle eller gå. Hver av disse tre operasjonene har samme resultat, men framgangsmåtene er ulike. Skal du ta buss, må du først gå til busstoppet, så kjøpe billett, finne deg et sete, og til slutt gå av bussen ved skolen. Hvordan vil framgangsmåten se ut for at du skulle komme deg til skolen ved å gå eller sykle? Du vil se at en steg for steg-oppskrift for dette vil være annerledes enn den du bruker for å ta bussen. Vi kan derfor kalle dette tre ulike algoritmer.

Algoritmer og matematikk

I matematikken bruker du også algoritmer hele tiden. Du har lært framgangsmåten til ulike regneoperasjoner, som reglene for addisjon, subtraksjon, multiplikasjon og divisjon. Oppskriften på hvordan du går fram for å legge sammen 142+423 er altså en algoritme. Er oppskriften presis og du utfører den riktig, vil du få det samme svaret hver gang[1] .

Kunnskapen du har i matematikk kan brukes til å gjenkjenne en oppskrift (algoritme), men også til å kunne utarbeide dine egne oppskrifter for å løse problemer. Vi kan programmere datamaskiner til å løse mange oppgaver mer effektivt enn vi klarer selv.[2]

Programmering av algoritmer

Når du skal programmere en datamaskin, må du gi maskinen en oppskrift som gjør at den utfører det du ønsker den skal gjøre. Det er viktig at oppskriften er presis, slik at du får det sluttresultatet du vil ha. Datamaskinen følger kun dine instrukser og tar ikke selvstendige valg. Det betyr at algoritmer ennå ikke kan løse oppgaver som krever menneskers vurderingsevne.

Akkurat som i eksemplet med å komme seg til skolen, kan du bruke ulike algoritmer for å komme til målet. Noe av kunsten med programmering av algoritmer, er at du klarer å gi datamaskinen en oppskrift den klarer å gjennomføre raskere og mer effektiv enn det et menneske kan gjøre.

Innhente og sortere informasjon

Algoritmer brukes gjerne til å sortere store datamengder. Søkemotoren til Google har en algoritme som leter fram og sorterer ut informasjon som du får listet opp når du gjør et søk. Søkemotoren vil også samle inn data om hva du søker etter. Algoritmene blir stadig forbedret for å kunne gi deg de mest relevante treffene på det du søker på.

Mange nettjenester bruker sporingsteknologi, som nettkapsler (såkalte cookies), stedtjenester på mobilen din, wifi, Bluetooth, og nettvarder. Besøker du en nettside, vil siden registrere at du er der. Sporingen blir så brukt i en algoritme. De henter informasjon om deg fra mange ulike kilder. Denne store og komplekse datamengden kalles ofte for “big data”.[3][4]

Algoritmer og markedsføring

Big data brukes av mange firma for å skreddersy reklame og tilpasse produktet de har til forbrukeren. Det betyr for eksempel at Google bruker informasjonen den får når du gjør nettsøk til å skreddersy reklamene du får opp når du besøker et nettsted. Har du søkt på ordet “treningsbag”, vil det dukke opp reklamer for treningsbager på nettstedene du besøker i etterkant.[5]

Sammen med sporingsteknologien blir opplysninger om interessene dine et kraftig redskap for markedsførere. Algoritmen kan få et steg i oppskriften som sier at når du går inn i en bestemt butikk, skal du få en SMS med reklame for produkter denne butikken har. Går du for eksempel inn i en sportsbutikk, kan du få en SMS som forteller at butikken har tilbud på treningsbager.

Hvor gode kan algoritmene bli?

Algoritmer kan altså brukes for å løse små og store oppgaver. Det er vi mennesker som gir datamaskinen instrukser gjennom “oppskriftene” vi lager, og det er vi som styrer hva sluttproduktet skal bli. Algoritmene blir stadig mer avanserte, men hvor gode kan de bli?

Det utvikles nå programmer som skal få datamaskiner til å lære, og til å utvikle sine egne regler, en såkalt kunstig intelligens som ofte refereres til som AI (artificial intelligence). Et eksempel på slik kunstig intelligens finner vi i selvkjørende biler. Bilens datamaskin henter inn informasjon om alt fra veinettet til vær- og føreforhold og bruker en avansert algoritme for å analysere informasjonen og ta valg ut fra den. Målet, eller sluttproduktet om du vil, er at bilen skal frakte deg fra A til B så trygt som mulig.[6]