
- •Раздел 1. Высказывания и операции над ними. Формулы алгебры высказываний. Классификация формул
- •1.1. Высказывания и операции над высказываниями
- •1.2. Формулы алгебры высказываний
- •1.3.Классификация формул
- •1.4. Значение тавтологий
- •1.5.Основные правила получения тавтологий
- •Раздел 2. Логическая равносильность формул
- •2.1. Отношение равносильности
- •2.2 Законы логики
- •2.3. Упрощение формул.
- •2.4. Равносильные преобразования. Упрощение формул
- •Раздел 3. Нормальные формы для формул алгебры высказываний
- •3.1 Нормальные формы
- •3.2 Совершенные нормальные формы
- •3.4 Получение скнф и сднф с помощью таблиц истинности
- •Раздел 4. Логическое следование
- •4.1 Логическое следование
- •Раздел 5. Применение алгебры высказываний в логико - математической практике
- •5.1 Получение следствий из данных посылок.
- •5.2. Получение следствий, содержащих заданные переменные.
- •5.3. Решение логических задач методом рассуждений.
- •5.4.Методы решение логических задач
- •Раздел 6. Исчисление высказываний.
- •6.1. Понятие переключательной схемы.
- •Раздел 7. Логика предикатов.
- •7.1. Понятие предиката
- •7.2. Способа задания предиката
- •7.3. Множество истинности предикатов
- •7.4. Язык логики предикатов
- •7.5. Следование и включение
- •7.6. Понятие отношений. Свойства отношений.
- •Раздел 8. Исчисление предикатов
- •8.1.Кванторы общности и существования
- •8.2. Квантификация многоместной высказывательной формы.
- •8.3. Отрицание предложений кванторами.
- •8.4. Численные кванторы
- •8.5. Символическая запись определений и теорем.
- •Раздел 9. Алгоритмы. Свойства алгоритмов.
- •9.1 Интуитивное понятие алгоритма.
- •9.2 Свойства алгоритмов
- •Раздел 10. Основная формализация (Машина Поста и мнр).
- •10.1 Машина Поста
- •10.2 Уточнение понятия алгоритма
- •Раздел 11. Основные формализации (мт и на)
- •11.1 Машина Тьюринга (мт)
- •11.2 Нормальные алгоритмы Маркова
- •11.3 Механизм работы нам:
10.2 Уточнение понятия алгоритма
Машина с неограниченными регистрами является исполнителем, представляющим собой простой "идеализированный компьютер". Идеализация состоит в том, что каждый отдельный реальный компьютер ограничен как величиной чисел, которые поступают на вход, так и размером памяти (необходимой для запоминания промежуточных результатов), МНР лишена этих ограничений. Машина с неограниченными регистрами имеет неограниченно большую память, ячейки которой будем называть регистрами и обозначать R1, R2, R3,…. Каждый регистр в любой момент времени содержит неотрицательное целое число.
|
|
|
|
... |
|
|
|
|
... |
Рис. 3.1. Регистры МНР
При этом только конечное множество регистров содержит числа, отличные от нуля. Все остальные регистры заполнены нулями. Это допущение предполагает, что каждый алгоритм использует только конечный объем памяти.
В список предписаний МНР входит четыре команды: команда обнуления Z(n); команда прибавления единицы S(n); команда переадресации T(m, n) и команда условного переходам J(m, n, q). Команды обнуления, прибавления единицы и переадресации называются арифметическими.
Обозначение команды |
Действие, производимое МНР по данной команде |
Z(n) |
Rn: = 0 |
S(n) |
Rn: = Rn + 1 |
T(m, n) |
Rn: = Rm |
J(m, n, q) |
Если Rm = Rn, то перейти к вычислению команды алгоритма с номером q. |
Рис. 3.2. Список предписаний МНР
Алгоритмом называется конечная непустая последовательность команд из списка предписаний МНР, начинающаяся с команды с номером 1.
Производя
вычисления по данному алгоритму, МНР
изменяет содержимое регистров памяти
в точном соответствии с командами
алгоритма. Исходное состояние памяти,
то есть последовательность чисел
в регистрах
R1,
R2,
R3,….
перед началом вычислений, называется
начальной
конфигурацией.
Предположим, что некоторый алгоритм P состоит из последовательности команд I1, I2, ..., Is. МНР начинает вычисление с команды I1, затем выполняются команды I2, I3 и т. д. до тех пор, пока не встретится команда вида J(m, n, q). В этом случае МНР переходит к выполнению команды, предписанной J(m, n, q) и текущим содержанием регистров Rm и Rn.
МНР выполняет алгоритм P: I1, I2, ..., Is до тех пор, пока это возможно. Вычисление останавливается тогда и только тогда, когда нет следующей команды, то есть когда МНР только что выполнила команду Ik и следующая команда в вычислении есть Iv, где v > s. Это может произойти одним из способов:
I) если Ik = Is (выполнена последняя команда в P) и Ik - арифметическая команда;
2) если Ik = J(m, n, q), Rm = Rn и q > s.
3) если Ik = J(m, n, q), Rm Rn и q = s.
В этом случае будем говорить, что вычисление остановилось после выполнения команды Ik, и заключительная конфигурации есть последовательность r1, r2, r3, ... содержимого регистров на этом шаге.
Результатом применения алгоритма к некоторой начальной конфигурации будем считать число r1 из регистра R1 заключительной конфигурации.
Бывают, конечно, вычисления, которые никогда не заканчиваются. В случае, если вычислительный процесс не заканчивается получением результата, говорят, что алгоритм неприменим к начальной конфигурации.
Пример 3.1. Рассмотрим алгоритм P1
I1 |
J(1, 2, 6) |
I2 |
S(2) |
I3 |
S(3) |
I4 |
J(1, 2, 6) |
I5 |
J(1, 1, 2) |
I6 |
T(3, 1) |
Применим алгоритм к следующей начальной конфигурации:
R1 |
R2 |
R3 |
R4 |
R5 |
... |
5 |
3 |
0 |
0 |
0 |
... |
Рис. 3.3. Начальная конфигурация
Ход вычисления на МНР по алгоритму P1 с начальной конфигурацией, изображенной на рисунке 3.3, можно представить, записывая последовательно сверху вниз конфигурации машины вместе со следующей командой, к которой она переходит на данном шаге.
R1 |
R2 |
R3 |
R4 |
R5 |
... |
|
Следующая команда |
Комментарий |
5 |
3 |
0 |
0 |
0 |
... |
|
I1 |
|
5 |
3 |
0 |
0 |
0 |
... |
|
I2 |
(так
как
|
5 |
4 |
0 |
0 |
0 |
... |
|
I3 |
|
5 |
4 |
1 |
0 |
0 |
... |
|
I4 |
|
5 |
4 |
1 |
0 |
0 |
... |
|
I5 |
(так
как
|
5 |
4 |
1 |
0 |
0 |
... |
|
I2 |
(так
как
|
5 |
5 |
1 |
0 |
0 |
... |
|
I3 |
|
5 |
5 |
2 |
0 |
0 |
... |
|
I4 |
|
5 |
5 |
2 |
0 |
0 |
... |
|
I6 |
(так как R1 = R2) |
2 |
5 |
2 |
0 |
0 |
... |
|
I7 |
|
Рис. 3.4. Вычисление по алгоритму P1
Определение
3.1. Пусть f
- функция от n
неотрицательных
целых переменных
со значениями во множестве Z0
неотрицательных целых чисел
(функция
).
Функцияf
называется вычислимой
на МНР (или
МНР-вычислимой),
если существует такой алгоритм P,
что:
1) вычисление P(a1, a2, ..., an) останавливается тогда и только тогда, когда (a1, a2, ..., an) принадлежит области определения f;
2) если (a1, a2, ..., an) принадлежит области определения f; то в заключительной конфигурации в регистре R1 находится целое число b такое, что f(a1, a2, ..., an) = b.
С этого момента под термином вычислимое будем подразумевать МНР-вычислимое.
Рассмотрим теперь несколько простых примеров вычислимых функций.
Пример 3.2. Докажите МНР-вычислимость функции x + y.
Решение. Получим x + y, прибавляя y раз 1 к числу x. Начальной конфигурацией алгоритма служит x, y, 0, 0, 0, .... Типичной конфигурацией в процессе вычисления является
R1 |
R2 |
R3 |
R4 |
R5 |
... |
x + k |
y |
k |
0 |
0 |
... |
Определим алгоритм следующим образом:
I1 |
J(3, 2, 5) |
I2 |
S(1) |
I3 |
S(3) |
I4 |
J(1, 1, 1) |
Заданный алгоритм вычисляет функцию x + y.
Пример
3.3. Докажите
МНР-вычислимость функции
Решение. Составим алгоритм для начальной конфигурации x, 0, 0, ... . Типичной конфигурацией в процессе вычисления является:
R1 |
R2 |
R3 |
R4 |
R5 |
... |
x |
k |
k + 1 |
0 |
0 |
... |
Следующий алгоритм МНР - вычисляет функцию.
I1 |
J(1, 2, 6) |
I2 |
S(2) |
I3 |
J(1, 2, 6) |
I4 |
S(3) |
I5 |
J(1, 1, 2) |
I6 |
T(3, 1) |
Вопросы для контроля:
Определение и принципы работы машины с неограниченными регистрами.
Определение и принципы работы машины Поста.
Основной тезис теории алгоритмов.