Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЕК. Алгоритмізація. Конспект лекцій.docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
1.89 Mб
Скачать
    1. Проблема відсутності загального методу вирішення задачі

Ця проблема визначає певний клас алгоритмічно нерозв’язних задач, приклади:

1. Розподіл дев’яток у запису числа π:

Визначимо функцію f(n) = i, де n – кількість цифр “9” підряд у десятковому запису числа π, а i – номер найбільш лівої дев’ятки із n тих, що йдуть підряд, наприклад: π =3,141592…; f(1) = 5

Задача полягає у визначенні f(n) для довільного n.

Оскільки число π є ірраціональним і трансцендентним, то ми не знаємо жодної інформації про розподіл дев'яток (так само як і будь-яких інших цифр) в десятковому записі числа. Обчислення f (n) пов'язане з обчисленням наступних цифр у розкладі π, до тих пір, поки ми не виявимо n дев'яток поспіль, однак у нас немає загального методу обчислення f (n), тому для деяких n обчислення можуть тривати нескінченно - ми навіть не знаємо в принципі (за природою числа π) чи існує рішення для всіх n.

2. Обчислення досконалих чисел

Досконалі числа – це числа, які дорівнюють сумі своїх дільників, наприклад: 28 = 1+2+4+7+14.

Визначимо функцію S (n) = n-е за рахунком досконале число і поставимо задачу обчислення S (n) по довільно заданому n.

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

3. Десята проблема Гільберта

Нехай задано многочлен n-го ступеня з цілими коефіцієнтами – P, чи існує алгоритм, який визначає, чи існує розв’язок рівняння P = 0 в цілих числах?

Математиками доведено, що такого алгоритму не існує, тобто загальний метод визначення цілих коренів рівняння P=0 по цілочисельним коефіцієнтам многочлену відсутній.

    1. Проблема інформаційної невизначеності задачі

Позиціювання машини Поста на останню помічену скриньку.

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

Спроба побудови алгоритму вирішення задачі призводить до необхідності відповіді на питання – коли після визначення вправо на певну кількість M позицій і не знайшли початку наступного кортежу, чи означає це, що ще правіше бути вже помічених скриньок не може (стрічка нескінченна)?

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

    1. Проблема логічної нерозв’язності задачі

Проблема еквівалентності алгоритмів. Дано два алгоритми (наприклад, дві машини Т’юринга). Необхідно визначити, чи будуть вони повертати однаковий результат на однакових вхідних даних?

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

    1. Побудова машини т’юринга для обчислення деяких простих функцій

Розглянемо приклад простої машини Т’юринга.

Допустимо, ми маємо унарну систему числення:

Для якої описана наступна машина Т’юринга:

Пояснення: перша цифра (не виділена) зліва від стрілки означає стан, у якому машина знаходиться, а справа – стан, у який вона має перейти.

Виділена цифра зліва від стрілки – символ на стрічці, який в даний момент часу зчитує пристрій. Вона заміняє цей символ виділеною цифрою справа від стрілки.

R – означає, що пристрій має переміститися вздовж стрічки вправо, а L – вліво, STOP – зупинитися.

Навіщо потрібна дана машина?

Запустимо машину на наступній стрічці (початковий стан «0» і починає виконуватися з крайньої лівої позиції стрічки):

(Представлене на стрічці число представляє собою десяткове число «чотири»).

Розглянемо покрокове виконання машини:

  • Машина зчитує «0», оскільки вона знаходиться у стані «0», то виконується наступна інструкція: , тобто машина записує на стрічку «0», переходить у стан «0» і переходить по стрічці вправо.

  • Машина зчитує «1», оскільки вона знаходиться у стані «0», то виконується наступна інструкція: , тобто машина записує на стрічку «1», переходить у стан «1» і переходить по стрічці вправо.

  • Машина зчитує «1», оскільки вона знаходиться у стані «1», то виконується наступна інструкція: , тобто машина записує на стрічку «1» переходить у стан «1» і переходить по стрічці вправо.

  • Машина зчитує «0», оскільки вона знаходиться у стані «1», то виконується наступна інструкція: , тобто машина записує на стрічку «1», переходить у стан «0» і зупиняється.

Який буде результат на стрічці?