Jebkurš cilvēks ikdienas dzīvē ir spiests atrisināt lielu skaitu dažādu uzdevumu. Viņš nedomā par dažu problēmu risināšanu (“pārtikas preču pirkšana”), bet citas rada grūtības un ilgstošas pārdomas (“Rubika kuba savākšana”). Iepriekš minētajiem vienkāršo un sarežģīto uzdevumu piemēriem ir kopīga tā, ka tos var sadalīt atsevišķos saprotamos posmos. Šādu darbību secību var izmantot kā atgādinājumu, lai palīdzētu atrisināt problēmu. Šo secību var saukt par algoritmu.
Protams, jūs varat savākt Rubika kubu bez piezīmes, vienkārši pārvietojot malas nejaušā secībā. Bet iespējamo iespēju uzskaitīšana var aizņemt ilgu laiku, tas būs neproduktīvs un neoptimāls process. Daudz ērtāk ir izveidot darbību sarakstu, kuru secīga izpilde vienmēr novedīs pie pozitīva rezultāta. Tieši šie principi veidoja tādu jēdzienu kā "algoritms".
Algoritms ir instrukciju (darbību) kopums, kas apraksta izpildītāja darbību secību, lai sasniegtu problēmas atrisināšanas rezultātu ierobežotā skaitā darbību.
Kas ir izpildītājs?
Lai labāk izprastu algoritmu kopumā, jāņem vērā arī jēdziens "algoritma izpildītājs". Izpildītājs algoritma jēdzienā nozīmē abstraktu sistēmu, kas spēj veikt algoritma aprakstītās darbības, kā arī tai ir vairākas pazīmes. Kā izpildītājs visbiežāk tiek domāts viens vai otrs tehniskais līdzeklis (3D printeris, CNC mašīna, dators), tomēr jāsaprot, ka tas ir plašs jēdziens: izpildītājs var būt, piemēram, persona.
Tomēr par izpildītāju var saukt tikai sistēmu, kurai vienlaikus ir vairāki parametri:
- vide;
- komandu sistēma;
- elementāras darbības;
- atteikumi, ja darbību izpilde nav iespējama.
Algoritma īpašības
Ierobežojumi, kas uzlikti jēdzienam "izpildītājs", noved pie tā, ka arī pašam "algoritma" jēdzienam ir vairākas īpašības un ierobežojumi. Algoritmi ir kļuvuši plaši izplatīti tieši šo ierobežojumu dēļ, kas veicina standartizāciju. Starp algoritmu īpašībām ir:
- masveidība (algoritma spēja palikt pareiza dažādiem ievades datu kopumiem);
- noteiktība (jebkurā algoritma solī izpildītājam jābūt pietiekami daudz datu, lai tos izpildītu);
- determinisms (ar vienādām ievades datu kopām būtu jāiegūst viens un tas pats rezultāts);
Kāpēc nepieciešami algoritmi?
Iepriekš minētās īpašības nodrošina plašu algoritmu izmantošanu. Tātad algoritmi kalpo visu procesu aprakstu standartizēšanai. Bez algoritmiem jebkāda veida aprēķināšana nebūtu iespējama, un jebkuras problēmas risinājums sāktos no nulles - pat ja tas tiktu atrisināts daudzas reizes. Algoritmu izmantošana ļauj ātri atrisināt viena veida problēmas, samazināt laiku, kas pavadīts risinājuma atrašanai, automatizēt tā atrašanas procesu, kā arī izplatīt atrasto risinājumu standartizētā formā, kas nozīmē, ka visi to var saprast.