Algoritme

Fra Wikipedia, den frie encyklopedi
Gå til: navigasjon, søk

I matematikk og informatikk er en algoritme en presis beskrivelse av en endelig serie operasjoner som skal utføres for å løse et problem eller et sett med flere problem. Hvis en prosess er algoritmisk kan den skrives som serie operasjoner som kan utføres gjennom beregninger.

Ordet kommer fra navnet til den persiske matematikeren og astronomen Muhammad ibn Musa al-Khwarizmi (ca. 780 – 850). (fra Algoritmi, den latinske formen av Al-Khwārizmī) Han skrev flere bøker, blant annet boken Al-jabr wa'l muqabalah. Den inneholder en oppskrift – eller en algoritme – for hvordan bestemte annengradsligninger kan løses.

Formell definisjon[rediger | rediger kilde]

Mange matematikere og logikere i det 19. og 20. århundret hadde problemer med at begrepet algoritme ikke hadde noen nøyaktig matematisk definisjon. I den første halvdelen av 1900-tallet, ble det gjort mange forsøk på å finne en presis definisjon. Turingmaskinen til Alan Turing, Lambda-kalkulusen til Alonzo Church, rekursive funksjoner, Chomsky-grammatikker, og Markov-algoritmer, er alle formaliseringer av beregnbarhetsbegrepet.

Det ble bevist at alle disse metodene er like kraftige. Alle kan bli emulert av en Turingmaskin, og omvendt kan hver av dem selv emulere en Turingmaskin.

Ved hjelp av begrepet Turingmaskin, kan man formulere den følgende formelle definisjonen av begrepet algoritme:

En oppskrift for beregning av løsningen til et problem er en algoritme hvis det finnes en turingmaskin som er ekvivalent til oppskriften, og som stopper for enhver inndata som har en løsning.

Fra denne definisjonen kan følgende egenskaper avledes.

  1. Oppskriften må kunne beskrives med en endelig tekst.
  2. Hvert skritt i oppskriften må kunne utføres.
  3. På ethvert tidspunkt kan kun et endelig stort minne benyttes.
  4. Oppskriften kan bare bruke et endelig antall skritt.

Euklids algoritme for å finne største felles faktor til to tall, er et eksempel på en algoritme.