Поняття алгоритму - студопедія

Широка популярність поняття алгоритму в наш час зумовлена ​​розвитком і широким застосуванням електронно-обчислювальної техніки. Використання ЕОМ сприяло з'ясуванню того, що розробка алгоритму - необхідний етап в процесі виконання завдання на ЕОМ і що в зв'язку з цим алгоритми представляють самостійну цінність як інтелектуальні ресурси суспільства.

Поняття алгоритму, що відноситься до фундаментальних концепцій інформатики, виникло задовго до появи ЕОМ і стало одним з основних понять математики.

Слово "алгоритм" походить від імені середньоазіатського математика аль-Хорезмі
(IX ст.) І використовувалося в математиці для позначення правил виконання чотирьох арифметичних дій: додавання, віднімання, множення і ділення. В даний час поняття алгоритму використовується не тільки в математиці. Його застосовують у багатьох областях людської діяльності, наприклад, говорять про алгоритм управління виробничим процесом. алгоритмі гри в шахи. алгоритмі користування побутовим приладом. алгоритмі пошуку шляху в лабіринті. алгоритмі управління польотом ракети і т. п.

Для пояснення поняття "алгоритм" важливе значення має визначення поняття "виконавець алгоритму". Алгоритм формулюється в розрахунку на конкретного виконавця, наприклад людини, особливу машину - автомат і т. Д.

Алгоритм є керівництвом до дії для виконавця, тому значення слова "алгоритм" близьке за змістом до значення слів "вказівку" або "припис".

Алгорітм- зрозуміле і точне розпорядження (вказівка) виконавцю здійснити певну послідовність дій для досягнення зазначеної мети або вирішення поставленого завдання.

Сказане не є визначенням в математичному сенсі, а лише відображає інтуїтивне розуміння алгоритму, що склалося за довгі роки.

  1. результативність
    Алгоритм має деяке число вхідних величин - аргументів, що задаються до початку роботи Мета виконання алгоритму - отримання результату (результатів), що має цілком визначене ставлення до вихідних даних. Можна сказати, що алгоритм вказує послідовність дій по переробці вихідних даних в результати.
  2. Масовість (універсальність)

Для алгоритму можна брати різні набори вхідних даних, т. Е. Можна застосовувати один і той же алгоритм для вирішення цілого класу однотипних задач, що розрізняються вихідними даними. Це властивість алгоритму зазвичай називають масовістю. Разом з тим існують і такі алгоритми, які можна застосовувати лише до єдиного набору вихідних даних. Тому поняття масовості вимагає уточнення. Можна вважати, що для кожного алгоритму існує свій клас об'єктів, допустимих в якості вихідних даних. Тоді властивість масовості означає застосовність алгоритму до всіх об'єктів цього класу.

  1. зрозумілість
    Щоб алгоритм можна було виконати, він повинен бути зрозумілий виконавцю. Щоб цей алгоритм міг бути також виконаний людиною, необхідно записати алгоритм мовою, зрозумілою виконавцю. Зрозумілість алгоритму означає знання виконавця про те, що треба робити для виконання цього алгоритму. Таким чином, при формулюванні алгоритму необхідно враховувати можливості і особливості виконавця, на якого розрахований алгоритм.
  2. Кінцівка (дискретність)

Алгоритм представлений у вигляді кінцевої послідовності кроків. Кажуть, що алгоритм має дискретну структуру. Отже, його виконання розчленовується на виконання окремих його кроків (виконання кожного чергового кроку починається після завершення попереднього). Виконання алгоритму закінчується після виконання кінцевого числа кроків. При виконанні алгоритму деякі його кроки можуть повторюватися багаторазово. В математиці існують обчислювальні процедури, мають алгоритмічний характер, але не володіють властивістю кінцівки. Так, можна сформулювати процедуру обчислення числа p. Така процедура описує нескінченний процес і ніколи не завершиться. Якщо ж перервати її штучно, наприклад, ввести умову завершення процесу обчислень виду: "Закінчити обчислення після отримання п десяткових знаків числа p", то вийде алгоритм обчислення п десяткових знаків числа p. На цьому принципі грунтується отримання багатьох обчислювальних алгоритмів: будується нескінченний, що сходиться до шуканого рішення процес. Він обривається на певному етапі, і отримане значення приймається за наближене рішення даної задачі. При цьому точність наближення залежить від числа кроків.

Кожен крок алгоритму повинен бути чітко і недвозначно визначено і не повинен допускати довільного трактування виконавцем. При виконанні алгоритму виконавець повинен діяти строго у відповідності з його правилами і у нього не повинно виникати потреби робити якісь дії, відмінні від запропонованих алгоритмом. Іншими словами, алгоритм розрахований на чисто механічне виконання. Ця дуже важлива особливість означає, зокрема, що якщо один і той же алгоритм доручити для виконання різним виконавцям, то вони прийдуть до одного і того ж результату, аби ці виконавці розуміли алгоритм. Саме визначеність алгоритму дає можливість доручити його виконання автомату, що не володіє "здоровим глуздом" Таким чином, формулювання алгоритму повинна бути зовсім точний, щоб повністю визначати всі дії виконавця.

  1. ефективність
    Кожен крок алгоритму повинен бути виконаний точно і за кінцевий час. У цьому сенсі говорять, що алгоритм повинен бути ефективним. т. е. дії виконавця на кожному кроці виконання алгоритму повинні бути досить простими, щоб їх можна було виконати точно і за кінцевий час. Зазвичай окремі вказівки виконавцю, що містяться в кожному кроці алгоритму, називають командами. Таким чином, ефективність алгоритму пов'язана з можливістю виконання кожної команди за кінцевий час. Крім того, ефективність означає, чтоалгорітм може бути виконаний не просто за кінцеве, а за розумне кінцеве час.

Змістовна (аналітична) теорія алгоритмів стала можливою лише завдяки фундаментальним роботам математиків в області логічних теорій алгоритмів. Розвиток такої теорії пов'язано з подальшим розвитком і розширенням формального поняття алгоритму, яке занадто звужене в рамках логічних теорій. Формальний характер поняття дозволить застосовувати до нього математичні методи дослідження, а його широта повинна забезпечити можливість охоплення всіх типів алгоритмів, з якими доводиться мати справу на практиці.