Kaj je algoritem?

V svojem najbolj splošnem pomenu je algoritem kateri koli niz podrobnih navodil, ki vodijo v predvidljivo končno stanje od znanega začetka. Algoritmi pa so dobri le toliko, kolikor so podana navodila, rezultat pa bo napačen, če algoritem ni pravilno definiran.

Primeri algoritmov

Pogost primer algoritma bi bila navodila za sestavljanje modela letala. Glede na začetni niz številnih označenih kosov lahko sledite navodilom, da dobite predvidljivo končno stanje: dokončano letalo. Napačni tisk v navodilih ali neupoštevanje določenega koraka bo povzročilo napačen končni izdelek.

Še en razširjen primer je računalniški program. Vsak računalniški program je preprosto niz navodil, ki se lahko razlikujejo po zahtevnosti in so navedeni v določenem vrstnem redu, zasnovani za izvajanje določene naloge. Matematika uporablja tudi algoritme za ročno reševanje enačb brez uporabe kalkulatorja. Zadnji primer so človeški možgani: večina konceptov človeških možganov opredeljuje vse vedenje – od pridobivanja hrane do zaljubljenosti – kot rezultat zapletenega algoritma.

Razredi algoritmov
Čeprav ni univerzalno sprejete razčlenitve za različne vrste algoritmov, obstajajo skupni razredi, ki jim pogosto pripadajo algoritmi. Med temi so:

Algoritmi za dinamično programiranje: Ta razred si zapomni starejše rezultate in jih poskuša uporabiti za pospešitev procesa iskanja novih rezultatov.

Pohlepni algoritmi: Pohlepni algoritmi ne poskušajo le najti rešitve, ampak najti idealno rešitev za kateri koli problem.

Algoritmi grobe sile: pristop brute sile se začne na neki naključni točki in se ponavlja skozi vsako možnost, dokler ne najde rešitve.

Naključni algoritmi: Ta razred vključuje kateri koli algoritem, ki uporablja naključno število na kateri koli točki med postopkom.

Algoritmi vej in vezanosti: Algoritmi vej in vezanih tvorijo drevo podproblemov primarnega problema, ki sledi vsaki veji, dokler ni rešena ali združena z drugo vejo.

Preprosti rekurzivni algoritmi: Ta vrsta takoj poišče neposredno rešitev, nato pa se vrne in poišče enostavnejšo rešitev.

Algoritmi za sledenje nazaj: algoritmi za sledenje nazaj za rešitev; če je rešitev najdena, je algoritem rešen, če ne, se ponovi enkrat in znova testira, dokler se ne najde rešitev.

Algoritmi deli in vladaj: algoritem deli in vladaj je podoben algoritmu veje in vezave, le da uporablja metodo vračanja nazaj, ki se ponavlja, medtem ko deli problem na podprobleme.

Serijski in vzporedni algoritmi
Poleg teh splošnih razredov lahko algoritme razdelimo tudi v dve primarni skupini: serijski algoritmi, ki so zasnovani za serijsko izvajanje, pri čemer se vsaka operacija izvaja v linearnem vrstnem redu; in vzporedni algoritmi, ki se uporabljajo pri računalnikih z vzporednimi procesorji, pri čemer se številne operacije izvajajo vzporedno med seboj. V naravnem svetu obstajajo tudi vzporedni algoritmi v primeru, na primer, genetske mutacije nad vrsto.