Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
TA_lab_03-4_11-12.doc
Скачиваний:
1
Добавлен:
16.11.2019
Размер:
277.5 Кб
Скачать

Триус Ю.В. Теорія алгоритмів 10

Лабораторна робота №3-4.

ТЕМА: ”ЗАГАЛЬНА СХЕМА ПОБУДОВИ АЛГОРИТМІЧНИХ СИСТЕМ.

АЛГОРИТМІЧНА СИСТЕМА МАРКОВА”

Питання:

1. Поняття конструктивного об’єкту.

2. Загальна схема побудови алгоритмічних систем.

3. Алфавітні алгоритми.

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

5. Принцип нормалізації.

Програмне забезпечення: інтерпретатор алгоритмічних систем Маркова, Тюрінга, Поста AlgoMachines.

Теоретична частина

1. Поняття конструктивного об’єкту.

Поняття конструктивного об’єкта є не тільки основним, але й первинним в теорії алгоритмів.

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

Отже, конструктивний об’єкт має дискретну будову і складається з окремих елементів. Також будемо вважати, що для конструктивного об’єкта задана деяка “внутрішня система координат”, яка дозволяє однозначно локалізувати будь-який його елемент (визначити місце знаходження його елементів). Прикладами конструктивних об’єктів є

- слова, які складені з букв деякого алфавіту A;

- числа з множин N (|||| - 4), Z (-|||||| - -6), Q((|||/|||| - 3/4);

- матриці з цілочисловими коефіцієнтами, записаними в будь-якій системі числення;

Внутрішню систему координат, наприклад, має слово, оскільки можна говорити про першу букву зліва, другу і т.д., у матриці положення будь-якого її елемента визначається перетином відповідного рядка і стовпчика, в (A,k)-дереві положення будь-якої вершини визначається шляхом від кореня до цієї вершини. Говорячи про систему координат, природно вимагати наявність “початку координат”. Отже в кожному конструктивному об’єкті деякий його елемент повинен бути визначений як початковий - це той елемент, з якого починається “читання” всього об’єкта (перша буква слова, перший елемент рядка матриці, корінь дерева і т.д.). Саме наявність у конструктивного об’єкта внутрішньої системи координат забезпечує можливість його введення в пам’ять комп’ютера.

2. Загальна схема побудови алгоритмічної системи

Як було відмічено раніше одним із найважливіших математичних досягнень ХХ століття є формулювання строгого поняття алгоритму. Різні загальні способи формалізації задач і процесів їх розв'язування привели до появи різних уточнень і означень поняття алгоритму.

В 30х - 50х роках ХХ ст. були побудовані різні алгоритмічні системи:

  • теорія рекурсивних функцій (Алонзо Черч, 1936р.) і частково рекурсивних (m-рекурсивних функцій) (С.Кліні, 1943р.);

  • фінітні комбінаторні процеси (Еміль Пост, 1936 р.);

  • машини Тьюрінга (Алан Тьюрінг, 1936 р.);

  • нормальні алгоритми Маркова (Андрій Андрійович Марков, 1951р.);

  • алгоритмічна система (машини) Колмогорова (Колмогоров Андрій Миколайович, Успенський Володимир Андрійович, 1953 р.) та деякі інші.

У кожній конкретній алгоритмічній системі описується по суті певний конкретний досить широкий клас алгоритмів.

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

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

Схема побудови алгоритмічної системи.

1. Вводиться система вхідних об'єктів (символів), між якими встановлено тільки співвідношення відмінності, тобто для будь-яких двох об'єктів системи встановлено, тотожні вони чи ні. Такі системи об'єктів називаються алфавітами, а їх окремі об'єкти – буквами. Змістовна інформація про задачу подається (кодується) за допомогою об'єктів даної системи. При цьому будуються нові конструктивні об'єкти, які називаються вхідними даними (умовами задачі або початковим станом). При побудові конструктивних об'єктів використовується так званий принцип абстракції потенційної здійсненності, який надає можливість вважати конструктивними об'єктами як завгодно складні об'єкти (як завгодно великі натуральні числа, як завгодно довгі слова) при умові скінченності (в просторі і часі) процесу їх побудови. При цьому об'єктами в алгоритмічному процесі можуть бути лише конструктивні об'єкти.

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

  • операції дії;

  • операції розпізнавання.

За допомогою операцій дії відбувається перехід від одного стану (конструктивного об’єкту) до іншого (нового).

Операції розпізнавання служать для встановлення тих чи інших властивостей стану (конструктивного об’єкту) для визначення порядку виконання операцій дії.

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

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

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

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

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

Рис. 1.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]