Algoritme
Fra Wikipedia, den frie encyklopedi
I matematikk og informatikk er en algoritme en presis beskrivelse av en serie operasjoner som skal utføres for å løse en type problemer. Ordet kommer fra navnet til matematikeren og astronomen al-Khowarizmi (ca. 780 - 850). 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.
[rediger] Formell definisjon
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.
- Oppskriften må kunne beskrives med en endelig tekst.
- Hvert skritt i oppskriften må kunne utføres.
- På ethvert tidspunkt kan kun et endelig stort minne benyttes.
- 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.