Визначення, властивості та види алгоритмів
У світі інформаційних технологій поняття алгоритму займає центральне місце. Сам термін походить від імені Аль-Хорезмі, узбецького середньовічного математика, який в 9 столітті зумів чітко описати правила виконання простих арифметичних дій - тобто склав перші алгоритми.
Алгоритм - визначення
У сучасній інформатики та математики цей термін має такі визначення:
- послідовність дій, в якій строго визначені правила виконання-
- припис, що визначає послідовність і зміст операцій, виконуючи які, вихідні дані приходять до шуканого результату-
- точний опис якого-небудь обчислювального процесу або будь-який інший послідовності дій-
- максимально повне і точне розпорядження про послідовність виконання кінцевого кількості дій, які необхідні для сприятливого рішення будь-якої задачі схожого типу.
Алгоритм може виконуватися людиною або автоматичним пристроєм - так званим формальним виконавцем. Завдання будь-якого виконавця - максимально точна реалізація наявного алгоритму. Формальний виконавець не зобов`язаний вникати в суть процесу, часто тому, що не здатний її зрозуміти. Як приклад формального виконавця можна привести пральну машину, яка виконає задану програму прання навіть у відсутність прального порошку чи білизни в баку.
Виконавець алгоритму може виконувати команди тільки з строго заданого списку, який являє собою систему команд. Для кожної команди виконавця обговорені умови застосовності й описані результати виконання. На кожен виклик команди виконавець відповідає відповідним елементарним дією.
Універсальним виконавцем алгоритму в інформатиці є комп`ютер.
Алгоритм і його властивості
1) Дискретність (Або роздільність, переривчастість процесу) означає, що алгоритм представляє процес вирішення завдань у вигляді послідовного виконання раніше визначених простих кроків. Кожна наступна дія може здійснитися тільки після закінчення попереднього.
2) Визначеність увазі, що всі правила алгоритму повинні бути чіткими й однозначними. Тоді виконання алгоритму придбає необхідний механічний характер без додаткових вказівок або відомостей.
3) Результативність (Або кінцівку) алгоритму означає, що він повинен привести до необхідного результату за конкретне кінцеве число кроків.
4) Масовість - це універсальність застосування алгоритму до групи деяких схожих завдань, що відрізняються тільки набором вихідних даних. Вихідні дані при цьому можуть вибиратися з так званої області застосовності алгоритму.
Залежно від цілей, споконвічних умов, шляхів вирішення завдання, визначення дій виконавця, можна виділити наступні види алгоритмів:
1) Імовірнісні (Або стохастичні) дають кілька шляхів програми вирішення завдання, які призводять до ймовірного досягненню результату.
2) Евристичні види алгоритмів увазі, що досягнення кінцевого результату після виконання програми дій не визначено однозначно. Точно так само немає чіткої черговості дій виконавця. До подібних алгоритмам можна віднести, наприклад, приписи та інструкції. В їх написанні використовуються загальні способи прийняття рішень і логічні процедури, збудовані на основі аналогій, які виникають у зв`язку з минулим досвідом.
3) Лінійні види алгоритмів увазі побудова набору команд або вказівок, які виконуються в строгій послідовності один за одним.
4) Розгалужуються алгоритми містять як мінімум одна умова, після перевірки якого ЕОМ може перейти на один з декількох можливих кроків.
5) Циклічні види алгоритмів передбачають багаторазове повторення однієї дії або операції над новими вихідними даними. Наприклад, до цих алгоритмів відноситься велика частина методів обчислення і перебору варіантів. Так з`являється так званий цикл програми - тобто серія, послідовність команд (тіло циклу), яка виконується багаторазово, поки не буде задоволено деякий умова.