Властивості алгоритму - властивості алгоритму - поняття алгоритму - каталог файлів

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

Термін має цікаве історичне походження. У IX столітті великий узбецький математик аль-Хорезмі розробив правила- арифметичних дій над десятковими числами. Сукупність цих правил в Європі стали називати "алгорізм". Згодом слово трансформувалося до відомого нам зараз виду. Алгоритмом - стали називати будь-яку послідовність дій, яка призводить до вирішення того чи іншого завдання. Можна сказати, що поняття вийшло за рамки математики і стало застосовуватися в найрізноманітніших галузях.

• Дискретність - поділ інформаційного процесу в алгоритмі на окремі команди.

• Однозначність (детермінованість, визначеність) - кожна команда алгоритму однозначно визначає дію виконавця;

• Зрозумілість - в алгоритмі використовуються тільки система команд виконавця (СКІ).

• Результативність (кінцівка) - т. Е. Алгоритм повинен призводити до вирішення завдання за кінцеве число кроків;

• Масовість (універсальність) - т. Е. Алгоритм повинен виконуватися для будь-якого набору вихідних даних, які відповідають умові завдання;

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

• Однозначність (детермінованість) - до Оманд, що утворюють алгоритм (або, можна сказати, що входять в СКІ), повинні бути гранично чіткими й однозначними. Їх результат не може залежати від будь-якої додаткової інформації ззовні алгоритму. Скільки б разів ви не запускали програму, для одних і тих самих вихідних даних завжди буде виходити один і той же результат.

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

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

• Зрозумілість - до аждая команда алгоритму повинна бути зрозуміла тому, хто виконує алгоритм.

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

• Коректність - л юбой алгоритм створений для вирішення того чи іншого завдання, тому нам необхідна впевненість, що це рішення буде правильним для будь-яких допустимих вихідних даних. Як показує досвід, грамотна і всебічна налагодження для складних алгоритмів часто вимагає значно більших зусиль, ніж власне розробка цих алгоритмів. При цьому важливо не стільки кількість перевірених сполучень вхідних даних, скільки кількість їх типів. Наприклад, можна зробити скільки завгодно перевірок для позитивних значень аргументу алгоритму, але це ніяк не гарантуватиме коректну його роботу в разі негативної величини аргументу.

• Масовість - а лгорітм має сенс розробляти тільки в тому випадку, коли він буде застосовуватися багаторазово для різних наборів вихідних даних. Наприклад, якщо складається алгоритм обробки текстів, то навряд чи доцільно обмежувати його можливості тільки українськими літерами - варто передбачити також латинський алфавіт, цифри, розділові знаки і т.п. Тим більше що таке узагальнення особливих труднощів не викликає.