Властивості алгоритмів - студопедія
Типи алгоритмів і їх властивості:
Одним з таких властивостей є дискретність. Під дискретністю розуміється то, що алгоритм складається з опису послідовності кроків обробки, організований таким чином, що в початковий момент задається вихідна ситуація, а після кожного наступного кроку ситуація перетвориться на основі даних, отримані в попередні кроки обробки.
Дискретність алгоритму означає, що він виповнюється по кроках: кожна дія, передбачене алгоритмом, виконується тільки після того, як закінчилося виконання попереднього.
Інша властивість прийнято називати визначеністю. Воно означає, що на кожному кроці однозначно визначено перетворення об'єктів середовища виконавця, отриманих на попередніх кроках алгоритму.
Наприклад, в одному з кулінарних рецептів сказано:
Злегка потрясіть, щоб суміш стала грудкуватої. Підігрійте коньяк в маленькій каструльці і влийте її в суміш.
Формального виконавцю тут неясно, чи трясти суміш, поки вона вся не стане грудкою, і який все-таки величини каструля. Велика або маленька? І до якої температури треба підігріти коньяк. Так що такий алгоритм будь-якому виконавцеві виконати досить важко, практично неможливо. Можна сказати, що в алгоритмі не повинні бути присутні не певні слова: трохи, трохи, злегка і т. Д.
Третя властивість - результативність алгоритму. Це властивість має на увазі, що кожен крок (і алгоритм в цілому) після свого завершення дає середу, в якій всі наявні об'єкти однозначно визначені. Якщо це по яких - небудь причин неможливо, то алгоритм повинен повідомляти, що рішення задачі не існує.
Наприклад, в інструкції із застосування ліків від кашлю сказано:
Якщо лікар не прописав, то приймати 3-4 рази на день по 15-20 крапель, найкраще в гарячій солодкій воді.
Тут не визначено, наприклад, коли повинен закінчуватися алгоритм - коли кашель пройде або коли ліки закінчитися. Властивість результативності зазвичай має на увазі кінцівку алгоритму, т. Е. Завершення його роботи за кінцеве число кроків (при цьому кількість кроків може бути заздалегідь невідомим і різним для різних вихідних даних).
Але якщо ми складемо детальний алгоритм роботи, розіб'ємо його на елементарні кроки, такі, що він без праці зрозуміє і зможе виконати кожен крок, то він зможе успішно спекти будь-який торт. Кожен крок алгоритму обов'язково є якесь допустиме дію виконавця. Це властивість алгоритму називають зрозумілістю.
Нарешті, ще одна властивість алгоритму - масовість. Воно означає, що є деяка безліч даних, які можуть оброблятися алгоритмом, або даний алгоритм може бути застосований для вирішення будь-якої задачі одного типу.
Масовість алгоритму тісно пов'язана з зрозумілістю, як приклад можна розібрати приклад з тортом, і сказати, що чим детальніше буде описано алгоритм приготування, тим більше вірогідності, що торт буде випечений. Також як приклад можна взяти керівництво по експлуатації електричних приладів, інструкції і т. Д. Чим повніше викладено алгоритм роботи з приладами, тим легше нам з вами буде в ньому розібратися.
З точки зору практичної цінність алгоритмів важливо, що б безліч допустимих вихідних даних було досить великим, як правило, практична цінність алгоритму не велика, якщо його можна використовувати тільки один раз.