АЛГОРИТМ

АЛГОРИТМ (від імені середньоазіатського вченого ІХ ст. аль-Хорезмі — латиніз. Algorithmi) — припис виконавцю (людині або автомату) точно виконати певну послідовність дій, спрямованих на досягнення заданої мети або розв’язання поставленого завдання. А. є основою будь-якої цілеспрямованої діяльності людини. Різноманітні А. використовуються практично в усіх сферах людського життя, включаючи виробництво ЛП. Від різних текстових приписів А. відрізняється характерними властивостями, що дозволяють його автоматичне виконання: зрозумілість, дискретність, точність, результативність і повторюваність. Кожен А. розробляється в точно визначених умовах, включаючи точне формулювання завдання, що розв’язується, перелік об’єктів, які залучаються до умов завдання та його вирішення, можливості виконавця. Можливості виконавця зумовлюються властивостями об’єктів, про які виконавець може дізнаватися, та діями, які він може виконувати. Ці можливості в сукупності називаються системою команд виконавця.

Зрозумілість А. для конкретного виконавця означає, що він містить припис про виконання лише заданих дій та про перевірку тільки тих властивостей об’єктів, які входять в систему команд виконавця. Властивість дискретності А. полягає в тому, що команди виконавця здійснюються послідовно, з точною фіксацією моментів закінчення виконання однієї команди та початку виконання наступної. Властивість точності А. означає, що після виконання кожної послідовної команди точно відомо, чи закінчено виконання А. або яка команда повинна виконуватися наступною. Результативність А. полягає в тому, що після кінцевої кількості кроків виконання А. розв’язується завдання або визначається, з якої причини процес його розв’язання не може бути продовжений. Властивість повторюваності виявляється в тому, що А. одним і тим же способом застосовується до будь-якого конкретного формулювання завдання, для розв’язання якого він був розроблений.

Важливо відзначити, що зазначені властивості А. в сукупності дозволяють виконавцю успішно розв’язувати завдання, не володіючи тим знанням, яке потрібне для розробки самого А. Обмеженість системи команд, простота і точність правил виконання А. дозволяють формалізувати функції виконавця і передавати розв’язання завдань автоматичним машинам.

Алгоритмічна мова — формальна мова для запису А. В інформатиці терміни «Алгоритмічна мова» і «Мова програмування» часто використовуються як син., але інколи вони протиставляються один одному за двома ознаками: 1) не кожен А. мови програмування реалізується на ЕОМ у деякій системі програмування; 2) не кожна мова програмування — алгоритмічна (існують і декларативні, непроцедурні мови програмування).

За характером семантики (моделі обчислювального процесу) в мовах програмування виділяють два основних способи — наказовий спосіб (імперативний, який подано операторами, командами, приписами) та дійсний (декларативний, описовий). В одних мовах програмування переважає опис дій А., тобто шлях до отримання результату. Такі мови мають назву алгоритмічні, імперативні або процедурні. Напр., до таких мов належать С++, Visual Basic, Turbo Pascal, Delphi. Інші мови програмування передбачають не так побудову (обчислення) результату, як опис (декларацію) його властивостей. На основі цієї інформації система програмування сама повинна побудувати потрібний А. розв’язання завдання. Такі мови називають декларативними, непроцедурними або проблемно-орієнтованими. Напр. до них належать: мови OPS5, Prolog, Clips, Java та ін.

Вирт Н. Алгоритмы и структуры данных. — М., 1989; Джексон П. Введение в экспертные системы. — М., 2001; Математика. Большой энциклопедический словарь / Гл. ред. Ю.В. Прохоров. — М., 1998.