Każda osoba w swoim codziennym życiu jest zmuszona do rozwiązywania wielu różnych zadań. Nie myśli o rozwiązywaniu niektórych problemów („kupowanie artykułów spożywczych”), inne powodują trudności i długie namysły („zbieranie kostki Rubika”). Powyższe przykłady prostych i złożonych zadań łączy to, że można je rozłożyć na pojedyncze, zrozumiałe kroki. Kolejność takich kroków może służyć jako przypomnienie, aby pomóc rozwiązać problem. Tę sekwencję można nazwać algorytmem.
Oczywiście możesz zebrać kostkę Rubika bez notatki, po prostu przesuwając krawędzie w losowej kolejności. Ale wyliczanie możliwych opcji może zająć dużo czasu, będzie to proces nieproduktywny i nieoptymalny. O wiele wygodniej jest mieć listę kroków, których sekwencyjne wykonanie zawsze doprowadzi do pozytywnego wyniku. To właśnie te zasady utworzyły taką koncepcję jako „algorytm”.
Algorytm to zbiór instrukcji (kroków) opisujących kolejność działań executora w celu osiągnięcia wyniku rozwiązania problemu w skończonej liczbie działań.
Kim jest wykonawca?
Dla lepszego zrozumienia algorytmu w ogóle, konieczne jest również rozważenie pojęcia „wykonawcy algorytmu”. Wykonawca w pojęciu algorytmu oznacza abstrakcyjny system zdolny do wykonywania czynności opisanych przez algorytm, a także posiadający szereg cech. Jako wykonawca najczęściej chodzi o taki lub inny środek techniczny (drukarka 3D, maszyna CNC, komputer), jednak należy rozumieć, że jest to szerokie pojęcie: wykonawcą może być np. człowiek.
Niemniej jednak tylko system, który jednocześnie posiada szereg parametrów, można nazwać wykonawcą:
- środowisko;
- system poleceń;
- czynności podstawowe;
- odmowy, jeżeli wykonanie czynności jest niemożliwe.
Właściwości algorytmu
Ograniczenia nałożone na pojęcie „wykonawcy” prowadzą do tego, że samo pojęcie „algorytmu” ma również szereg właściwości i ograniczeń. Algorytmy stały się szeroko rozpowszechnione właśnie z powodu tych ograniczeń, które przyczyniają się do standaryzacji. Wśród właściwości algorytmów są:
- masywność (zdolność algorytmu do zachowania poprawności dla różnych zestawów danych wejściowych);
- pewność (na każdym etapie algorytmu wykonawca musi mieć wystarczającą ilość danych, aby go wykonać);
- determinizm (przy tych samych zestawach danych wejściowych należy uzyskać ten sam wynik);
Dlaczego potrzebne są algorytmy?
Powyższe właściwości zapewniają szerokie zastosowanie algorytmów. Algorytmy służą więc do standaryzacji opisów dowolnych procesów. Bez algorytmów wszelkie obliczenia byłyby niemożliwe, a rozwiązanie każdego problemu zaczynałoby się od zera – nawet gdyby było rozwiązywane wielokrotnie. Zastosowanie algorytmów pozwala na szybkie rozwiązywanie problemów tego samego typu, skrócenie czasu poświęconego na znalezienie rozwiązania, zautomatyzowanie procesu jego znajdowania, a także dystrybucję znalezionego rozwiązania w ustandaryzowanej formie, co oznacza, że każdy może je zrozumieć.