Vsak človek je v svojem vsakdanjem življenju prisiljen reševati veliko različnih nalog. Ne razmišlja o reševanju nekaterih težav (»nakup živil«), drugi pa povzročajo težave in dolga razmišljanja (»zbiranje Rubikove kocke«). Zgornjim primerom enostavnih in zapletenih nalog je skupno, da jih lahko razdelimo na posamezne razumljive korake. Zaporedje takih korakov lahko uporabimo kot opomnik za reševanje težave. To zaporedje lahko imenujemo algoritem.
Seveda lahko Rubikovo kocko zberete brez beležke, preprosto tako, da robove premikate v naključnem vrstnem redu. Toda naštevanje možnih možnosti lahko traja dolgo, to bo neproduktiven in neoptimalen postopek. Veliko bolj priročno je imeti seznam korakov, katerih zaporedno izvajanje bo vedno privedlo do pozitivnega rezultata. Ta načela so tvorila takšen koncept kot "algoritem".
Algoritem je sklop navodil (korakov), ki opisujejo vrstni red izvršiteljevih operacij za dosego rezultata reševanja problema v končnem številu dejanj.
Kaj je izvajalec?
Za boljše razumevanje algoritma na splošno je treba upoštevati tudi pojem "izvajalec algoritma". Izvajalec v konceptu algoritma pomeni abstraktni sistem, ki lahko izvaja dejanja, opisana v algoritmu, in ima številne značilnosti. Kot izvajalec je najpogosteje mišljeno eno ali drugo tehnično sredstvo (3D tiskalnik, CNC stroj, računalnik), vendar je treba razumeti, da gre za širok pojem: izvajalec je lahko na primer oseba.
Kljub temu pa lahko izvajalec imenujemo samo sistem, ki ima hkrati številne parametre:
- okolje;
- sistem ukazov;
- osnovna dejanja;
- zavrnitve, če je izvajanje dejanj nemogoče.
Lastnosti algoritma
Omejitve koncepta "izvajalec" vodijo do dejstva, da ima sam koncept "algoritma" tudi številne lastnosti in omejitve. Algoritmi so se razširili ravno zaradi teh omejitev, ki prispevajo k standardizaciji. Med lastnostmi algoritmov so:
- masivnost (sposobnost algoritma, da ostane pravilen za različne nize vhodnih podatkov);
- gotovost (na katerem koli koraku algoritma mora izvajalec imeti dovolj podatkov, da ga izvede);
- determinizem (pri enakih nizih vhodnih podatkov je treba doseči enak rezultat);
Zakaj so potrebni algoritmi?
Zgornje lastnosti omogočajo široko uporabo algoritmov. Torej algoritmi služijo za standardizacijo opisov vseh procesov. Brez algoritmov bi bilo kakršno koli računanje nemogoče in rešitev katerega koli problema bi se začela iz nič - četudi bi bila večkrat rešena. Uporaba algoritmov vam omogoča hitro reševanje istovrstnih problemov, zmanjšanje časa, ki ga porabite za iskanje rešitve, avtomatizacijo postopka iskanja rešitve, prav tako pa najdeno rešitev distribuirate v standardizirani obliki, kar pomeni, da jo lahko vsi razumejo.