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

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

Mindre formelt er en algoritme enhver skrittvis prosedyre på en oppgave, gitt at oppgaven kan løses ved et endelig antall steg.

Algoritmer er også brukt i programmering, hvor kode vil følge spesifikke operasjoner for å bli gjennomført av en datamaskin. En algoritme kan ofte også inneholde variabler som trenger mellomregning. Et eksempel på dette kan være pseudokode brukt til programmeringsspråk.

Formell definisjon

rediger

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.

Referanser

rediger