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

При побудові алгоритму рішення будь-якої задачі, передбачається, що відомі види об'єктів, які будуть вихідними даними і види об'єктів, які будуть результатами рішення. Например, при делении отрезка пополам в качестве исходных данных будут выступать отрезки. довжина яких при побудові алгоритму не має ніякого значення, і як результат рішення, так само будуть виступати відрізки. саме те, що це відрізки а не кола і не квадрати ми будемо враховувати при побудові алгоритму. Тобто при побудові алгоритму дані повинні бути типізовані. тобто віднесені до того чи іншого класу об'єктів, при цьому їх властивості (розміри, колір і т.д.) для нас не має ніякого значення.

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

Після побудови алгоритму, ми повинні визначити правила для виконавця, причому сформулювати їх на зрозумілій йому мові. Якщо це людина, то на мові зрозумілому конкретній людині, якщо цей пристрій обчислювальної техніки, то на мові, зрозумілій саме цього пристрою. З іншого боку, при визначенні правил виконання алгоритму, слід враховувати можливості виконавця. Так наприклад для виконання алгоритму ділення відрізка навпіл за допомогою циркуля і лінійки виконавець повинен мати можливість користуватися обома предметами, а при діленні відрізка навпіл з виходячи з координат кінців відрізка виконавець повинен мати можливість виконувати арифметичні операції. Отже при завданні алгоритму виконавцю, слід враховувати його функціональні можливості.

Набір засобів і правил (понять), що дозволяють будувати безліч алгоритмів для вирішення різних завдань називається алгоритмічної системою. Алгоритмічна система визначає:

Дуже часто безліч типів вхідних об'єктів (вихідних даних) і безліч типів результатів збігаються. Наприклад, в алгоритмах математики вихідні дані є числа, і результатом теж є число. У завданнях управління, вихідними даними так само є числа, а результатом можуть бути в повніше матеріальні об'єкти. Крім того, результатом роботи алгоритму, може виявитися інформація, яка визначає нову задачу.

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

В алгоритмической системе можно строить самые разнообразные алгоритмы, но не всегда, конкретный алгоритм построенный в выбранной алгоритмической системе будет пригоден для работы со всеми ее входными объектами. Наприклад, в алгоритмічної системі, об'єктами якої є числова інформація, потрібно виключити можливість виникнення невизначеності, такий як поділ на 0, тангенс 90 о. обчислення квадратного кореня негативного числа і т.п. Якщо з конкретними вихідними даними на якому кроці виникає невизначеність, то ці дані вважаються неприпустимими для даного алгоритму.

Ще одним параметром алгоритмічної системи є необхідна точність кінцевого результату. Наприклад, в алгоритмічної системі призначеної для обробки числової інформації, при певних вихідних даних на будь-якому етапі може виникнути необхідність поділу одиниці на трійку. Из арифметики известно, что результатом выполнения этой операции будет 0,33333…. Тобто операцію ділення одиниці на трійку неможливо виконати за кінцеве число кроків, виникає невизначеною або зациклення процесу. Для того, щоб уникнути цієї ситуації необхідно ввести параметр, що визначає необхідну точність, в даному випадку кількість знаків після коми.

При введенні параметра, що визначає точність обчислень ми маємо на увазі неможливість отримання абсолютно точного результату, і крім того, чим вище точність, тим складніше будуть обчислення, крім того, при досягненні високого рівня точності різко зростає число операцій. І якщо ми знаємо, що алгоритм вирішення конкретного завдання не єдиний, тобто завдання можна вирішити іншим способом, то слід спробувати поліпшити (оптимізувати) алгоритм розв'язання задачі, спростити хід вирішення. Однак при цьому новий алгоритм повинен залишатися еквівалентним вихідному.

Один алгоритм є еквівалентним іншому, якщо:

1. Безліч допустимих вихідних даних одного алгоритму є безліччю допустимих вихідних даних іншого алгоритму, з можливості застосування до якихось вихідними даними одного алгоритму слід можливість застосування до цих же вихідних даних іншого алгоритму;

2. Застосування до одних і ті ж вихідними даними одного алгоритму дає той же самий результат, що і застосування до цих же вихідних даних іншого алгоритму.

Еквівалентні, наприклад алгоритми підрахунку глядачів на трибунах стадіону, по секторах і по рядах трибун.

І так, алгоритмічна система це набір типів вихідних і результуючих об'єктів, а так же методів і засобів їх обробки, описаних мовою зрозумілою виконавцю.