
- •Математическая логика и теория алгоритмов
- •1. Информация о дисциплине
- •1.1. Предисловие
- •1.2. Содержание дисциплины и виды учебной работы
- •2. Рабочие учебные материалы
- •2.1. Рабочая программа
- •2.2. Тематический план дисциплины
- •2.3. Структурно-логическая схема дисциплины
- •2.4. Временной график изучения дисциплины
- •2.5. Практический блок
- •2.6. Рейтинговая система
- •3. Информационные ресурсы дисциплины
- •3.1. Библиографический список
- •3.2. Опорный конспект лекций по дисциплине
- •ВВЕДЕНИЕ
- •1. ЛОГИКА ВЫСКАЗЫВАНИЙ
- •2. ЛОГИКА ПРЕДИКАТОВ
- •5. ЭЛЕМЕНТЫ ТЕОРИИ АЛГОРИТМОВ
- •6. ВЕРИФИКАЦИЯ АЛГОРИТМОВ И ПРОГРАММ
- •7. ЭФФЕКТИВНОСТЬ АЛГОРИТМОВ
- •Заключение
- •3.3. Учебное пособие
- •3.4. Глоссарий
- •4. Блок контроля освоения дисциплины
- •4.2. Тестирование
- •Содержание
4. Блок контроля освоения дисциплины
4.1.Задания на контрольные работы
иетодические указания к их выполнению
По дисциплине “Математическая логика и теория алгоритмов” студенты выполняют две контрольных работы. Текст заданий на контрольные работы 1 и 2 генерируется с помощью программы MLTA2007. В качестве номера варианта студент использует не менее четырех последних цифр своего шифра, либо весь шифр (программа MLTA2007 допускает ввод шифра вместе с разделителем “- ”). Для этого программа MLTA2007.exe переводится в режим ЗАДАНИЕ. Например, вариант #1 задания выглядит, как показано на рис.4.1. Контрольная работа 1 содержит задания 1, 2 и 3, а контрольная работа 2 – задания 4, 5 и 6 (на рис. 4.1 номера заданий указаны римскими цифрами).
В тексте задания используются следующие обозначения логических связок: “->” для импликации, “~” для эквивалентности, “\/” для дизъюнкции и знак минус “-“ для отрицания. Для обозначения кванторов всеобщности и существования используются символы “A” и “E” соответственно.
4.1.1. Методические указания к выполнению контрольной работы 1
Контрольная работа 1 состоит из трех заданий: 1, 2 и 3.
Задание 1 включает 12 задач на упрощение формул исчисления высказываний, в которых требуется получить формулу, равносильную исходной, но содержащую, по возможности, меньшее число пропозициональных букв и символов логических операций.
Например, задана формула, которую необходимо упростить: (X1 X2 X3) & (X1 X2 X3) & (X1 X3) & ( X2 X3 X4) & & ( X1 X2 X3) & ( X1 X3 X4) & ( X1 X2).
91

Кафедра компьютерных технологий и ПО, СЗТУ МАТЕМАТИЧЕСКАЯ ЛОГИКА И ТЕОРИЯ АЛГОРИТМОВ - Вариант #1: MLTA2007
Студент - Ф.и.о.: Шифр:
Задание на контрольную работу 1
I. Упростить формулы исчисления высказываний:
1)((-q&-s) ~ -s) ~ (-s -> -q)
2)((-v&-q) -> -r) ~ (-v -> (-q -> -r))
3)((q&-s) -> -p) ~ (-q -> (-s -> -p))
4)((-v -> -q)&(-v -> -r)) -> (-v -> (-q&-r))
5)(-s\/q)(-p\/q\/r)(p\/-q)(-p\/-q\/-s)(-r\/s\/-q)(q\/s\/p)(s\/-r\/-p)
6)-((v&-q)&(-v\/-r))
7)(-q\/-p\/s)(-p\/q\/r)(-s\/q)(p\/q\/s)(p\/-q)(s\/-p\/-r)(-q\/-p\/-s)
8)(-v -> (-q -> -r)) -> ((-v -> -q) -> (-v -> -r))
9)(q\/r\/-p)(s\/q\/p)(s\/r\/-q)(-r\/s\/-p)(-s\/q)(-q\/p)(-q\/-p\/-s)
10)(-v -> -q) -> ((-r -> -q) -> ((-v&-r) -> -q))
11)(-q\/-p\/s)(q\/-s)(-s\/-p\/-q)(r\/q\/-p)(p\/-q)(q\/s\/-r)(s\/-r\/-p)
12)((-v -> -q)\/(-v -> -t)) -> (-v -> (-q\/-r))
II. Даны высказывания:
1)ЧТОБЫ N ДЕЛИЛОСЬ НА 10 ДОСТАТОЧНО,ЧТОБЫ N ДЕЛИЛОСЬ НА 5.
2)N НЕ ДЕЛИТСЯ НА 5 TOЛЬKO TOГДА, KOГДA N НЕ ДЕЛИТСЯ НА 10.
3)TO,ЧTO N ДЕЛИТСЯ НА 5 ЕСТЬ НЕОБХ.УСЛОВИЕ ТОГО,ЧТОБЫ N ДЕЛИЛОСЬ НА 10.
4)N ДЕЛИТСЯ НА 5 ТОГДА И ТОЛЬКО ТОГДА,КОГДА N ДЕЛИТСЯ НА 10.
5)TO,ЧTO N НЕ ДЕЛИТСЯ НА 5 ВЛЕЧЕТ TO, ЧTO N НЕ ДЕЛИТСЯ НА 10.
Какие из них следуют из высказывания
6) TO,ЧTO N ДЕЛИТСЯ НА 10 ВЛЕЧЕТ TO, ЧTO N ДЕЛИТСЯ НА 5. III. Дано универсальное множество = {j,i,k,h,b,g,a,f,c,e,d} и два подмножества I={k,f,b,a,g,h} и F={c,a,f,d,e,g};
два предиката B(x)=" x принадлежит I" и A(x)=" x принадлежит F". Найдите область истинности предикатов:
P1(x)=B(x)\/A(x); P2(x)=B(x)~A(x); P3(x)=B(x)&A(x); P4(x)=B(x)->A(x)
Задание на контрольную работу 2
IV. Найдите значения истинности формул, если B(x) и A(x) имеют интерпретацию из задачи III:
1)(Av)(-B(v) -> A(v)) ~ (-Ev)(-B(v)&-A(v))
2)(-Ay)(B(y) -> -A(y)) ~ (-Ey)(B(y)&A(y))
3)(Aq)(-B(q) -> -A(q)) ~ (-Eq)(-B(q)&A(q))
4)(-At)(B(t) -> A(t)) ~ (-Et)(B(t)&-A(t))
5)(-Aw)(-B(w) -> -A(w)) ~ (Ew)(-B(w)&-A(w))
6)(-Az)(B(z) -> A(z)) ~ (-Ez)(-B(z)&A(z))
7)(Ar)(-B(r) -> -A(r)) ~ (Er)(-B(r)&A(r))
8)(Au)(B(u) -> -A(u)) ~ (-Eu)(-B(u)&A(u))
V. Определите функцию последовательности 3 присваиваний:
Q:= -R-3*P; R:= Q+3*P; P:= 2*Q-2*R
VI.Определите функцию последовательности 2 усл.операторов:
IF Q<2 THEN Q:=2*Q-P ELSE IF P<-2 THEN P:=-2*Q+P;
IF P<-5 THEN P:=-Q-3*P ELSE Q:=Q+3*P;
Преподаватель: Дата:
Рис. 4.1
В исходной или промежуточной формуле отмечаем подформулы, к которым применяется преобразование, номером равносильности, который используется
92
для упрощения формулы. Для этого студент должен выписать те равносильности, которые он использует, перенумеровать их и ссылаться на эту нумерацию при их использовании в контрольной работе.
Применим |
к первым двум подформулам (X1 X2 X3) |
и |
|
(X1 |
X2 X3) |
равносильность |
|
|
|
(P1 P2) & (P1 P2) P1, |
(4.1) |
считая P1 = X1 X3 и P2 = X2, тогда их можно заменить одной подформулой |
|||
(X1 |
X3), что дает более простую формулу, равносильную исходной: |
||
|
(X1 X3) & (X1 X3) & ( X2 X3 X4) & |
|
|
|
( X1 X2 X3) & ( X1 X3 X4) & ( X1 X2). |
|
Кподформулам (X1 X3) и (X1 X3) снова применим равносильность (4.1)
иполучаем еще более простую формулу, равносильную исходной:
X1 & ( X2 X3 X4) & ( X1 X2 X3) & ( X1 X3 X4) & |
|
( X1 X2) и т.д. |
|
Используем далее равносильности |
|
P1&( P1 P2) P1& P2, |
(4.2) |
P& P 0, |
(4.3) |
P& 0 0. |
(4.4) |
Для рассматриваемой формулы запись всех упрощений может иметь, например, следующий вид:
(X1 X2 X3)1 & (X1 X2 X3)1 & (X1 X3) & ( X2 X3 X4) & ( X1X2 X3) & ( X1 X3 X4) & ( X1 X2) =
(X1 X3)1 & (X1 X3)1 & ( X2 X3 X4) & ( X1 X2 X3) & ( X1 X3 X4) & ( X1 X2) =
X12 & ( X2 X3 X4) & ( X1 X2 X3)2 & ( X1 X3 X4)2 & ( X1 X2)2 =
X1 & ( X2 X3 X4)2 & ( X2 X3)2 & (X3 X4) & X22 =
93
X1 & (X3 X4)2 & ( X3)2 & (X3 X4)2 & X2 =
X1 & X43 & X3 & X43 & X2 = (X1 & 0 & X3 & X2)4 = 0.
Если в формуле используются операции импликации и эквивалентности, то, как правило, их следует преобразовать с помощью соответствующих равносильностей. Например:
((X1 → X2)5 (X1 → X4))5 → (X1 → (X2 X3))5 = ( X16 X2 X16 X4) → ( X1 X2 X3) =
(( X1 X2 X4) →( X1 X2 X3))5 = |
|
( ( X1 X2 X4))7 X1 X2 X3 = |
|
( X18 & (X2 X4)7) X1 X2 X3 = |
|
((X1 & X2 & X4) X1)2 X2 X3 = |
|
(( X2 & X4) X1 X2)2 X3 = |
|
X1 X2 X3 X4. |
|
В этом примере использованы равносильности |
|
P1 Æ P2 P1 P2 |
(4.5) |
P P P |
(4.6) |
(P1 P2) P1& P2 |
(4.7) |
P P |
(4.8) |
Из этого примера видно, что некоторые правила можно применить независимо к отдельным формулам.
В задании 2 необходимо выяснить, является ли одно составное высказывание логическим следствием другого. Возьмем высказывание: "Pавные треугольники подобны". Это высказывание можно записать символически Ф1 = A → B, где A = "Треугольники равны", B = "Треугольники подобны".
Рассмотрим высказывание: Треугольники подобны только в случае их равенства", которое можно записать символически как Ф2 = B → A, где A и B определены выше. Является ли Ф2 логическим следствием Ф1? Рассмотрим
94
импликацию Ф3 = (A → B) → (B → A) и, чтобы проверить, является ли она тавтологией, упростим эту формулу:
(A → B)5 → (B → A)5 = (( A B) → ( B A))5 = |
|
( ( A B))7 B A = (( A & B) B)9 A = ( B A)5 = B → A. |
|
Здесь использована равносильность |
|
P1 ( P1 & P2) P1. |
(4.9) |
Таким образом, Ф3 не является тавтологией и, следовательно, нельзя
сказать, что Ф2 |
является логическим следствием Ф1. |
|
В задании 3 |
даны универсальное множество |
M={a,b,c,d,e,f} и два его |
подмножества L={b,c,d} и K={d,e,f}, а также два предиката P(x) и Q(x), причем {x: P(x)}=L и {x: Q(x)}=K, т.е. L и K являются множествами истинности предикатов P(x) и Q(x) соответственно.
Требуется найти множество истинности предика E(x) = P(x) ↔ Q(x). Для решения используем определение эквивалентности предикатов
{x E(x)} = (¬L ∩ K) (L ∩ ¬K) = ({a,b,e,f} ∩ {d,e,f}) ({b,c,d} ∩ {a,b,c}) = {e,f} {b,c} = {e,f,b,c}.
4.1.2. Методические указания к выполнению контрольной работы 2
Контрольная работа 2 состоит из трех заданий: 4, 5 и 6.
В задании 4 необходимо установить, какие формулы являются общезначимыми, какие формулы являются противоречивыми, т.е. являются отрицанием общезначимых, а для остальных формул установить их логическое значение для заданной интерпретации.
Пусть задана формула x ( P(x) → Q(x)) ↔ x ( P(x) & Q(x)). Можно попытаться установить общезначимость данной формулы (тем более что, для
95
одноместных предикатов это алгоритмически разрешимая задача). Для этого левую часть заданной эквивалентности заменим равноcильной формулой
x (P(x) Q(x)) на основе (4.5), а правую часть – формулой x ( P(x) & Q(x))
на основе x T(x) x T(x). Далее, с учетом эквивалентности
(P1 & P2) P1 P2
правая часть примет вид x (P(x) Q(x)), т.е. исходная формула преобразована
к виду x (P(x) Q(x)) |
↔ x (P(x) Q(x)), где левая часть равна правой. |
|||||
Следовательно, |
заданная |
формула является |
общезначимой |
(в |
ответ |
|
записываем T в латинском регистре). |
|
|
|
|
||
Пусть задана формула x ( P(x) → Q(x)) ↔ x ( P(x) & Q(x)). Левую |
часть |
|||||
этой формулы |
можно |
преобразовать к |
виду |
x ( P(x) & Q(x)). Таким |
||
образом, левая часть равна отрицанию правой части |
(в ответ записываем C в |
|||||
латинском регистре). |
|
|
|
|
|
Пусть задана формула x ( P(x) → Q(x)) ↔ x ( P(x) & Q(x)), причем интерпретация P(x) и Q(x) берется из задачи 3. Левую часть этой формулы можно преобразовать к виду x ( P(x) & Q(x)). Таким образом, левая часть не равна правой части или ее отрицанию. Используем заданную интерпретацию для установления истинности левой и правой частей. Левая часть x ( P(x) &
Q(x)) ложна, так как существует x=a, при котором P(a)=0 и Q(a)=0.
Правая часть x ( P(x) & Q(x)) истинна, так как существует x=e, при котором
P(e)=0 и Q(e)=1. Таким образом, исследуемая формула сведена к виду 0 ↔1 и, следовательно, ложна при заданной интерпретации (в ответ записываем 0).
Задания 5 и 6 посвящены верификации программ, т.е. анализу действия программ над данными. В задании 5 рассматривается верификация простой линейной программы, а в задании 6 – программы с ветвлениями. Подробная методика решения приведена в учебном пособии [1, с.29–35] и в разделе “Верификация алгоритмов и программ” опорного конспекта настоящего учебно-методического комплекса.
96

4.1.3. Представление результатов и автоматическая проверка выполнения контрольных работ
Для облегчения проверки контрольных работ в конце работы следует привести основные результаты, как показано на рис.4.2, а именно:
Вариант #1: MLTA2007
1) 1;1; s\/-p; 1; q-sp-r;-v\/q\/r; 0;1;0;1; -q-s-p-r; v\/-q\/-r\/t; 2) 2 3 5
3){k,h,b,g,a,f,c,e,d} {j,i,g,a,f} {g,a,f} {j,i,g,a,f,c,e,d}
4)T; C; T; C; 1; 0; C; 1;
5) Q=-Ro-3*Po; R=-Ro; P=-6*Po
6)1.1 (Qo<2)&(Po<-5): Q:= 2*Qo-Po; P:= -2*Qo-2*Po; 1.2 (Qo<2)&((Po>=-5): Q:= 2*Qo+2*Po; P:= Po;
2.1(Qo>=2)&(Po<-2): Q:= Qo; P:= 5*Qo-3*Po;
3.2(Qo>=2)&(Po>=-2): Q:= Qo+3*Po; P:= Po;
Рис.4.2
•по заданию 1 даются ответы в том порядке, в котором приведены исходные формулы;
•по заданию 2 приводятся номера высказываний, являющихся следствием заданного высказывания;
• по заданию 3 даются множества истинности предикатов в том порядке, в котором заданы предикаты;
•по заданию 4 выписываются значения формул, причем используются обозначения: T (лат) – тавтология, C (лат) – противоречие, 1 – истинна для заданной интерпретации, 0 – ложна для заданной интерпретации;
•по заданию 5 выписываются результирующие присваивания;
•по заданию 6 выписываются условия и результирующие присваивания для каждого возможного пути.
Автоматическая проверка. Программа MLTA2007 позволяет студенту проверить основные результаты контрольной работы. Для этого студент
97

должен набрать в любом текстовом редакторе файл ответов, как показано на рис. 4.3.
1, Петров, 555-777;
1)1 , 1 ,-\/s, 1, q-sp-r, -v\/q\/r, 0, 1, 0, 1, -q-s-p-r, 1;
2)5,3,2 ;
3){k,h,b,g,a,f,c,e,d}, {j,i,g,a,f}, {g,a,f}, {j,i,g,a,f,c,e,d};
4)T, C, T, C, 1, 0, 0, 1;
5)(0,-1,-3), (0, -1 , 0), (0, 0, -6);
6)1.1: (2, -1), ( -2, -2);
1.2: |
(2, |
2), |
( 0, |
1); |
2.1: |
(1, |
0), |
(5, |
-3); |
3.2: |
(1, |
3), |
(0, |
1); |
END;
Рис.4.3
Имя этого файла должно иметь расширение “.R”.Программа MLTA2007 запускается в режиме ПРОВЕРКА. При наличии синтаксических ошибок, программа выдает соответствующие сообщения. Для исправления файла ответов можно использовать встроенный текстовый редактор (режим РЕДАКТОР).
Если синтаксических ошибок нет, то программа дает оценку правильности
(Y) или неправильности (N) по каждой задаче или отдельной части задачи (рис. 4.4). Эта оценка добавляется в конец файла ответов.
РЕЗУЛЬТАТЫ ПРОВЕРКИ 1 - Петров - 555-777:
1)Y Y Y Y Y Y Y Y Y Y Y Y
2)Y
3)Y Y Y Y
4)Y
5)Y Y Y
6)1.1:Y Y ; 1.2:Y Y ; 2.1:Y Y ; 2.2:Y; 3.1:Y; 3.2:Y Y ; SCORE=100, GRADE=5 Code=26535
Рис. 4.4
Файл ответов оформляется строго в соответствии со следующими правилами:
98