1.1 Vlastnosti algoritmu

Elementárnosť

Elementárnosť – postup je zložený z jednoduchých krokov, ktoré sú pre vykonávateľa (počítač, človek) zrozumiteľné. Každý postup môže byť zapísaný viacerými spôsobmi. Pri jeho navrhovaní treba dbať na to, aby jednotlivé inštrukcie boli pre adresáta zrozumiteľné, jednoduché a jednoznačné. [2]


Čo je elementárnosť v našom prípade? Celý postup pálenia pálenky je rozložený na 8 krokov, bodov. Takýto postup pálenia pálenky je pre človeka zrozumiteľný (človek vie, čo znamená „zozbieraj ovocie“), počítač by mu však nerozumel. Ide o spôsob zápisu – počítač pozná len niekoľko základných príkazov (sčítanie, výpis na obrazovku, nakreslenie bodu a iné) a z nich sa skladajú väčšie programy. Pri zápise algoritmu v „jazyku počítača“ treba potom brať ohľad na pomerne úzku skupinu použiteľných slov a presnosť zápisu algoritmu.

Determinovanosť

Determinovanosť – postup je zostavený tak, že v každom momente jeho vykonávania je jednoznačne určené, aká činnosť má nasledovať, alebo či sa už postup skončil. [2]



Determinovanosť na príklade: Keď si vezmeme akýkoľvek bod algoritmu na pálenie pálenky je jasne určené, čo bude nasledovať.
Napríklad – bod 4 – ovocie nechaj prekvasiť. Po tomto bode nasleduje bod 5, ktorý nám hovorí nasledovné: ak je ovocie dostatočne prekvasené, tak pridaj kvasinky a nechaj ich pôsobiť, ak nie pokračuj v bode 4. Znamená to, že po bode 4 je jednoznačne určené, že nasleduje bod 5 a v bode 5 je jednoznačne určené, čo sa má stať ak nastanú dva prípady, buď ovocie ešte nie je dosť prekvasené – vtedy sa má zopakovať bod 4, alebo ovocie už je dosť prekvasené – vtedy sa pokračuje na bod 6. Žiadne iné možnosti bod 5 nedáva.

Rezultatívnosť

Rezultatívnosť – výpočet dáva po konečnom počte krokov výsledok. (správny výsledok pri riešení ľubovoľnej zo skupiny úloh, pre ktorú bol vytvorený) – algoritmus musí riešiť zadaný problém. [2]


Táto vlastnosť algoritmov sa vzťahuje na výsledok. Znamená, že algoritmus musí byť zostavený tak, aby nám po konečnom počte krokov dal výsledok. (ak by sme pomocou postupu neprišli k výsledku, už nemôžeme hovoriť o algoritme, ale ide o inú štruktúru – procedúru).
V našom prípade, po vykonaní 8 krokov, vypálime z ovocia pálenku, čiže dosiahneme výsledok.

Konečnosť

Konečnosť – splnenie tejto vlastnosti má zabezpečiť, aby výpočet (činnosť) vždy skončil po vykonaní konečného počtu krokov. [2]


Táto vlastnosť algoritmov sa vzťahuje na samotný výpočet a má zabezpečiť, aby výpočet vždy skončil. Existujú aj problémy, ktorých riešenie je síce konečné, ale nájdenie výsledku trvá dlho – šifrovacie algoritmy.

Hromadnosť

Hromadnosť – algoritmus je použiteľný na celú triedu prístupných vstupných údajov. Nie každý algoritmus však vie byť hromadný. Niektoré algoritmy sú šité na konkrétny problém a nie je možné vstupné parametre meniť. Preto túto vlastnosť považujeme skôr za užitočnú, než za nutnú. [2]


Príkladom tejto vlastnosti je algoritmus na výpočet obsahu obdĺžnika.
Ako by sme postupovali? Zadaný máme obdĺžnik so stranami 6 a 9. Vymyslíme teda postup ako vyrátať obsah takéhoto obdĺžnika: S = 6 x 9 Tento algoritmus je jasný ale je nepoužiteľný pre žiadne iné vstupné údaje, ktorými sú dĺžky strán obdĺžnika. Preto je vhodnejší algoritmus v tvare S = a x b pričom a, b sú strany obdĺžnika, ktoré sa môžu meniť a používateľ algoritmu ich vždy na začiatku zadá ako vstupné údaje.

Efektívnosť

Efektívnosť – požiadavka, aby sa výpočet uskutočnil v čo najkratšom čase a s využitím čo najmenšieho množstva prostriedkov. Efektívnosť je veľmi dôležitá najmä pri spracúvaní veľkého množstva údajov. [2]


Príklad – potrebujeme zrátať pivové fľaše v prepravke. Môžeme postupovať viacerými spôsobmi. Buď budeme každú jednu fľašu rátať zvlášť a postupne – 1, 2, 3, 4, 5… alebo si zrátame počet fliaš v stĺpci, potom zrátame počet stĺpcov a čísla spolu vynásobíme. V oboch prípadoch prídeme k rovnakému výsledku. Avšak druhý spôsob je efektívny z hľadiska času a pravdepodobnosti pomýlenia sa.

Úlohy na precvičenie:

Čo je to algoritmus?


Vymenuj vlastnosti algoritmov:


Sú všetky vyššie spomínané vlastnosti algoritmov povinné? Odpoveď zdôvodni: