Hopp til innhald
Fagartikkel

Kva er ein algoritme?

Vi kan bruke datamaskiner til å løyse avanserte oppgåver for oss, som å hente inn informasjon om kva for nettstader du besøker på Internett. Slike program som fortel kva datamaskinen skal gjere, kallar vi algoritmar.
Video: Applaus! Film & TV / CC BY-ND 4.0

Enkelt forklart kan vi seie at ein algoritme er ein framgangsmåte eller ei oppskrift som beskriv steg for steg kva som skal gjerast for å løyse et problem eller oppnå eit bestemt resultat. Slike oppskrifter bruker du heile tida, og gjerne utan å tenkje over det.

Vi kan bruke eit konkret eksempel: For å kome deg til skulen kan du ta buss, sykle eller gå. Kvar av desse tre operasjonane har same resultat, men framgangsmåtane er ulike. Skal du ta buss, må du først gå til busstoppet, så kjøpe billett, finne deg eit sete, og til slutt gå av bussen ved skulen. Korleis vil framgangsmåten sjå ut for at du skulle kome deg til skulen ved å gå eller sykle? Du vil sjå at ei steg for steg-oppskrift for dette vil vere annleis enn den du brukar for å ta bussen. Vi kan derfor kalle dette tre ulike algoritmar.

Algoritmar og matematikk

I matematikken bruker du også algoritmar heile tida. Du har lært framgangsmåten til ulike rekneoperasjonar, som reglane for addisjon, subtraksjon, multiplikasjon og divisjon. Oppskrifta på korleis du går fram for å leggje saman 142+423 er altså ein algoritme. Er oppskrifta presis og du utfører ho riktig, vil du få det same svaret kvar gong[1] .

Kunnskapen du har i matematikk kan du bruke til å kjenne att ei oppskrift (algoritme), men òg til å kunne utarbeide dine eigne oppskrifter for å løyse problem. Vi kan programmere datamaskinar til å løyse mange oppgåver meir effektivt enn vi klarer sjølve[2] .

Programmering av algoritmar

Når du skal programmere ein datamaskin, må du gi maskinen ei oppskrift som gjer at han utfører det du ønsker han skal gjere. Det er viktig at oppskrifta er presis, slik at du får det sluttresultatet du vil ha. Datamaskinen følgjer berre instruksane dine, og tar ikkje sjølvstendige val. Det betyr at algoritmar enno ikkje kan løyse oppgåver som krev menneske si vurderingsevne.

Akkurat som i eksempelet med å kome seg til skulen, kan du bruke ulike algoritmar for å kome til målet. Noko av kunsten med programmering av algoritmar, er at du klarer å gi datamaskinen ei oppskrift han klarer å gjennomføre raskare og meir effektivt enn det eit menneske kan gjere.

Innhente og sortere informasjon

Algoritmar blir gjerne brukte til å sortere store datamengder. Søkemotoren til Google har ein algoritme som leitar fram og sorterer ut informasjon som du får lista opp når du gjer eit søk. Søkemotoren vil òg samle inn data om kva du søkjer etter. Algoritmane blir stadig forbetra for å kunne gi deg dei mest relevante treffa på det du søkjer på.

Mange nettenester brukar sporingsteknologi, som nettkapslar (såkalla cookies), stadtenester på mobilen din, wifi, Bluetooth, og nettvardar. Besøkjer du ei nettside, vil sida registrere at du er der. Sporinga blir så brukt i ein algoritme. Dei hentar informasjon om deg frå mange ulike kjelder. Denne store og komplekse datamengda kallar vi ofte for “big data”[3][4] .

Algoritmar og marknadsføring

Big data blir brukt av mange firma for å skreddersy reklame og tilpasse produktet dei har til forbrukaren. Det betyr til dømes at Google bruker informasjonen han får når du gjer nettsøk til å skreddarsy reklamane du får opp når du besøkjer ein nettstad. Har du søkt på ordet “treningsbag”, vil det dukke opp reklamar for treningsbagar på nettstadene du besøkjer i etterkant[5] .

Saman med sporingsteknologien blir opplysningar om interessene dine ein kraftig reiskap for marknadsførarar. Algoritmen kan få eit steg i oppskrifta som seier at når du går inn i ein bestemt butikk, skal du få ein SMS med reklame for produkt denne butikken har. Går du til dømes inn i ein sportsbutikk, kan du få ein SMS som fortel at butikken har tilbod på treningsbagar.

Kor gode kan algoritmane bli?

Algoritmar kan altså brukast for å løyse små og store oppgåver. Det er vi menneske som gir datamaskinen instruksar gjennom “oppskriftene” vi lagar, og det er vi som styrer kva sluttproduktet skal bli. Algoritmane blir stadig meir avanserte, men kor gode kan dei bli?

Det blir no utvikla program som skal få datamaskiner til å lære, og til å utvikle sine eigne reglar, ein såkalla kunstig intelligens som vi ofte refererer til som AI (artificial intelligence). Eit eksempel på slik kunstig intelligens finn vi i sjølvkøyrande bilar. Bilen sin datamaskin hentar inn informasjon om alt frå vegnettet til vêr- og føretilhøve, og brukar ein avansert algoritme for å analysere informasjonen og ta val ut frå den. Målet, eller sluttproduktet om du vil, er at bilen skal frakte deg frå A til B så trygt som mogleg[6] .