Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Gmail / Лекция2.doc
Скачиваний:
35
Добавлен:
12.05.2015
Размер:
3.73 Mб
Скачать

ОСНОВИ АЛГОРИТМІЗАЦІЇ ОБЧИСЛЮВАЛЬНИХ ПРОЦЕСІВ 1

Основні поняття 1

Поняття алгоритму 1

Властивості та характеристики алгоритмів 1

Оцінка ефективності алгоритму 2

Способи опису алгоритмів 4

Базові алгоритмічні структури 9

Лінійні алгоритми 10

Розгалужені алгоритми 11

Циклічні алгоритми 13

Логічні основи алгоритмізації 16

Основи алгоритмізації обчислювальних процесів Основні поняття Поняття алгоритму

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

Поки не буде побудована в уяві або на папері чітка послідовність дій у процесі розв’язання будь-якої задачі, не можна правильно описати відповідний процес на мові програмування, тобто написати програму для виконання її на ЕОМ. Значення цього твердження зростає разом із підвищенням складності задач.

Спочатку визначення поняття алгоритму було проблемою математики. Формальне визначення алгоритмів було дано в 30-50-х роках XX століття А.Тюрингом, Е. Постом, А. Чорчем, А. Марковим в роботах з теорії алгоритмів – щойно виниклої на той час галузі математики. Теорія алгоритмів виникла як розділ математичної логіки. Теорія алгоритмів вивчає загальні властивості й закономірності алгоритмів і різноманітні формальні моделі їхнього подання, займається формальним доказом алгоритмічної нерозв'язності задач, асимптотичним аналізом складності алгоритмів, класифікацією алгоритмів відповідно до класів складності, розробкою критеріїв порівняльної оцінки якості алгоритмів і т.і.

Проте з плином часу теорія алгоритмів стала розвиватися за рахунок впливу відкриттів не тільки в математиці, а й в інформатиці. В даний час алгоритм є одним з головних понять інформатики.

Існує багато різноманітних означень поняття алгоритму. Так в ISO/IEC 2382-1:1993 Fundamental terms термін «01.05.05. Алгоритм» визначається як «кінцевий упорядкований набір чітко визначених правил для розв'язання проблеми». Можна навести ще декілька використовуваних на практиці визначень, але єдиного «правильного» немає.

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

Складання такого покрокового опису процесу вирішення задачі називається її алгоритмізацією.

Властивості та характеристики алгоритмів

Незважаючи на різноманіття алгоритмів, в них можна знайти багато спільного. Ці спільні риси називаються властивостями алгоритмів.

Основні властивості алгоритмів:

  1. Скінченність.

Алгоритм має завершуватися за скінченну кількість кроків (скінченність процесу перетворення інформації).

  1. Результативність (завершеність).

При коректно заданих вихідних даних виконання алгоритму завжди повинно приводити до певного результату.

  1. Дискретність.

Алгоритм повинен представляти процес вирішення завдання як послідовне виконання деяких простих кроків, які виконуються послідовно і за скінчений час.

  1. Визначеність (детермінованість або однозначність).

Дії, які необхідно виконати на кожному кроці алгоритму, повинні бути чітко та недвозначно визначені для кожного можливого випадку. Порядок виконання операцій має бути строго визначеним. Це означає, що виконання алгоритму відбувається у єдиний спосіб та призводить до однакового результату для однакових вхідних даних.

  1. Формальність.

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

  1. Масовість (універсальність).

Алгоритм може бути використаний для розв’язання цілого класу однотипних задач при різних наборах вихідних даних (наприклад, квадратного рівняння з різними коефіцієнтами).

  1. Зрозумілість.

Алгоритм повинен складатися з команд, які входять до системи команд його виконавця. При цьому виконавцем алгоритму може бути людина, комп’ютер, робот тощо.

З урахуванням даних властивостей поняття алгоритму часто визначається як скінченна однозначно визначена послідовність операцій, формальне виконання яких приводить до розв’язання певної задачі за кінцеве число кроків.

З поняттям алгоритму пов’язані такі поняття, як область його задання, складність, еквівалентність, алгоритмічна розв’язність та ін.

Область задання алгоритму — це множина даних, до яких алгоритм застосовний. Якщо алгоритм завершується без отримання результату або продовжується необмежено довго, то говорять про незастосовність алгоритму до цих вхідних даних.

Під алгоритмічною розв’язністю розуміють можливість побудови алгоритму розв’язку всіх задач даного класу.

Існують класи задач, для розв’язання яких не існує єдиного універсального способу. Це алгоритмічно нерозв’язувані проблеми. Для визначення алгоритмічної розв’язності якогось класу задач необхідно або побудувати алгоритм розв’язку, або довести неможливість побудови такого алгоритму (довести, що проблема є алгоритмічно нерозв’язною). Наприклад, алгоритмічно розв’язна проблема — доведення тотожностей в алгебрі (відомі правила перетворення алгебраїчних виразів). У той же самий час розв’язання диференційних рівнянь — проблема алгоритмічно нерозв’язна. Є проблеми, про які невідомо, чи є вони алгоритмічно розв’язні, чи є алгоритмічно нерозв’язні.

Соседние файлы в папке Gmail