55
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ Государственное образовательное учреждение высшего профессионального образо- вания «ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ ПЕДАГОГИЧЕСКИЙ УНИВЕРСИТЕТ» Кафедра информатики и методики преподавания математики УТВЕРЖДАЮ Проректор по учебной работе ___________Г.П.Иванова «_____»_____________200___г. Учебно-методический комплекс по дисциплине Теория алгоритмов для специальности 032100.00 «Математика» с дополнительной специальностью 032200 «Физика» Воронеж – 200_

hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ Государственное образовательное учреждение высшего профессионального образо-

вания «ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ ПЕДАГОГИЧЕСКИЙ УНИВЕРСИТЕТ»

Кафедра информатики и методики преподавания математики

УТВЕРЖДАЮ Проректор по учебной работе ___________Г.П.Иванова «_____»_____________200___г.

Учебно-методический комплекс по дисциплине

Теория алгоритмов

для специальности 032100.00 «Математика» с дополнительной специальностью 032200 «Физика»

Воронеж – 200_

Page 2: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ Государственное образовательное учреждение высшего профессионального образо-

вания «ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ ПЕДАГОГИЧЕСКИЙ УНИВЕРСИТЕТ»

Кафедра информатики и методики преподавания математики

РАБОЧАЯ ПРОГРАММА

дисциплины «Теория алгоритмов»

для специальности 032100.00 «Математика» с дополнительной специальностью 032200 «Физика»

Курс обучения 3 Семестр 6 Всего часов по учебному плану: 90 В том числе по формам обучения: очная

- лекции 18 - лабораторные работы 18

- самостоятельная работа 54 Формы итогового контроля знаний:

- зачет - экзамен 6

Составитель: доцент Р.Х. Вахитов Программа утверждена на заседании кафедры «____»___________200_г., протокол №_____ Заведующий кафедрой _____________________А.С. Потапов

Воронеж 200_

Page 3: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

1. ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

Дисциплина «Теория алгоритмов» специальности 032100.00 «Матема-

тика» с дополнительной специальностью 032200 «Физика» относится к циклу

дисциплин предметной подготовки – ДПП.Ф.10.

В учебных планах даны новые номера специальностей 032100 «Мате-

матика», 032200 «Физика» после перекодировки – соответственно 050201

«Математика», 050203 «Физика».

Дисциплина «Теория алгоритмов» изучается в 6 семестре, на специаль-

ностях «Математика – Физика», «Математика – Информатика».

Межпредметные связи: Математическая логика, Теоретические основы

информатики, Элементы абстрактной и компьютерной алгебры.

Цель – формирование систематизированных знаний в области теории

алгоритмов и развитие самостоятельности, элементов поисковой деятельно-

сти, творческого подхода к решению теоретико-алгоритмических задач в

компьютерных науках.

Задачи: знать интуитивное определение алгоритма и разрешимого от-

ношения, уметь составлять программы машин Тьюринга и владеть навыками

применения частично рекурсивных функций, знать понятие сложности алго-

ритмов.

2. ТЕМАТИЧЕСКИЙ ПЛАН

№п/п Наименование разделов и

тем

Всего в

трудо-

емко-

сти

Из них аудиторных СРС

Все-

го

Лекций Лабор.

1 Частично рекурсивные

функции

28 10 6 4 18

2 Машины Тьюринга 32 14 4 10 18

3 Разрешимые отношения 30 12 8 4 18

Итого: 90 36 18 18 54

Page 4: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

3. СОДЕРЖАНИЕ УЧЕБНОЙ ДИСЦИПЛИНЫ

1. Частично рекурсивные функции. Основные требования к алгорит-

мам. Необходимость уточнения понятия алгоритма. Понятие вычислимой

функции. Числовые функции, исходные для построения частично рекурсив-

ных функций. Операторы подстановки, примитивной рекурсии, минимиза-

ции. Тезис Черча. Частично рекурсивные функции и рекурсивные предикаты.

Определение примитивно рекурсивных функций. Рекурсивные предикаты

(отношения). Ограниченные суммы, произведения, обобщения и подтвер-

ждения с ограниченными кванторами, ограниченные μ-операторы.

2. Машины Тьюринга. Вычислимые по Тьюрингу функции. Тезис

Тьюринга. Понятие нумерации множества и эффективно счетного множест-

ва. Нумерация машин Тьюринга и ее применение к проблеме остановки.

3. Разрешимые отношения. Определение машины с неограниченными

регистрами (МНР) и функции, вычислимой при помощи МНР. Универсаль-

ной функции. Применение универсальной функции к проблеме неразреши-

мости. Теорема о параметризации. Разрешимые и неразрешимые проблемы.

Алгоритмическая сводимость одной проблемы к другой проблеме. Времен-

ная сложность машины Тьюринга. Теорема Блюма об ускорении. 4. ТЕМАТИКА ЛАБОРАТОРНЫХ ЗАНЯТИЙ

п/п

Наименова-

ние раздела

учебной дис-

циплины

Наименование

лабораторных работ

Всего

часов

1 Частично ре-

курсивные

функции

Представление примитивно рекурсивных

функций в системе Mathematica 5.0 2

Представление частично рекурсивных

функций в системе Mathematica 5.0 2

2 Машины Тью-

ринга

Знакомство с симулятором машины Тью-

ринга 2

Page 5: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

2 Машины Тью-

ринга

Одноместные функции, вычислимые по

Тьюрингу 2

Двухместные функции, вычислимые по

Тьюрингу 2

Функции, определяемые по кусочной схеме 2

Удвоение. Синтез машин Тьюринга 2

3 Разрешимые

отношения

Усеченная разность и модуль разности 2

Разрешимые по Тьюрингу отношения 2

ИТОГО: 18

7. РЕКОМЕНДАЦИИ К САМОСТОЯТЕЛЬНОЙ РАБОТЕ СТУДЕНТОВ

Рекомендации по организации работы студентов:

1) Практические занятия по всем разделам с последующей проверкой

домашней работы. 2) Самостоятельное изучение отдельных вопросов, реше-

ние задач и доказательство теорем, предлагаемых на лекциях для самостоя-

тельного решения.

На самостоятельную работу выносятся следующие вопросы.

1) Доказательство вычислимости частично рекурсивных функций.

2) Полная проверка доказательства теорем об ограниченных суммах,

произведениях, кванторах и μ-операторах.

3) Проверка изменений конфигураций для всех рассматриваемых про-

грамм машин Тьюринга.

4) Применение универсальной функции и теоремы о параметризации к

доказательству теорем о неразрешимости проблем 9. ВОПРОСЫ К ЭКЗАМЕНУ

1. Интуитивное определение алгоритма и вычислимой функции

2. Определение примитивно рекурсивных функций (ПРФ)

3. Определение частично рекурсивных функций

4. Вычислимость частично рекурсивных функций. Тезис Черча

Page 6: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

5. Общерекурсивные, но не примитивно рекурсивные функции

6. Применение оператора подстановки для построения ПРФ

7. Применение схемы рекурсии для одноместной функции

8. Применение схемы рекурсии для двухместной функции

9. Усеченная разность и модуль разности как ПРФ

10. Отношения равенства и неравенства примитивно рекурсивны

11. Отношения порядка примитивно рекурсивны

12. Разрешимые отношения (рекурсивные предикаты)

13. Ограниченные суммы как операторы для построения ПРФ

14. Ограниченные произведения как операторы для построения ПРФ

15. Обобщение и подтверждение с ограниченными кванторами

16. Построение ПРФ с помощью ограниченного μ-оператора

17. Функции, задаваемые по кусочной схеме

18. Команды, конфигурации и программы машины Тьюринга

19. Функции, вычислимые по Тьюрингу. Тезис Тьюринга

20. Нумерация множества упорядоченных пар натуральных чисел

21. Применение нумерации машин Тьюринга к проблеме остановки

22. Существование функции, невычислимой по Тьюрингу

23. Машины с неограниченными регистрами (МНР)

24. Определение и примеры МНР вычислимых функций

25. Определение и примеры универсальных функций

26. Универсальная функция для класса всех ПРФ

27. Применение универсальной функции к неразрешимым проблемам

28. Теорема о параметризации (с неформальным доказательством)

29. Разрешимые и неразрешимые отношения (проблемы)

30. Алгоритмическая сводимость одной проблемы к другой

31. Теорема Райса

32. Временная сложность машины Тьюринга. Аксиомы Блюма

33. Верхняя граница меры сложности

34. Теорема Блюма об ускорении

Page 7: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

10. РЕКОМЕНДУЕМАЯ ЛИТЕРАТУРА

1. Основная литература

1. Матрос Д.Ш., Поднебесова Г.Б. Теория алгоритмов. – М.: БИНОМ, Лабо-

ратория знаний, 2008. – 208 с.

2. Игошин В.И. Задачи и упражнения по математической логике и теории ал-

горитмов. - М.: Академия, 2007. – 304 с.

3. Игошин В.И. Математическая логика и теория алгоритмов. – М.: Акаде-

мия, 2008. – 448 с.

4. Судоплатов С.В., Овчинникова Е.В. Математическая логика и теория алго-

ритмов. - М.: Инфра-М, 2008. – 224 с.

2. Дополнительная литература

1. Мальцев А.И. Алгоритмы и рекурсивные функции. – М. Наука, 1986. – 368 с.

2. Фалевич Б.Я. Теория алгоритмов. – М.: Машиностроение, 2008. – 160 с.

3. Катленд Н. Вычислимость. Введение в теорию рекурсивных функций. –

М.: Мир, 1983. – 256 с.

4. Мирзоев В.Н. Теория алгоритмов (теория вычислимых функций). –

Воронеж, 2004. – 74 с.

Page 8: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ Государственное образовательное учреждение высшего профессионального образо-

вания «ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ ПЕДАГОГИЧЕСКИЙ УНИВЕРСИТЕТ»

Кафедра информатики и методики преподавания математики

Комплект учебно-методических материалов к учебной дисциплине:

Теория алгоритмов

КОНСПЕКТ ЛЕКЦИЙ

для специальности 032100.00 «Математика» с дополнительной специальностью 032200 «Физика»

Ведущий лектор:

Вахитов Р.Х, доцент, кандидат физико-математических наук, доцент

Воронеж 200_

Page 9: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

Лекция № 1.

ТЕМА: АЛГОРИТМЫ И ЧАСТИЧНО РЕКУРСИВНЫЕ ФУНКЦИИ

Основные вопросы, рассматриваемые на лекции:

1. Интуитивное понятие алгоритма и вычислимой функции

2. Необходимость уточнения понятия алгоритма и вычислимой функции

3. Функции, исходные для построения частично рекурсивных функций

4. Оператор подстановки, или суперпозиции

5. Оператор примитивной рекурсии

6. Оператор минимизации, или μ-оператор

7. Определение частично рекурсивной функции

Краткое содержание лекционного материала

Основные черты (или основные требования к определению) интуитив-

ного понятия алгоритма: массовость, определенность, дискретность, детер-

минированность, направленность. Примеры алгоритмов: арифметические

действия над числами в десятичной записи; алгоритм Евклида нахождения

НОД двух чисел. Эффективно вычислимые и вычислимые функции. Необхо-

димость уточнения понятия алгоритма: 1) для решения задач неразрешимо-

сти; 2) для изучения теоретических вопросов информатики.

Строгие определения понятия алгоритма (машины Тьюринга, нормаль-

ные алгорифмы Маркова, частично рекурсивные функции и т.д.) найдены,

изучены и успешно применяются в математике и информатике.

Функции, исходные в построении частично рекурсивных функций:

• одноместная нулевая функция o(x)=0;

• одноместная функция прибавления единицы, или следования, s(x)=x+1;

• n-местные функции выбора координаты, или проекции (n>0, i=1,…,n),

Iin(x1,...,x n)=xi. В частности, – тождественная функция. xxI =)(1

1

Операции над числовыми функциями называются операторами. Опе-

раторы, используемые в построении частично рекурсивных функций:

• (m+1)-местные операторы суперпозиции, или подстановки, S m +1;

Page 10: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

• двухместный оператор примитивной рекурсии R;

• одноместный оператор минимизации M (или μ-оператор).

Говорят, что функция h получена из функций f и m функций g1, …, gm

при помощи оператора суперпозиции S m +1 и пишут h=S m +1(f,g1,…,gm), если

h(x1,...,xn)=f(g1(x1,...,xn),…,gm(x1,...,xn)) для всех x1,...,x n∈N (m≥1, n≥0).

Когда определено значение функции h(x1,...,x n)?

h(x1,...,xn) определено и равно z, если

g1(x1,...,xn) определено и равно y1,

………………………………………,

gm(x1,...,xn) определено и равно ym,

f (y1,…,ym) определено и равно z;

иначе h(x1,...,x n) не определено.

Если m=1, то h=S 2 (f,g) является обычной композицией функций g и f.

Говорят, что функция h получена из функций f и g при помощи опера-

тора примитивной рекурсии R и пишут h=R(f,g), если:

h(x1,…,xn−1,0)=f(x1,…,xn−1),

h(x1,…,xn−1,y+1)=g(x1,…,xn−1,y,h(x1,…,xn−1,y))

для всех x1,…,xn−1,y∈N (n≥1). При n=1 f является константой.

Когда определено значение функции h(x1,…,xn−1,y)?

h(x1,…,xn−1,y) определено и равно zy, если

f(x1,…,xn−1) определено и равно z0,

g(x1,…,xn−1,0,z0)) определено и равно z1,

g(x1,…,xn−1,1,z1)) определено и равно z2,

……………………………………………….,

g(x1,…,xn−1,y−1,zy−1)) определено и равно zy;

иначе h(x1,…,xn) не определено.

Пусть функция f(x1,…,xn−1,y) удовлетворяет условию "либо значение

f(x1,…,xn−1,y) не определено для всех y, либо найдется число y0, такое, что

значение f(x1,…,xn−1,y) определено для всех y≤y0 и равно xn для y=y0".

Page 11: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

Запись μy[f(x1,…,xn−1,y)=xn] означает "наименьшее y, такое, что

f(x1,…,xn−1,y) определено и равно xn".

Говорят, что функция g получена из функции f при помощи оператора

минимизации M и пишут g=M(f), если g(x1,…,xn)=μy[f(x1,…,xn−1,y)=xn]

для всех x1,…,xn,y∈N (n≥1).

Когда определено значение функции g(x1,…,xn)?

g(x1,…,xn) определено и равно y, если

f(x1,…,xn−1,0) определено и не равно xn,

f(x1,…,xn−1,1) определено и не равно xn,

…………………………… ….……………,

f(x1,…,xn−1,y−1) определено и не равно xn,

f(x1,…,xn−1,y) определено и равно xn;

иначе g(x1,…,xn) не определено.

Если n=1, f – биекция, то g=f−1 является функцией, обратной к f.

Заметим, что операторам примитивной рекурсии и минимизации в про-

граммировании соответствуют циклы типа for ("для") и while ("пока").

Числовая функция называется частично рекурсивной функцией, если

построена строго по следующим правилам:

1) функции o, s, Iin f частично рекурсивны;

2) если функции f, g1, …, gm частично рекурсивны, то функция

h=S m +1(f,g1,…,gm) тоже частично рекурсивна;

3) если функции f, g частично рекурсивны, то функция h=R(f,g) тоже

частично рекурсивна;

4) если функции f частично рекурсивна, то функция g=M(f) тоже час-

тично рекурсивна.

Используя интуитивное определение алгоритма, доказывается

Теорема 1. Любая частично рекурсивная функция вычислима.

Утверждение, обратное к теореме 1, не является теоремой и даже ак-

сиомой, а является непреложным фактом (законом) практики.

Page 12: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

Тезис Чёрча. Любая вычислимая функция частично рекурсивна.

Аргументы в пользу тезиса Черча: 1) все известные нам вычислимые

функции оказываются частично рекурсивными: 2) все уточнения понятия ал-

горитма приводят к одному и тому же классу вычислимых функций, напри-

мер, классы частично рекурсивных и вычислимых по Тьюрингу функций

равны; 3) машины Тьюринга послужили прообразом первых электронно-

вычислительных машин; 4) замена вычислимых функций частично рекур-

сивными функциями позволяет решать задачи неразрешимости и различные

теоретические вопросы компьютерных наук.

Частично рекурсивные функции, вообще говоря, не всюду определен-

ны, например, функция x−1 частично рекурсивна: μy[sy=x]=μy[y+1=x]=x−1, но

не определена при x=0.

Лекция № 2.

ТЕМА: ПРИМИТИВНО РЕКУРСИВНЫЕ ФУНКЦИИ И ОТНОШЕНИЯ

Основные вопросы, рассматриваемые на лекции:

1. Определение примитивно рекурсивных функций (ПРФ)

2. Применение оператора подстановки для построения ПРФ

3. Схема примитивной рекурсии для одноместной функции

4. Схема примитивной рекурсии для двухместной функции

5. Усеченная разность и модуль разности

6. Определение примитивно рекурсивных отношений

7. Отношения равенства и неравенств (≠, <, >, ≤, ≥)

Краткое содержание лекционного материала

Числовая функция называется примитивно рекурсивной функцией, если

построена строго по следующим правилам:

1) функции o, s, Iin f частично рекурсивны;

2) если функции f, g1, …, gm частично рекурсивны, то функция

h=S m +1(f,g1,…,gm) тоже частично рекурсивна;

3) если функции f, g частично рекурсивны, то функция h=R(f,g) тоже

частично рекурсивна.

Page 13: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

Используя интуитивное определение алгоритма, доказывается

Теорема 2. Любая частично рекурсивная функция всюду определенна и

вычислима.

Утверждение, обратное к теореме 2, неверно: т.н. функция Аккермана

частично рекурсивна и всюду определена, но не примитивно рекурсивна.

При помощи оператора подстановки доказывается, что постоянные

функции примитивно рекурсивны. Доказательство приведем, без потери

общности, на примере функции f (x,y)=3: f (x,y)=ssoI12(x,y).

Еще одно применение оператора подстановки: если функция получена

из ПРФ перестановкой, повторением или удалением аргументов, то тоже бу-

дет ПРФ. Доказательство приведем, без потери общности, на примере функ-

ции g(x,y,z)=f (y,x,z), где f (x,y,z) есть ПРФ: g=S4(f ,I23,I3

3,I13).

Приведем схему примитивной рекурсии для одноместной функции:

h(0)=f0=const,

h(x+1)=g(x,h(x)).

При помощи этой схемы доказываем, что функции – сигнум sg и анти-

сигнум gs являются ПРФ. Например, сигнум sg – ПРФ:

sg(0)=0,

sg(x+1)=1=soI12(x,sg(x)).

Приведем схему примитивной рекурсии для двухместной функции:

h(x,0)=f(x),

h(x,y+1)=g(x,y,h(x,y)).

При помощи этой схемы доказываем, что сложение x+y, умножение xy

и возведение в степень xy – ПРФ. Например, функция f+(x,y)=x+y – ПРФ:

f+(x,0)=x=I11(x),

f+(x,y+1)=sI33(x,y,f+(x,y)).

Вычитание не всюду определенная функция. Рассматриваются сле-

дующие две ПРФ: усеченная разность yxyx −=−& , если yx ≥ , иначе усе-

Page 14: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

ченная разность считается, равной 0, и модуль разности. При помощи опера-

тора примитивной рекурсии последовательно доказывается, что 1−&x и yx −&

ПРФ. Модуль разности тоже ПРФ, так как )()(|| xyyxyx −+−=− &&

.ложно),...,истинно,),...,

1

1

n

nxx

.

Функция называется ⎩⎨⎧

=λ(если,0(если,1

),...,( 1 nP xPxP

xx

характеристической функцией отношения P(x1,…,xn), x1,…,xn∈N.

Отношение P(x1,…,xn) называется примитивно рекурсивным, если

примитивно рекурсивна его характеристическая функция.

Полное и пустое отношения nNP = и ∅=P примитивно рекурсивны,

так как их характеристические функции 0=χ∅ – постоянные. 1=nNχ и

Теорема 3. Отношения равенства и порядка примитивно рекурсивны.

Доказательство. Вначале установим связь операций усеченной разно-

сти и модуля разности с отношениями равенства и порядка:

1||0||0|| =−⇔=−⇔=−⇔= yxgsyxsgyxyx ;

x 1)(0)(0 =−⇔=−⇔=−⇔≤ yy x y sg x y sg x ; &&&

x 0)(1)(0 =−⇔=−⇔≠−⇔> yy x y sg x y sg x . &&&

Затем представим характеристические функции отношений равенства,

неравенства и четырех порядков в виде примитивно рекурсивных функций:

yxsgyx −=λ= ),( ,

yxgsyx −=λ≠ ),( ,

)(),( yxgsyx −=λ≤ & ,

)(),( yxsgyx −=λ> & ,

)),(),((),( 21

22 yxIyxIgsyx −=λ≥ & ,

)),(),((),( 21

22 yxIyxIsgyx −=λ< & .

Пример. Отношение ≤ примитивно рекурсивно, так как характеристи-

ческая функция λ≤ выражается через ПРФ антисигнума и усеченной разности

при помощи оператора подстановки, поэтому примитивно рекурсивна.

Page 15: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

Лекция № 3.

ТЕМА: ОГРАНИЧЕННЫЕ СУММЫ, ПРОИЗВЕДЕНИЯ И КВАНТОРЫ

Основные вопросы, рассматриваемые на лекции:

1. Ограниченные суммы примитивно рекурсивны

2. Ограниченные произведения примитивно рекурсивны

3. Формулы подтверждения с ограниченными кванторами существования

4. Формулы обобщения с ограниченными кванторами существования

5. Ограниченные операторы минимизации

Краткое содержание лекционного материала

Мы рассмотрим новые операторы построения ПРФ.

Применяя оператор подстановки, можно доказать, что суммы и произ-

ведения не только двух слагаемых, но и конечного числа слагаемых, прими-

тивно рекурсивны. Кроме конечных сумм и произведений, в математике

встречаются также ограниченные суммы и произведения

Пример. Последовательность an является функцией f(n) от натурально-

го аргумента n. Ограниченная сумма 11

...v

ii

a a a=

v= + +∑ является функцией от

от натурального аргумента v. Обозначим эту функцию fΣ(v). Заметим, что мы

имеем дело с неким оператором с аргументом f и значением fΣ (у нас нет не-

обходимости обозначать этот оператор).

Теорема 4. Пусть f(x1,…,xn,y) – примитивно рекурсивная функция.

Тогда также примитивно рекурсивны следующие функции:

( )( )

⎪⎩

⎪⎨⎧

<=

∑<≤

; если,0

, если,,,...,,,,...,

11Σ

vu

vuixxfvuxxf viu

nn

( )( )

⎪⎩

⎪⎨⎧

<=

∏<≤

. если,1

, если,,,...,,,,...,

11Π

vu

vuixxfvuxxf viu

nn

Доказательство. Применим рекурсию (параметры опустим) для fΣ:

( ) ( )( ) ( ) ( ) ( )⎩

⎨⎧

−⋅+=+==

.),(1,,00,

ΣΣ

Σ

vugsvfvufvufuouf

&

Page 16: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

Действительно, fΣ(u,v+1)=f(u)+…+f(v)=fΣ(u,v)+f(v), если u<v−1, т.е.

u≤v, или 1)( =− vugs & . Аналогично применим рекурсию для fΠ:

( ) ( )( ) ( ) ( ) ( )

⎩⎨⎧

⋅=+==

− .),(1,,10,

ΠΠ

Πvugsvfvufvuf

usouf&

Заметим, что: )()()( vfififviuviu

+= ∑∑<≤≤≤

и ∏ ∏≤≤ <≤

+=viu viu

vfifif )()()( .

Далее рассмотрим формулы с ограниченными кванторами.

Допустим, что на множестве N определено (m+1)-местное отношение

P(x1,…,xm,y). Для краткости опустим параметры x1,…,xm∈N. Напомним:

подтверждение ∃yP(y) истинно, если истинно P(y) хотя бы при одном

значении y, и ложно, если ложно P(y) для всех значений y;

обобщение ∀yP(y) истинно, если истинно P(y) для всех значений y, и

ложно, если ложно P(y) хотя бы при одном значении y.

Навешивание кванторов на примитивно рекурсивные отношения, во-

обще говоря, не приводит к примитивно рекурсивным отношениям.

Рассмотрим подтверждение и обобщение с ограниченными квантора-

ми. Если P(x1,…,xm,y) – (m+1)-местный предикат, то определим следующие

два (m+2)-местных предиката (с временным обозначением E и A):

( ) ( ) ( )[ ]( ) ( ) ( )[ ].,,...,,,...,,,,...,

,,,...,,,...,,,,...,

111

111

yxxPvyuyyxxPyvuxxA

yxxPvyuyyxxPyvuxxE

mmvyum

mmvyum

⇒≤≤∀⇔∀⇔

∧≤≤∃⇔∃⇔

≤≤

≤≤

Для краткости, без потери общности, предположим, что m=0.

Теорема 5. Если P(y) –примитивно рекурсивное отношение, то отно-

шения E(u,v) и A(u,v) тоже примитивно рекурсивны.

Доказательство. Характеристическая функция λP(y) примитивно ре-

курсивна по условию. Характеристические функции λE(u,v) и λA(u,v) мож-

но представить в виде примитивно рекурсивных функций:

( ) ( )

( ) ( ).,

,,

≤≤

≤≤

λ=λ

λ=λ

vyuPA

vyuPE

yvu

ysgvu

Page 17: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

В силу теоремы 4, функции λE(u,v) и λA(u,v) являются ПРФ.

Оператор минимизации μy[…] не сохраняет примитивную рекурсив-

ность функций. Определим так называемый ограниченный оператор миними-

зации μyy≤z[…], который сохраняет примитивную рекурсивность функций.

μyy≤z[f(x1,…,xn−1,y)=xn] равно μy[f(x1,…,xn−1,y)=xn], если последнее

определено и не больше z; иначе μyy≤z[f(x1,…,xn−1,y)=xn] равно z.

Теорема 6. Пусть примитивно рекурсивная функция f(x1,…,xn−1,y), та-

кая, что либо значение f(x1,…,xn−1,y) не определено для всех y, либо най-

дется число y0, такое, что значение f(x1,…,xn−1,y) определено для всех y≤y0 и

равно xn для y=y0. Тогда функция g(x1,…,xn−1,z)=μyy≤z[f(x1,…,xn−1,y)=xn]

тоже примитивно рекурсивна.

Доказательство. Мы, без потери общности, опускаем параметры (n=1,

xn=x). Предположим, что f(0)≠x, f(1)≠x, …, f(y0−1)≠x, f(y0)=x, где 0≤y0≤z.

Тогда sg |f(0)−x |+sg |f(0)−x |⋅sg |f(1)−x |+…+sg |f(0)−x |⋅…⋅sg |f(y0−1)−x |+…

+sg |f(0)−x |⋅…⋅sg |f(y0)−x |+…+sg |f(0)−x |⋅…⋅sg |f(z)−x |=1+1⋅1+…+{0 1

1 ... 1y −

⋅ ⋅ +…

+{0 1

1 ... 1y −

⋅ ⋅ ⋅0+…+{0 1

1 ... 1y −

⋅ ⋅ ⋅0⋅∗⋅…⋅∗=0

1 1 ... 1y

+ + +14243 +0+…+0=y0 (где ∗ равно 0 или 1).

Значит, функция ( ) ( )0 0

|kz

k i

g z sg f i x= =

|= −∑ ∏ примитивно рекурсивна.

Лекция № 4.

ТЕМА: МАШИНЫ ТЬЮРИНГА. ВЫЧИСЛИМОСТЬ ПО ТЬЮРИНГУ

Основные вопросы, рассматриваемые на лекции:

1. Устройство машины Тьюринга

2. Команды машины Тьюринга

3. Работа машины Тьюринга

4. Вычислимые по Тьюрингу функции. Тезис Тьюринга

5. Примеры вычислимых по Тьюрингу функций

6. Синтез машин Тьюринга

7. Частичная рекурсивность вычислимых по Тьюрингу функций

Page 18: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

Краткое содержание лекционного материала

Алан Тьюринг в 1936 году с целью точного определения понятия алго-

ритма придумал абстрактную вычислительную машину, которую впоследст-

вии назвали машиной Тьюринга.

Устройство машины Тьюринга:

1) лента, разделенная на ячейки и бесконечная в обе стороны;

2) «вычислитель», который обозревает некоторую ячейку, считывает

символ с ячейки, стирает этот символ и вписывает новый символ в ячейку,

затем перемещается на одну ячейку влево или вправо;

3) конечный список внутренних состояний с началь-

ным состоянием и заключительным состоянием ;

0 1{ , ,..., }mQ q q q=

0q1q

4) конечный список внешних символов – символов яче-

ек и символа , обозначающего пустую ячейку;

0 1{ , ,..., }nV v v v=

1,..., nv v 0v

5) программа – список команд вида , или , при-

чем, каждой паре соответствует не более одной пары ,

i j k lq v v q i j lq v Lq i j lq v Rq

l li jq v kv q Lq или lRq

(где , , 0,1,...,i l m= , 0,1,...,j k = n 0i, ≠ , а ,L R – дополнительные символы,

обозначающие перемещение вычислителя на одну ячейку влево или вправо).

В любой момент времени заполнено конечное число ячеек ленты.

Пусть s1 – крайний левый и s2 – крайний правый символ на ленте. Тогда

последовательность символов ленты s1...s2 называется машинным.

Программа машины Тьюринга – это список команд, т.е. четверок вида

qiajakql, qiajLql или qiajRql, где i,j,k,l∈N, i≠0, причем, каждой паре qiaj соответ-

ствует не более одной пары akql, Lql или Rql.

Конфигурация машины Тьюринга – это слово машины Тьюринга, до-

полненное в любом месте одним из символов qi, причем, слева и справа мо-

жет быть дописано любое число символов пустой клетки a0. Смысл конфигу-

рации s1...qisj...s2 в том, что в данный момент времени машина находиться в

Page 19: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

состоянии qi и обозревает клетку с символом sj. При этом машина выполняет

команду, начинающуюся с пары qisj, и переходит к следующей конфигура-

ции, согласно следующим правилам:

конфигурация до выполне-

ния команды команда

конфигурация до выпол-

нения команды

s1...qiaj...s2 qiajakql s1...qlak...s2

s1...sxqiaj...s2 qiajLql s1...qlsxaj...s2

qis1...s2, s1=aj qiajLql qla0s1...s2

s1...qiajsx...s2 qiajRql s1...ajqlsx...s2

s1...qis2, s2=aj qiajRql s1...s2qla0

Рассмотрим следующий двухэлементный список внешних символов:

. Представим натуральное число как слово, состоящее из

единиц: . Числовая -местная функция

0 1{ , } {_,1}Q q q= =

1k + 1k

k

{1

1

1...1k

k

+

+

= = n 1( ,..., )nf x x назы-

вается вычислимой по Тьюрингу, если существует машина Тьюринга, которая

конфигурацию 1 11 _..._x 11 nx1q ++ преобразует в конфигурацию с машинным

словом , если функция 11y+1( ,..., )nf x x определена и равна , и останавлива-

ется не в заключительном состоянии (нет команды для очередной конфигу-

рации!) или не останавливается, если функция

y

1 ,( ..., )nf x x не определена.

Нетрудно убедиться, что для машины Тьюринга выполняются все тре-

бования, предъявляемые к интуитивному понятию алгоритма. Отсюда и из

определения вычислимой функции следует следующее утверждение:

(∗) функция, вычислимая по Тьюрингу, является вычислимой.

Обратное утверждение называется тезисом Тьюринга:

(∗∗) вычислимая функция является вычислимой по Тьюрингу.

Тезис Тьюринга не доказывается, а принимается как закон науки. Пе-

речислим аргументы в его пользу: 1) все известные вычислимые функции

оказываются вычислимыми по Тьюрингу; 2) все методы построения вычис-

Page 20: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

лимых функций оказываются пригодными для построения функций, вычис-

лимых по Тьюрингу; 3) машина Тьюринга была прообразом первых элек-

тронно-вычислительных машин; 4) машина Тьюринга существенно исполь-

зуется в теоретических исследованиях по теории алгоритмов.

Приведем примеры вычисления функций на машинах Тьюринга.

1) Функция следования ( ) 1s x x= + вычислима по Тьюрингу. Вот под-

ходящая программа машины Тьюринга: . Если на входе дано 1 1 11 ; _1q Lq q q0

3x = , то изменения конфигурации следующие: . 1 1 0_1111 11111q q q→ →1111

2) Нулевая функция ( ) 0o x = вычислима по Тьюрингу. Пишем про-

грамму: q q . Изменения конфигурации (1 2 21_ ; _q Rq0 1 0; _1q q 3x = ):

1 2 1 2 1 2 1111 _11 _ 11 _ _1 __ 1 __ _ ___ ___ 1q q q q q q q→ → → → → → → 0q

k

.

3) Функция проекции 1( ,..., )nk nI x x x= , где 1 k n≤ ≤ , вычислима по Тью-

рингу. Составим программу функции nkI в случае 2,n 1k= = , то есть функ-

ции 21 1 2 1( , )I x x x= : . Изменения кон-

фигурации выглядят следующим образом (

1 1 31 ; ;q Rq q1 2 2 3_ ; 1_q Rq q q 2 2_ ; _Rq q

2, 1

0_ q

x y= = ):

1 1 1 1111_11 1 11_11 11 1_11 111 _11 111_ 11q q q q q→ → → → 2 →

0q

3 2 3 2111_ _1 111__ 1 111__ _ 111___ 111___q q q q→ → → → .

Предположим, что машины T и U имеют общий внешний алфавит A и

их внутренние состояния q1, …, qi, q00 и qi+1, …, qn, q0 соответственно. Тогда

произведением TU машин T и U называется машина с внешним алфавитом A

и с внутренними состояниями q1, …, qi, qi+1, …, qn, q0, при условии, что в ко-

мандах T символ q00 заменяется на qi+1. На ленте мы располагаем "память", и

поэтому должны следить за тем, чтобы работа T и U не затрагивала те участ-

ки ленты, в которых располагается "память".

Синтез машин Тьюринга позволяет доказывать, операторы подстанов-

ки, примитивной рекурсии и минимизации вычислимые по Тьюрингу функ-

ции преобразуют вычислимые же по Тьюрингу функции. Отсюда следует,

что частично рекурсивные функции вычислимы по Тьюрингу.

Page 21: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

Лекция № 5.

ТЕМА: НУМЕРАЦИЯ МАШИН ТЬЮРИНГА. ПРОБЛЕМА ОСТАНОВКИ

Основные вопросы, рассматриваемые на лекции:

1. Нумерация с повторениями и без повторений

2. Счетные и эффективно счетные множества

3. Нумерация декартова квадрата множества натуральных чисел

4. Нумерация машин Тьюринга и вычислимых по Тьюрингу функций

5. Проблемы самоприменимости и остановки

Краткое содержание лекционного материала

Отображение f:A→N называется нумерацией (или перечислением)

множества A, если f – сюръекция, т.е. ∀a∈A ∃n∈N f(a)=n. Само множество

A при этом может быть задано перечислением элементов:

A={a0,a1,…,an,…}, где a=an, если f(a)=n. Вообще говоря, нумерация

множества A является нумерацией с повторениями. Нумерация f:A→N назы-

вается нумерацией без повторения, если также f – инъекция, т.е. ∀a,b∈A

[(f(a)=f(b)⇒a=b] (то есть f будет биекцией, или взаимно однозначным ото-

бражением множества A на N).

Множество A называется счетным, если существует биекция f:A→N.

Заметим, что при этом обратная функция f−1:N→A тоже биекция.

Счетное множество A называется эффективно счетным, если сущест-

вует биекция f:A→N, такая, что обе функции f и f−1 являются вычислимыми.

Теорема 7. Существуют биекция :C N N N× → и функции :L N N→ и

:R N N→ , которые ПРФ, и такие, что ( ( ), ( ))C L n R n n= для всех . n N∈

Доказательство. Построим нумерацию Кантора множества N N× .

Строка, начинающаяся с пары (0, )x y+ , содержит 1x y+ + пар. Первые

x y+ строк содержат ( ) ( )( )11 2 ...

2x y

x yx y+ + +

+ + + + = пар.

Следовательно, ( ) ( )( )1,

2x y x y

C x y x+ + +

= + , и ( ),C x y − ПРФ.

Page 22: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

(0,0)(0,1) (1,0)(0,2) (1,1) (0,2)............................................(0, 1) ... ( 1, ) ( , 1) ... ( 1,0)(0, ) ... ( 1, 1) ( , ) ( 1, 1) ... ( ,0)..........................

x y x y x y x yx y x y x y x y x y

→→ →→ → →

+ − → → − → − → → + − →+ → → − + → → + − → → + →

..........................................................................................

Чтобы показать, что соответствия ( )L n x= и ( )R n = y являются функ-

циями, причем, примитивно рекурсивными, мы обозначим: . Тогда

из равенства

k x y= +

( 1)2

k k x n++ = следует, что ( 1)

2k kx n +

= − и . y k x= −

Легко увидеть, что − это наибольшее число , что k k ( 1)2

k k n+< . Что-

бы применить ограниченный μ -оператор, мы рассмотрим l − это наимень-

шее число l , такое, что ( 1)2

l l n+≥ . Тогда k l 1= − .

Теперь мы последовательно построим следующие ПРФ:

2( 1)

2l nl ll l n≤

+⎡ ⎤= μ ≥⎢ ⎥⎣ ⎦; 1k l= −& ; ( 1( )

2k kL n n )+

= −& ; ( ) ( )R n k L n= −& .

Покажем, что C − биекция. Пусть 1 1 2 2( , ) ( , )C x y C x y n= =

1 2 ( )

. Тогда по оп-

ределению понятия функции получим, что x x L n= = и . 1 2 ( )y y R n= =

Рассмотрим все машины Тьюринга с одним и тем же (конечным или

счетным) внешним алфавитом A и такие, что их внутренние состояния при-

надлежат одному и тому же счетному множеству Ω. Без доказательства при-

ведем следующее утверждение: множество всех указанных машин эффек-

тивно счетное. Пусть T0, T1, … – нумерация машин Тьюринга с внешним ал-

фавитом A и с множеством внутренних состояний Ω. Тогда машина Ti вычис-

ляет некоторую n-местную функцию ϕni, i∈N, так, что: ϕn

i(x1,…,xn)=y, если

машина Ti начальную конфигурацию 1 1111 _..._1 nxxq ++ преобразует в заключи-

тельную конфигурацию q01y+1; иначе ϕni(x1,…,xn) не определено.

Page 23: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

При n=1 обозначим ϕni=ϕ1

i через ϕi.

Ясно, что ϕn0, ϕn

1, … – нумерация (с повторениями) всех n-местных вы-

числимых по Тьюрингу функций.

Пусть T0, T1, … – нумерация машин Тьюринга с алфавитом {0,1}.

Машина Tn называется самоприменимой, если машина Tn при примене-

нии к числу n останавливается.

Проблема самоприменимости. Существует ли вычислимая по Тью-

рингу функция s(n), такая, что s(n)=1, если машина Tn самоприменима, и

s(n)=0, если машина Tn несамоприменима.

Теорема 8. Проблема самоприменимости неразрешима.

Доказательство. Допустим, что существует машина S, которая вычис-

ляет функцию s(n). Рассмотрим машину S ′, отличающуюся от машины S до-

полнительным состоянием q0′, которое будет и новым заключительным со-

стоянием, а также отличающуюся от машины S двумя дополнительными ко-

мандами q011q0 и q000q0′.Если машина Tn самоприменима, то машина S ′ при

применении к числу n не останавливается (бесконечно переходит с 1 на 1).

Если машина Tn не самоприменима, то машина S ′ при применении к

числу n останавливается (и выдает результат 0). Значит, при применении к

числу n машина Tn останавливается тогда и только тогда, когда машина S ′ не

останавливается. Машина S ′ совпадает с некоторой машиной Ti, i∈N. Являет-

ся ли машина S ′=Ti самоприменимой? Мы не можем ответить ни да, ни нет,

так как при применении к числу i получается, что машина S ′=Ti и останавли-

вается, и не останавливается. Значит, машины S ′ и S не существуют.

Проблема остановки. Существует ли машина Тьюринга T, которая

вычисляет функцию t(m,n), такую, что t(m,n)=1, если машина Tm при приме-

нении к числу n останавливается, и t(m,n)=0, если машина Tn при применении

к числу n не останавливается.

Теорема 9. Проблема остановки неразрешима.

Page 24: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

Доказательство. Если функция t(m,n) вычислима, то функция

s(n)=t(n,n) тоже вычислима, что противоречит теореме 1.

Лекция № 6.

ТЕМА: МАШИНЫ С НЕОГРАНИЧЕННЫМИ РЕГИСТРАМИ

Основные вопросы, рассматриваемые на лекции:

1. Устройство машин с неограниченными регистрами (МНР)

2. Программа и выполнение команд МНР

3. Конфигурации и примеры программ МНР

4. Избыточность команды переадресации

Краткое содержание лекционного материала

В 1963 г. Шепердсон и Стерджис рассмотрели идеализированный ком-

пьютер – машину с неограниченными регистрами (МНР).

МНР – это лента, бесконечная в одну сторону и разбитая на ячейки, ко-

торые называются регистрами и обозначаются R1,R2,… Каждый регистр со-

держит некоторое неотрицательное целое число. Содержимое регистра Rn

обозначается rn, причем, только в конечном числе регистров rn≠0.

Программа МНР – это конечный список команд I1,I2,…,Is 4-х видов:

команда обнуления Z(n) (по этой команде rn:=0),

команда прибавления единицы S(n) (по этой команде rn:=rn+1),

команда переадресации T(m,n) (по этой команде rn:=rm),

команда условного перехода J(m,n,q).

Работа МНР начинается с выполнения команды I1. Допустим, что МНР

выполняет команду Ik, k=1,2,…,s. Если Ik одна из трех т.н. арифметических

команд Z(n), S(n) или T(m,n), то МНР меняет соответствующим образом

содержимое регистра Rn и переходит к следующей команде Ik+1. Если же

Ik=J(m,n,q), то МНР при rn=rm переходит к команде Iq и при rn≠rm перехо-

дит к следующей команде Ik+1. МНР останавливается тогда, когда нет коман-

ды для выполнения.

Page 25: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

Конфигурацией МНР называется слово, составленное из символов на

регистрах ленты, включая все ненулевые символы.

Функция f(x1,…,xn) называется вычислимой МНР, если существует

МНР, которая, начиная работу с конфигурацией x1…xn000…, останавлива-

ется с конфигурацией y…, если f(x1,…,xn) определено и равно y, и не оста-

навливается, если f(x1,…,xn) не определенно.

Пример 1. Программа МНР для вычисления функции f(x,y)=5:

команды конфигурации

xy000

I1 Z(1) 0y00

I2 S(1) 1t00

I3 S(1) 2t00

I4 S(1) 3t00

I5 S(1) 4t00

I6 S(1) 5t00

Пример 2. Программа МНР для вычисления функции сигнума sg(x):

команды конфигурации

0000 (x+1)000

I1 J(1,2,4) 0000 (x+1)000

I2 Z(1) 0000

I3 S(1) 1000

Пример 3. Программа МНР для вычисления сложения x+y:

команды конфигурации

x000 xy00

I1 J(2,3,5) x000 xy00 (x+1)y10 … (x+y−1)y10 (x+y)yy0

I2 S(1) (x+1)y00 (x+2)y10 … (x+y)y(y−1)0

I3 S(3) (x+1)y10 (x+2)y20 … (x+y)yy0

I4 J(1,1,1) (x+1)y10 (x+2)y20 … (x+y)yy0

Page 26: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

Пример 4. Программа МНР для вычисления функции выбора коорди-

наты 54 1 2 3 4 5( , , , , ) 4I x x x x x x= :

команды конфигурации

x1x2x3x4x50

I1 T(4,1) x4x2x3x4x5

Пример 5. Команда T(m,n) избыточная. Эту команду можно заменить

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

команды конфигурации

x1…xm…

I1 Z(1) 0…xm…

I2 J(1,m,5) 0…xm… 1…xm… … xmxm…xm…

I3 Z(1) 1…xm… 2…xm… …

I4 J(1,1,2) 1…xm… 2…xm… …

Лекция № 7.

ТЕМА: УНИВЕРСАЛЬНЫЕ ФУНЦИИ. ТЕОРЕМА О ПАРАМЕТРИЗАЦИИ

Основные вопросы, рассматриваемые на лекции:

1. Определение универсальной функции

2. Универсальная функция для класса всех ЧРФ

3. Универсальная функция для класса всех ПРФ не является ПРФ

4. Применение универсальной функции к проблеме неразрешимости

5. Теорема о параметризации

Краткое содержание лекционного материала

Сечением (n+1)-местной функции f по (первой) переменной x называет-

ся n-местная функция fx, x∈N, такая, что для всех t1,…,tn∈N

fx(t1,…,tn)=f(x,t1,…,tn).

Существует ли программа, которая вычисляла бы все функции? В не-

котором смысле такие программы существуют.

Page 27: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

(n+1)-местная функция u называется универсальной для класса C, со-

стоящего из некоторых вычислимых n-местных функций, если:

1) ∀x∈N ux∈C;

2) ∀f∈C ∃x∈N f=ux.

Иначе говоря, класс C будет задано перечислением функций вида ux:

C={u0,u1,…,ui,…}.

Существует вычислимая универсальная функция для класса всех вы-

числимых n-местных функций.

Теорема 10. Пусть функция ψ определена следующим образом:

ψn(x,t1,…,tn)=(ϕx)n(t1,…,tn), (1)

где x,t1,…,tn∈N. Тогда ψ – вычислимая универсальная функция для класса

всех вычислимых на МНР n-местных функций.

(Неформальное) доказательство. Дано: x,t1,…,tn∈N. Декодируем но-

мер x, т.е. найдем МНР Tx с номером x. Затем Tx должно вычислить (1).

Вычислимые универсальные функции не всегда существуют.

Теорема 11. Не существует примитивно рекурсивной (общерекурсив-

ной) универсальной функции для класса всех n-местных примитивно рекур-

сивных (общерекурсивных) функций.

Доказательство. Допустим, что существует примитивно рекурсивная

универсальная функции u(x,t1,…,tn) для класса всех n-местных примитивно

рекурсивных функций. Тогда определим новую n-местную функцию сле-

дующим образом: для всех x,t1,…,tn∈N

g(t1,…,tn)=u(t1,t1,…,tn)+1.

Функция g примитивно рекурсивна, но отлична от каждой n-местной

примитивно рекурсивной функции ux. Получается противоречие.

Следовательно, не существует примитивно рекурсивной универсальной

функции для класса всех n-местных примитивно рекурсивных функций.

Page 28: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

Следующую теорему мы приводим без доказательства: существует об-

щерекурсивная универсальная функция для класса всех n-местных прими-

тивно рекурсивных функций.

Отсюда и из теоремы 2 следует, что существует n-местная общерекур-

сивная, но не примитивно рекурсивная, функция.

Применим универсальную функцию ψ=ψ2 из теоремы 1 к решению

проблемы разрешимости "ϕx всюду определено".

Теорема 12. Пусть для всех x∈N отношение P(x) определено как от-

ношение "ϕx всюду определено". Тогда отношение P(x) неразрешимо.

Доказательство. Допустим, что отношение P разрешимо, т.е. его ха-

рактеристическая функция λP частично рекурсивна.

Определим новую числовую функцию: для всех x∈N

⎩⎨⎧

==+ϕ

=.0)(λ если 0,

,1)(λ если,1)()(

xxx

xgP

Px

Функция g(x) частично рекурсивна: g(x)=(ψ(x,x)+1)⋅sgλP.

Вычислимая функция g совпадает с одним из сечений ψ: ∃x∈N…g=ϕx.

Функция g=ϕx всюду определенная, поэтому, в частности, λP(x)=1, и

g(x)=ϕx(x)+1. Получается противоречие: ϕx(x)=ϕx(x)+1.

Следовательно, отношение P неразрешимо.

Каждое из сечений fx, x∈N, вычислимой двухместной функции f явля-

ется также вычислимой (одноместной) функцией. Значит, существует номер

i∈N, такой, что fx=ϕ i. Следующая теорема показывает, что номер i можно

эффективно вычислить по x. Эта теорема называется теоремой о параметри-

зации (или простой формой s-m-n-теоремы).

Теорема 13. Пусть f(x,t) – вычислимая функция. Тогда существует

всюду определенная вычислимая функция k(x), такая, что fx=ϕk (x ) .

(Неформальное) доказательство. Пусть МНР Ta с программой F вы-

числяет функцию f. Определим МНР с новой программой:

Page 29: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

команды конфигурации

t000

I1 T(1,2) tt00

I2 Z(1) 0t00

I3 S(1) 1t00

I4 S(1) 2t00

… … …

Ix+2 S(1) xt00

F f(x,t)…

Пусть y – номер этой программы в эффективной нумерации программ

МНР, т.е. построили МНР Ty. Определим: y=k(x). Эта функция по построе-

нию эффективно вычислима. f(x,t)=ϕy(t)=ϕk (x )(t).

Лекция № 8.

ТЕМА: СВОДИМОСТЬ ПРОБЛЕМ

Основные вопросы, рассматриваемые на лекции:

1. Разрешимые и неразрешимые проблемы

2. Сведение одной проблемы к другой проблеме

3. Проблема остановки для ЧРФ

4. Теорема Райса

Краткое содержание лекционного материала

Пусть P(x1,…,xn), Q(x1,…,xn) – два отношения, x1,…,xn∈N. Говорят,

что проблема Q(x1,…,xn) сводится к проблеме P(x1,…,xn), если из разре-

шимости отношения P(x1,…,xn) следует разрешимость отношения

Q(x1,…,xn).

Говорят, что проблема P(x1,…,xn), x1,…,xn∈N, неразрешима, если от-

ношение P(x1,…,xn) неразрешимо. Сводимость проблем используется при

доказательстве неразрешимости проблем следующим образом. Если пробле-

ма Q(x1,…,xn) сводится к проблеме P(x1,…,xn) и проблема Q(x1,…,xn) не-

разрешима, то проблема P(x1,…,xn) тоже неразрешима.

Page 30: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

Лемма 1. Проблема Q(x)≡P(x,x) сводится к проблеме P(x,y).

Доказательство. Пусть отношение P(x,y) разрешимо, т.е. характери-

стическая функция λP(x,y) рекурсивна. Тогда

λQ(x)=λP(x,x)= (x), т.е. характеристическая функция λQ(x) ре-

курсивна, а отношение Q(x) разрешимо. Значит, проблема Q(x) сводится к

проблеме P(x,y).

3 11 1(λ , , )QS I I1

Алгоритм вычисления частично рекурсивной функции f для каждого

входа x либо не останавливается (⇔ f(x) не определено), либо останавлива-

ется с результатом f(x) (⇔ f(x) определено).

Теорема 14. Проблема (самоприменимости для частично рекурсивных

функций) Q(x)≡«ϕx(x) определено» неразрешима.

Доказательство. Предположим, что отношение Q(x) разрешимо, т.е.

характеристическая функция λQ(x) рекурсивна. Тогда функция −λQ(x) час-

тично рекурсивна. Значит, −λQ=ϕn для некоторого индекса n∈N. Тогда:

если ϕn(n) определено, то λQ(n)=1, ϕx(n)=−1, ϕn(n) не определено;

если ϕn(n) не определено, то λQ(n)=0, ϕx(n)=0, ϕn(n) определено.

Получается противоречие. Значит, проблема Q(x) неразрешима.

Теорема 15. Проблема (остановки для частично рекурсивных функ-

ций) P(x,y)≡«ϕx(y) определено» неразрешима.

Доказательство. Применим лемму 1 к теореме 1.

Таким образом, теоремы 14 и 15 показывают, что невозможно написать

программу, которая для каждой вычислимой функции f и для каждого числа x

определяла бы – значение функции f(x) определено или нет, равно 0 или нет.

Теорема 16. Проблемы «ϕx(x)=0» и «ϕx(y)=0» неразрешимы.

Доказательство. Пусть Q(x)≡«ϕx(x)=0» и P(x,y)≡«ϕx(y)=0» Пред-

положим, что Q(x) разрешимо, т.е. характеристическая функция λQ(x) ре-

курсивна. Значит, λQ=ϕn для некоторого индекса n∈N. Тогда:

если ϕn(n)=0, то λQ(n)=1, ϕn(n)=λQ(n)≠0;

если ϕn(n)≠0, то λQ(n)=0, ϕn(n)=λQ(n)=0.

Page 31: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

Получается противоречие. Значит, проблема Q(x) неразрешима.

В силу леммы 1, проблема P(x,y) тоже неразрешима.

Лемма 2. Пусть k(x) – всюду определенная рекурсивная функция. То-

гда проблема Q(x)≡P(k(x)) сводится к проблеме P(x).

Доказательство. Пусть отношение P(x) разрешимо, т.е. характеристи-

ческая функция λP(x) рекурсивна. Тогда λQ(x)=λP(k(x)), т.е. характеристи-

ческая функция λQ(x) рекурсивна, а отношение Q(x) разрешимо. Значит,

проблема Q(x) сводится к проблеме P(x).

Теорема 17. Проблема «ϕx – всюду определенная функция» неразре-

шима.

Доказательство. Пусть P(x)≡«ϕx – всюду определенная функция».

Рассмотрим функцию f(x,y)=ϕx(x), x,y∈N. Функция f(x,y) частично рекур-

сивна, так как f(x,y)= (x,y), где U(x,y)=ϕx(y) – частично рекур-

сивная универсальная функция для всех одноместных частично рекурсивных

функций. По теореме о параметризации f(x,y)=ϕk (x )(y) для некоторой всюду

определенной рекурсивной функции k(x).

3 21 1( , , )S U I I 2

Если ϕx(x) определено, то f(x,y) определено для всех y∈N, ϕk (x )(y)

определено для всех y∈N, функция ϕk (x ) всюду определенная.

Если ϕx(x) не определено, то f(x,y) не определено для всех y∈N,

ϕk (x )(y) не определено для всех y∈N, функция ϕk (x ) нигде не определенная.

Значит, ϕx(x) определено ⇔ функция ϕk (x ) всюду определенная.

Отсюда следует, проблемы «ϕx(x) определено» и P(k(x)) одновремен-

но разрешимы или неразрешимы. В силу теоремы 14, проблема P(k(x)) не-

разрешима. В силу леммы 2, проблема P(x) неразрешима.

Теорема 18. Проблема «ϕx=o» неразрешима.

Доказательство. Пусть P(x)≡«ϕx=o». Рассмотрим частично рекурсив-

ную функцию f(x,y)=o(ϕx(x)), x,y∈N. Вновь по теореме о параметризации

f(x,y)=ϕk (x )(y) для некоторой всюду определенной рекурсивной функции

k(x).

Page 32: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

Если всюду ϕx(x) определено, то f(x,y)=0 для всех y∈N, ϕk (x )(y)=0

для всех y∈N, функция ϕk (x ) совпадает с нулевой функцией o.

Если всюду ϕx(x) не определено, то f(x,y) не определено для всех

y∈N, ϕk (x )(y) не определено для всех y∈N, в частности, ϕk (x )≠o.

Значит, ϕx(x) определено ⇔ ϕk (x )=o. Отсюда, в силу теоремы 14, сле-

дует, что проблема P(k(x)) неразрешима. Отсюда, в силу леммы 2, следует,

что проблема P(x) неразрешима.

Теорема 19 (Райс). Пусть W – множество всех частично рекурсивных

одноместных функций, ∅⊂A⊂W. Тогда проблема «ϕx∈A» неразрешима.

Доказательство. Пусть f∅ – нигде не определенная функция, и допус-

тим, что f∅∉A (если f∅∈A, то рассмотрим проблему «ϕx∈ A»). Так как A≠∅,

то ϕ i∈A для некоторого индекса i∈N. Определим новую функцию f(x,y)

следующим образом: f(x,y)=ϕ i(y)⋅ sg ϕx(x) для всех y∈N. По теореме о па-

раметризации f(x,y)=ϕk (x )(y) для некоторой всюду определенной рекурсив-

ной функции k(x).

Если ϕx(x) определено, то f(x,y)=ϕ i(y) для всех y∈N, ϕk (x )∈A.

Если ϕx(x) не определено, то f(x,y) нигде не определено, ϕk (x )=f∅∉A.

Значит, ϕx(x) определено ⇔ ϕk (x )∈A. Отсюда, в силу теоремы 1, лем-

мы 2, следует, что проблема «ϕx∈A» неразрешима.

Если f∅∈A, то f∅∉ A . Так как ∅⊂ A⊂W, то аналогично доказывается,

что проблема «ϕx∈ A» неразрешима. ϕx∈ A ⇔ ϕx∉A. Пусть λ1 и λ2 – харак-

теристические функции отношений ϕx∈A и ϕx∉A. Так как λ2= sg λ1, то про-

блема ϕx∉A сводится к проблеме ϕx∈A.

Таким образом, теоремы 17-19 показывают, что невозможно написать

программу, которая для каждой вычислимой функции определяла бы – явля-

ется ли эта функция всюду определенной или нулевой, обладает ли каким-

либо нетривиальным свойством вычислимых функций.

Теорема 20. Проблема «ϕx=ϕy» неразрешима.

Page 33: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

Доказательство. Пусть P(x)≡«ϕx=o», Q(x,y)≡«ϕx=ϕy», и ϕ i=o для

некоторого индекса i∈N. Тогда λP(x)= (x), значит, проблема P(x)

сводится к проблеме Q(x,y). Отсюда, в силу теоремы 17, следует, что про-

блема Q(x,y) неразрешима.

3 11(λ , , )QS I o

Таким образом, теорема 20 показывает, что невозможно написать про-

грамму, которая для любых двух вычислимых функций определяла бы – рав-

ны эти функции или нет.

Лекция № 9.

ТЕМА: МЕРЫ СЛОЖНОСТИ ФУНКЦИЙ

Основные вопросы, рассматриваемые на лекции:

1. Временная и емкостная сложность машин Тьюринга

2. Абстрактная мера сложности

3. Верхняя граница сложности алгоритмов

4. Теорема об ускорении Блюма

Краткое содержание лекционного материала

Каждая машина Тьюринга Ti с номером i вычисляет для каждого числа

n>0 функцию ϕin от n переменных с номером i. Временной сложностью ма-

шины Ti называется функция tin, равная числу шагов машины Ti, сделанных

при вычислении функции ϕin (функция ti

n не определена тогда и только тогда,

когда функция ϕin не определена). Емкостной сложностью машины Ti назы-

вается функция sin, равная числу ячеек ленты машины Ti посещаемых в про-

цессе вычисления функции ϕin (функция si

n также не определена тогда и

только тогда, когда функция ϕin не определена).

Семейство функций {tin} называется абстрактной мерой сложности

семейства функций {ϕin}, если выполнены следующие аксиомы Блюма:

1) для каждого номера i функция tin не определена тогда и только тогда,

когда функция ϕin не определена;

2) для каждого номера i график Γ(tin) функции ti

n является разрешимым

множеством (определение: Γ in={(x1,…,xn,y)|y=t i

n(x1,…,xn,y)}).

Page 34: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

Заметим, что график Γ(fin) (вычислимой) функции fi

n является только

перечислимым множеством. Напомним, что множество A⊆Nn является пере-

числимым (разрешимым), если существует алгоритм, который для каждого

числового вектора x=(x1,…,xn) на вопрос "x∈A?" отвечает положительно, если

x∈A, и не отвечает (отвечает отрицательно), если x∉A.

Временная и емкостная сложности машин Тьюринга являются абст-

рактными мерами сложности (удовлетворяют аксиомам Блюма).

Результаты о мерах сложности, которые выводятся из свойств вычис-

лимых функций и аксиом Блюма, называются машинно-независимыми.

Приведем некоторые теоремы о машинно-независимой сложности.

Вопрос о верхней границе сложности: существует ли вычислимая всю-

ду определенная функция h(x), такая, что для любой вычислимой функции

f(x) найдется машина Тьюринга Ti, вычисляющая функцию ϕi(x)=f(x), для ко-

торой t i(x)≤h(x). Значения f(x) не могут быть сколь угодно большими. Ина-

че на запись ответа потребуется больше шагов машины Ti, чем h(x)).

Приведем без доказательства теоремы о верхней границе сложности.

Теорема 21. Для всякой общерекурсивной функция h(x) существует

общерекурсивная функция f(x) со значениями 0,1, которая вычисляется ма-

шиной Тьюринга Ti, так, что t i(x)>h(x) для всех x≥x0 для некоторого числа x0.

Это значит, верхняя граница меры сложности может быть больше поч-

ти всюду любой общерекурсивной функции.

Теорема 22. (теорема Блюма об ускорении). Для всякой общерекурсив-

ной функция r(x) существует общерекурсивная функция f(x) со значениями

0,1, которая вычисляется машиной Тьюринга Ti, и для которой найдется ма-

шина Тьюринга Tj, вычисляющая тоже функцию f(x), такая, что

r(t j(x))<t i(x) для всех x≥x0 для некоторого числа x0.

Если r(x)=2x, то запись 2(t j(x))<t i(x) означает, что мера сложности

уменьшена в 2 раза.

Page 35: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ Государственное образовательное учреждение высшего профессионального образо-

вания «ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ ПЕДАГОГИЧЕСКИЙ УНИВЕРСИТЕТ»

Кафедра информатики и методики преподавания математики

Комплект учебно-методических материалов к учебной дисциплине:

Теория алгоритмов

МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ЛАБОРАТОРНЫМ РАБОТАМ

для специальности 032100.00 «Математика» с дополнительной специальностью 032200 «Физика»

Составитель:

Вахитов Р.Х, доцент, кандидат физико-математических наук, доцент

Воронеж 200_

Page 36: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

ЛАБОРАТОРНАЯ РАБОТА №1

Тема: Представление примитивно рекурсивных функций

в системе Mathematica 5.0

Продолжительность 2 часа

Цель: научиться применять систему компьютерной алгебры

Mathematica 5.0 для решения представления примитивно рекурсивных функ-

ций.

Задача: Представить функции следования, обнуления, проекции и опе-

раторы подстановки, примитивной рекурсии в системе Mathematica 5.0.

Теоретические сведения: Окно слева – «Блокнот» заполняется с кла-

виатуры: 2+2. Вычисление выполняется нажатием клавиш Enter+Shift. Файлы

можно сохранять. При первом сохранении файл именуется.

Окно справа – панель (палитра) математических символов. Для умно-

жения, например, можно использовать знак * с клавиатуры или знак × с ма-

тематической палитры.

Числовая функция f называется примитивно рекурсивной функцией, ес-

ли f построена за конечное число шагов из функций o, s, Iin применением

операторов подстановки S m+1 и примитивной рекурсии R.

Порядок выполнения работы

Нулевую функцию и функцию следования в системе Mathematica 5.0

можно определить по следующим командам:

o[x_]:=0;

s[x_]:=x+1;

Применение оператора подстановки g(f1(x1,…,xm),…,fm(x1,…,xm)) осуще-

ствляется следующим образом: g[f1[x1_,…,xm_],…,fm[x1_,…,xm_]].

Пример 1. Определение функции перестановкой аргументов. I31[x_,y_,z_]:=x; I32[x_,y_,z_]:=y; I33[x_,y_,z_]:=z; g[x_,y_,z_]:=f[I32[x,y,z],I33[x,y,z],I31[x,y,z]]; g[x,y,z] f[y,z,x]

Page 37: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

Пример 2. Определение постоянной функции. h[x_,y_,z_]:=s[s[s[s[s[o[I31[x,y,z]]]]]]]; h[x,y,z] 5

Применение схемы примитивной рекурсии для одноместной функции.

Пример 3. Построение функции – сигнума. sg[0]=0; sg[x_]:=s[o[I21[x,sg[x-1]]]]; sg[5] 1

Применение схемы примитивной рекурсии для двухместной функции.

Пример 4. Построение операции сложения. S[x_,0]:=I1[x]; S[x_,y_]:=s[I33[x,y-1,S[x,y-1]]]; S[4,5] 9

Самостоятельно задание. Представить в системе Mathematica 5.0 по-

строение усеченной разности, модуля разности, характеристических функций

отношений равенств, "больше", "не больше".

ЛАБОРАТОРНАЯ РАБОТА №2

Тема: Представление частично рекурсивных функций

в системе Mathematica 5.0

Продолжительность 2 часа

Цель: научиться применять систему компьютерной алгебры

Mathematica 5.0 для решения представления частично рекурсивных функций.

Задача: Представить функцию Аккермана и оператор минимизации (на

примерах) в системе Mathematica 5.0.

Теоретические сведения: Числовая функция f называется частично

рекурсивной функцией, если f построена за конечное число шагов из функций

o, s, Iin применением операторов S m+1, R и M.

Числовая функция f называется общерекурсивной функцией, если f по-

строена за конечное число шагов из функций o, s, Iin применением операто-

ров S m+1, R и M, причем, оператор минимизации g=Mf применяется тогда и

только когда, когда f и g – всюду определенные функции. Примитивно ре-

Page 38: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

курсивные функции общерекурсивны, но, обратное утверждение, вообще го-

воря, неверно. так называемая функция Аккермана общерекурсивна, но не

примитивно рекурсивна.

Функция Аккермана определяется рекурсией по двум аргументам:

(0, ) 1y yα = + ;

( ,0) ( 1,1)x xα = α − , если 0x > ;

( , ) ( 1, ( , 1))x y x x yα = α − α − , если 0x > и . 0y >

Запись μy[f(x1,…,xn−1,y)=xn] означает "наименьшее y, такое, что

f(x1,…,xn−1,y) определено и равно xn".

Порядок выполнения работы

Функция Аккермана в системе Mathematica 5.0 можно определить по

следующей программе:

a[0,0]=1;

a[0,y_]:=y+1;

a[x_,0]:=a[x-1,1];

a[x_,y_]:= a[x-1,a[x,y-1]];

В компьютерной системе Mathematica 5.0 с целью представления при-

менения оператора минимизации для построения частично рекурсивных

функций используем команду while. Программа

x=1; While[P[x],x++]; Print[x]

тестирует P[x] для x, и если P[x] истинно, то тестирует P[x] для x+1, если

P[x] ложно, то печатает x.

Пример 1. Функция x−1=μy[s(x)=0]. y=1; While[s[y]≠x,y++]; x=12; Print[y] 11

Пример 2. Функция x−y=μz[x+z=y]. x=12; y=15; z=1; While[x+z≠y,z++];

Page 39: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

Print[z] 3

Пример 3.Функция [y ]x= (целая часть квадратного корня).

x= 50;y= 1;WhileAy2 <x,y++E;Print@ D 7

y−1

ЛАБОРАТОРНАЯ РАБОТА №3

Тема: Знакомство с симулятором машины Тьюринга

Продолжительность 2 часа

Цель: приобрести навыки обращения с симулятором машины Тьюрин-

га и научиться решать задачи на составление программ машин Тьюринга.

Теоретические сведения: Каждая машина Тьюринга имеет конечное

число внутренних состояний q1, …, qn, q0 (на симуляторе обозначаются 1,…,

n, 0; состояния 1, …, n в программе занимают соответственно 1-ю, …, n-ю

строки). Состояние q1 называется начальным, а состояние q0 – заключитель-

ным. Машина Тьюринга начинает работу с состояния q1 и останавливается в

состоянии q0. Лента машины Тьюринга потенциально бесконечна в обе сто-

роны и разбита на ячейки. Внешний алфавит A – это конечное непустое

множество символов, которые по одному вписываются в ячейки ленты. Один

из символов алфавита A должен обозначать пустую ячейку. На симуляторе

для обозначения пустой ячейки используется символ _ (нижняя черта).

Мы используем обозначение 1k для слова на ленте, состоящего из k

единиц, причем, справа и слева все ячейки пустые. Неотрицательное целое

число n∈N0 на ленте записывается как 1n+1. (В примерах на симуляторе по-

ложительное целое число n∈N записывается как 1n). В каждый момент вре-

мени машина находится в некотором состоянии qi, где i=1,2,…,n, и обозре-

вает некоторую ячейку с символом aj∈A. Команда машины Тьюринга – это

упорядоченная пятерка qiajakДql (qiaj→akДql), где qi, ql – состояния маши-

Page 40: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

ны, i≠0, aj,ak∈A, Д∈{Л,П,Н}, причем, для каждой пары qiaj определяется

не более одной тройки akДql. Поэтому команда можно обозначить qiaj.

Выполнение машиной команды qiajakДq: она, в состоянии qi и при

чтении символа aj, заменяет символ aj на символ ak, двигается вдоль ленты

на одну ячейку влево (Д=Л) или вправо (Д=П), или остается на месте (Д=Н),

и переходит на новое состояние ql.

Программа машины Тьюринга – это множество команд для данного

множества состояний q1, q2, …, qn, q0 и данного внешнего алфавита A.

В симуляторе машины Тьюринга программа представлена в виде таб-

лицы: со строками – состояниями и со столбцами – символами. На пересече-

нии строки "qi" и столбца "aj" пишется команда "ak Д ql" (с пробелами!).

Конфигурация машины Тьюринга – это слово _..._s1…qisj…sk_..._, где

qi – состояние машины, s1,…,sk∈A, s1…sk – слово на ленте, s1,sk≠_, 1≤j≤k,

sj – символ, который в данный момент обозревается на ленте.

Задания по знакомству с работой симулятора машины Тьюринга.

1. Добавить 3 ячейки с выбором символа 1; удалить ячейку.

2. Записать на ленте число 5 и пару (3,7).

3. Добавить строку; удалить строку.

4. Добавить столбец с выбором символа 1; удалить столбец.

5. Загрузить программу: умножение. Выполнить: 5⋅2.

6. Заменить исходные данные в ленте: добавить ячейку во втором ар-

гументе и удалить ячейку в первом аргументе. Выполнить 4⋅3.

7. Загрузить программу: вычитание. Выполнить: 5−2.

8. Заменить исходные данные в ленте: удалить 3 ячейки в первом аргу-

менте и прибавить 3 ячейки во втором аргументе. Выполнить 2−5.

ЛАБОРАТОРНАЯ РАБОТА №4

Тема: Одноместные функции, вычислимые по Тьюрингу

Продолжительность 2 часа

Цель: научиться решать задачи на составление программ машин Тью-

ринга для вычисления одноместных функций.

Page 41: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

Задача: Составьте программу машины Тьюринга для вычисления од-

номестной функции y=f(x) и напишите пример преобразования начальной

конфигурации q11x+1 в заключительную конфигурацию (q0)1y+1 (с q0 на лю-

бом месте):

1) функция прибавления единицы s(x)=x+1;

2) функция f (x )=x+2;

3) нулевая функция o(x)=0;

4) функция g(x)=1.

Теоретические сведения: Функция f:N0n→N0 с областью определения

D⊆N0n называется вычислимой по Тьюрингу, если существует машина Тью-

ринга, которая для любых чисел x1,x2,…,xn∈N0

начальную конфигурацию 1111 1_..._1_1 21 +++ nxxxq преобразует в заклю-

чительную конфигурациюq01y+1, если (x1,x2,…,xn)∈D и y=f(x1,x2,…,xn),

и не выдает никакого результата, если (x1,x2,…,xn)∉D.

В частности, одноместная функция f:N0→N0 с областью определения

D⊆N0 называется вычислимой по Тьюрингу, если существует машина Тью-

ринга, которая для любых чисел x∈N0

начальную конфигурацию 111

xq + преобразует в заключительную

конфигурациюq01y+1, если x∈D и y=f(x),

и не выдает никакого результата, если x∉D.

Порядок выполнения работы

1) Программа Тьюринга для функции s:

_ 1

1 1 Н 0 1 Л 1

Преобразования конфигурации при x=2 (и y=3): q1111, q1_111, q01111.

2) Программа Тьюринга для функции f:

_ 1

1 1 Л 0 1 Л 1

Page 42: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

2 1 Н 0

Преобразования конфигурации при x=2 (и y=4):

q1111, q1_111, q2_1111, q011111.

3) Программа Тьюринга для функции o:

_ 1

1 1 Н 0 _ П 1Преобразования конфигурации при x=2 (и y=0):

q1111, _ _ _q1_, _ _ _q01.

4) Программа Тьюринга для функции g:

_ 1

1 1 Л 2 _ П 1

2 1 Н 0

Преобразования конфигурации при x=2 (и y=1):

q1111, _ _ _q1_, _ _ _q2_1, q011.

Самостоятельно выполнить задание для одной из функций вида

f(x)=x+k, k=3,4,5,…, и для одной из функций вида g(x)=k, k=2,3,4,…

ЛАБОРАТОРНАЯ РАБОТА №5

Тема: Двухместные функции, вычислимые по Тьюрингу

Продолжительность 2 часа

Цель: научиться решать задачи на составление программ машин Тью-

ринга для вычисления двухместных функций.

Задача: Составьте программу машины Тьюринга для вычисления

двухместной функции z=f(x,y) и напишите существенно отличающиеся

примеры преобразований начальной конфигурации q11x+1_1y+1 в заключи-

тельную конфигурацию (q0)1z+1 (с q0 на любом месте), если даны функции:

1) выбор координаты I12(x,y)=x и I2

2(x,y)=y;

2) f (x,y)=x+1 и f (x,y)=y+1;

3) нуль-функция o2(x,y)=0 и f (x,y)=1;

4) z=x+y+2 и сложение z=x+y;

Page 43: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

5) ⎩⎨⎧

≠∨≠=∧=

=,00если,1,00если,0

),(1 yxyx

yxf и ⎩⎨⎧

≠∧≠=∨=

=.00если,1,00если,0

),(2 yxyx

yxf

Теоретические сведения: Двухместная функция f:N0×N0→N0 с обла-

стью определения D⊆N0×N0 называется вычислимой по Тьюрингу, если су-

ществует машина Тьюринга, которая для любых чисел x,y∈N0

начальную конфигурацию 111 _1 1x yq + + преобразует в заключительную

конфигурациюq01z+1, если (x,y)∈D и z=f(x,y),

и не выдает никакого результата, если (x,y)∉D.

Порядок выполнения работы

1) Программа машины Тьюринга для функции I12:

I12 _ 1

1 _ П 2 1 П 12 _ Н 0 _ П 2

Преобразования конфигурации для I12при x=2, y=1, z=2:

q1111_11, 111q1_11, 111_q211, 111_ _ _q2, 111_ _ _q0.

Программа машины Тьюринга для функции I22:

I22 _ 1

1 _ П 0 _ П 1Преобразования конфигурации для I2

2 при x=2, y=1, z=1:

q1111_11, _ _ _q1_11, _ _ _ _q011.

2) Программа машины Тьюринга для функции f (x,y)=x+1:

x+1 _ 1 1 _ П 2 1 П 12 _ Н 3 _ П 23 _ Л 3 1 П 44 1 П 0

Преобразования конфигурации для f (x,y)=x+1 при x=2, y=1, z=3:

q1111_11, 111q1_11, 111_q211, 111_ _ _q2, 111_ _ _q3,

11q31_ _ _, 11q31_ _ _, 111q4, 111q4, 1111q0.

Программа машины Тьюринга для функции f (x,y)=y+1:

y+1 _ 1 1 1 Л 0 _ П 1

Page 44: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

Преобразования конфигурации для f (x,y)=y+1 при x=2, y=1, z=2:

q1111_11, _ _ _q1_11, _ _ q0_111.

3) Программа машины Тьюринга для функции o2:

o2 _ 1 1 _ П 2 _ П 1

2 1 Л 0 _ П 2

Преобразования конфигурации для o2 при x=2, y=1, z=0:

q1111_11, _ _ _q1_11, _ _ _ _q211, _ _ _ _ _ _q2, q0_1.

Программа машины Тьюринга функции f (x,y)=1:

f (x,y)=1 _ 1

1 _ П 2 _ П 1

2 1 Л 3 _ П 2

3 1 Л 0

Преобразования конфигурации для f (x,y)=1 при x=2, y=1, z=1:

q1111_11, _ _ _q1_11, _ _ _ _q211, _ _ _ _ _ _q2, q3_1, q0_11.

4) Программа машины Тьюринга для функции z=x+y+2:

x+y+2 _ 1 1 1 П 0 1 П 1

Преобразования конфигурации для z=x+y+2 при x=2, y=1, z=5:

q1111_11, 111q1_11, 1111q011.

Программа машины Тьюринга для функции z=x+y:

x+y _ 1 1 1 П 2 1 П 1 2 _ Л 3 1 П 2 3 _ Л 4 4 _ Л 0

Преобразования конфигурации для z=x+y при x=2, y=1, z=3:

q1111_11, 111q1_11, 1111q211, 111111q2, 11111q31, 1111q41_, 111q01_ _.

5) Программа машины Тьюринга для функции f1(x,y):

f1(x,y) _ 1 1 1 Н 0 1 П 2 2 _ П 3 1 П 5

Page 45: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

3 1 Л 7 _ П 4 4 _ Н 0 1 Н 7

5 _ П 6 _ П 5

6 _ Н 0 _ П 6

7 _ Н 8 _ П 7

8 _ Л 8 1 Л 1

Команды q11, q2_, q31, q4_ вычисляют f1(0,0)=0.

Команды q11, q21, q51, q5_, q61, q6_ вычисляют f1(x+1,y)=1.

Команды q11, q2_, q31, q41, q71, q7_, q8_, q81, q1_ вычисляют f1(0,y+1)=1.

Самостоятельно выполнить задание для одной из функций вида

f (x,y)=x+k, f (x,y)=y+k и f (x,y)=k, где k=2,3,4,5,…, а также для одной из

функций вида z=x+y+k, где k=1,3,4,5,… Составить программу для f2.

ЛАБОРАТОРНАЯ РАБОТА №6

Тема: Функции, определяемые по кусочной схеме

Продолжительность 2 часа

Цель: научиться решать задачи на составление программ машин Тью-

ринга для вычисления кусочно задаваемых функций.

Задача: Составьте программу машины Тьюринга для вычисления

функции y=f(x), определенной кусочной схемой, и напишите существенно

отличающиеся примеры преобразований начальной конфигурации q11x+1 в

заключительную конфигурацию вида (q0)1y+1 (с q0 на любом месте):

1) функция сигнум ⎩⎨⎧

>=

=;0если,1,0если,0

)(xx

xsg

2) функция антисигнум ⎩⎨⎧

>=

=;0если,0,0если,1

)(xx

xgs

3) функция усечённой разности yx −& (в случае, когда y=1)

⎩⎨⎧

≤>−

=−;1если,0

,1если,11

xxx

x &

Page 46: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

4) функция "остатка при делении на 2"

⎩⎨⎧

+==

=;12если,1

,2если,0)2,(

mxmx

xrest

5) функция "остатка при делении на 3"

⎪⎩

⎪⎨

+=+=

==

.23если,2,13если,1

,3если,0)3,(

mxmxmx

xrest

Теоретические сведения: Пусть заданы одноместные функции

f1(x),…,fm(x) и одноместные предикаты (предложения) P1(x),…,Pm(x), при-

чем, для всех x∈N0 ровно одно из высказываний P1(x), …, Pm(x) истинно.

Говорят, что одноместная функция g(x) определена кусочной схемой (или пе-

ребором случаев), если

⎪⎩

⎪⎨

⎧=

истинно.)(если,.......................................

истинно,)(если,)(

11

xPf

xPfxg

mm

для всех x∈N0.

Порядок выполнения работы

1) Программа машины Тьюринга для функции sg:

_ 1

1 1 П 2

2 _ Н 0 1 П 3

3 _ Н 0 _ П 3

Преобразования конфигурации: если x=0, y=0, то q11, 1q2, 1q0;

если x=1, y=1, то q111, 1q21, 11q3, 11q0;

если x=3, y=1, то q11111, 1q2111, 11q311, 11_ _q3, 11_ _q0.

Page 47: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

2) Программа машины Тьюринга для функции gs :

_ 1

1 1 П 2

2 1 Н 0 _ П 3

3 _ Н 0 _ П 3

Преобразования конфигурации: если x=0, y=0, то q11, 1q2_, 1q01;

если x=1, y=1, то q111, 1q21, 1_q3, 1_q0;

если x=3, y=1, то q11111, 1q2111_, 1_q311, 1_ _ _q3, 1_ _ _q0.

3) Программа машины Тьюринга для функции 1−&x :

_ 1

1 _ П 2

2 1 Н 0 1 Н 0

Преобразования конфигурации: если x=0, y=0, то q11, 1q2, 1q0;

если x=1, y=1, то q111, _q21, _q01;

если x=3, y=1, то q11111, _q2111, _q0111.

4) Программа машины Тьюринга для функции rest(x,2):

_ 1

1 1 Л 2 _ П 2

2 1 Н 0 _ П 1

Правый столбец задает цикл длины 2, пересчитывающий счетные еди-

ницы. При этом считывающая головка стирает все счетные единицы и оста-

навливается перед пустой ячейкой: в состоянии q2, если счетных единиц бы-

Page 48: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

ло нечетно, и в состоянии q1, если счетных единиц было четно. Левый стол-

бец определяет соответствующие состояниям q2 и q1 ответы на ленте.

Преобразования конфигурации для четных чисел: если x=4, y=0, то

q111111, _q21111, _ _q1111, _ _ _q211, _ _ _ _q11, _ _ _ _ _q2, _ _ _ _ _q01.

Преобразования конфигурации для нечетных чисел: если x=3, y=1, то

q11111, _q2111, _ _q111, _ _ _q21, _ _ _ _q1, _ _ _q2_1, _ _ _q011.

5) Программа машины Тьюринга для функции rest(x,3):

_ 1 1 1 Л 3 _ П 22 1 Н 0 _ П 33 1 Л 2 _ П 1

Преобразования конфигурации для чисел, кратных 3: если x=3, y=0, то

q11111, _q2111, _ _q311, _ _ _q11, _ _ _ _q2, _ _ _ _q01.

Преобразования конфигурации для чисел вида 3m+1: если x=4, y=1, то

q111111, _q21111, _ _q3111, _ _ _q111, _ _ _ _q21, _ _ _ _ _q3, _ _ _ _q2_1,

_ _ _ _q011.

Преобразования конфигурации для чисел вида 3m+2: если x=5, y=1, то

q1111111, _q211111, _ _q31111, _ _ _q1111, _ _ _ _q211, _ _ _ _ _q31,

_ _ _ _ _ _q1, _ _ _ _ _q3_1, _ _ _ _ q2_11, _ _ _ _q0111.

Самостоятельно выполнить задание для одной из функций вида kx −&

f (x)=x+k, k=2,3,4,5,…, и для одной из функций вида rest(x,k), k=4,5,…

ЛАБОРАТОРНАЯ РАБОТА №7

Тема: Удвоение. Синтез машин Тьюринга

Цель: знать понятие синтеза машин Тьюринга и научиться решать за-

дачи на составление программ машин Тьюринга для вычисления характери-

стических функций отношения равенства и отношений неравенств.

Задача 1: Составьте программу машины Тьюринга для вычисления для

функции удвоения y=2x.

Page 49: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

Задача 2: Составьте программу машины Тьюринга для вычисления

двухместной функции

⎩⎨⎧

++

=+=2. на делится не если,1

2, на делится если,0)2)(mod(),(

yxyx

zxyxf

Порядок выполнения работы

Решение задания 1. Программа машины Тьюринга для функции уд-воения y=2x:

_ 1

1 _ Л 8 1 П 2

2 _ Л 3 1 П 2

3 _ Л 4

4 _ Л 5 1 Л 4

5 1 Л 6 1 Л 5

6 1 П 7

7 _ П 1 1 П 7

8 _ Л 8 _ Л 9

9 _ П 0 1 Л 9

Если x≠0, то начальная конфигурация состоит из x+1 единиц, а заклю-чительная – из 2x+1 единиц.

Запись самого числа x используется как счетчик числа единиц: стирая по одной единице в “счетчике”, мы на другом месте пишем две единицы.

Преобразования конфигурации при x=4 и y=8 до первой циклической перестановки включительно: q111111, 1q21111, 11111q2_, 1111q31_, 111q41_, q4_1111, q5_ _1111, q6_1_1111, 1q71_1111, 11q7_111_, 11_q1111.

Дальнейшие преобразования конфигурации до второй циклической пе-рестановки включительно: 11_1q2111, 11_1111q2_, 11_111q31, 11_11q41_, 11q4_111, 1q51_111, q5_11_ _111, q6_111_111, 1q8111_111, 1111q8_111, 1111_q1111.

Конфигурация после третьей циклической перестановки: 111111_q111.

Конфигурация после 4-й циклической перестановки: 11111111_q11.

Page 50: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

Конфигурация после 5-й циклической перестановки: 1111111111_q1.

Следующие преобразования уменьшают конфигурацию на единицу: 1111111111q8_, 111111111q91, 11111111q91_, q9_111111111, _q0111111111.

Если x=0, то y=0. При этом начальная и заключительная конфигурации состоят из одной единицы. Преобразования конфигурации: q11, 1q2_, q31, q4_, q5_, q6_1, 1q71, 11q7_, 11_q1_, 11q8_, 1q81, q91_, q9_1, q01.

Упражнение. Проверьте выполнение программы для x=0, x=1 и x=4.

Решение задания 2. К программе для сложения присоединим програм-му для функции "остаток при делении на 2".

x+y(mod2) _ 1 1 1 П 2 1 П 1 2 _ Л 3 1 П 2 3 _ Л 4 4 _ Л 5

5 1 П 6 1 Л 5

6 1 Л 6 _ П 7

7 1 Н 7 _ П 6

В программе x+y команда для q4 теперь не останавливает работу ма-шины, а направляет к команде для q5.

Команда q5 возвращает считывающую головку к началу числа.

В программе rest(x,2) внутренние состояния q1 и q2 заменяются q5 и q6.

Упражнение. Составьте программу машины Тьюринга для вычисления двухместной функции f (x,y)=(остаток при делении x+1 на 3).

ЛАБОРАТОРНАЯ РАБОТА №8

Тема: Усеченная разность и модуль разности

Продолжительность 2 часа

Цель: научиться решать задачи на составление программ машин Тью-

ринга для вычисления функций усеченной разности и модуля разности.

Задача: Составьте программу машины Тьюринга для функций разно-

сти, усеченной разности и модуля разности (с q0 на любом месте).

Page 51: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

Теоретические сведения: Вычитание не всюду определено, но с ним

тесно связаны всюду определенные функции усеченной разности и модуля

разности: ⎩⎨⎧

≤>−

=−;если,0

,если,yx

yxyxyx &

⎩⎨⎧

≤−>−

=−.если,,если,

||yxxyyxyx

yx

Порядок выполнения работы

Мы вначале построим программу машины Тьюринга для функции мо-

дуля разности, а затем эту программу используем для построения программы

для функции усеченной разности.

Программа машины Тьюринга для функции | |yx − :

_ 1 1 _ П 22 _ Н 0 1 Н 33 _ П 4 1 П 34 _ Л 5 1 П 45 _ Л 66 1 Н 0 1 Н 77 _ Л 8 1 Л 78 _ П 1 1 Л 8

Команды q11, q21, q31, q3_, q41, q4_, q51, q61, q71, q7_, q81, q8_ создают

цикл, поочередно стирающий у x единицу слева и у y единицу справа.

Команда q2_ задействована, если x≤y. Программа выдает ответ y−x.

Команда q6_ задействована, если x>y. Программа выдает ответ x−y.

Программа машины Тьюринга для функции yx −& , полученная из про-

граммы для функции || yx − :

Page 52: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

_ 1 1 _ П 22 _ П 9 1 Н 33 _ П 4 1 П 34 _ Л 5 1 П 45 _ Л 66 1 Н 0 1 Н 77 _ Л 8 1 Л 78 _ П 1 1 Л 89 1 Н 0 _ П 9

Изменения в командах q2_, q91, q9_, задействованных при x≤y. В этом

случае программа теперь выдает ответ 0.

Самостоятельно выполнить задание для разности.

ЛАБОРАТОРНАЯ РАБОТА №9

Тема: Разрешимые по Тьюрингу отношения

Продолжительность 2 часа

Цель: знать понятие разрешимого отношения и научиться решать зада-

чи на составление программ машин Тьюринга для вычисления характеристи-

ческих функций отношения равенства и отношений неравенств.

Задача: Составьте программу машины Тьюринга для характеристиче-

ских функций отношений =, ≠, ≤, ≥, < и > (с q0 на любом месте).

Теоретические сведения: Отношение P⊆N0n называется разрешимым

по Тьюрингу, если вычислима по Тьюрингу его характеристическая функция

⎩⎨⎧

=ложно.),...,(если,0истинно,),...,(если,1

),...,(λ1

11

n

nnP xxP

xxPxx

Двухместное отношение P⊆N0×N0 является разрешимым по Тьюрингу,

если вычислима по Тьюрингу его двухместная характеристическая функция

⎪⎩

⎪⎨⎧

=ложно.),(если,0

истинно,),(если,1),(λ

yxP

yxPyxP

Характеристическая функция отношения порядка >:

Page 53: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

⎩⎨⎧

≤>

=> . если,0, если,1

),(yxyx

yxλ

Порядок выполнения работы

Чтобы построить программу машины Тьюринга для вычисления функ-

ции λ>, мы используем программу для функции yx −& .

Программу машины Тьюринга для функции λ≤ будем преобразовывать

в программу для характеристической функции отношения равенства =:

1, если ,( , )

0, если .x y

x yx y=

=⎧λ = ⎨ >⎩

Изменения должны произойти для команд q2_, q91, q9_, q10_, задейство-

ванных при x≤y. Теперь ответ 1 должен быть только при x=y. Для x>y мы

должны получить ответ 0.

Программа машины Тьюринга для функции λ=:

_ 1 1 _ П 22 _ П 9 1 Н 33 _ П 4 1 П 34 _ Л 5 1 П 45 _ Л 66 _ Л 11 1 Н 77 _ Л 8 1 Л 78 _ П 1 1 Л 89 1 П 1210 1 Н 0 11 1 Н 0 _ Л 1112 1 Н 0 1 Н 1313 _ Н 0 _ П 13

Команды q2_, q91, q12_ задействованы при x=y. В этом случае програм-

ма выдает ответ 1.

Команды q2_, q91, q121, q131, q13_ задействованы при x<y. В этом случае

программа теперь выдает ответ 0.

Самостоятельно выполнить задание для отношений ≠, ≥, и <.

Page 54: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ Государственное образовательное учреждение высшего профессионального образо-

вания «ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ ПЕДАГОГИЧЕСКИЙ УНИВЕРСИТЕТ»

Кафедра информатики и методики преподавания математики

Комплект учебно-методических материалов к учебной дисциплине:

Теория алгоритмов

для специальности 032100.00 «Математика» с дополнительной специальностью 032200 «Физика»

ЗАДАЧИ К ЭКЗАМЕНУ

1. Пусть f(x,y,z,t) – примитивно рекурсивная функция. Докажите, что

функция g(x,y,z,t)=f(t,x,y,z) примитивно рекурсивная.

2. Пусть f(x,y,z,t) – примитивно рекурсивная функция. Докажите, что

функция g(x,y,z)=f(x,x,y,z) примитивно рекурсивная.

3. Пусть f(x,y,z,t) – примитивно рекурсивная функция. Докажите, что

функция g(x,y,z,t,u)=f(y,z,t,u) примитивно рекурсивная.

4. Докажите, что функция g(x,y,z,t,u)=8 примитивно рекурсивная.

5. Докажите, что функция g(x,y,z,t,u)=x+1 примитивно рекурсивная.

6. Используя оператор примитивной рекурсии, докажите, что функция

f(x)=2x+5 примитивно рекурсивна.

7. Используя оператор примитивной рекурсии, докажите, что функция

f(x,y)=2x+y примитивно рекурсивна.

8. Докажите, что отношение ≥ примитивно рекурсивно.

9. Докажите, что отношение < примитивно рекурсивно.

10. Докажите, что функция f(x,y)=x+y+5 вычислима по Тьюрингу.

11. Докажите, что функция f(x,y)=x+y−2 вычислима по Тьюрингу.

Page 55: hosting.vspu.ac.ruhosting.vspu.ac.ru/~chul/gosvpo/files/mf/teor_alg.pdf · Дисциплина «Теория алгоритмов» изучается в 6 семестре, на

12. Докажите, что функция f(x,y)=5 вычислима по Тьюрингу.

13. Докажите, что функция f(x,y)=x−3 вычислима по Тьюрингу.

14. Докажите, что функция f(x,y)=y−1 вычислима по Тьюрингу.

15. Докажите, что функция f(x,y)=1−x вычислима по Тьюрингу.

16. Докажите, что функция f(x,y)=x+y+7 МНР вычислима.

17. Докажите, что функция f(x,y)=x+y−4 МНР вычислима.

18. Докажите, что функция f(x,y)=8 МНР вычислима.

19. Докажите, что функция f(x,y)=x−5 МНР вычислима.

20. Докажите, что функция f(x,y)=y−3 МНР вычислима.

21. Докажите, что функция f(x,y)=1−y МНР вычислима.

22. Пусть A и B - разрешимые множества. Докажите, что разность мно-

жеств A\B={x∈A|x∉B} - тоже разрешимое множество.

23. Пусть A и B - разрешимые множества. Докажите, что разность мно-

жеств A⊕B=(A\B)∪(B\A) - тоже разрешимое множество.

24. Пусть P и Q - разрешимые предикаты. Докажите, что импликация пре-

дикатов P⇒Q - тоже разрешимый предикат.

25. Пусть P и Q - разрешимые предикаты. Докажите, что импликация пре-

дикатов P⇔Q - тоже разрешимый предикат.