
- •Введение
- •1. Основные сведения из формальной логики
- •1.1. Введение в формальную логику
- •1.2. Формы познания человеком окружающего мира
- •1.3. Формы абстрактного мышления
- •«Все s есть p»,
- •«Если s есть p, то s есть p1».
- •1.4. Содержательное описание основных законов классической формальной логики и границы их применимости
- •1.5. Способы правильных умозаключений, обусловленных основными законами формальной логики.
- •1.6. Правильные способы рассуждений, основанные на теории силлогизмов
- •Вопросы для самоконтроля
- •2. Элементы теории множеств
- •2.1. Понятие множества. Способы задания множеств
- •Упражнения
- •2.2. Части множеств
- •2.2.1. Понятие подмножества
- •2.2.2. Множество-степень
- •2.2.3. Понятие о верхней и нижней гранях множеств
- •2.3. Операции над множествами.
- •2.4. Основные свойства операций над множествами
- •2.5. Отношения на множествах
- •2.5.1. Операции над отношениями
- •2.5.2. Основные свойства отношений
- •2.6. Функции как отношения на множествах
- •2.7. Отношения эквивалентности
- •2.8. Отношения порядка
- •Упражнения
- •Парадоксы теории множеств
- •Вопросы для самоконтроля
- •1. Алгебра логики
- •Понятие о простом и сложном высказывании
- •Упражнения
- •Логические операции над высказываниями
- •Упражнения
- •Упражнения
- •1.4. Аксиомы и законы алгебры логики
- •1.4.1. Правила склеивания для элементарных конъюнкций и дизъюнкций
- •Дизъюнкций
- •1.4.3. Правило развёртывания
- •Все ке для двух высказываний
- •Развёртывание элементарной дизъюнкции
- •Упражнения
- •1.5. Функции алгебры логики. Нормальные формы логических функций
- •Общая запись любой логической функции в сндф имеет вид
- •Пример. По заданной таблице истинности составить сндф функций
- •Снкф для выше приведенной таблицы истинности будут иметь вид
- •Упражнения
- •1.6.Минимизация логических функций
- •1.6.1. Расчетный метод минимизации
- •1.6.2. Табличный метод минимизации
- •1.6.3. Расчетно-табличный метод минимизации (метод Квайна)
- •Упражнения
- •1.7. Некоторые применения алгебры логики
- •Упражнения
- •Вопросы для самоконтроля
- •2. Исчисление высказываний
- •2.1. Понятие формулы исчисления высказываний
- •Упражнения
- •2.2. Аксиомы и простейшие правила вывода
- •Система аксиом исчисления высказываний
- •Тогда правило подстановка схематически запишется так
- •2.3. Определение доказуемой формулы
- •Рассмотрим примеры получения доказуемых формул.
- •2.4. Производные правила вывода
- •Упражнения
- •2.5. Определение формулы, выводимой из совокупности формул н
- •2.6. Понятие вывода
- •2.7. Основные правила выводимости
- •2.8. Доказательство некоторых законов логики
- •2.9. Проблемы аксиоматического исчисления высказываний
- •Вопросы для самоконтроля
- •3. Логика предикатов
- •3.1. Понятие предиката
- •3.2. Логические операции над предикатами
- •Упражнения
- •Кванторные операции
- •Упражнения
- •Определение формулы логики предикатов
- •3.5. Равносильные формулы логики предикатов
- •Упражнения
- •3.6. Предварённая нормальная форма
- •Выполнимость и общезначимость формул
- •Упражнения
- •Применение языка логики предикатов в математике и технике
- •Вопросы для самоконтроля
- •4. Основные положения теории алгоритмов
- •4.1. Интуитивное понятие алгоритма
- •4.2. Уточнение понятия алгоритма
- •4.3. Частично-рекурсивные и общерекурсивные функции
- •Упражнения
- •4.4. Машины Тьюринга
- •Упражнения
- •4.5. Понятие о нормальных алгоритмах Маркова
- •4.6. Алгоритмически неразрешимые проблемы
- •4.7. Сложность алгоритмов
- •Вопросы для самоконтроля
- •Ответы и решения
- •Раздел 1
- •Подраздел 1.3
- •Раздел 2
- •Раздел 3.
- •Раздел 4
- •Библиографический список
- •Список сокращений
- •Содержание
Раздел 4
Подраздел 4.3
1) Первое равенство
соответствует стандартной форме СПР,
т.е.
,
второе же равенство еще нужно привести
к соответствующей форме. По определению
СПР,
.
На основании второго равенства заданной
системы
.
Сделаем замену
и обозначим
.
Тогда
.
Таким образом, стандартная форма СПР
будет иметь вид
Выполняя
последовательные вычисления, найдем
.
Из первого равенства системы находим
Из второго равенства системы последовательно
находим:
;
;
.
Аналитический вид
функции
найдем, исходя из второго равенства
заданной системы равенств:
.
Нетрудно заметить,
что все значения функции
вычисленные аналитически и по СПР при
одних и тех же значениях аргументов,
совпадают.
2) Эта задача по
существу является обратной к предыдущей
задаче, и ответ может быть простым:
функция
была выше получена по СПР из простейшей
функции
(оператор аннулирования), которая,
согласно определению, является всюду
определенной, и из функции
.
Эта последняя функция также является
всюду определенной, так как она, в свою
очередь, была получена в примере 1
подразд. 4.3 по СПР из всюду определенных
функций
и
.
Поэтому функция
частично рекурсивна и всюду определена
и, согласно определению, является
общерекурсивной.
Однако нас должен
интересовать вопрос сведения аналитически
заданной функции, в данном случае
к СПР.
Выполним такое сведение:
Очевидно, что можно
обозначить:
,
а
представить в стандартном виде для СПР,
т.е.
.
Тогда окончательный вид СПР для данной
функции будет
Таким образом,
отталкиваясь в данном примере от
аналитически заданной функции
мы сводим ее к СПР, которая была исходно
задана в предыдущем примере.
3) Функцию
можно представить в виде системы двух
равенств:
Эта система может быть записана в виде СПР так:
Из первого равенства
этой СПР можно записать
Из второго равенства этой СПР
последовательно получим
;
;
;
;
.
Эти же результаты
мы получим, если выполним вычисления
непосредственно по функции
при соответствующих значениях аргументов.
4) Функцию
можно представить в виде системы двух
равенств
Поскольку данная функции зависит лишь от одного аргумента, то для нее СПР должна быть представлена в виде (3), т.е.
Определим конкретный
вид функции
.
Теперь вычислим
по приведенной СПР значение функции
при
;
;
;
.
5) В соответствии с определением СПР запишем:
Вычислим по этой
СПР несколько значений
:
;
;
;
.
Продолжая этот
процесс
раз, получим
.
Теперь найдем по данной СПР
:
;
;
.
Если мы вычислим
значение
непосредственно по аналитическому
выражению, то получим тот же самый
результат:
.
Подраздел 4.4
1) Так как, по
условию, задана десятичная система
счисления, то внешний алфавит МТ должен
содержать все цифры от 0 до 9 и символ
пустой клетки
Чтобы решить
задачу, МТ должна в первом такте работы
стереть последнюю цифру числа
заменить ее цифрой, на единицу большей,
и перейти в состояние
если последняя цифра числа
была меньше цифры 9.
Если же последняя цифра числа была 9, то МТ должна стереть её, записать в освободившуюся клетку цифру 0 и произвести сдвиг головки влево на одну клетку, оставаясь в том же начальном состоянии. Во втором такте МТ должна прибавить единицу к цифре, стоявшей в левой клетке, т.е. в клетке, куда сдвинулась головка.
Если после сдвига
влево головка МТ будет обозревать пустую
клетку, то в следующем такте она должна
записать в пустую клетку цифру 1 и перейти
в состояние
.
Таким образом, для вычисления заданной
функции МТ должна пребывать лишь в двух
состояниях:
и
,
а функциональная схема должна иметь
вид следующей таблицы
Q |
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
|
1нq0 |
1нq0 |
2нq0 |
3нq0 |
4нq0 |
5нq0 |
6нq0 |
7нq0 |
8нq0 |
9нq0 |
0лq1 |
Конфигурации для
будут иметь вид:
a05
6a0;
a05
7a0;
.
q1 q0
Конфигурации
для
будут
такими:
a01
9 9a0;
a01
9 0a0;
a01
0 0a0;
a02
0 0a0;
.
q1 q1 q1 q0
Для
будем
иметь
конфигурации:
a09
9a0;
a09
0a0;
a00
0a0;
a01
0 0a0;
.
q1 q1 q1 q0
2) В двоичной системе счисления сложение двух чисел выполняется в соответствии с правилами
,
,
,
.
Очевидно, что
внешний алфавит должен состоять из
символов
,
число состояний МТ должно быть равно
двум:
,
а функциональная схема иметь вид таблицы
Q |
|
0 |
1 |
|
1нq0 |
1нq0 |
0лq1 |
Соответствующие конфигурации будут иметь вид:
,
a01
0 1a0;
a01
0 0a0;
a01
1 0a0;
;
q1 q1 q0
,
a01
1 0a0;
a01
1 1a0;
;
q1 q0
,
a01
1 1a0;
a01
1 0a0;
a01
0 0a0;
a00
0 0a0;
q1 q1 q1 q1
a01
0 0 0a0;
q0
3) Внешний алфавит
будет
.
Для реализации алгоритма необходимо,
чтобы МТ, находясь в начальном состоянии
заменяла последнюю цифру числа
если она меньше 6, цифрой, на четыре
единицы большей, и переходила в состояние
.
Если последняя
цифра числа
равна 6,7,8 или 9, то ее нужно заменить
соответственно на цифру 0,1,2 или 3 и
сдвинуться влево на одну клетку, перейдя
в состояние
.
Состояние
должно добавлять 1 к следующему разряду.
Таким образом, МТ
будет иметь три состояния:
,
а ее функциональная схема будет
представлена таблицей
Q |
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
|
|
4нq0 |
5нq0 |
6нq0 |
7нq0 |
8нq0 |
9нq0 |
0лq2 |
1лq2 |
2лq2 |
3лq2 |
|
1нq0 |
1нq0 |
2нq0 |
3нq0 |
4нq0 |
5нq0 |
6нq0 |
7нq0 |
8нq0 |
9нq0 |
0лq2 |
Соответствующие конфигурации будут иметь вид:
,
a04
8a0;
a04
2a0;
a05
2a0;
;
q1 q2 q0
,
a02
9 7a0;
a02
9 1a0;
a02
0 1a0;
a03
0 1a0;
.
q1 q2 q2 q0
4) В основу решения задачи можно положить следующий принцип. Если в исходном слове, которое в МТ будет представлять начальную конфигурацию вида
a0а1а2…аna0
q1
букву
заменить на символ пустой клетки
и, двигаясь вправо до первой пустой
клетки, вписать в нее букву
а все остальные буквы этого слова
оставить без изменения, то мы и получим
искомое решение. Если при этом управляющая
головка в исходном состоянии
обозревает букву
,
то она должна заменить ее на букву
и, сдвинувшись вправо на одну клетку,
перевести МТ в новое состояние
.
Это состояние во всех следующих тактах
не должно менять буквы.
Если же головка в
исходном состоянии
обозревает букву
,
то она должна заменить ее на букву
и, сдвинувшись вправо, перевести МТ в
новое состояние
.
Это состояние во всех следующих тактах
не должно менять буквы.
Находясь же в состоянии и обозревая головкой правую пустую клетку , МТ должна вписать в эту клетку букву , остаться на месте и перейти в состояние . Находясь в состоянии и обозревая правый символ , МТ должна вписать в эту клетку букву , остаться на месте и перейти в состояние .
Обобщая всё изложенное, функциональную схему МТ для решения данной задачи можно представить в виде
Q |
|
|
|
|
|
а0пq2 |
а0пq3 |
|
а1нq0 |
а1пq2 |
а2пq2 |
|
а2нq0 |
а1пq3 |
а2пq3 |
Последовательности всех конфигураций для заданных слов
а0а1а2а2а1а2а0,; а0а2а1а2а1а2а0,;
q1 q1
а0а0а2а2а1а2а0; а0а0а1а2а1а2а0;
q2 q3
а0а2а2а1а2а0; а0а1а2а1а2а0;
q2 q3
а0а2а2а1а2а0; а0а1а2а1а2а0;
q2 q3
а0а2а2а1а2а0; а0а1а2а1а2а0;
q2 q3
а0а2а2а1а2а0; а0а1а2а1а2а0;
q2 q3
а0а2а2а1а2а1а0; а0а1а2а1а2а2а0.
q0 q0
5) Очевидно, что всё многообразие чисел, которые могут использоваться при заданных условиях, исчерпывается следующими словами: *, 0, и * 0 * * 0… …* *.
Таким образом, достаточно, чтобы управляющая головка различала всего лишь три символа: 0 и *. Тогда, если слово представлено всего лишь одним символом *, то для решения задачи достаточно, чтобы головка МТ, обозревая в исходном состоянии правую пустую клетку (с символом ), сдвинулась влево на одну клетку. Поскольку там записан символ *, то МТ должна во втором такте выработать команду, которая в правой пустой клетке сохранила бы символ и, обозревая символ *, перешла бы в состояние
Если задано
,
то нужно в первом такте сдвинуться влево
на одну клетку, сохранив символ
.
Но поскольку любое число
большее 9, может состоять из 0 в младшем
разряде и из любых чисел в последующих
разрядах, то это нужно проверить. То
есть во втором такте нужно вновь
сдвинуться на клетку влево, сохранив в
предыдущей клетке 0, и перейти в новое
состояние. Если окажется, что новая
клетка будет пуста, т.е. в ней записан
символ
,
то в следующем такте нужно возвратиться
в предыдущую клетку, сохранив левый
символ
и изменив состояние МТ на новое. Поскольку
в клетке, к которой возвратится головка,
записан 0, то его надо зафиксировать.
Для этого нужно выработать команду
подтверждения 0 и переход в состояние
.
Если же после 0 в
младшем разряде в заданном слове окажется
хотя бы один символ, то это значит, что
заданное число
.
Следовательно, все символы, располагающиеся
левее первого нуля в младшем разряде,
нужно стереть, заменить их на символ
пустой клетки
,
возвратиться к первому нулю, заменить
его на символ * (что будет эквивалентно
1) и перейти в состояние
.
Обобщая все сказанное, один из вариантов решения задачи, т.е. функциональной схемы, можно представить в виде следующей таблицы и соответствующих конфигураций:
Q |
|
0 |
* |
||
|
а0лq2 |
|
|
||
|
|
0лq3 |
*нq0 |
||
|
а0пq4 |
а0лq3 |
а0лq5 |
||
|
а0пq4 |
0нq0 |
*нq0 |
||
|
а0пq7 |
а0лq5 |
а0лq6 |
||
|
а0пq6 |
*нq0 |
|
||
|
а0пq7 |
*нq0 |
|
1. а0 * а0, 1. а0 0 а0, 4. а0 0 а0,
q1 q1 q4
2. а0 * а0, 2. а0 0 а0, 5. а0 0 а0 − результат
q2 q2 q0
3. а0 * а0 − результат. 3. а0 0 а0,
q0 q3
/ 1. a0 * 0 * 0 a0, 6. a0 a0 a0 a0 0 a0,
q1 q6
2. a0 * 0 * 0 a0, 7. a0 a0 a0 a0 0 a0,
q2 q6
3. a0 * 0 * 0 a0, 8. a0 a0 a0 0 a0,
q3 q6
4. a0 * 0 * 0 a0, 9. a0 a0 0 a0,
q5 q6
5. a0 * a0 a0 0 a0, 10. a0 0 a0,
q5 q6
11. a0 * a0 – результат
q0.