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

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра САПР

Інформація про роботу

Рік:
2015
Тип роботи:
Лабораторна робота
Предмет:
Інші
Група:
КН-214

Частина тексту файла (без зображень, графіків і формул):

МIНIСТЕРСТВО ОСВIТИ І НАУКИ УКРАЇНИ Національний унiверситет "Львiвська полiтехнiка" Кафедра САПР  ЗВІТ до лабораторної роботи № 9 на тему: Нормальні алгоритми Маркова Виконав: Гр. КН-214 Перевірив: Денисюк П. Ю. Львiв 2007 Мета: Ознайомитись з алгоритмічною системою Маркова, навчитись зображати алгоритм Маркова у вигляді граф-схеми. Алгоритмічна система Маркова заснована на відповідності між словами в абстрактному алфавіті і містить у собі об'єкти подвійної природи: элементарні оператори й елементарні розпізнавачі. Елементарні оператори- оператори алфавіту, послідовне виконання яких реалізує будь-які алгоритми в аналізованій алгоритмічній системі. Елементарні розпізнавачі виконують розпізнавання присутності тих або інших властивостей інформації, що переробляється алгоритмом, а також для зміни (у залежності від результатів розпізнавання) послідовності виконання елементарних операторів. Для визначення множини елементарних операторів і порядка їх виконання у конкретному алгоритмі зручно користуватися особливими орієнтованими графами, які називають граф-схемами алгоритмів. Граф-схема алгоритму (її загальний вигляд наведено на мал. 1) являє собою скінчену множину вузлів, з’єднаних між собою відповідно наступним правилам: ( вузол «вхід» не має вхідних дуг (це позначається як Р+(х) = 0), але має одну вихідну дугу (Р-(х) = 1); ( кожному вузлові, окрім «входу» і «виходу», зіставляється елементарний оператор або розпізнавач; ( у загальному випадку кількість дуг, що входять у вузол граф-схеми, може бути довільною; в окремому випадку (див. мал. 3): - у кожний вузол, якому зіставлено елементарний розпізнавач, входить по дві дуги (Р+(х) = 2) і з кожного такого вузла виходить по дві дуги (Р-(х) = 2); - у кожний вузол, якому зіставлено елементарний оператор, входить по одній дузі (Р+(х) = 1) і з кожного такого вузла виходить по одній дузі (Р-(х) = 1); ( вузол «вихід» має одну вхідну дугу (Р+(х) = 1) і не має вихідних дуг (Р-(х) = 0); Мал. 3 Алгоритм, визначений граф-схемою, працює таким чином. Вхідне слово надходить на вхід і рухається по напрямкам, зазначеним стрілками. При влученні слова в розпізнавальний вузол здійснюється перевірка умови, зіставленої вузлові. При виконанні умови слово спрямовується в операторний вузол, при невиконанні, - у наступний розпізнавач. Якщо вхідне слово р, яке подано на вхід граф-схеми, проходить через її вузли, перетворюється і кінець-кінцем потрапляє через скінчену кількість кроків на вихід, то враховується, що алгоритм можна застосовувати до слова р (тобто слово р входить в область визначення цього алгоритму). Результатом впливу на слово р буде те слово, що потрапляє до виходу граф-схеми. Якщо ж після подачі слова р на вхід граф-схеми перетворення і прямування слова вздовжо граф-схеми продовжується нескінчено довго, не приводячи на вихід, то враховується, що алгоритм не можна застосовувати до слова р (тобто слово р не входить в область визначення алгоритму). У нормальних алгоритмах в якості элементарного розпізнавача використовується розпізнавач входження, а в якості элементарного оператора - оператор підстановки. Розпізнавач входження перевіряє умову «слово р входить у якості підслова у деяке надане слово q ?». Оператор підстановки заміняє перше зліва входження слова рi у слово q на деяке надане слово р2. Оператор підстановки за звичай задається у вигляді: рi( р2. Наприклад, для слова abcabca застосування підстановки bc(cb через два кроки: ( abcabca ( acbabca ( abcacba ( acbacba призводить до слова acbacba. Послідовність слів p1, p2, ..., pn, одержуваних у процесі реалізації алгоритму, називається дедуктивним ланцюжком. Алгоритм, що задається граф-схемою, яку складено виключно з розпізнавачів входження слів і операторів підстановки, називають узагальненим нормальним алгоритмом. При цьому передбачається, що до кожного оператора підстановки веде лише одна дуга, що виходить із відповідного розпізнавача (Р+(х) = 1). Нормальним алгоритмом називають такий узагальнений нормальний алгоритм, граф-схема якого задовольняє наступним вимогам: ( всі вузли, що відповідають розпізнавачам, упорядковано за їхньою нумерацією від 1 до n. ( вихідні дуги вузлів, що відповідають операторам підстановки, під’єднуються або до вузла, відповідного першому розпізнавачу, або до вихідного вузла. У першому випадку підстановка називається звичайною, у другому - заключною. ( вхідний вузол під’єднується дугою до першого розпізнавача. Нормальні алгоритми прийнято задавати упорядкованою множиною підстановок всіх операторів алгоритму (тобто схемою алгоритму). При цьому звичайні підстановки записуються у вигляді рi(р2, а заключні підстановки - у вигляді рi (· р2 (з точкою після стрілки). Процес виконання підстановок завершується лише тоді, коли жодна з підстановок не застосовна до отриманого слова або коли виконано заключну підстановку. Розгляньмо, наприклад, роботу нормального алгоритма Маркова, який задано алфавітом A = {+, 1} і системою підстановок: 1+1(11 та 1(· 1 (граф-схему алгоритму наведено на мал. 4). Нехай на вході задано рядок 11+11+1. Тоді наведеним алгоритмом його буде перетворено на рядок 11+11+1(1111+1(11111(11111. Таким чином, алгоритм реалізує додавання одиниць. Наявність у нормальних алгоритмах підстановок двох видів: звичайної і заключної є необхідною умовою універсальності нормальних алгоритмів, яка формулюється як принцип нормалізації: «Для абиякого алгоритму у довільному скінченому алфавіті А можна побудувати эквівалентний йому нормальний алгоритм над алфавітом А». На основі відомих нормальних алгоритмів можуть бути побудовані нові алгоритми шляхом застосування різноманітних засобів композиції алгоритмів: ( суперпозиції алгоритмів А і В, коли вихідне слово алгоритму А розглядається як вхідне слово алгоритму В; ( об’єднання алгоритмів А і В в алгоритм С, що перетворює абияке слово р, що міститься на перетинанні областей визначення алгоритмів А і В, в розташовані поряд слова A(p) i B(p). Мал . 4 Наприклад, якщо задано: X = {a, b}, A = {ab ( ba}, B = {ba ( ab} і слово аbа із області перетинання, то: A(aba) = baa, B(aba) = aab, C(aba) = baaaab; ( розгалуження алгоритмів, тобто композиції D алгоритмів A, B і C, область визначення якої співпадає з перетинанням областей визначення алгоритмів A, B і C, а для абиякого слова р з цього перетинання: D(p) = A(p), якщо C(p) = e, D(p) = B(p), C(p) ( e , де е - порожній рядок. Наприклад, якщо задано: A = {ab(ba}, B = {ba(ab}, C = {ab(a, ba( e} в алфавіті X = {a, b}, то дії алгоритму D можна уявити як: A(aba) = baa A(bab) = bba B(aba) = aab B(bab) = abb C(aba) = aa C(bab) = e D(aba) = aab D(bab) = bba ( повторення (ітерація) являє собою комозицію С двох алгоритмів А і В. Для будь-якого вхідного слова р відповідне йому вихідне слово С(р) утворюється у результаті послідовного багатократного застосування алгоритму А до тих пір, поки не утвориться слово, що переробляється алгоритмом В в деяке фіксоване слово. Наприклад, якщо задано: X = {a, b}, A = {ab(ba}, B = {bbbaa(ab}, тоді C(ababb) = ab, оскільки: babb(baabb(babab(bbabb(bbaba(bbbaa(ab. Важливе значення має можливість побудови складового універсального алгоритму, що може виконувати будь-які нормальні алгоритми; на його основі може бути побудовано універсальний комп’ютер. Завдання: Задана стрічка символів, використовуючи алгоритм Маркова перетворити її з допомогою операції додавання. Намалювати граф-схему використаного алгоритму. Текст програми program markov; Uses crt; var st:string[70]; st5,st4,st2,st6,st3,st1:string[70]; i:integer; begin Clrscr; writeln ('Zadana stri4ka: wadwtodere'); st:='wadwtodere'; writeln; writeln('Operacii peretvorenia:'); writeln; writeln('ad->d'); writeln('ere->aa'); writeln('o->w'); writeln; st1:='ad'; st2:='ere'; st3:='d'; st4:='aa'; st5:='o'; st6:='w'; for i:=1 to length(st) do if (copy (st,i,length(st1))=st1) then begin delete(st,i,length(st1)); insert(st3,st,i); end; for i:=1 to length(st) do if (copy (st,i,length(st2))=st2) then begin delete(st,i,length(st2)); insert(st4,st,i); end; for i:=1 to length(st) do if (copy (st,i,length(st1))=st5) then begin delete(st,i,length(st1)); insert(st6,st,i); end; writeln('-----------------Peretvorena stri4ka-----------------'); writeln; writeln(st); readln; end. Результати: Задана стрічка -> zadltherefo Операції: ad->d ere->aa o->w Перетворена стрічка -> zdlthaafw  Висновок: У даній лабораторній роботі я ознайомився з алгоритмічною системою Маркова, зобразив роботу системи на прикладі програми , а також у вигляді граф- схеми.
Антиботан аватар за замовчуванням

2015

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!