Скачать презентацию Тема 3 Формальні моделі алгоритмів Додай ще один Скачать презентацию Тема 3 Формальні моделі алгоритмів Додай ще один

3_ukr.ppt

  • Количество слайдов: 49

Тема 3 Формальні моделі алгоритмів “Додай ще один відтінок до веселки” (В. Шекспір) Тема 3 Формальні моделі алгоритмів “Додай ще один відтінок до веселки” (В. Шекспір)

Вступ Перші фундаментальні роботи з теорії алгоритмів були опубліковані незалежно в 1935 -7 роках Вступ Перші фундаментальні роботи з теорії алгоритмів були опубліковані незалежно в 1935 -7 роках А. Т’юрінгом, А. Черчем, С. Кліні, К. Гьоделем і Е. Постом. Запропоновані ними машина Т’юрінга, машина Поста, частково рекурсивні функції й лямбда-вирахування Черча були еквівалентними формалізмами алгоритму. Сформульовані ними тези (Поста й Черча. Т’юрінга) постулювали еквівалентність запропонованих ними формальних систем і інтуїтивного поняття алгоритму. Важливим розвитком цих робіт стало формулювання й доказ алгоритмічно нерозв'язних проблем. 2

3 3

4 4

3. 1 Алгоритми та обчислювальні функції Період до початку XX століття можна вважати етапом 3. 1 Алгоритми та обчислювальні функції Період до початку XX століття можна вважати етапом накопичування алгоритмів. Інтуїтивне розуміння алгоритму було достатнім, щоб вважати ту чи іншу процедуру розв’язання задач алгоритмом. Але одночасно накопичувались проблеми, для яких пошук алгоритму їх рішення ні до чого не приводив. Та для того щоб довести, що алгоритм існує, достатньо його пред’явити, то для доведення відсутності алгоритму, необхідне його строге визначення. Так як в математиці поняття алгоритму тісно пов’язане з поняттям обчислювальної функції, то історично першою формалізацією став клас обчислювальних функцій 5 (К. Гьодель, А. Черч, 1935 -1936 рр. ).

Алгоритми та обчислювальні функції • Основна ідея в тому, що довільний алгоритм можна звести Алгоритми та обчислювальні функції • Основна ідея в тому, що довільний алгоритм можна звести до обчислення значення деякої числової функції. • І, навпаки, якщо для функції f існує алгоритм, який призводить до стандартного запису значення функції m=f(n), то функція f називається алгоритмічно обчислювальною або просто обчислювальною 6

Алгоритми та обчислювальні функції В теорії обчислювальних функцій визначають множину натуральних чисел N={0, 1, Алгоритми та обчислювальні функції В теорії обчислювальних функцій визначають множину натуральних чисел N={0, 1, 2, 3, …} і розглядають тільки числові функції, розуміючи під ними функції k змінних (k - місні функції), аргументи і значення яких належать N. Тобто, об’єкти з областю визначення Df Nk (k – ціле додатне) та з областю значень Rf N, будемо називати к - місними частковими функціями. Термін «часткова» нагадує, що функція визначена на підмножині Nk ( звичайно, може статись, що Df = Nk , в такому разі функція стає всюди визначеною). 7

Алгоритми та обчислювальні функції • Означення. Числова функція f: Nk N називається обчислювальною, якщо Алгоритми та обчислювальні функції • Означення. Числова функція f: Nk N називається обчислювальною, якщо існує алгоритм, за допомогою якого можна обчислити значення функції для будьякого набору значень аргументів із області визначення функції. • В подальшому, використаємо ідею К. Гьоделя та С. Кліні (1936 р. ), за якою всі обчислювальні функції можна одержати з множини базисних функцій та алгебраїчних операцій. Ці операції 8 прийнято називати операторами.

Алгоритми та обчислювальні функції • Розглянемо клас числових функцій, що використовуються в якості базису Алгоритми та обчислювальні функції • Розглянемо клас числових функцій, що використовуються в якості базису для побудови обчислювальних функцій: • O(x)=0 (нуль-функція); • S(x)=х+1 (функція слідування або наступності, але не додавання одиниці); • Inm (x 1, x 2, x 3, . . , xm, . . . xn) = xm (функція проекції або введення фіктивних змінних або вибору аргументу). 9

Алгоритми та обчислювальні функції • В якості операторів, застосування яких до базисних функцій призводить Алгоритми та обчислювальні функції • В якості операторів, застосування яких до базисних функцій призводить до утворення нових функцій оберемо наступні три оператори: • оператор суперпозиції ; • оператор примітивної рекурсії ; • • оператор мінімізації або найменшого кореня. 10

Оператор суперпозиції (Snm) • Операція суперпозиції полягає у підстановці одних арифметичних функцій замість аргументів Оператор суперпозиції (Snm) • Операція суперпозиції полягає у підстановці одних арифметичних функцій замість аргументів інших функцій. Нехай задана m-місна функція F(x 1, x 2, x 3, . . , xm) та m-на кількість n-місних функцій f 1(x 1, x 2, x 3, . . , xn) , f 2(x 1, x 2, x 3, . . , xn), f 3(x 1, x 2, x 3, . . , xn), . . . , fm(x 1, x 2, x 3, . . , xn). Тоді говорять, що n -місна функція φ(x 1, x 2, x 3, . . , xn) утворилася в результаті підстановки у функцію F замість її аргументів m функцій 11 f 1, f 2, f 3, . . . , fm.

Оператор суперпозиції (Snm) • Така підстановка називається суперпозицією Snm(F, f 1, f 2, . Оператор суперпозиції (Snm) • Така підстановка називається суперпозицією Snm(F, f 1, f 2, . . . , fm) = F (f 1(x 1, x 2, . . , xn) , f 2(x 1, x 2, . . , xn), . . . , fm(x 1, x 2, . . , xn))= = φ (x 1, x 2, . . , xn) • Приклад: здійснюючи операцію суперпозиції функцій f(x)=0 та g(x)=x+1 отримуємо h(x)=g(f(x))=0+1=1. 12

Оператор примітивної рекурсії (Rn) • Оператор примітивної рекурсії (Rn) дозволяє будувати n+1 -місну арифметичну Оператор примітивної рекурсії (Rn) • Оператор примітивної рекурсії (Rn) дозволяє будувати n+1 -місну арифметичну функцію f(x 1, x 2, x 3, . . , xn, у) з двох заданих функцій, одна з яких є n-місною φ(x 1, x 2, . . , xn), а інша - n+2 -місна функція ψ(x 1, x 2, . . , xn, у, z) за наступною схемою: f(x 1, x 2, x 3, . . , xn, 0) = φ (x 1, x 2, . . , xn); f(x 1, x 2, x 3, . . , xn, у+1)= ψ(x 1, x 2, . . , xn, у, f(x 1, x 2, x 3, . . , xn, у)) 13 • Таким чином, f(x 1, x 2, x 3, . . , xn, у) = Rn(φ, ψ).

Оператор примітивної рекурсії (Rn) Схеми примітивної рекурсії визначають функцію f рекурсивно не тільки через Оператор примітивної рекурсії (Rn) Схеми примітивної рекурсії визначають функцію f рекурсивно не тільки через інші функції φ та ψ, а й через значення f у попередніх точках – значення f у точці (у+1) залежить від значення f у точці (у). Наприклад, необхідно побудувати 2 -місну функцію f(x, у)=х+у з елементарних функцій за допомогою оператора примітивної рекурсії. 14

Оператор примітивної рекурсії (Rn) Функція f(x, у) =х+у визначається функцією проекції I 11 (x) Оператор примітивної рекурсії (Rn) Функція f(x, у) =х+у визначається функцією проекції I 11 (x) = x та функцією слідування S(x, y, z)=z+1. Таким чином, • f(x, 0)= I 11 (x) = x ; • f(x, 1)= S(x, 0, х) = х+1 ; • f(x, 2)= S(x, 1, х+1) = х+2; • ………………. . 15

Оператор примітивної рекурсії (Rn) • • f(x, у-1)= S(x, у-2, х+у-2) = х+у-1 ; Оператор примітивної рекурсії (Rn) • • f(x, у-1)= S(x, у-2, х+у-2) = х+у-1 ; f(x, у)= S(x, у-1, х+у-1) = х+у ; або f(x, 0)= I 11 (x) = x; f(x, у+1)= f(x, у)+1=S(x+y) ; Таким чином, f(x, у)= x+у=R 1(I 11 (x), g(x, y, z)), де g(x, y, z)=S(z)=z+1. 16

Оператор мінімізації (µу) Розглянемо обчислювальну n-місну числову функцію f(x 1, x 2, x 3, Оператор мінімізації (µу) Розглянемо обчислювальну n-місну числову функцію f(x 1, x 2, x 3, . . , xn). Зафіксуємо деякі значення x 1, x 2, x 3, . . , xn-1 її перших (n-1) аргументів та розглянемо рівняння f(x 1, x 2, x 3, . . , xn-1, у) = xn Значення виразу для заданої функції f залежить від значення x 1, x 2, x 3, . . , xn-1, xn, тому вираз дає часткову функцію змінних параметрів x 1, x 2, x 3, . . , xn-1, xn, що визначає µ-оператор. 17

Оператор мінімізації (µу) Наприклад, отримаємо за допомогою µоператора функцію d(x, y): d(x, y)=µz[y+z=x]= = Оператор мінімізації (µу) Наприклад, отримаємо за допомогою µоператора функцію d(x, y): d(x, y)=µz[y+z=x]= = µz[S((I 32 (x, y, z), I 33 (x, y, z), )]= I 31 (x, y, z). Обчислимо функція d(7, 2). Для цього необхідно задати у значення 2 та встановити змінній Z послідовно значення 0, 1, 2. . , кожного разу обчислюючи суму у+z. Як тільки вона дорівнюватиме 7, то відповідне значення 18 прийняти за значення d(7, 2).

Оператор мінімізації (µу) • • Проведемо обчислення: z=0 2+0=2 < > 7 z=1 2+1=3 Оператор мінімізації (µу) • • Проведемо обчислення: z=0 2+0=2 < > 7 z=1 2+1=3 < > 7 z=2 2+2=4 < > 7 z=3 2+3=5 < > 7 z=4 2+4=6 < > 7 z=5 2+5=7=7 Таким чином d(7, 2)=5. 19

 • Означення. Функція називається примітивнорекурсивною, якщо вона бути утворена з найпростіших функцій за • Означення. Функція називається примітивнорекурсивною, якщо вона бути утворена з найпростіших функцій за допомогою скінченого числа застосувань операторів суперпозиції Snm та примітивної рекурсії Rn. • Означення. Функція називається частковорекурсивною, якщо вона бути утворена з найпростіших функцій за допомогою скінченого числа застосувань операторів суперпозиції Snm , примітивної рекурсії Rn та мінімізації µу. 20

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

 • Гіпотеза(теза) Черча. Клас алгоритмічно обчислювальних часткових числових функцій збігається з класом усіх • Гіпотеза(теза) Черча. Клас алгоритмічно обчислювальних часткових числових функцій збігається з класом усіх частково-рекурсивних функцій. У формулювання цієї тези входить інтуїтивне поняття обчислювальності, тому його не можна ні спростувати, ні довести. Це факт, на користь якого свідчить багаторічна математична практика. Історично це була перша гіпотеза щодо зв’язків між класами інтуїтивних і точних 22 алгоритмів.

3. 2 Алгоритмічні моделі • Точне визначення класу рекурсивних функцій разом з тезою Черча 3. 2 Алгоритмічні моделі • Точне визначення класу рекурсивних функцій разом з тезою Черча надає одне з можливих варіантів щодо уточнення поняття алгоритму. Але це уточнення в цілому не пряме, бо поняття обчислювальної функції є вторинне по відношенню до поняття алгоритму. Виникає питання, чи не можна уточнити безпосередньо саме поняття алгоритму, а вже потім, за його допомогою визначити точно клас обчислювальних функцій? 23

Алгоритмічні моделі Основна ідея полягала в тому, що алгоритмічні процеси – це процеси, які Алгоритмічні моделі Основна ідея полягала в тому, що алгоритмічні процеси – це процеси, які може здійснювати відповідним чином влаштована «машина» . В зв’язку з розвитком сучасної обчислювальної техніки така алгоритмічна модель має особливий інтерес, бо в ній поняття алгоритму базується на командно-адресному принципі. Для наукового аналізу обчислювальних процесів, які можуть бути реалізовані машиною, бажано було знайти просту за своєю логічною структурою схему алгоритмічної машини, яка може бути предметом точної математичної теорії. 24

Алгоритмічні моделі • В відповідності до цієї думки вчені створили в точних математичних термінах Алгоритмічні моделі • В відповідності до цієї думки вчені створили в точних математичних термінах «машинні моделі» (математичні абстракції), на яких вдалося імітувати дію алгоритмів. Це було зроблено Постом і Т’юрінгом в 1936 -1937 рр. незалежно один від одного і майже одночасно з роботами Черча. Пізніше, у 50 -х роках двадцятого століття до їх приєднався А. А. Марков. Алгоритмічні моделі цих вчених є претендентами на право бути 25 формалізаціями поняття «алгоритм» .

3. 3 Машини Т’юрінга • Перший важливий й достатньо широкий клас алгоритмів був введений 3. 3 Машини Т’юрінга • Перший важливий й достатньо широкий клас алгоритмів був введений • А. Т’юрінгом і Е. Постом в 1936 -1937 рр. Алгоритми цього класу здійснюються особливими машинами, званими в даний час машинами Тюрінга-Поста або просто машинами Т’юрінга. Машини Т’юрінга копіюють в істотних рисах роботу людини і часто розглядаються в якості математичної моделі для вивчення функціонування людського мозку. 26

Машини Т’юрінга • Машина Т’юрінга – це математична модель, яка породжує обчислювальні процеси. Ідея Машини Т’юрінга • Машина Т’юрінга – це математична модель, яка породжує обчислювальні процеси. Ідея машини Т’юрінга базується на загальному аналізі процесів обчислення значень функцій обчислювачем. При цьому має місце основна гіпотеза теорії алгоритмів ( теза Т’юрінга ) : будь-який алгоритм може бути реалізований в машині Т’юрінга. Теза має зміст в тому, що кожна функція, для якої складений алгоритм знаходження її значень, представима машиною Т’юрінга, тобто є обчислювальною. 27

Машини Т’юрінга • Зафіксуємо два скінчених алфавіти – А= ={a 0, a 1, …, Машини Т’юрінга • Зафіксуємо два скінчених алфавіти – А= ={a 0, a 1, …, an}, де n ≥ 0, і Q = {q 0, q 1, …, qm}, де m ≥ 1. При цьому А будемо називати зовнішнім алфавітом, а Q – внутрішнім алфавітом або алфавітом станів. Додатково поставимогу, щоб А ∩ Q =Ø і символи → , L, R не належать А Q. Один символ з А називають порожнім, зазвичай його позначають . Всі інші букви з А називають не порожніми. Візьмемо об’єднаний алфавіт B= А Q {→ , L, R}. Виділимо серед слів алфавіту В команди, які представляють слова одного з трьох видів: 28

Машини Т’юрінга • qiaj → qkal; 2) qiaj → qk. L; 3) qiaj → Машини Т’юрінга • qiaj → qkal; 2) qiaj → qk. L; 3) qiaj → qk. R; де 1 ≤ i ≤ m, 0 ≤ j ≤ n, 0 ≤ k ≤ m, 0 ≤ l ≤ n. Ці команди читаються відповідно так: • перебуваючи в стані qi і спостерігаючи символ aj, перейти в стан qk і написати символ al; • перебуваючи в стані qi і спостерігаючи символ aj, перейти в стан qk і переміститись вліво на один символ ; • перебуваючи в стані і спостерігаючи символ, перейти в стан qk і переміститись вправо на один символ. 29

Машини Т’юрінга Скінчена послідовність команд складає програму P з зовнішнім алфавітом А і внутрішнім Машини Т’юрінга Скінчена послідовність команд складає програму P з зовнішнім алфавітом А і внутрішнім алфавітом Q. В кожній команді програми виділимо її ліву частину – це підслово до символу «→» і праву частину – підслово після символу «→» . 30

Машини Т’юрінга • Означення. Машиною Т’юрінга (МТ) називається впорядкована шістка { A, Q, a Машини Т’юрінга • Означення. Машиною Т’юрінга (МТ) називається впорядкована шістка { A, Q, a 0, q 1, P }, яка задовольняє такі умови: • множини А і Q скінчені, не перетинаються і не містять символів → , L, R; • a 0 А, q 0 Q, q 1 Q. При цьому a 0 називається символом порожньої комірки, q 1 - початковий стан машини, q 0 - стан, в якому машина зупиняється; • Р – програма із зовнішнім алфавітом А і внутрішнім алфавітом Q, причому : • а) програма не містить двох різних команд з однаковими лівими частинами; • б) будь-яка з команд не починається символом q 0. 31

Машини Т’юрінга Отже, МТ – це алгоритмічна модель, а не фізична машина. Проте для Машини Т’юрінга Отже, МТ – це алгоритмічна модель, а не фізична машина. Проте для кращого розуміння роботи цієї машини її можна уявити у вигляді автоматичного пристрою ( див. рисунок). 32

Машини Т’юрінга Пристрій оглядає стрічку, поділену на комірки, яку можна уявити необмеженою в обох Машини Т’юрінга Пристрій оглядає стрічку, поділену на комірки, яку можна уявити необмеженою в обох напрямках. В кожний конкретний момент часу пристрій знаходиться в деякому стані qi і спостерігаючи символ aj, записаний в одній із комірок. Залежно від того, в якому стані перебуває пристрій ті який символ він спостерігає, пристрій здійснює дію, яка може полягати в тому, що пристрій на місце aj запише al а сам перейде в новий стан qk (вико-нується команда першого виду), або переміс-титься вліво на одну комірку і змінить свій стан на qk (виконується команда другого виду), або переміститься вправо на одну комірку і змінить стан на qk 33 ((виконується команда третього виду).

Машини Т’юрінга • Означення. Машинним словом або конфігурацією називається будь-яке слово в алфавіті А Машини Т’юрінга • Означення. Машинним словом або конфігурацією називається будь-яке слово в алфавіті А { qi }, для якого qi Q, причому символ qi входить в це слово один раз і не на останньому місці. • Приклад. Нехай задані алфавіти А={a 0, 1}, Q={q 0, q 1, q 2}. Тоді слова a 01 a 0 a 0 q 1 a 0 , a 01 q 21, q 0111 a 0 є конфігураціями, а слова a 0111 q 1 , q 11 a 0 q 21 a 0, a 0 q 1 q 11 – до конфігурацій не належать. В процесі роботи МТ здійснюється перехід від одного машинного слова до іншого. При цьому відбувається певне перетворення слів алфавіту А. 34

Машини Т’юрінга • Будемо говорити, що МТ перетворює машинне слово α в машинне слово Машини Т’юрінга • Будемо говорити, що МТ перетворює машинне слово α в машинне слово γ • ( записують МТ(α)= γ ), якщо існує скінчена послідовність слів γ 0, γ 1, …, γn , для яких виконуються умови : • γ 0 = α, γn = γ; • слово γі+1 одержане з γі дією МТ в один крок за визначеним правилом. • МТ може перетворити задане слово тільки в одне слово. Якщо МТ не перетворює слово α ні в яке слово, то говорять, що ця машина не застосовна до слова α або значення МТ(α) не визначене. 35

Машини Т’юрінга • Приклад 7. ? Знайти результат застосування МТ з зовнішнім алфавітом {a Машини Т’юрінга • Приклад 7. ? Знайти результат застосування МТ з зовнішнім алфавітом {a 0, 1, 2}, внутрішнім алфавітом {q 0, q 1, q 2, q 3, q 4, q 5} і програмою q 11→ q 2 R , q 22→ q 21, • q 21→ q 3 R, q 32→ q 3 R, q 31→ q 42, q 42→ q 4 R, q 4 a 0→ q 5 L, q 52→ q 5 L, q 51→ q 5 L, q 5 a 0→ q 0 R до слова 1221. • Розв’язок. Виходячи з початкової конфігурації q 11221, знайдемо кінцеву конфігурацію, якщо вона існує. Маємо перетворення МТ за заданою програмою: • q 11221→ 1 q 2121→ 11 q 321→ 112 q 31→ 112 q 42→ 1122 q 4 a 0→ 112 q 52→ • → 11 q 522→ 1 q 5122→ q 51122→ q 5 a 01122→ q 01122. • Отже, слово 1221 МТ перетворює в слово 1122. 36

Машини Т’юрінга • Означення. Функція називається обчислювальною за Т’юрінгом, якщо існує машина Т’юрінга, яка Машини Т’юрінга • Означення. Функція називається обчислювальною за Т’юрінгом, якщо існує машина Т’юрінга, яка обчислює значення цієї функції для будь-якого набору значень аргументів із області визначення функції і не застосовна до наборів значень аргументів, що не входять в область визначення цієї функції. • Для обчислення числових функцій на МТ часто використовують спеціальне кодування чисел. Наприклад, невід’ємне ціле число m можна позначити словом (задати набором) з (m +1) одиниць, або скорочено 1 m +1. Тобто, 0 задають як 1, 1 – як 11, 2 – як 111 тощо. Символом порожньої комірки буде слово 0. Тоді для побудови МТ буде достатньо зовнішнього алфавіту А={0, 1}. 37

3. 4 Нормальні алгоритми Маркова • Розглянемо ще один підхід до уточнення поняття алгоритму, 3. 4 Нормальні алгоритми Маркова • Розглянемо ще один підхід до уточнення поняття алгоритму, запропонований російським математиком А. А. Марковим на початку 1950 -х років. Досвід вивчення і застосування математики показує, що всі відомі алгоритми можна розбити на найпростіші кроки елементарні операції. В якості елементарної операції, на базі якої збудовано нормальні алгоритми, А. А. Марков запропонував застосувати підстановку одного слова замість іншого. 38

Нормальні алгоритми Маркова • Нормальні алгоритми Маркова (НАМ) перетворюють рядки, які задані у будь-якому Нормальні алгоритми Маркова • Нормальні алгоритми Маркова (НАМ) перетворюють рядки, які задані у будь-якому скінченому алфавіті , у рядки у тому ж самому алфавіті. • Перейдемо до точних означень. Алфавітом будемо називати не порожню скінченну множину Е деяких символів. Символи «→» та « • » не повинні належати алфавіту Е. Елементи алфавіту називатимемо також буквами. Слово в алфавіті Е - це скінченна або порожня послідовність його букв. Порожнє 39 слово позначимо .

Нормальні алгоритми Маркова • Множину всіх слів в алфавіті Е позначимо через Е*. Нехай Нормальні алгоритми Маркова • Множину всіх слів в алфавіті Е позначимо через Е*. Нехай Р, Q Е*, тоді вирази Р →Q, Р→ • Q називаються відповідно формулами простої та заключної підстановки. При цьому перша з них означає, що замість Р потрібно вставити слово Q та перейти до наступної підстановки, а в другій формулі після підстановки процес закінчується. 40

Нормальні алгоритми Маркова • Нехай Р→ ( • )Q означає будь-яку з формул підстановки Нормальні алгоритми Маркова • Нехай Р→ ( • )Q означає будь-яку з формул підстановки (просту чи заключну). Нормальний алгоритм в алфавіті Е вважається заданим, якщо задана скінчена схема (таблиця) формул підстановок слів алфавіту Е • 41

Нормальні алгоритми Маркова • Означення. Нормальним алгоритмом Маркова (НАМ) в алфавіті Е називається пара Нормальні алгоритми Маркова • Означення. Нормальним алгоритмом Маркова (НАМ) в алфавіті Е називається пара Е, S , яка складається з алфавіту Е та схеми S в цьому алфавіті. • Роботу нормального алгоритму Маркова можна описати за такий спосіб. Нехай задано слово α Е*. Знаходимо першу в схемі S таку формулу підстановки αi →( • )βi , що αi є підсловом α. Підставляємо в слово α слово βi замість першого входження αi в α. Нехай γi – результат цієї підстановки. Якщо формула підстановки виявилась заключною, тобто αi → • βi , то робота алгоритму закінчується і А(α) = γi. 42

Нормальні алгоритми Маркова • Якщо формула підстановки виявилась простою, тобто αi → βi , Нормальні алгоритми Маркова • Якщо формула підстановки виявилась простою, тобто αi → βi , то до • слова γi застосовуємо той же самий пошук, який застосовувався до слова α і так далі. Якщо врешті-решт одержимо таке слово γi , що жодне із слів α 1, α 2, … αn не входить в γi як підслово, то робота алгоритму закінчується і А(α) = γi. Якщо описаний процес не закінчується ніколи, то говоримо, що алгоритм А не застосовний до слова α. 43

Нормальні алгоритми Маркова • Приклад 7. 3. Розглянемо алгоритм який заданий у алфавіті Е={a, Нормальні алгоритми Маркова • Приклад 7. 3. Розглянемо алгоритм який заданий у алфавіті Е={a, b} схемою підстановок : Застосуємо його дію до слова Х = abba. 44

Нормальні алгоритми Маркова • Першою підстановкою ми зі слова «abba» одержимо слово Х 1 Нормальні алгоритми Маркова • Першою підстановкою ми зі слова «abba» одержимо слово Х 1 = bbba. Далі перша і друга підстановка до слова Х 1 не діє, за третьою підстановкою зі слова «bbba» одержимо слово Х 2= bbaa, до якого застосовна лише третя підстановка, яка перетворює його у слово Х 3=baaa. До слова Х 3 застосовні друга і третя підстановки, причому спочатку повинна виконуватись друга підстановка, але оскільки вона є заключною, то після її дії процес перетворення слів закінчується. Отже слово «baaa» переходить в слово Х 4 = ba. Таким чином 45 А(abba) =ba.

Нормальні алгоритми Маркова • Означення. Функція називається нормально обчислювальною, якщо існує такий нормальний алгоритм, Нормальні алгоритми Маркова • Означення. Функція називається нормально обчислювальною, якщо існує такий нормальний алгоритм, який обчислює значення цієї функції для будь-якого набору значень аргументів із області визначення функції і не застосований до наборів значень аргументів, що не входять в область визначення цієї функції. • Постає питання про клас функцій, які можна обчислювати за допомогою нормальних алгоритмів. З цього приводу А. А. Марковим була сформульована гіпотеза, що одержала 46 назву принципу нормалізації Маркова.

Нормальні алгоритми Маркова • Принцип нормалізації Маркова. Клас нормально обчислювальних функцій збігається з класом Нормальні алгоритми Маркова • Принцип нормалізації Маркова. Клас нормально обчислювальних функцій збігається з класом обчислювальних функцій. • Аналогічно тому, як не можна довести гіпотези Черча і Т’юринга, неможливо довести і принцип нормалізації Маркова. 47

Резюме щодо уточнення поняття алгоритму • Таким чином, ми ознайомились з трьома теоріями, кожна Резюме щодо уточнення поняття алгоритму • Таким чином, ми ознайомились з трьома теоріями, кожна з яких уточнює поняття алгоритму. Виникає питання про зв’язки цих теорій між собою. Відповідь на це питання дає наступна теорема. • Теорема. Наступні класи числових функцій збігаються: • клас всіх частково рекурсивних функцій; • клас всіх функцій, обчислювальних за Т’юрингом; 48 • клас всіх нормально обчислювальних функцій.

ДЯКУЮ за увагу ! 49 ДЯКУЮ за увагу ! 49