Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТЕМА 3_АЛГОРИТМІЧНІ СИСТЕМИ+++.doc
Скачиваний:
30
Добавлен:
05.12.2018
Размер:
634.88 Кб
Скачать

3.3. Нормальні алгоритми Маркова

Для формалізації поняття алгоритму російський математик А.А.Марков запропонував використовувати асоціативні числення|обчислення|.

Розгледимо|розглядатимемо| деякі поняття асоціативного числення|обчислення|. Хай|нехай| є|наявний| алфавіт (кінцевий|скінченний| набір різних символів). Складові його символи називатимемо буквами|літерами|. Будь-яка кінцева|скінченна| послідовність букв|літер| алфавіту (лінійний їх ряд|низка|) називається словом в цьому алфавіті.

Розгледимо два слова N і М в деякому алфавіті А. Якщо N є часткою М, то говорять, що N входить в М.

Задамо в деякому алфавіті кінцеву систему підстановок N - М, S - Т..., де N, М, S, Т... - слова в цьому алфавіті. Будь-яку підстановку N-M можна застосувати до деякого слова К наступним способом: якщо в К є одне або декілька входжень слова N, то будь-яке з них може бути замінене словом М, і, навпаки, якщо є входження М, то його можна замінити словом N.

Наприклад, в алфавіті А = { а, b, c} є слова N = ab, М = bcb, К = abcbcbab, Замінивши в слові К слово N на М, отримаємо bcbcbcbab або abcbcbbcb, і, навпаки, замінивши М на N, отримаємо aabcbab або аbсаbаb.

Підстановка ab - bcb недопустима до слова bacb, оскільки ні ab, ні bcb не входить в це слово. До отриманих за допомогою допустимих підстановок слів можна знову застосувати допустимі підстановки і так далі.

Сукупність всіх слів в даному алфавіті разом з системою допустимих підстановок називають - асоціативним численням.

Щоб задати асоціативне числення, досить задати алфавіт і систему підстановок.

Слова P1 і Р2 в деякому асоціативному численні називаються суміжними, якщо одне з них може бути перетворене в інше одноразовим застосуванням допустимої підстановки.

Послідовність слів Р, P1, Р2 ..., М називається дедуктивним ланцюгом, йдучи від слова Р до слова М, де кожне з двох поряд стоячих слів цього ланцюга - суміжне.

Слова Р і М називають еквівалентними, якщо існує ланцюжок від Р до М і назад.

Приклад|зразок|

Алфавіт Підстановки

{а, b, c, d, е} ас - сa abac - abace

ad| - da|; eca| - ae|

bc| - cb|; eda| - be|

bd| - db|; edb| - be|

Слова abcde і acbde - суміжні (підстановка bc - cb).

Слова abcde - cadbe еквівалентні.

Можна розглянути|розглядати| спеціальний вид асоціативного числення|обчислення|, в якому підстановки є|з'являються| орієнтованими: N > М|м-код| (стрілка означає, що підстановку дозволяється проводити|виробляти| лише зліва направо). Для кожного асоціативного числення|обчислення| існує завдання|задача|: для будь-яких двох слів визначити, чи є|з'являються| вони еквівалентними чи ні|або ні|.

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

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

Приклад|зразок|

Алфавіт: Система підстановок В:

А = {а, b, c} cb - cc

сса| - аb|

ab| – bса|

Розпорядження про застосування підстановок: у довільному слові Р треба зробити можливі підстановки, замінивши ліву частку підстановок на праву; повторити процес із знов отриманим словом.

Так, застосовуючи систему підстановок В з прикладу, що розглянули, до слів babaac і bсaсаbс отримуємо:

1). babaac > bbcaaac > зупинка

2). bcacabc > bcacbcac > bcacccac > bсасаbс > нескінченні процес (зупинки немає), оскільки ми отримали початкове слово.

Наведемо приклад нормального алгоритму, що описує складання - дійсніх| чисел (представлених|уявляти| наборами одиниць).

Приклад

|зразок|

Алфавіт: Система підстановок В:

А = (+, 1) 1 + > + 1

+ 1 > 1

1 > 1

Слово Р: 11+11+111

Послідовна переробка слова Р за допомогою нормального алгоритму Марков проходить через наступні етапи:

Р = 11 + 11 + 111

Р1 = 1 + 111 + 111

Р2 = + 1111 + 111

Р3 = + 111 + 1111

Р4 = + 11 + 11111

Р5 = + 1 + 111111

Р6 = ++ 1111111

Р7 = + 1111111

Р8 = 1111111

Р9 = 1111111

НАМ - це є алгоритмічні системи, до складу яких, крім алфавіту (чи алфавітів), належать елементарні припустимі операції двох видів: елементарні підстановки та елементарні розпізнавачі.

Елементарні підстановки — це алфавітні оператори, послідовність яких може реалізувати будь-які алгоритми перетворення інформації.

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

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

Алгоритм, визначений граф-схемою, працює таким чином: вхідне слово подається на вхід і рухається у напрямках, які вказують стрілки. Коли слово попадає у вузол-розпізнавач, виконується перевірка умови, що в ньому задана. Якщо умова дотримана, слово прямує до операторного вузла, якщо ні — до наступного розпізнавача.

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

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

Залежно від того, як з’єднуються вузли, алгоритми розрізняються між собою:

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

Рис. 3.2. Узагальнений нормальний алгоритм Маркова

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

Хай заданий алфавіт А і система підстановок В. Для довільного слова Р підстановки з В підбираються в тому ж порядку, в якому вони слідують в В. Якщо відповідної підстановки немає, то процес зупиняється. Інакше береться перша з відповідних підстановок і проводиться заміна її правою часткою першого входження її лівої частки в Р. Потім всі дії повторюються для вихідного слова P1. Якщо застосовується остання підстановка з системи В, процес зупиняється.

А власне нормальні алгоритми відрізняються від узагальнених нормальних алгоритмів тим, що відповідають таким умовам:

1) всі вузли впорядковуються та нумеруються натуральними числами 1, ..., n;

2) стрілки, що виходять з точки оператора підстановки, прямують або до першого розпізнавача, або до вузла «вихід». В останньому випадку підстановка називається заключною, вона може бути не одна в алгоритмі;

3) вхідний вузол з’єднується з першим розпізнавачем.

Такий набір розпоряджень разом з алфавітом А і набором підстановок В визначають нормальний алгоритм.

Такий зв’язок між вузлами реалізує певний порядок обробки вхідного слова і процес зупиняється тільки в двох випадках:

  • коли жодна з підстановок не може бути застосована (рис. 3.3)

  • коли виконується одна з заключних підстановок.

Рис. 3.3. Нормальний алгоритм Маркова

Отримали впорядкований ланцюг символів.

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

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

Якщо алгоритм N заданий в деякому розширенні алфавіту А, то говорять, що N є нормальний алгоритм над алфавітом А.

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

Різні нормальні алгоритми відрізняються один від одного алфавітами і системами підстановок.

Існують різні способи композиції нормальних алгоритмів, які дозволяють отримувати нові алгоритми у класі нормальних алгоритмів:

1. Суперпозиція двох алгоритмів А та В є алгоритм С — такий, що вихідне слово алгоритму А є вхідним словом до алгоритму В, тобто: С(р) = В(А(р)). Суперпозиція може виконуватись для будь-якої кількості алгоритмів.

2. Об’єднання двох алгоритмів А та В є алгоритм С, який перетворює слово р, що належить перетину областей визначення алгоритмів А та В, у слово С(р) = А(р) В(р).

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

р Є 0а  0в  0с

4. Повторення (ітерація) двох алгоритмів А та В — це така їх композиція С, що до будь-якого слова p багаторазово застосовується алгоритм А, доки не отримаємо слово, яке потім перетворюється алгоритмом В у деяке фіксоване слово.