
- •Тема 4. Елементи теорії графів
- •2. Способи завдання графа: матрицею інцидентності, списком ребер, матрицею суміжності.
- •3. Ізоморфізм графів.
- •3. Елементи графів
- •4. Маршрути в графах: ланцюги, цикли
- •5. Ейлерові графи. Необхідні та достатні умови наявності в графі ейлерова цикла (теорема Ейлера).
- •6. Досяжність і зв’язність. Компоненти зв’язності.
- •5. Операції над графами
- •6. Види графів
- •Тривіальні і повні графи.
- •2) Дерево і ліс.
- •3) Дерево з коренем.
- •Тема 5. Елементи теорії алгоритмів
- •1. Інтуїтивне означення алгоритму. Приклади алгоритмів. Блок-схеми алгоритмів.
- •2. Проблема уточнення поняття алгоритму. Машина Тьюрінга.
- •3. Функції, обчислюванні за Тьюрінгом. Теза Тьюрінга.
- •4. Універсальна машина Тьюрінга.
- •5. Приклад числової функції, яка не є обчислюванною за Тьюрінгом.
- •6. Алгоритмічно нерозв'язувані проблеми
5. Приклад числової функції, яка не є обчислюванною за Тьюрінгом.
Кожна
машина Тьюрінга цілком визначається
деяким скінченим словом у скінченому
алфавіті
універсальної машини
.
Оскільки множина всіх скінчених слів
в скінченому алфавіті зчисленна, то і
всіх машин Тьюрінга (які відрізняються
одна від одної за суттю своєї роботи)
існує не більш ніж зчисленна множина.
Перенумеруємо
всі машини Тьюрінга, для чого всі коди
програм всіх можливих машин Тьюрінга
в алфавіті
розташуємо у вигляді фіксованої зчисленно
нескінченої послідовності наступним
чином: спочатку всі однобуквені слова
(їх буде скінчена множина, оскільки
алфавіт
скінчений), потім всі двобуквені слова
(їх також буде скінчена множина), потім
всі трьохбуквені слова і т.д. В результаті
отримаємо послідовність кодів програм
всіх можливих машин Тьюрінга. Будемо
називати число
номером машини Тьюрінга, якщо код
програми цієї машини записується словом
.
Занумерувавши всі машини Тьюрінга, ми
тим самим встановили, що множина всіх
машин Тьюрінга зчисленна.
Розглянемо
тепер множину всіх функцій, які задані
і набувають своїх значень в множині
слів в алфавіті
.
Можна показати, що ця множина незчисленна.
З іншого боку, оскільки множина всіх
можливих машин Тьюрінга зчисленна, то
і множина функцій, обчислюванних за
Тьюрінгом, також зчисленна. Звідси
випливає, що існують функції, яке не є
обчислюванними за Тьюрінгом. Згідно
тезі Тьюрінга, це буде означати, що не
існує алгоритму для обчислення значень
такої функції.
Для
довільного слова
довжини
в алфавіті
покладемо:
Теорема.
Функція
не є обчислюваною за Тьюрінгом.
Доведення.
Припустимо супротивне, тобто що існує
машина Тьюрінга
,
яка обчислює
цю функцію. Нехай
– номер цієї машини у множині всіх машин
Тьюрінга. Припустимо, що М переробляє
слово
в слово
в алфавіті
.
Тоді за означенням обчислюванності
функції
на машині
це означає, що
.
Але, з іншого боку, за самим означенням
функції
,
це означає, що
.
Отримана суперечність доводить, що
машини Тьюрінга,
яка
обчислює функцію
,
не існує.
6. Алгоритмічно нерозв'язувані проблеми
Масова проблема (тобто нескінченний клас однотипних проблем) називається алгоритмічно нерозв‘язуваною, якщо не існує єдиної ефективної процедури, за допомогою якої може бути розв’язаний будь-який окремий випадок цієї проблеми (тобто будь-яка проблема даного класу). Зауважимо, що не дивлячись на відсутність єдиного способу розв’язування, кожна окрема проблема може бути розв’язана своїм індивідуальним способом.
Приклади алгоритмічно нерозв’язуваних проблем:
-
Проблема зупинки для машин Тьюрінга (тобто проблема визначення результативності алгоритмів).
Для заданої машини Тьюрінга і вихідних даних вказати алгоритм, який визначав би, чи зупиниться машина Тьюрінга при цих даних чи ні.
Для
окремих класів машин Тьюрінга проблема
зупинки є розв’язуваною. Наприклад,
машина М з зовнішнім алфавітом
,
внутрішньою пам'яттю
і програмою
,
з будь-якого початкового стану буде
працювати нескінченно, заповнюючи
одиницями всю стрічку вправо від
початкової точки.
-
Проблема самозастосовності машин Тьюрінга є окремим випадком проблеми зупинки.
Для заданої машини Тьюрінга вказати алгоритм, який вирішував би проблему зупинки у випадку, коли на стрічці машини записана її власна програма, тобто який визначав би, чи самозастосовна дана машина чи ні.
-
Проблема застосовності машин Тьюрінга.
Для заданої МТ і конфігурації в ній вказати алгоритм, що дозволяє з’ясувати, чи застосовна машина до даної конфігурації чи ні.
Крім теорії машин Тьюрінга алгоритмічно нерозв'язувані проблеми існують в арифметиці, алгебрі, логіці й інших областях математики. Наприклад:
4. Для заданого многочлена з цілими коефіцієнтами вказати алгоритм, що дозволяє довідатися, чи існують цілі значення змінних, які обертають цей многоч лен у нуль, чи ні.