SlideShare a Scribd company logo
ТЕМА «Понятие предиката. Логические операции над предикатами»
Цель урока: знакомство с предикатами, логическими операциями над предикатами.
Задачи урока:
образовательная – изучение понятий алгебры предикатов, формирование умений и навыков
применения алгебры предикатов;
развивающие – развитие логического и комбинационного мышления, памяти, внимательности;
воспитательные – воспитание познавательного интереса учащихся, умения слушать,
аккуратности в работе, трудолюбия.
Тип урока: комбинированный урок.
Формы работы: фронтальная.
Наглядность и оборудование:
 компьютеры;
 мультимедийный проектор;
 презентация, подготовленная в MS PowerPoint (файл LOGIKA13-14.PPT);
 файл Шпаргалка.doc (системы логических уравнений для задач №6, 7, 8, 9);
 файл log10.pas;
 файл predikat.pas;
 карточки для устной работы;
 опорный конспект.
ПЛАН УРОКА.
1. Подведение итогов работы в группах (20 минут).
2. Проверка домашнего задания (5 минут).
3. Изучение нового материала (40 минут):
а) Понятие предиката. Область определения предиката (20 минут);
б) Одноместный предикат. Многоместный предикат (10 минут);
в) логические операции над предикатами (10 минут).
3. Решение упражнений (20 минут).
4. Подведение итогов урока. Домашнее задание (5 минут).
ХОД УРОКА
I. Подведение итогов работы в группах.
Разбор задач №6-9 (файл Шпаргалка.doc).
II. Проверка домашнего задания.
Решение задачи №10.
Решение логической задачи средствами алгебры логики
Введем буквенное обозначение: A – «Аня смотрит телевизор», B – «Валя смотрит телевизор», C – «Света
смотрит телевизор», O – «отец смотрит телевизор», M – «мать смотрит телевизор».
На основе высказываний членов семьи составим систему логических уравнений. По условию задачи либо
отец и мать смотрят телевизор вдвоем, либо отец не смотрит телевизор, либо оба не смотрят. Составим уравнение
1:
1)( ≡+⋅≡+⋅+⋅≡⋅+⋅+⋅ OMOMMOMOMOMOMO (1)
По условию cмотреть телевизор могут по крайней мере или Света, или Вера, или обе. Уравнение (2) будет иметь
вид:
1)( ≡⋅+≡⋅++⋅≡⋅+⋅+⋅ CBCCBBBCCBCBCB (2)
Если Света смотрит телевизор, то имеем C⋅O⋅B, если же Света не смотрит, то остаются возможности, что отец и
Валя оба смотрят или нет, или смотрит только отец или только Валя:
1
BOCCBOCOOCBOCOCOC
BOCBBOCBBOCBOCBOCBOCBOCBOC
⋅⋅+≡⋅⋅++⋅≡⋅⋅+⋅+⋅≡
≡⋅⋅++⋅⋅++⋅⋅≡⋅⋅+⋅⋅+⋅⋅+⋅⋅+⋅⋅
)(
)()(
(3)
Аня и мама смотрят телевизор только по очереди:
1≡⋅+⋅ AMAM (4)
Аня и Валя либо у телевизора вместе, либо на кухне:
1≡⋅+⋅ BABA (5)
Систему уравнений из пяти логических уравнений решаем так: умножим (1) на (2), получим (6):
CBOCOCBMOCMOCBCOMO ⋅⋅+⋅+⋅⋅⋅+⋅⋅≡⋅+⋅+⋅ )()( (6)
Умножим полученное уравнение (6) на уравнение (4), получим (7):
AMCBOAMCBOAMCOAMCOACBMOACMO
AMCBOAMCBOAMCOAMCO
AMCBMOAMCMO
AMAMCBOCOCBMOCMO
⋅⋅⋅⋅+⋅⋅⋅⋅+⋅⋅⋅+⋅⋅⋅+⋅⋅⋅⋅+⋅⋅⋅≡
≡⋅⋅⋅⋅+⋅⋅⋅⋅+⋅⋅⋅+⋅⋅⋅+
+⋅⋅⋅⋅⋅++⋅⋅⋅⋅+≡
≡⋅+⋅⋅⋅⋅+⋅+⋅⋅⋅+⋅⋅
⋅⋅⋅⋅⋅⋅⋅⋅⋅ AMCBMOAMCMO
)()(
(7)
Умножим полученное уравнение (7) на (5), получим (8):
BAMCOBACMOBAMCBOBAMCO
BAAMCBOBAAMCBOBAAMCO
BAAMCOBAACBMOBAACMO
BAAMCBOBAAMCBOBAAMCO
BAAMCOBAACBMOBABA
AMCBOAMCBOAMCOAMCOACBMOACMO
⋅⋅⋅⋅+⋅⋅⋅⋅+⋅⋅⋅⋅⋅+⋅⋅⋅⋅≡
≡⋅⋅⋅⋅⋅⋅+⋅⋅⋅⋅⋅⋅+⋅⋅⋅⋅⋅+
+⋅⋅⋅⋅⋅+⋅⋅⋅⋅⋅⋅+⋅⋅⋅⋅⋅+
+⋅⋅⋅⋅⋅⋅+⋅⋅⋅⋅⋅⋅++⋅⋅⋅⋅⋅+
+⋅⋅⋅⋅⋅+⋅⋅⋅⋅⋅⋅+⋅⋅⋅⋅⋅≡⋅+⋅⋅
⋅⋅⋅⋅⋅+⋅⋅⋅⋅+⋅⋅⋅+⋅⋅⋅+⋅⋅⋅⋅+⋅⋅⋅
BAACMO)(
)(
(8)
Умножим полученное уравнение (8) на (3), получим (9):
BAMCOCBAMCOBOCBAMCO
OCBACMOBOCBAMCBOBOCBAMCO
AMCOCBACMOCBAMCBOCBAMCO
CCBAMCOBACMOBAMCBOBAMCO
⋅⋅⋅⋅≡⋅⋅⋅⋅⋅≡⋅⋅⋅⋅⋅⋅⋅
⋅⋅⋅⋅⋅⋅+⋅⋅⋅⋅⋅⋅⋅⋅+⋅⋅⋅⋅⋅⋅⋅+
⋅⋅⋅⋅+⋅⋅⋅⋅⋅+⋅⋅⋅⋅⋅⋅+⋅⋅⋅⋅⋅≡
+⋅⋅⋅⋅⋅+⋅⋅⋅⋅+⋅⋅⋅⋅⋅+⋅⋅⋅⋅ ()(
Ответ. Из полученного выражения BAMCO ⋅⋅⋅⋅ следует, что телевизор в первый вечер смотрели Вера и Аня.
Решение логической задачи на ЭВМ.
Программа на Паскале:
PROGRAM LOGIKA10;
USES CRT;
VAR O,M,A,B,C,F,F1,F2,F3,F4,F5:INTEGER;
BEGIN
CLRSCR; WRITELN(' O M A B C F');
FOR O:=0 TO 1 DO
BEGIN
FOR M:=0 TO 1 DO
FOR A:=0 TO 1 DO
FOR B:=0 TO 1 DO
FOR C:=0 TO 1 DO
BEGIN
F1:=(O AND M) OR (NOT O);
F2:=(B AND NOT C) OR C;
F3:=(NOT M AND A) OR (M AND NOT A);
F4:=(A AND B) OR (NOT A AND NOT B);
F5:=(NOT C) OR (C AND O AND B);
F:=F1 AND F2 AND F3 AND F4 AND F5;
IF F=1 THEN WRITELN(O:2,M:4,A:4,B:4,C:4,F:4);
END; END;
END.
2
III. Новый материал.
1. Понятие предиката. Область определения предиката.
2. Одноместный предикат. Многоместный предикат
3. Логические операции над предикатами
Лекция, используется презентация LOGIKA13-14.PPT.
ПОНЯТИЕ ПРЕДИКАТА
Выразительные возможности языка логики высказываний очень ограничены.
С ее помощью невозможно проанализировать внутреннюю структуру даже очень
простых рассуждений. Рассмотрим, например, два умозаключения.
•Любой человек смертен, Сократ - человек, следовательно, Сократ
смертен.
•Крокодилы не летают, Луна - головка швейцарского сыра, следовательно,
сборная России выиграет чемпионат мира по футболу.
С точки зрения логики высказываний, оба этих текста представляются одной и
той же формулой:
X ∧ Y => Z.
Первое высказывание представляется строгим логическим выводом, второе же
не соответствует никакому здравому смыслу.
Эти примеры подтверждают наш тезис о том, что в логике высказываний не
рассматривается внутреннее содержание простейших высказываний (атомарных
формул). Мы не имеем возможности «влезть» внутрь элементарного
высказывания.
Рассмотрим расширение логики высказываний, которое называется логикой
предикатов.
Логика предикатов, как и традиционная формальная логика, расчленяет
элементарное высказывание на субъект (буквально – подлежащее, хотя оно может
играть и роль дополнения) и предикат (буквально – сказуемое, хотя оно может
играть и роль определения).
Субъект – это то, о чем что-то утверждается в высказывании;
предикат – это то, что утверждается о субъекте.
Например, в высказывании “7 - простое число”, “7” – субъект, “простое
число” – предикат. Это высказывание утверждает, что “7” обладает свойством
“быть простым числом”.
(Логика предикатов - раздел математической логики, изучающий
логические законы, общие для любой области объектов исследования
(содержащей хоть один объект) с заданными на этих объектах предикатами
(т. е. свойствами и отношениями)).
Если в рассмотренном примере заменить конкретное число 7 переменной х из множества
натуральных чисел, то получим высказывательную форму “х – простое число”. При одних
3
значения х (например, х=13, х=17) эта форма дает истинные высказывания, а при других
значениях х (например, х=10, х=18) эта форма дает ложные высказывания.
Ясно, что эта высказывательная форма определяет функцию одной переменной х,
определенной на множестве N, и принимающую значения из множества {1;0}. Здесь предикат
становится функцией субъекта и выражает свойство субъекта.
В естественной речи часто встречаются сложные высказывания, истинность
которых может изменяться при изменении объектов, о которых идет речь, хотя
форма самого высказывания остается прежней.
Например, высказывание у кошки четыре ноги истинно, у слона четыре ноги
тоже истинно, а высказывание у человека четыре ноги - ложно. Все эти
высказывания имеют одну форму у субъекта х четыре ноги.
Такое переменное высказывание, истинностное значение которого
зависит от параметра, и называется предикатом. (Предикат от лат.
Praedicatum - сказанное)
Таким образом, предикат есть функция, определенная на некотором
множестве параметров и со значениями в {0, 1}.
Определение 1. Одноместным предикатом Р(х) называется такая функция
одного переменного, в которой аргумент х пробегает значения из некоторого
множества М, а функция при этом принимает одно из двух значений: истина или
ложь.
Множество М, на котором задан предикат, называется областью
определения предиката.
Определение 2. N-местным предикатом называется такая функция n
переменных Q(x1, x2, …,xn), определенная на множестве М=М1×М2×…×Мn и
принимающая на этом множестве одно из двух значений: истина или ложь.
Само множество М называется предметным множеством, а аргументы
x1,...,xn ∈ M - предметными переменными.
Множество М, на котором задан предикат, называется областью
определения предиката.
Множество MI p ⊂ , на котором предикат принимает только истинные
значения, называется областью истинности предиката Р(х).
Можно считать, что высказывание это нульместный предикат, то есть
предикат, в котором нет переменных для замены.
Пример 1.
Пусть предметное множество М есть класс млекопитающих. Рассмотрим
одноместный предикат Р(х): у х четыре ноги. Тогда Р(слон) = 1, Р(кошка) = 1,
Р(человек) =0.
Пусть М - множество натуральных чисел. Рассмотрим двухместный предикат
G(x,y): х<у. Тогда, например, G(l,3) = l, G(8,5) = 0.
Предикат называется
А) тождественно истинным, если значение его для любых аргументов есть
«истина» (Предикат Р(х) называется тождественно истинным на множестве М,
4
если MI p = )
Б) тождественно ложным, если значение его для любых аргументов есть
«ложь» (Предикат Р(х) называется тождественно истинным на множестве М,
если ∅=pI );
В) выполнимым, если существует, по крайней мере, одна n-система его
аргументов, для которой значение предиката есть «истина».
Пример 2.
Предикат “x+y=y+x” является тождественно истинным, предикат
“x+1=x” – тождественно ложным, предикат “x+y=5” – выполнимым.
Упражнение 1. Среди следующих предложений выделите предикаты:
1) Луна есть спутник Венеры
2) Планеты х и y принадлежат Солнечной системе
3) 15010705 65
>−+
4) 0232
=++ xx
5) 834
+− xx
6) Любое простое число Р не имеет делителей, отличных от себя и 1
7) Натуральное число n не меньше 1
8) Треугольник АВС равен треугольнику А1В1С1
9) 0122
>++ xx
10)
x
xtg 2
2
cos
1
1 =+
11) xx sinln <
Ответ: 2), 4) 7)-11).
Упражнение 2. Среди следующих предложений выделить предикаты и для
каждого из них указать область истинности.
1) х+5=1
2) при х=2 выполняется равенство 012
=−x
3) 0122
=+− xx
4) существует такое число х, что 0122
=+− xx
5) x+2<3x-4
6) однозначное число х кратно3;
7) (х+2)-(3х-4).
Решение.
1) Предложение х+5=1 является одноместным предикатом Р(х), Ip={-4}
2) предложение «при х=2 выполняется равенство 012
=−x » не является
предикатом. Это ложное высказывание.
3) Предложение 0122
=+− xx является одноместным предикатом Р(х), Ip={1}
4) предложение «существует такое число х, что 0122
=+− xx » не является
предикатом. Это истинное высказывание.
5) Предложение «x+2<3x-4» является одноместным предикатом Р(х), Ip=(3;+∞)
6) Предложение «однозначное число х кратно3» является одноместным
5
предикатом Р(х), Ip={0; 3; 6; 9);
7) Предложение «(х+2)-(3х-4)» не является предикатом.
Логические операции над предикатами
1) Отрицаниемпредиката P (x) называетсяновый предикат )(xP , множество
истинности которого является дополнением множества истинности
предиката Р(х), то есть pp
CII = .
2) Конъюнкцией предикатовP (x) и Q (x) называется новый предикат
),()( xQxP ∧ который принимает значение 1 при тех и только тех значениях
Mx ∈ , при которых каждый из предикатов P (x) и Q (x) принимает значение 1
и принимает 0 во всех остальных случаях.
Очевидно, что множество истинности QPI ∧ есть пересечение множеств
истинности qpQP III =∧
3) Дизъюнкцией предикатовP (x) и Q (x) называется новый предикат
)()( xQxP ∨ , который принимает значение 1 при тех и только тех значениях
Mx ∈ , при которых хотя бы один из предикатов P (x) и Q (x) принимает
значение 1 и принимает 0 во всех остальных случаях. Очевидно, что
множество истинности QPI ∨ есть объединение множеств истинности
qpQP III =∨
4) Импликацией предикатовP (x) и Q (x) называетсяпредикат )()( xQxP → ,
который имеет значение ложь на тех и только на тех наборах аргументов х,
на которых P (x) имеет значение 1, а Q (x) – значение 0. Очевидно, что
множество истинности QPI → есть объединение множеств истинности
qpQP ICII =→
5) Эквиваленцией P (x) и Q (x) называетсяпредикат )()( xQxP ↔ , который имеет
значение истина на тех и только на тех наборах аргументов х, на которых
значения истинности P (x) и Q (x) совпадают. Очевидно, что множество
истинности QPI → есть объединение множеств истинности
)()( qpqpQP IICICII =↔
Упражнение 3. Пусть даны предикаты P (x) : «х – четное число» и Q (x): «х
кратно 3», определенные на множестве N. Найти области истинности предикатов:
1) )()( xQxP ∧ ; 2) )()( xQxP ∨ ; 3) )(xP ; 4) )()( xQxP →
Решение.
Т.к. { },...2,...,12,10,8,6,4,2 nIP = , { },...3,...,12,9,6,3 nIq =
1) { },...6,...12,6 nIII qpQP ==∧ 
2) { },...3,2,...,6,4,3,2 nnIII qpQP ==∨ 
3) { },...12,...,5,3,1 −=== nINCII ppp
4) { } ,...}3,...,9,6,3{,...12,...,5,3,1 nnICII qpQP  −==→
Субъект – в логике подлежащее суждения, то есть предмет, о котором что-либо
говорится или мыслится.
Самостоятельно.
Упражнение 4. (Готовимся к ЕГЭ по информатике  Информатика в школе. -
6
№2, 2006. Уровень А, с.34). Если значения x,y принадлежат отрезку [2;5], то в
списке выражений следующего вида:
1) х=2 или y=7
2) x-y
3) x+y<2
4) 052
=+x
5) 3<x<y<5
6) x>12
Число истинных и ложных предикатов соответственно равно …
А) 2,4
Б) 1,4
В) 3,3
Г) 1,5
Д) 2,3
Ответ: г)
Упражнение 5. (Готовимся к ЕГЭ по информатике, «Информатика в школе» №2,
2006. Уровень А. с.35). Множество истинности предиката p(x)=”x+y=0”, где x,y
- целые числа принадлежат отрезку [-2;4], равно…
А) {-2,-1,1,2}
Б) {(-2,2), (-1,1)}
В) {(-2,2), (-1,1), (0,0)}
Г) [-2;2]
Д) [-1;1]
Решение.
А) {-2,-1,1,2}
Б) {(-2,2), (-1,1)}
В) {(-2,2), (-1,1), (0,0)}
Г) [-2;2]
Д) [-1;1]
Упражнение 6 (Готовимся к ЕГЭ по информатике, «Информатика в школе» №2,
2006. Уровень А. с.36). Для предиката р(х): ”div(x,3)=mod(x,2)”, где x
изменяется на множестве X={2,3,5,10,19}, область истинности равна …
А) {2,3,5,10}
Б) {10,19}
В) {2, 3, 5}
Г) {2, 5, 10}
Д) {5}
Решение.
А) {2,3,5,10}
Б) {10,19}
В) {2, 3, 5}
7
Г) {2, 5, 10}
Д) {5}
Упражнение 7 (Готовимся к ЕГЭ по информатике, «Информатика в школе» №2,
2006. Уровень B. с.54). Запишите предикат (условие, которое может быть и
сложным), полностью описывающий область, нестрого заключенную между
окружностью с центром в начале координат и радиусом 2 и квадратом, в
который вписана эта окружность.
Решение.
Уравнение рассматриваемой окружности имеет вид: 422
=+ yx . Уравнения
рассматриваемого квадрата — 2=x , 2=y . Искомая область образуется
пересечением внешней области окружности, определяемой неравенством
422
≥+ yx , и внутренней области квадрата, определяемой неравенствами: 2≤x ,
2≤y .Нестрогие неравенства означают, что границы окружности и квадрата
входят в область, т.е. допустимы равенства.
Ответ: ( 422
≥+ yx ) и ( 2≤x ) и ( 2≤y )
Д.з.
1) Выучить конспект.
8
Дополнительно (Источник: Онегов В.А. Решение логических задач средствами
алгоритмических языков Информатика и образование. №6. 2000)
Предикат (от лат. predicatum — сказуемое) — это высказывательная функция,
определенная на некотором множестве М, т. е. такая функция n аргументов Р(x1, ..., хn),
которая каждому набору значений (a1 ,..., aп) — элементов множества М — ставит в
соответствие некоторое высказывание P(a1 ,..., aп), которое может быть истинно или
ложно.
Областью значений предиката является двухэлементное множество В={true,
false}. При этом сами переменные x1, ..., хn называются предметными переменными,
т.е. их значения не являются логическими (не принадлежат множеству В).
Так как значениями предикатов являются true или false, то сами предикаты
можно рассматривать как логические переменные. Из них можно составлять сложные
логические выражения, образованные из простых предикатов с помощью знаков
логических операций. После подстановки в такое составное выражение конкретных
значений предметных переменных получается сложное высказывание, значение
которого определяется истинностью или ложностью входящих в него простых
высказываний и логическими операциями.
Если ориентироваться на набор приведенных выше высказываний, то можно
привести следующие примеры предикатов.
В качестве множества значений предметных переменных возьмем
М — {«теплоход», «капитан», «река»}.
Введем в рассмотрение следующие предикаты:
1) Along(x1,x2) — вдоль.
Если x1 — «теплоход», х2 = «река», то предикат Along превращается в высказывание
«Вдоль теплоход река» — то же самое, что и «Теплоход плывет по реке», и имеет
значение true.
2) Captain's_Bridge(x3) — капитанский мостик.
Если х3 — «капитан», то Captain's Bridge превращается в высказывание «капитанский
мостик капитан» — то же самое, что и «Капитан стоит на мостике», и имеет значение
true.
3) Получим составное предикатное выражение:
Along(x1,x2) & Captain's_Bridge(x3) → Along(x3, x2).
Это выражение на некоторых значениях x1,x2,x3 ∈ M может принимать значения true, на
некоторых — false.
9
Целью логики предикатов является нахождение наборов значений предметных
переменных, при которых составное предикатное выражение истинно. Процедура,
дающая ответ на этот вопрос, состоит в полном переборе всех возможных наборов
значений переменных из множества М. Такой способ называется методом моделей. В
последнем примере значение true получается для набора значениий: х1 = «теплоход»,
х2= «река», х3 = «капитан». А вывод (modus ponens) следующий: «вдоль капитан река»
(«Капитан плывет по реке»).
Опишем общую схему решения логических задач с помощью логики предикатов.
M1={ai,1, ai,2, … , ai,n}, i=1, …,p – множества значений предметных переменных
(x1, x2, …, xp) ∈ X.
Pj(yj,1, yj,2, … , yj,n), j=1, … , r – набор предикатов, причем yj,l ∈ X, l=1, …, k.
F={s1, s2, … , Sm} – множество истинных высказываний (множество фактов, или
семантическая сеть).
Составляются одно или несколько предикатных выражений (получаются из
простых предикатов с помощью логических операций). Наборы значений предметных
переменных, при которых эти выражения принимают значения «истина», являются
решениями поставленной задачи.
В качестве примера подробно рассмотрим и решим с использованием системы
программирования Turbo Pascal следующую задачу.
Задача-шутка.
Согласно одной истории из средневековья девушка по имени Мария поступает в
монастырь. Вновь поступившую строго инструктирует настоятельница монастыря по
соблюдению правил, принятых в монастыре. В соответствии с одним из них она не
может впускать мужчин в свою келью. Однако однажды мужчина стучит в дверь и
Мария впускает его. Настоятельница жестко отчитывает Марию за это. Девушка
защищается, произнося: «Как я могла ему не открыть дверь, ведь его мать — свекровь
моей матери». Настоятельница соглашается с этим особым случаем. Кем мог быть
этот мужчина, если родственные связи семейного клана Марии таковы:
Марта — ее муж — Иоганн; Карина: ее мать — Марта; Карина — ее отец —
Иоганн; Карина — ее свекровь — Элизабет; Карина — ее дочь — Мария; Роланд — его
мать — Элизабет; Себастьян — его мать — Элизабет; Себастьян — его отец —
Зигфрид; Зигфрид — его жена — Элизабет; Элизабет — ее внучка — Мария; Мария —
ее мать — Карина; Мария — ее отец — Роланд; Мария — ее дядя — Себастьян.
10
Решение.
Перечисленные в условии семейные связи между родственниками Марии обра-
зуют семантическую сеть.
Зададим множества значений предметных переменных:
М1 = {«Карина», «Роланд», «Себастьян», «Мария», «Марта», «Иоганн», «Элизабет»,
«Зигфрид»} — имена членов семейного клана;
М2 = {«мать», «отец», «дядя», «свекровь», «муж», «жена», «внучка», «дочь»} — степени
родства.
P1(y1,y2)= Mother( y1,y2) — предикат, принимающий значение «истина», если у1 — имя
матери, у2— имя сына или дочери, y1, у2 ∈ М1.
P2{ y1,y2) = Mother_in_low(y1,y2) — предикат, принимающий значение «истина», если у1 —
имя свекрови, у2 — имя невестки, y1, у2 ∈ М1.
Р3(y1,y2) — Маrу(y1,y2) — предикат, принимающий значение «истина», если Мария и у2
находятся в состоянии родства у1. Здесь у2 ∈M1 , y2 ∈ M2.
Набор фактов, т. е. действительные семейные связи, заданы в виде семантичес-
кой сети. Договоримся записывать их в сокращенном виде и в одном стиле, например:
вместо «Марта — ее муж — Иоганн» будем писать «муж Иоганн Марта» (обязательно
между словами только один пробел). Полностью факты в данном формате приведены
в программе в разделе const под именем F (множество фактов).
Решением задачи-шутки является составное предикатное выражение
Mother(x, «Мария») & Mother_ in_low(y, х) & Mother(y, z). (1)
После правильного задания множеств M1 , M2 и семантической сети F алгоритм
решения задачи состоит в полном переборе наборов значений х, у, z из М1. Наборы
значений (х, у, z), при которых предикатное выражение (1) принимает значение
«истина», являются решением задачи, причем х — имя матери Марии, у — имя
свекрови матери Марии, z — имя посетителя кельи Марии. Алгоритм выдает два
набора значений: («Карина», «Элизабет», «Роланд») и («Карина», «Элизабет», «Се-
бастьян»).
Для полного решения задачи необходимо еще определить степень родства меж-
ду а) Роландом и Марией; б) Себастьяном и Марией. Эта подзадача решается с
помощью предиката Магу(v, z), где v ∈ М2. При фиксированном значении z следует
перебрать все возможные значения v. Те значения v, при которых предикат Маrу(v, z)
принимает значение «истина», дают информацию о степени родства z с Марией.
Получаем две пары: («отец», «Роланд»), («дядя», «Себастьян»).
Из описанной схемы решения задачи совершенно ясно, как реализовать это решение
11
на Turbo Pascal. Ниже приведена программа, решающая нашу задачу.
Файл predikat.pas
program Predikate;
uses crt;
const N=8; {количество элементов в множестве M1}
P=8; { количество элементов в множестве M2}
M=13; {количество фактов}
type
St=string[10];
M1=array[1..n] of St;
M2=array[1..p] of St;
Net=array[1..m] of String;
const
X: M1=('Карина','Мария','Роланд','Себастьян','Марта','Иоганн','Элизабет',
'Зигфрид');
Y: M2=('мать','отец','дядя','свекровь','жена','муж','внучка','дочь');
F: Net=('мать Карина Мария','отец Роланд Мария',
'дядя Себастьян Мария', 'мать Марта Карина',
'отец Иоганн Карина','свекровь Элизабет Карина',
'мать Элизабет Роланд', 'мать Элизабет Себастьян',
'отец Зигфрид Себастьян','муж Иоганн Марта',
'жена Элизабет Зигфрид', 'внучка Мария Элизабет',
'дочь Мария Карина'); {обязательно один пробел между словами! }
var i, j, l, q:byte;
s: string;
function Fact: boolean; {установление истинности высказывания S}
var
Bool: boolean;
r:byte;
begin
r:=1; Bool:=true;
while (r<=m) and Bool do
begin
if F[r]=S then Bool:=false;
r:=r+1;
end;
Fact:=not Bool;
end;
function Mother(x1,x2:St): boolean;
begin
S:='matj' +' ' + x1+' ' +x2; {формирование высказывания S}
Mother:=Fact; {обращение к фактам}
end;
function Mother_in_low(x1,x2:St): boolean;
begin
S:='svekrov' +' ' +x1+' '+x2; { формирование высказывания S}
Mother_in_low:=Fact; {обращение к фактам}
end;
function Mary(y1,y2:St): boolean;
begin
S:=y1+' '+y2+' '+'Marija'; { формирование высказывания S}
Mary:=Fact; {обращение к фактам}
end;
Begin
CLRSCR;
for i:=1 to n do
for j:=1 to n do {циклы полного перебора}
for l:=1 to n do
begin
if Mother(X[i],'Мария') and Mother_in_low(x[j],x[i]) and Mother(x[j],x[l])
then {основное предикатное выражение }
begin
12
writeln ('мать Марии',' ',x[i],' ','свекровь матери Марии',' ', x[j],'
',
'сын свекрови ',x[l]); {выдача ответа}
for q:=1 to p do
if Mary(Y[q],X[l]) then {установление
родства}
writeln (x[l],' ',y[q],' ', 'Марии');
writeln ('если хотите еще получить ответ, то нажмите -<Enter>');
{запрос о желательности дополнительного ответа }
readln; {задержка после очередного ответа};
end;
end;
writeln ('Больше ответов нет!');
readln; { задержка после очередного ответа };
end.
В заключение отметим, что эта программа работает так же, как и аналогичная
Пролог-программа, только в Прологе переборы значений предметных переменных,
составление сложных высказываний и сопоставление с ними фактов осуществляются
внутренними средствами языка.
Литература
1. Анкудинов Г.И., Анкудинов И.Г., Петухов О.А. Математическая логика и
теория алгоритмов: Учебное пособие. СПб.: СЗТУ, 2002. 104 с.
2. Казиев В.М. Готовимся к ЕГЭ по информатике Информатика в школе. №2.
2006.
3. Лихтарников Л.М., Сукачева т.Г. Математическая логика. – СП.: издательство
«Лань», 1998. – 288 с.
4. Никольская И. Л. Математическая логика: Учебник. М.: Высшая школа, 1981.
5. Онегов В.А. Решение логических задач средствами алгоритмических языков
Информатика и образование. №6. 2000.
6. Рыбин С.В. Высказывания и предикаты // Компьютерные инструменты в
образовании. №6, 2005.
13

More Related Content

What's hot

пугач му по матлогике 2015
пугач му по матлогике 2015пугач му по матлогике 2015
пугач му по матлогике 2015
LIPugach
 
О трояком корне закона непротиворечия
О трояком корне закона непротиворечияО трояком корне закона непротиворечия
О трояком корне закона непротиворечия
Victor Gorbatov
 
Kuznecova 9klass
Kuznecova 9klassKuznecova 9klass
Kuznecova 9klass
qwasar1
 
Основы комбинаторики - II
Основы комбинаторики - IIОсновы комбинаторики - II
Основы комбинаторики - II
DEVTYPE
 
15
1515
15JIuc
 
Racionalnye uravneniya
Racionalnye uravneniyaRacionalnye uravneniya
Racionalnye uravneniya
dimonz9
 
Скорость роста функций
Скорость роста функцийСкорость роста функций
Скорость роста функций
DEVTYPE
 
Основы комбинаторики II. Разбор задач
Основы комбинаторики II. Разбор задачОсновы комбинаторики II. Разбор задач
Основы комбинаторики II. Разбор задач
DEVTYPE
 
Алгоритмы и структуры данных осень 2013 лекция 8
Алгоритмы и структуры данных осень 2013 лекция 8Алгоритмы и структуры данных осень 2013 лекция 8
Алгоритмы и структуры данных осень 2013 лекция 8Technopark
 
556 1 алгебра. 10кл.-кузнецова, муравьева и др_минск, 2013 -271с
556 1  алгебра. 10кл.-кузнецова, муравьева и др_минск, 2013 -271с556 1  алгебра. 10кл.-кузнецова, муравьева и др_минск, 2013 -271с
556 1 алгебра. 10кл.-кузнецова, муравьева и др_минск, 2013 -271с
psvayy
 
20101028 proof complexity_hirsch_lecture06
20101028 proof complexity_hirsch_lecture0620101028 proof complexity_hirsch_lecture06
20101028 proof complexity_hirsch_lecture06Computer Science Club
 
Основы логики
Основы логикиОсновы логики
Основы логики
Отшельник
 
Логарифмические уравнения
Логарифмические уравненияЛогарифмические уравнения
Логарифмические уравненияFormula.co.ua
 
метод пособие
метод пособиеметод пособие
метод пособие
oquzaman
 
Основы комбинаторики - I
Основы комбинаторики - IОсновы комбинаторики - I
Основы комбинаторики - I
DEVTYPE
 
Квадратичная математика
Квадратичная математикаКвадратичная математика
Квадратичная математика
DEVTYPE
 
Metod matematicheskoj indukcii
Metod matematicheskoj indukciiMetod matematicheskoj indukcii
Metod matematicheskoj indukcii
Ivanchik5
 

What's hot (20)

пугач му по матлогике 2015
пугач му по матлогике 2015пугач му по матлогике 2015
пугач му по матлогике 2015
 
О трояком корне закона непротиворечия
О трояком корне закона непротиворечияО трояком корне закона непротиворечия
О трояком корне закона непротиворечия
 
Kuznecova 9klass
Kuznecova 9klassKuznecova 9klass
Kuznecova 9klass
 
Logika
LogikaLogika
Logika
 
Основы комбинаторики - II
Основы комбинаторики - IIОсновы комбинаторики - II
Основы комбинаторики - II
 
15
1515
15
 
Racionalnye uravneniya
Racionalnye uravneniyaRacionalnye uravneniya
Racionalnye uravneniya
 
Скорость роста функций
Скорость роста функцийСкорость роста функций
Скорость роста функций
 
л 2 14
л 2 14л 2 14
л 2 14
 
Основы комбинаторики II. Разбор задач
Основы комбинаторики II. Разбор задачОсновы комбинаторики II. Разбор задач
Основы комбинаторики II. Разбор задач
 
Алгоритмы и структуры данных осень 2013 лекция 8
Алгоритмы и структуры данных осень 2013 лекция 8Алгоритмы и структуры данных осень 2013 лекция 8
Алгоритмы и структуры данных осень 2013 лекция 8
 
556 1 алгебра. 10кл.-кузнецова, муравьева и др_минск, 2013 -271с
556 1  алгебра. 10кл.-кузнецова, муравьева и др_минск, 2013 -271с556 1  алгебра. 10кл.-кузнецова, муравьева и др_минск, 2013 -271с
556 1 алгебра. 10кл.-кузнецова, муравьева и др_минск, 2013 -271с
 
20101028 proof complexity_hirsch_lecture06
20101028 proof complexity_hirsch_lecture0620101028 proof complexity_hirsch_lecture06
20101028 proof complexity_hirsch_lecture06
 
Soboland Sat
Soboland SatSoboland Sat
Soboland Sat
 
Основы логики
Основы логикиОсновы логики
Основы логики
 
Логарифмические уравнения
Логарифмические уравненияЛогарифмические уравнения
Логарифмические уравнения
 
метод пособие
метод пособиеметод пособие
метод пособие
 
Основы комбинаторики - I
Основы комбинаторики - IОсновы комбинаторики - I
Основы комбинаторики - I
 
Квадратичная математика
Квадратичная математикаКвадратичная математика
Квадратичная математика
 
Metod matematicheskoj indukcii
Metod matematicheskoj indukciiMetod matematicheskoj indukcii
Metod matematicheskoj indukcii
 

Similar to Понятие предиката. Логические операции над предикатами

013
013013
013JIuc
 
основы логики
основы логикиосновы логики
основы логикиisva69
 
554 1 алгебра. 9кл.-кузнецова, муравьева и др_минск, 2014 -287с
554 1  алгебра. 9кл.-кузнецова, муравьева и др_минск, 2014 -287с554 1  алгебра. 9кл.-кузнецова, муравьева и др_минск, 2014 -287с
554 1 алгебра. 9кл.-кузнецова, муравьева и др_минск, 2014 -287с
dfdkfjs
 
117
117117
117
fderfwr
 
основы логики
основы логикиосновы логики
основы логикиisva69
 
Формы мышления, алгебра высказываний
Формы мышления, алгебра высказыванийФормы мышления, алгебра высказываний
Формы мышления, алгебра высказыванийserge_luch
 
Тренировочный вариант экзамена с решением
Тренировочный вариант экзамена с решениемТренировочный вариант экзамена с решением
Тренировочный вариант экзамена с решением
Kurbatskiy Alexey
 
Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1Technopark
 
018
018018
018JIuc
 
расчетная работа яруллина г.с.афбнк
расчетная работа яруллина г.с.афбнкрасчетная работа яруллина г.с.афбнк
расчетная работа яруллина г.с.афбнк
Александр Мельников
 
Proizvodnaja
ProizvodnajaProizvodnaja
Proizvodnaja
ShishkinaIrina
 
18
1818
18JIuc
 
014
014014
014JIuc
 
Логика как наука
Логика как наукаЛогика как наука
Логика как наукаNatalitutor
 
лекция 2.docx
лекция 2.docxлекция 2.docx
лекция 2.docx
ssuser090a572
 

Similar to Понятие предиката. Логические операции над предикатами (20)

013
013013
013
 
основы логики
основы логикиосновы логики
основы логики
 
554 1 алгебра. 9кл.-кузнецова, муравьева и др_минск, 2014 -287с
554 1  алгебра. 9кл.-кузнецова, муравьева и др_минск, 2014 -287с554 1  алгебра. 9кл.-кузнецова, муравьева и др_минск, 2014 -287с
554 1 алгебра. 9кл.-кузнецова, муравьева и др_минск, 2014 -287с
 
117
117117
117
 
Logika1
Logika1Logika1
Logika1
 
основы логики
основы логикиосновы логики
основы логики
 
Формы мышления, алгебра высказываний
Формы мышления, алгебра высказыванийФормы мышления, алгебра высказываний
Формы мышления, алгебра высказываний
 
20100925 ontology konev_lecture02
20100925 ontology konev_lecture0220100925 ontology konev_lecture02
20100925 ontology konev_lecture02
 
алгебра логики
алгебра логикиалгебра логики
алгебра логики
 
Тренировочный вариант экзамена с решением
Тренировочный вариант экзамена с решениемТренировочный вариант экзамена с решением
Тренировочный вариант экзамена с решением
 
Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1
 
20100926 ontology konev_lecture04
20100926 ontology konev_lecture0420100926 ontology konev_lecture04
20100926 ontology konev_lecture04
 
018
018018
018
 
расчетная работа яруллина г.с.афбнк
расчетная работа яруллина г.с.афбнкрасчетная работа яруллина г.с.афбнк
расчетная работа яруллина г.с.афбнк
 
Proizvodnaja
ProizvodnajaProizvodnaja
Proizvodnaja
 
18
1818
18
 
а. попов, т. ишмуратова
а. попов, т. ишмуратоваа. попов, т. ишмуратова
а. попов, т. ишмуратова
 
014
014014
014
 
Логика как наука
Логика как наукаЛогика как наука
Логика как наука
 
лекция 2.docx
лекция 2.docxлекция 2.docx
лекция 2.docx
 

More from aleksashka3

КР Решение логических задач. логические основы построения пк
КР Решение логических задач. логические основы построения пкКР Решение логических задач. логические основы построения пк
КР Решение логических задач. логические основы построения пк
aleksashka3
 
Структурные формулы и функциональные схемы
Структурные формулы и функциональные схемыСтруктурные формулы и функциональные схемы
Структурные формулы и функциональные схемы
aleksashka3
 
Логические основы построения эвм
Логические основы построения эвмЛогические основы построения эвм
Логические основы построения эвм
aleksashka3
 
Конспект. Решение логических задач
Конспект. Решение логических задачКонспект. Решение логических задач
Конспект. Решение логических задач
aleksashka3
 
Решение логических задач. Опорный конспект
Решение логических задач. Опорный конспектРешение логических задач. Опорный конспект
Решение логических задач. Опорный конспект
aleksashka3
 
КР Истинность высказываний. Тавтологии. Эквивалентности
КР Истинность высказываний. Тавтологии. ЭквивалентностиКР Истинность высказываний. Тавтологии. Эквивалентности
КР Истинность высказываний. Тавтологии. Эквивалентности
aleksashka3
 
1. Алгебра высказываний. Основные операции алгебры высказываний
1. Алгебра высказываний. Основные операции алгебры высказываний1. Алгебра высказываний. Основные операции алгебры высказываний
1. Алгебра высказываний. Основные операции алгебры высказываний
aleksashka3
 
Решение логических задач №3
Решение логических задач №3Решение логических задач №3
Решение логических задач №3
aleksashka3
 
Таблицы истинности. Эквивалентные высказывания
Таблицы истинности. Эквивалентные высказыванияТаблицы истинности. Эквивалентные высказывания
Таблицы истинности. Эквивалентные высказывания
aleksashka3
 
Построение таблиц истинности
Построение таблиц истинностиПостроение таблиц истинности
Построение таблиц истинности
aleksashka3
 
Алгебра логики
Алгебра логикиАлгебра логики
Алгебра логики
aleksashka3
 
Логика как наука
Логика как наукаЛогика как наука
Логика как наука
aleksashka3
 
Урок 1. Создание таблиц базы данных
Урок 1. Создание таблиц базы данныхУрок 1. Создание таблиц базы данных
Урок 1. Создание таблиц базы данныхaleksashka3
 
Учебное пособие по Ms Excel
Учебное пособие по Ms ExcelУчебное пособие по Ms Excel
Учебное пособие по Ms Excelaleksashka3
 
Правила работы и ТБ в КИВТ
Правила работы и ТБ в КИВТПравила работы и ТБ в КИВТ
Правила работы и ТБ в КИВТaleksashka3
 

More from aleksashka3 (15)

КР Решение логических задач. логические основы построения пк
КР Решение логических задач. логические основы построения пкКР Решение логических задач. логические основы построения пк
КР Решение логических задач. логические основы построения пк
 
Структурные формулы и функциональные схемы
Структурные формулы и функциональные схемыСтруктурные формулы и функциональные схемы
Структурные формулы и функциональные схемы
 
Логические основы построения эвм
Логические основы построения эвмЛогические основы построения эвм
Логические основы построения эвм
 
Конспект. Решение логических задач
Конспект. Решение логических задачКонспект. Решение логических задач
Конспект. Решение логических задач
 
Решение логических задач. Опорный конспект
Решение логических задач. Опорный конспектРешение логических задач. Опорный конспект
Решение логических задач. Опорный конспект
 
КР Истинность высказываний. Тавтологии. Эквивалентности
КР Истинность высказываний. Тавтологии. ЭквивалентностиКР Истинность высказываний. Тавтологии. Эквивалентности
КР Истинность высказываний. Тавтологии. Эквивалентности
 
1. Алгебра высказываний. Основные операции алгебры высказываний
1. Алгебра высказываний. Основные операции алгебры высказываний1. Алгебра высказываний. Основные операции алгебры высказываний
1. Алгебра высказываний. Основные операции алгебры высказываний
 
Решение логических задач №3
Решение логических задач №3Решение логических задач №3
Решение логических задач №3
 
Таблицы истинности. Эквивалентные высказывания
Таблицы истинности. Эквивалентные высказыванияТаблицы истинности. Эквивалентные высказывания
Таблицы истинности. Эквивалентные высказывания
 
Построение таблиц истинности
Построение таблиц истинностиПостроение таблиц истинности
Построение таблиц истинности
 
Алгебра логики
Алгебра логикиАлгебра логики
Алгебра логики
 
Логика как наука
Логика как наукаЛогика как наука
Логика как наука
 
Урок 1. Создание таблиц базы данных
Урок 1. Создание таблиц базы данныхУрок 1. Создание таблиц базы данных
Урок 1. Создание таблиц базы данных
 
Учебное пособие по Ms Excel
Учебное пособие по Ms ExcelУчебное пособие по Ms Excel
Учебное пособие по Ms Excel
 
Правила работы и ТБ в КИВТ
Правила работы и ТБ в КИВТПравила работы и ТБ в КИВТ
Правила работы и ТБ в КИВТ
 

Понятие предиката. Логические операции над предикатами

  • 1. ТЕМА «Понятие предиката. Логические операции над предикатами» Цель урока: знакомство с предикатами, логическими операциями над предикатами. Задачи урока: образовательная – изучение понятий алгебры предикатов, формирование умений и навыков применения алгебры предикатов; развивающие – развитие логического и комбинационного мышления, памяти, внимательности; воспитательные – воспитание познавательного интереса учащихся, умения слушать, аккуратности в работе, трудолюбия. Тип урока: комбинированный урок. Формы работы: фронтальная. Наглядность и оборудование:  компьютеры;  мультимедийный проектор;  презентация, подготовленная в MS PowerPoint (файл LOGIKA13-14.PPT);  файл Шпаргалка.doc (системы логических уравнений для задач №6, 7, 8, 9);  файл log10.pas;  файл predikat.pas;  карточки для устной работы;  опорный конспект. ПЛАН УРОКА. 1. Подведение итогов работы в группах (20 минут). 2. Проверка домашнего задания (5 минут). 3. Изучение нового материала (40 минут): а) Понятие предиката. Область определения предиката (20 минут); б) Одноместный предикат. Многоместный предикат (10 минут); в) логические операции над предикатами (10 минут). 3. Решение упражнений (20 минут). 4. Подведение итогов урока. Домашнее задание (5 минут). ХОД УРОКА I. Подведение итогов работы в группах. Разбор задач №6-9 (файл Шпаргалка.doc). II. Проверка домашнего задания. Решение задачи №10. Решение логической задачи средствами алгебры логики Введем буквенное обозначение: A – «Аня смотрит телевизор», B – «Валя смотрит телевизор», C – «Света смотрит телевизор», O – «отец смотрит телевизор», M – «мать смотрит телевизор». На основе высказываний членов семьи составим систему логических уравнений. По условию задачи либо отец и мать смотрят телевизор вдвоем, либо отец не смотрит телевизор, либо оба не смотрят. Составим уравнение 1: 1)( ≡+⋅≡+⋅+⋅≡⋅+⋅+⋅ OMOMMOMOMOMOMO (1) По условию cмотреть телевизор могут по крайней мере или Света, или Вера, или обе. Уравнение (2) будет иметь вид: 1)( ≡⋅+≡⋅++⋅≡⋅+⋅+⋅ CBCCBBBCCBCBCB (2) Если Света смотрит телевизор, то имеем C⋅O⋅B, если же Света не смотрит, то остаются возможности, что отец и Валя оба смотрят или нет, или смотрит только отец или только Валя: 1
  • 2. BOCCBOCOOCBOCOCOC BOCBBOCBBOCBOCBOCBOCBOCBOC ⋅⋅+≡⋅⋅++⋅≡⋅⋅+⋅+⋅≡ ≡⋅⋅++⋅⋅++⋅⋅≡⋅⋅+⋅⋅+⋅⋅+⋅⋅+⋅⋅ )( )()( (3) Аня и мама смотрят телевизор только по очереди: 1≡⋅+⋅ AMAM (4) Аня и Валя либо у телевизора вместе, либо на кухне: 1≡⋅+⋅ BABA (5) Систему уравнений из пяти логических уравнений решаем так: умножим (1) на (2), получим (6): CBOCOCBMOCMOCBCOMO ⋅⋅+⋅+⋅⋅⋅+⋅⋅≡⋅+⋅+⋅ )()( (6) Умножим полученное уравнение (6) на уравнение (4), получим (7): AMCBOAMCBOAMCOAMCOACBMOACMO AMCBOAMCBOAMCOAMCO AMCBMOAMCMO AMAMCBOCOCBMOCMO ⋅⋅⋅⋅+⋅⋅⋅⋅+⋅⋅⋅+⋅⋅⋅+⋅⋅⋅⋅+⋅⋅⋅≡ ≡⋅⋅⋅⋅+⋅⋅⋅⋅+⋅⋅⋅+⋅⋅⋅+ +⋅⋅⋅⋅⋅++⋅⋅⋅⋅+≡ ≡⋅+⋅⋅⋅⋅+⋅+⋅⋅⋅+⋅⋅ ⋅⋅⋅⋅⋅⋅⋅⋅⋅ AMCBMOAMCMO )()( (7) Умножим полученное уравнение (7) на (5), получим (8): BAMCOBACMOBAMCBOBAMCO BAAMCBOBAAMCBOBAAMCO BAAMCOBAACBMOBAACMO BAAMCBOBAAMCBOBAAMCO BAAMCOBAACBMOBABA AMCBOAMCBOAMCOAMCOACBMOACMO ⋅⋅⋅⋅+⋅⋅⋅⋅+⋅⋅⋅⋅⋅+⋅⋅⋅⋅≡ ≡⋅⋅⋅⋅⋅⋅+⋅⋅⋅⋅⋅⋅+⋅⋅⋅⋅⋅+ +⋅⋅⋅⋅⋅+⋅⋅⋅⋅⋅⋅+⋅⋅⋅⋅⋅+ +⋅⋅⋅⋅⋅⋅+⋅⋅⋅⋅⋅⋅++⋅⋅⋅⋅⋅+ +⋅⋅⋅⋅⋅+⋅⋅⋅⋅⋅⋅+⋅⋅⋅⋅⋅≡⋅+⋅⋅ ⋅⋅⋅⋅⋅+⋅⋅⋅⋅+⋅⋅⋅+⋅⋅⋅+⋅⋅⋅⋅+⋅⋅⋅ BAACMO)( )( (8) Умножим полученное уравнение (8) на (3), получим (9): BAMCOCBAMCOBOCBAMCO OCBACMOBOCBAMCBOBOCBAMCO AMCOCBACMOCBAMCBOCBAMCO CCBAMCOBACMOBAMCBOBAMCO ⋅⋅⋅⋅≡⋅⋅⋅⋅⋅≡⋅⋅⋅⋅⋅⋅⋅ ⋅⋅⋅⋅⋅⋅+⋅⋅⋅⋅⋅⋅⋅⋅+⋅⋅⋅⋅⋅⋅⋅+ ⋅⋅⋅⋅+⋅⋅⋅⋅⋅+⋅⋅⋅⋅⋅⋅+⋅⋅⋅⋅⋅≡ +⋅⋅⋅⋅⋅+⋅⋅⋅⋅+⋅⋅⋅⋅⋅+⋅⋅⋅⋅ ()( Ответ. Из полученного выражения BAMCO ⋅⋅⋅⋅ следует, что телевизор в первый вечер смотрели Вера и Аня. Решение логической задачи на ЭВМ. Программа на Паскале: PROGRAM LOGIKA10; USES CRT; VAR O,M,A,B,C,F,F1,F2,F3,F4,F5:INTEGER; BEGIN CLRSCR; WRITELN(' O M A B C F'); FOR O:=0 TO 1 DO BEGIN FOR M:=0 TO 1 DO FOR A:=0 TO 1 DO FOR B:=0 TO 1 DO FOR C:=0 TO 1 DO BEGIN F1:=(O AND M) OR (NOT O); F2:=(B AND NOT C) OR C; F3:=(NOT M AND A) OR (M AND NOT A); F4:=(A AND B) OR (NOT A AND NOT B); F5:=(NOT C) OR (C AND O AND B); F:=F1 AND F2 AND F3 AND F4 AND F5; IF F=1 THEN WRITELN(O:2,M:4,A:4,B:4,C:4,F:4); END; END; END. 2
  • 3. III. Новый материал. 1. Понятие предиката. Область определения предиката. 2. Одноместный предикат. Многоместный предикат 3. Логические операции над предикатами Лекция, используется презентация LOGIKA13-14.PPT. ПОНЯТИЕ ПРЕДИКАТА Выразительные возможности языка логики высказываний очень ограничены. С ее помощью невозможно проанализировать внутреннюю структуру даже очень простых рассуждений. Рассмотрим, например, два умозаключения. •Любой человек смертен, Сократ - человек, следовательно, Сократ смертен. •Крокодилы не летают, Луна - головка швейцарского сыра, следовательно, сборная России выиграет чемпионат мира по футболу. С точки зрения логики высказываний, оба этих текста представляются одной и той же формулой: X ∧ Y => Z. Первое высказывание представляется строгим логическим выводом, второе же не соответствует никакому здравому смыслу. Эти примеры подтверждают наш тезис о том, что в логике высказываний не рассматривается внутреннее содержание простейших высказываний (атомарных формул). Мы не имеем возможности «влезть» внутрь элементарного высказывания. Рассмотрим расширение логики высказываний, которое называется логикой предикатов. Логика предикатов, как и традиционная формальная логика, расчленяет элементарное высказывание на субъект (буквально – подлежащее, хотя оно может играть и роль дополнения) и предикат (буквально – сказуемое, хотя оно может играть и роль определения). Субъект – это то, о чем что-то утверждается в высказывании; предикат – это то, что утверждается о субъекте. Например, в высказывании “7 - простое число”, “7” – субъект, “простое число” – предикат. Это высказывание утверждает, что “7” обладает свойством “быть простым числом”. (Логика предикатов - раздел математической логики, изучающий логические законы, общие для любой области объектов исследования (содержащей хоть один объект) с заданными на этих объектах предикатами (т. е. свойствами и отношениями)). Если в рассмотренном примере заменить конкретное число 7 переменной х из множества натуральных чисел, то получим высказывательную форму “х – простое число”. При одних 3
  • 4. значения х (например, х=13, х=17) эта форма дает истинные высказывания, а при других значениях х (например, х=10, х=18) эта форма дает ложные высказывания. Ясно, что эта высказывательная форма определяет функцию одной переменной х, определенной на множестве N, и принимающую значения из множества {1;0}. Здесь предикат становится функцией субъекта и выражает свойство субъекта. В естественной речи часто встречаются сложные высказывания, истинность которых может изменяться при изменении объектов, о которых идет речь, хотя форма самого высказывания остается прежней. Например, высказывание у кошки четыре ноги истинно, у слона четыре ноги тоже истинно, а высказывание у человека четыре ноги - ложно. Все эти высказывания имеют одну форму у субъекта х четыре ноги. Такое переменное высказывание, истинностное значение которого зависит от параметра, и называется предикатом. (Предикат от лат. Praedicatum - сказанное) Таким образом, предикат есть функция, определенная на некотором множестве параметров и со значениями в {0, 1}. Определение 1. Одноместным предикатом Р(х) называется такая функция одного переменного, в которой аргумент х пробегает значения из некоторого множества М, а функция при этом принимает одно из двух значений: истина или ложь. Множество М, на котором задан предикат, называется областью определения предиката. Определение 2. N-местным предикатом называется такая функция n переменных Q(x1, x2, …,xn), определенная на множестве М=М1×М2×…×Мn и принимающая на этом множестве одно из двух значений: истина или ложь. Само множество М называется предметным множеством, а аргументы x1,...,xn ∈ M - предметными переменными. Множество М, на котором задан предикат, называется областью определения предиката. Множество MI p ⊂ , на котором предикат принимает только истинные значения, называется областью истинности предиката Р(х). Можно считать, что высказывание это нульместный предикат, то есть предикат, в котором нет переменных для замены. Пример 1. Пусть предметное множество М есть класс млекопитающих. Рассмотрим одноместный предикат Р(х): у х четыре ноги. Тогда Р(слон) = 1, Р(кошка) = 1, Р(человек) =0. Пусть М - множество натуральных чисел. Рассмотрим двухместный предикат G(x,y): х<у. Тогда, например, G(l,3) = l, G(8,5) = 0. Предикат называется А) тождественно истинным, если значение его для любых аргументов есть «истина» (Предикат Р(х) называется тождественно истинным на множестве М, 4
  • 5. если MI p = ) Б) тождественно ложным, если значение его для любых аргументов есть «ложь» (Предикат Р(х) называется тождественно истинным на множестве М, если ∅=pI ); В) выполнимым, если существует, по крайней мере, одна n-система его аргументов, для которой значение предиката есть «истина». Пример 2. Предикат “x+y=y+x” является тождественно истинным, предикат “x+1=x” – тождественно ложным, предикат “x+y=5” – выполнимым. Упражнение 1. Среди следующих предложений выделите предикаты: 1) Луна есть спутник Венеры 2) Планеты х и y принадлежат Солнечной системе 3) 15010705 65 >−+ 4) 0232 =++ xx 5) 834 +− xx 6) Любое простое число Р не имеет делителей, отличных от себя и 1 7) Натуральное число n не меньше 1 8) Треугольник АВС равен треугольнику А1В1С1 9) 0122 >++ xx 10) x xtg 2 2 cos 1 1 =+ 11) xx sinln < Ответ: 2), 4) 7)-11). Упражнение 2. Среди следующих предложений выделить предикаты и для каждого из них указать область истинности. 1) х+5=1 2) при х=2 выполняется равенство 012 =−x 3) 0122 =+− xx 4) существует такое число х, что 0122 =+− xx 5) x+2<3x-4 6) однозначное число х кратно3; 7) (х+2)-(3х-4). Решение. 1) Предложение х+5=1 является одноместным предикатом Р(х), Ip={-4} 2) предложение «при х=2 выполняется равенство 012 =−x » не является предикатом. Это ложное высказывание. 3) Предложение 0122 =+− xx является одноместным предикатом Р(х), Ip={1} 4) предложение «существует такое число х, что 0122 =+− xx » не является предикатом. Это истинное высказывание. 5) Предложение «x+2<3x-4» является одноместным предикатом Р(х), Ip=(3;+∞) 6) Предложение «однозначное число х кратно3» является одноместным 5
  • 6. предикатом Р(х), Ip={0; 3; 6; 9); 7) Предложение «(х+2)-(3х-4)» не является предикатом. Логические операции над предикатами 1) Отрицаниемпредиката P (x) называетсяновый предикат )(xP , множество истинности которого является дополнением множества истинности предиката Р(х), то есть pp CII = . 2) Конъюнкцией предикатовP (x) и Q (x) называется новый предикат ),()( xQxP ∧ который принимает значение 1 при тех и только тех значениях Mx ∈ , при которых каждый из предикатов P (x) и Q (x) принимает значение 1 и принимает 0 во всех остальных случаях. Очевидно, что множество истинности QPI ∧ есть пересечение множеств истинности qpQP III =∧ 3) Дизъюнкцией предикатовP (x) и Q (x) называется новый предикат )()( xQxP ∨ , который принимает значение 1 при тех и только тех значениях Mx ∈ , при которых хотя бы один из предикатов P (x) и Q (x) принимает значение 1 и принимает 0 во всех остальных случаях. Очевидно, что множество истинности QPI ∨ есть объединение множеств истинности qpQP III =∨ 4) Импликацией предикатовP (x) и Q (x) называетсяпредикат )()( xQxP → , который имеет значение ложь на тех и только на тех наборах аргументов х, на которых P (x) имеет значение 1, а Q (x) – значение 0. Очевидно, что множество истинности QPI → есть объединение множеств истинности qpQP ICII =→ 5) Эквиваленцией P (x) и Q (x) называетсяпредикат )()( xQxP ↔ , который имеет значение истина на тех и только на тех наборах аргументов х, на которых значения истинности P (x) и Q (x) совпадают. Очевидно, что множество истинности QPI → есть объединение множеств истинности )()( qpqpQP IICICII =↔ Упражнение 3. Пусть даны предикаты P (x) : «х – четное число» и Q (x): «х кратно 3», определенные на множестве N. Найти области истинности предикатов: 1) )()( xQxP ∧ ; 2) )()( xQxP ∨ ; 3) )(xP ; 4) )()( xQxP → Решение. Т.к. { },...2,...,12,10,8,6,4,2 nIP = , { },...3,...,12,9,6,3 nIq = 1) { },...6,...12,6 nIII qpQP ==∧  2) { },...3,2,...,6,4,3,2 nnIII qpQP ==∨  3) { },...12,...,5,3,1 −=== nINCII ppp 4) { } ,...}3,...,9,6,3{,...12,...,5,3,1 nnICII qpQP  −==→ Субъект – в логике подлежащее суждения, то есть предмет, о котором что-либо говорится или мыслится. Самостоятельно. Упражнение 4. (Готовимся к ЕГЭ по информатике Информатика в школе. - 6
  • 7. №2, 2006. Уровень А, с.34). Если значения x,y принадлежат отрезку [2;5], то в списке выражений следующего вида: 1) х=2 или y=7 2) x-y 3) x+y<2 4) 052 =+x 5) 3<x<y<5 6) x>12 Число истинных и ложных предикатов соответственно равно … А) 2,4 Б) 1,4 В) 3,3 Г) 1,5 Д) 2,3 Ответ: г) Упражнение 5. (Готовимся к ЕГЭ по информатике, «Информатика в школе» №2, 2006. Уровень А. с.35). Множество истинности предиката p(x)=”x+y=0”, где x,y - целые числа принадлежат отрезку [-2;4], равно… А) {-2,-1,1,2} Б) {(-2,2), (-1,1)} В) {(-2,2), (-1,1), (0,0)} Г) [-2;2] Д) [-1;1] Решение. А) {-2,-1,1,2} Б) {(-2,2), (-1,1)} В) {(-2,2), (-1,1), (0,0)} Г) [-2;2] Д) [-1;1] Упражнение 6 (Готовимся к ЕГЭ по информатике, «Информатика в школе» №2, 2006. Уровень А. с.36). Для предиката р(х): ”div(x,3)=mod(x,2)”, где x изменяется на множестве X={2,3,5,10,19}, область истинности равна … А) {2,3,5,10} Б) {10,19} В) {2, 3, 5} Г) {2, 5, 10} Д) {5} Решение. А) {2,3,5,10} Б) {10,19} В) {2, 3, 5} 7
  • 8. Г) {2, 5, 10} Д) {5} Упражнение 7 (Готовимся к ЕГЭ по информатике, «Информатика в школе» №2, 2006. Уровень B. с.54). Запишите предикат (условие, которое может быть и сложным), полностью описывающий область, нестрого заключенную между окружностью с центром в начале координат и радиусом 2 и квадратом, в который вписана эта окружность. Решение. Уравнение рассматриваемой окружности имеет вид: 422 =+ yx . Уравнения рассматриваемого квадрата — 2=x , 2=y . Искомая область образуется пересечением внешней области окружности, определяемой неравенством 422 ≥+ yx , и внутренней области квадрата, определяемой неравенствами: 2≤x , 2≤y .Нестрогие неравенства означают, что границы окружности и квадрата входят в область, т.е. допустимы равенства. Ответ: ( 422 ≥+ yx ) и ( 2≤x ) и ( 2≤y ) Д.з. 1) Выучить конспект. 8
  • 9. Дополнительно (Источник: Онегов В.А. Решение логических задач средствами алгоритмических языков Информатика и образование. №6. 2000) Предикат (от лат. predicatum — сказуемое) — это высказывательная функция, определенная на некотором множестве М, т. е. такая функция n аргументов Р(x1, ..., хn), которая каждому набору значений (a1 ,..., aп) — элементов множества М — ставит в соответствие некоторое высказывание P(a1 ,..., aп), которое может быть истинно или ложно. Областью значений предиката является двухэлементное множество В={true, false}. При этом сами переменные x1, ..., хn называются предметными переменными, т.е. их значения не являются логическими (не принадлежат множеству В). Так как значениями предикатов являются true или false, то сами предикаты можно рассматривать как логические переменные. Из них можно составлять сложные логические выражения, образованные из простых предикатов с помощью знаков логических операций. После подстановки в такое составное выражение конкретных значений предметных переменных получается сложное высказывание, значение которого определяется истинностью или ложностью входящих в него простых высказываний и логическими операциями. Если ориентироваться на набор приведенных выше высказываний, то можно привести следующие примеры предикатов. В качестве множества значений предметных переменных возьмем М — {«теплоход», «капитан», «река»}. Введем в рассмотрение следующие предикаты: 1) Along(x1,x2) — вдоль. Если x1 — «теплоход», х2 = «река», то предикат Along превращается в высказывание «Вдоль теплоход река» — то же самое, что и «Теплоход плывет по реке», и имеет значение true. 2) Captain's_Bridge(x3) — капитанский мостик. Если х3 — «капитан», то Captain's Bridge превращается в высказывание «капитанский мостик капитан» — то же самое, что и «Капитан стоит на мостике», и имеет значение true. 3) Получим составное предикатное выражение: Along(x1,x2) & Captain's_Bridge(x3) → Along(x3, x2). Это выражение на некоторых значениях x1,x2,x3 ∈ M может принимать значения true, на некоторых — false. 9
  • 10. Целью логики предикатов является нахождение наборов значений предметных переменных, при которых составное предикатное выражение истинно. Процедура, дающая ответ на этот вопрос, состоит в полном переборе всех возможных наборов значений переменных из множества М. Такой способ называется методом моделей. В последнем примере значение true получается для набора значениий: х1 = «теплоход», х2= «река», х3 = «капитан». А вывод (modus ponens) следующий: «вдоль капитан река» («Капитан плывет по реке»). Опишем общую схему решения логических задач с помощью логики предикатов. M1={ai,1, ai,2, … , ai,n}, i=1, …,p – множества значений предметных переменных (x1, x2, …, xp) ∈ X. Pj(yj,1, yj,2, … , yj,n), j=1, … , r – набор предикатов, причем yj,l ∈ X, l=1, …, k. F={s1, s2, … , Sm} – множество истинных высказываний (множество фактов, или семантическая сеть). Составляются одно или несколько предикатных выражений (получаются из простых предикатов с помощью логических операций). Наборы значений предметных переменных, при которых эти выражения принимают значения «истина», являются решениями поставленной задачи. В качестве примера подробно рассмотрим и решим с использованием системы программирования Turbo Pascal следующую задачу. Задача-шутка. Согласно одной истории из средневековья девушка по имени Мария поступает в монастырь. Вновь поступившую строго инструктирует настоятельница монастыря по соблюдению правил, принятых в монастыре. В соответствии с одним из них она не может впускать мужчин в свою келью. Однако однажды мужчина стучит в дверь и Мария впускает его. Настоятельница жестко отчитывает Марию за это. Девушка защищается, произнося: «Как я могла ему не открыть дверь, ведь его мать — свекровь моей матери». Настоятельница соглашается с этим особым случаем. Кем мог быть этот мужчина, если родственные связи семейного клана Марии таковы: Марта — ее муж — Иоганн; Карина: ее мать — Марта; Карина — ее отец — Иоганн; Карина — ее свекровь — Элизабет; Карина — ее дочь — Мария; Роланд — его мать — Элизабет; Себастьян — его мать — Элизабет; Себастьян — его отец — Зигфрид; Зигфрид — его жена — Элизабет; Элизабет — ее внучка — Мария; Мария — ее мать — Карина; Мария — ее отец — Роланд; Мария — ее дядя — Себастьян. 10
  • 11. Решение. Перечисленные в условии семейные связи между родственниками Марии обра- зуют семантическую сеть. Зададим множества значений предметных переменных: М1 = {«Карина», «Роланд», «Себастьян», «Мария», «Марта», «Иоганн», «Элизабет», «Зигфрид»} — имена членов семейного клана; М2 = {«мать», «отец», «дядя», «свекровь», «муж», «жена», «внучка», «дочь»} — степени родства. P1(y1,y2)= Mother( y1,y2) — предикат, принимающий значение «истина», если у1 — имя матери, у2— имя сына или дочери, y1, у2 ∈ М1. P2{ y1,y2) = Mother_in_low(y1,y2) — предикат, принимающий значение «истина», если у1 — имя свекрови, у2 — имя невестки, y1, у2 ∈ М1. Р3(y1,y2) — Маrу(y1,y2) — предикат, принимающий значение «истина», если Мария и у2 находятся в состоянии родства у1. Здесь у2 ∈M1 , y2 ∈ M2. Набор фактов, т. е. действительные семейные связи, заданы в виде семантичес- кой сети. Договоримся записывать их в сокращенном виде и в одном стиле, например: вместо «Марта — ее муж — Иоганн» будем писать «муж Иоганн Марта» (обязательно между словами только один пробел). Полностью факты в данном формате приведены в программе в разделе const под именем F (множество фактов). Решением задачи-шутки является составное предикатное выражение Mother(x, «Мария») & Mother_ in_low(y, х) & Mother(y, z). (1) После правильного задания множеств M1 , M2 и семантической сети F алгоритм решения задачи состоит в полном переборе наборов значений х, у, z из М1. Наборы значений (х, у, z), при которых предикатное выражение (1) принимает значение «истина», являются решением задачи, причем х — имя матери Марии, у — имя свекрови матери Марии, z — имя посетителя кельи Марии. Алгоритм выдает два набора значений: («Карина», «Элизабет», «Роланд») и («Карина», «Элизабет», «Се- бастьян»). Для полного решения задачи необходимо еще определить степень родства меж- ду а) Роландом и Марией; б) Себастьяном и Марией. Эта подзадача решается с помощью предиката Магу(v, z), где v ∈ М2. При фиксированном значении z следует перебрать все возможные значения v. Те значения v, при которых предикат Маrу(v, z) принимает значение «истина», дают информацию о степени родства z с Марией. Получаем две пары: («отец», «Роланд»), («дядя», «Себастьян»). Из описанной схемы решения задачи совершенно ясно, как реализовать это решение 11
  • 12. на Turbo Pascal. Ниже приведена программа, решающая нашу задачу. Файл predikat.pas program Predikate; uses crt; const N=8; {количество элементов в множестве M1} P=8; { количество элементов в множестве M2} M=13; {количество фактов} type St=string[10]; M1=array[1..n] of St; M2=array[1..p] of St; Net=array[1..m] of String; const X: M1=('Карина','Мария','Роланд','Себастьян','Марта','Иоганн','Элизабет', 'Зигфрид'); Y: M2=('мать','отец','дядя','свекровь','жена','муж','внучка','дочь'); F: Net=('мать Карина Мария','отец Роланд Мария', 'дядя Себастьян Мария', 'мать Марта Карина', 'отец Иоганн Карина','свекровь Элизабет Карина', 'мать Элизабет Роланд', 'мать Элизабет Себастьян', 'отец Зигфрид Себастьян','муж Иоганн Марта', 'жена Элизабет Зигфрид', 'внучка Мария Элизабет', 'дочь Мария Карина'); {обязательно один пробел между словами! } var i, j, l, q:byte; s: string; function Fact: boolean; {установление истинности высказывания S} var Bool: boolean; r:byte; begin r:=1; Bool:=true; while (r<=m) and Bool do begin if F[r]=S then Bool:=false; r:=r+1; end; Fact:=not Bool; end; function Mother(x1,x2:St): boolean; begin S:='matj' +' ' + x1+' ' +x2; {формирование высказывания S} Mother:=Fact; {обращение к фактам} end; function Mother_in_low(x1,x2:St): boolean; begin S:='svekrov' +' ' +x1+' '+x2; { формирование высказывания S} Mother_in_low:=Fact; {обращение к фактам} end; function Mary(y1,y2:St): boolean; begin S:=y1+' '+y2+' '+'Marija'; { формирование высказывания S} Mary:=Fact; {обращение к фактам} end; Begin CLRSCR; for i:=1 to n do for j:=1 to n do {циклы полного перебора} for l:=1 to n do begin if Mother(X[i],'Мария') and Mother_in_low(x[j],x[i]) and Mother(x[j],x[l]) then {основное предикатное выражение } begin 12
  • 13. writeln ('мать Марии',' ',x[i],' ','свекровь матери Марии',' ', x[j],' ', 'сын свекрови ',x[l]); {выдача ответа} for q:=1 to p do if Mary(Y[q],X[l]) then {установление родства} writeln (x[l],' ',y[q],' ', 'Марии'); writeln ('если хотите еще получить ответ, то нажмите -<Enter>'); {запрос о желательности дополнительного ответа } readln; {задержка после очередного ответа}; end; end; writeln ('Больше ответов нет!'); readln; { задержка после очередного ответа }; end. В заключение отметим, что эта программа работает так же, как и аналогичная Пролог-программа, только в Прологе переборы значений предметных переменных, составление сложных высказываний и сопоставление с ними фактов осуществляются внутренними средствами языка. Литература 1. Анкудинов Г.И., Анкудинов И.Г., Петухов О.А. Математическая логика и теория алгоритмов: Учебное пособие. СПб.: СЗТУ, 2002. 104 с. 2. Казиев В.М. Готовимся к ЕГЭ по информатике Информатика в школе. №2. 2006. 3. Лихтарников Л.М., Сукачева т.Г. Математическая логика. – СП.: издательство «Лань», 1998. – 288 с. 4. Никольская И. Л. Математическая логика: Учебник. М.: Высшая школа, 1981. 5. Онегов В.А. Решение логических задач средствами алгоритмических языков Информатика и образование. №6. 2000. 6. Рыбин С.В. Высказывания и предикаты // Компьютерные инструменты в образовании. №6, 2005. 13