Svaka osoba u svom svakodnevnom životu primorana je rješavati veliki broj različitih zadataka. Ne razmišlja o rješavanju nekih problema („kupovina namirnica“), dok drugi uzrokuju poteškoće i duga razmišljanja („sakupljanje Rubikove kocke“). Gornjim primjerima jednostavnih i složenih zadataka zajedničko je da se mogu podijeliti u pojedinačne razumljive korake. Redoslijed takvih koraka može se koristiti kao podsjetnik za rješavanje problema. Ovaj niz se može nazvati algoritmom.
Naravno, Rubikovu kocku možete sakupiti bez bilješke, jednostavno pomicanjem ivica slučajnim redoslijedom. Ali nabrajanje mogućih opcija može potrajati dugo, to će biti neproduktivan i neoptimalan proces. Mnogo je prikladnije imati listu koraka, čije će sekvencijalno izvršavanje uvijek dovesti do pozitivnog rezultata. Upravo su ti principi stvorili takav koncept kao "algoritam".
Algoritam je skup uputa (koraka) koji opisuju redoslijed izvršiteljevih operacija za postizanje rezultata rješavanja problema u konačnom broju radnji.
Šta je izvođač?
Za bolje razumijevanje algoritma općenito, također je potrebno razmotriti koncept "izvršitelja algoritma". Izvršitelj u konceptu algoritma označava apstraktni sistem sposoban za izvođenje radnji opisanih algoritmom, kao i da ima niz karakteristika. Kao izvođač najčešće se misli na jedno ili drugo tehničko sredstvo (3D printer, CNC mašina, računar), međutim, treba shvatiti da je to širok pojam: izvođač može biti, na primjer, osoba.
Ipak, samo sistem koji istovremeno posjeduje niz parametara može se nazvati izvođačem:
- okoliš;
- sistem naredbi;
- elementarne radnje;
- odbijanja, ako je izvršenje radnji nemoguće.
Svojstva algoritma
Ograničenja nametnuta konceptu „izvođača“dovode do činjenice da i sam pojam „algoritma“ima niz svojstava i ograničenja. Algoritmi su postali široko rasprostranjeni upravo zbog ovih ograničenja koja doprinose standardizaciji. Među svojstvima algoritama su:
- masovnost (sposobnost algoritma da ostane tačan za različite skupove ulaznih podataka);
- sigurnost (u bilo kojem koraku algoritma izvođač mora imati dovoljno podataka da ga izvrši);
- determinizam (s istim skupovima ulaznih podataka treba dobiti isti rezultat);
Zašto su potrebni algoritmi?
Gore navedena svojstva pružaju široku upotrebu algoritama. Dakle, algoritmi služe za standardizaciju opisa bilo kojih procesa. Bez algoritama bilo koja vrsta proračuna bila bi nemoguća, a rješenje bilo kojeg problema krenulo bi ispočetka - čak i ako bi se rješavalo više puta. Korištenje algoritama omogućuje vam brzo rješavanje problema iste vrste, smanjenje vremena provedenog na pronalaženju rješenja, automatizaciju postupka pronalaska, a također i distribuciju pronađenog rješenja u standardiziranom obliku, što znači da ga svi mogu razumjeti.