Algorytm to przepis postępowania, którego celem jest doprowadzenie do rozwiązania powstałego problemu lub sporu. Przepis ten określa ciąg czynności, jakie należy przeprowadzić, aby osiągnąć swój cel. Wykonawcą algorytmu może być człowiek lub urządzenie automatyczne, które potrafi wykonywać odpowiednie polecenia.
Cechy algorytmu
- Kiedy wiadomo już, co to jest algorytm, można przybliżyć jego cechy charakterystyczne, którymi są:
- możliwość wyrażania go w języku naturalnym lub programowania oraz w postaci schematu. Dzięki zapisaniu algorytmu w języku programowania staje się on programem,
- możliwość wyrażania go jako zamknięty ciąg symboli bez wyrażeń nawiązujących do analogii,
- możliwość wykonywania poleceń w sposób fizyczny,
- możliwość wielokrotnego użycia go z innymi danymi.
Rodzaje algorytmów
- Wyróżnić można następujące algorytmy:
- równoległe – polega to na wykonywaniu programów na kilku procesorach równocześnie. Jest to kosztowne rozwiązanie, dlatego stosuje się do tego zadania zwykłe komputery, które tworzą klaster. Podczas tego procesu zadanie rozdziela się na kilka maszyn i wylicza się je przy użyciu tysięcy procesorów,
- sztucznej inteligencji – problemy życia codziennego to problemy NP-trudne, którymi są, np. znalezienie najprostszej trasy z punktu A do punktu B. Specjaliści starają się rozwiązywać problemy NP-trudne poprzez naśladowanie żywych organizmów,
- genetyczne – służą do szukania najlepszego rozwiązania konkretnego problemu. Polegają na obserwacji środowiska naturalnego i następnie przenoszeniu ich do środowiska informatyki lub matematyki,
- kwantowe – to algorytmy przeznaczone do działania na maszynach kwantowych.
Klasyfikacja algorytmów
Wyróżnić można następujące podstawowe paradygmaty dzięki, którym tworzy się algorytmy komputerowe:
– dziel i zwyciężaj – polega na podzieleniu jednego problemu na kilka mniejszych. które następnie znów dzielimy, aż znajdziemy ich rozwiązanie,
– programowanie dynamiczne – to dzielenie problemu na mniejsze, później ich ocena i wykorzystanie zagadnień prostych do rozwiązania problemu głównego,
– metoda zachłanna – w tej metodzie problemy nie są dokładnie analizowane, tylko wybierana jest najlepsza metoda rozwiązania problemu w konkretnej sytuacji,
– programowanie liniowe – pozwalają ocenić metodę rozwiązania problemu poprzez użycie pewnej funkcji jakości, aby znaleźć jej minimum,
– wyszukiwanie wyczerpujące – polega na przeszukaniu wszystkich zbiorów informacji w celu odnalezienia rozwiązania problemów,
– heurystyka – osoba z doświadczeniem na jego podstawie tworzy algorytm, który pozwala na zdobycie przybliżonego rozwiązania.
Techniki implementacji algorytmów
Najważniejszymi technikami implementacji algorytmów komputerowych są:
– proceduralność – to dzielenie algorytmu na procedury,
– praca sekwencyjna – wykonywanie procedur według kolejności,
– praca wielowątkowa – procedury wykonuje się sekwencyjnie,
– praca równoległa – liczne procedury wykonywane są równolegle,
– rekurencja – procedura sama się wywołuje, aż błąd zostanie rozwiązany,
– obiektowość – procedury łączone są w klasy,
– algorytm probabilistyczny – działa poprawnie, ale nie daje pewnego wyniku.