Деревья и их простейшие свойства

advertisement
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ
СЕВЕРО-КАВКАЗСКИЙ ГОРНО-МЕТАЛЛУРГИЧЕСКИЙ ИНСТИТУТ
(ГОСУДАРСТВЕННЫЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ)
_____________________________________________________________________
Кафедра «Автоматизированной обработки информации»
ДИСКРЕТНАЯ МАТЕМАТИКА
Методические указания
к практическим занятиям для студентов по направлению подготовки
230100.62 «Информатика и вычислительная техника»
Составитель: Астахова Л. Г.
Владикавказ 2015 г.
1
УДК 51
ББК 22.1
А 91
Составитель: ст. пр. Астахова Л. Г.
Рецензент: доц., к.т.н. Мирошников А. С.
Методические указания к практическим занятиям по курсу «Дискретная
математика»
для
студентов
по
направлению
подготовки
230100.62
«ИНФОРМАТИКА И ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА»- Владикавказ: "Терек",
2015.- 81 с.
Методические указания предназначены для выполнения практических работ по
курсу «Дискретная математика» для студентов по направлению подготовки
230100.62 «ИНФОРМАТИКА И ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА» и содержат
необходимые материалы по выполнению практических работ. Приводятся краткие
теоретические сведения в объёме, необходимом для выполнения работ, а также
примеры решения задач.
Подготовлено кафедрой «Автоматизированной обработки информации».
Редактор
Компьютерная верстка
©Составление. Северо-Кавказский горно-металлургический
институт (государственный технологический университет), 2015
©Астахова Л. Г,, составление, 2015
Издательство «Терек» СКГМИ(ГТУ), 2015
Подписано в печать
Формат
Тираж ______ Объем усл.п.л. Заказ №.
Подразделение оперативной полиграфии СКГМИ (ГТУ) 362021, г. Владикавказ, ул.
Николаева, 44
2
СОДЕРЖАНИЕ
1. Практическая работа №1
« Элементы теории множеств. Множества и операции над ними» (2ч.)
2. Практическая работа №2
« Элементы теории множеств. Соответствия» (2ч.)
3.
Практическая работа №3
« Элементы теории множеств. Отношения» (2ч.)
4.
Практическая работа №4
« Элементы теории множеств. Операции над множествами. Кортежи. Прямое произведение
множеств. Проекции. График» (2ч.)
5. Практическая работа № 5
«Алгебра логики» (2ч.)
6.
Практическая работа №6
« Алгебра логики. Булевы функции многих переменных. Нормальная форма» (2ч.)
7.
Практическая работа № 7
« Алгебра логики. Булева алгебра. Совершенная дизъюнктивная (конъюнктивная )
нормальная форма» (2ч.)
8.
Практическая работа № 8
« Алгебра логики. Исчисление предикатов» (2ч.)
9. Практическая работа№9
« Алгебра логики. Полнота в логике высказываний. Карта Карно. Коммутационные схемы»
(2ч.)
10. Практическая работа№10
« Комбинаторный анализ. Перестановки и сочетания» (4ч.)
11. Практическая работа№11
« Элементы теории графов» (10ч.)
12. Практическая работа №12
«Элементы теории алгоритмов. Алгоритмическая разрешимость, рекурсивные функции.»
(2ч.)
13. Дополнительные задачи
Элементы такого рода задач будут в тестах, предназначенных для сдачи текущего контроля
знаний.
14. Список рекомендуемой литературы
3
Практическая работа №1
Тема: “ Элементы теории множеств. Множества и операции над ними”
Цель работы:
На конкретных примерах разобраться с конечными множествами и операциями над ними;
научиться находить число всех k-элементных подмножеств множества из n элементов и число
перестановок множества, состоящего из n элементов. Закрепить полученные знания по данной
тематике при решении занимательных задач. Научиться использовать в своей работе компьютер
как инструмент.
Основные понятия
a – элемент; M – множество
a Є M – «a принадлежит M»
a∉M – «a не принадлежит M»
A⊆B – множество A является подмножеством множества B
Понятие множества является основным, неопределяемым понятием, поэтому мы можем его только
пояснить: под множеством S понимается любое собрание определенных и различимых между
собой объектов, мыслимое как единое целое. Эти объекты называются элементами множества S.
Множества A и B считаются равными, если они состоят из одних и тех же элементов. Этот факт
записывается A=B. Если A и Bразличны, то это записывается A  B .
Множество, элементами которого являются объекты a, b, c,…,z и только они, обозначают
a, b, c,..., z. Порядок расположения объектов в этой записи не имеет значения.
Конечное множество можно описать простым перечислением его элементов. Описание
многоэлементных или бесконечных множеств обычно основано на интуитивном понятии «формы
от x» (обозначается P  x  ). Для множества A, определяемого формой P  x  , принято обозначение
A  x Px .
Например, множество 1,2,3,4,5,6,7,8 можно описать, используя форму P  x  , в виде « x –
положительное целое число, меньшее 9».
А={x| x – положительное целое число, меньшее 9}.
Для получения новых множеств из уже существующих используются различные операции.
Определим некоторые из них.
Объединением множествА и В называется множество A  B , все элементы которого являются
элементами множеств А или В:
A  B  x | x  A или x  B.
Здесь символ « » обозначает принадлежность элемента множеству.
Пересечением множествА и В называется множество A  B , элементы которого являются
элементами обоих множеств А и В:
A  B  x | x  A и x  B.
Дополнением множестваАдо множества Х называется множество всех тех элементов множества Х,
которые не принадлежат множеству А:
X \ A  x | x  X и x  A.
Поясним эти определения на примерах. Пусть заданы три следующих множества:
A  1,2,3,4,5,6, B  4,5,6,7, X  3,4,5,6,7,8,9,10.
Тогда A  B  1,2,3,4,5,6,7 , A  B  4,5,6, X \ A  7,8,9,10.
Обычно принято считать, что все рассматриваемые множества являются подмножествами
некоторого универсального множества U.
Для наглядного представления отношений между подмножествами универсального
множества используются диаграммы Эйлера-Венна. В этом случае множества обозначаются
областями на плоскости и внутри этих областей условно располагаются элементы множества.
Если элемент принадлежит более чем одному множеству, то на диаграмме области, отвечающие
4
таким множествам, должны перекрываться, чтобы общий элемент мог одновременно находиться в
соответствующих областях. Проиллюстрируем определенные выше операции на диаграммах.
В
А
A B
A\ B
A B
B\ A
Рис. 1.1
Пример
Проверить тождество с помощью диаграмм Эйлера-Венна: A \ B  A \  A  B  .
Для решения задачи сначала (возможно поэтапно) построим с помощью диаграмм множество,
стоящее в левой части множества. Затем аналогичное построение выполним для правой части
тождества. Если полученные в результате этих построений диаграммы совпадут, то тождество
справедливо. Для нашего примера диаграмма множества левой части тождества такова:
A\ B
A \  A  B
A B
Рис. 1.2
Поскольку диаграммы множеств для обеих частей тождества совпадают, то тождество
справедливо.
Пример
Проверить тождество  A  B   C  A  B  C  . Пусть исходные множества таковы:
5
А
В
С
Рис. 1.3
Выполним поэтапно операции для левой части тождества:
A B
А
В
С
 A  B  C
Рис. 1.4
Выполним поэтапно операции для правой части тождества:
A  B  C 
В
В
А
С
B C
Рис. 1.5
Поскольку диаграммы множеств А, В, С для обеих частей тождества совпадают, то тождество
справедливо.
Примеры:
1)
A – множество сотрудников ФИТ;
M1 – множество всех операций по сборке PC;
ℕ – множество натуральных чисел;
ℝ – множество всех действительных чисел.
Способы задания множества.
•
Перечисление:
Только для конечных множеств!
•
Подражающая процедура рекурсия или индукция
a)
1∈M2n;
b)
если m∈M2n, то 2m∈M2n.
M2n – числа, являющиеся степенями двойки;
n∈N, где N – множество натуральных чисел.
•
Описание характеристических свойств
M={x/P(x)} или M={x:P(x)}
6
M2n={x:x=2n,n∈N}
2) Задать множество N – множество натуральных чисел
а) Списком нельзя
б) 1∈N; если n∈N, то n+1∈N
в) N={x:x – целое положительное число.
3) Задать множество M2n – множество всех четных чисел 2,4,6,…, не превышающих 100
a)
M2n={2,4,6,…,100}
b)
2∈M2n; если n∈N, то (n+2)∈M2n; n≤98
c)
M2n={n: n – целое положительное число, не превышающее 100} или M2n={n: n∈N и n/2
∈N,
n ≤ 100}
4) U={a,b,c}. Определить β(U) – булеан множества U – множество всех подмножеств, состоящих
из элементов множество U. Какова мощность множества β(U)?
β(U)={{∅},{a},{b},{c},{a,b},{a,c},{b,c},{a,b,c}}.
β(U)/=8.
Решение задач.
1.
Какие определения множеств A,B,C,D являются корректными:
a)
A={1,2,3};
b)
B={5,6,6,7};
c)
C={x:x∈A};
d)
D={A,C}
2.
Осуществить операции над множествами
A={a,b,c,d} и B={c,d,e,f,g,h}
3.
ПустьU={1,2,3,4},A={1,3,4},B={2,3},C={1,4}.
Найти
4. Представить множество диаграммой Венна.
а)A∪(B∩C)
б) B∩C
A∪(B∩C)
5.Проиллюстрировать на конкретных множествах и с помощью диаграммы Венна справедливость
соотношения:
а) A∩(B∪C)=(A∩B)∪(A∩C);
б) A∪(B∩C)=(A∪B)∩(A∪B).
6. A – количество студентов; B – посещают математический кружок; C – физический; D – не
посещают ни одного из кружков. Сколько студентов посещают и математический, и физический
кружок? Сколько студентов посещают только математический кружок? |A|=37; |B|=20; |C|=16;
|D|=17.
Для характеристики принадлежности любого элемента множества
подмножеству А введем так называемую характеристическую функцию
 некоторому его
1, если x  A,
0, если x  A.
 ( x)  
Так, например, если A  a, b, c, то
1, если x  a, b, c,
0, если x  a, b, c.
 ( x)  
Расширим понятие принадлежности элемента х множества  его подмножествуА, считая,
что  A  x  может принимать любые значения на отрезке [0,1]. Такое подмножество (его
7




обозначают A ) называется нечетким и записывается в виде перечня элементов  x /  A ( x )  ,


 A (x ) называют степенью принадлежности элемента х
входящих в это подмножество. Величину

подмножествуА и записывают в виде x  A .
A

Введем операции над нечеткими подмножествами.
Объединением нечетких подмножеств A и B называется нечеткое подмножество A  B такое,

что для любого х из 







 AB ( x)  max   A ( x),  B ( x)  .
 


Пересечением нечетких подмножеств A и B называется нечеткое подмножество A  B такое,

что для любого х из 







 AB ( x)  min   A ( x),  B ( x)  .
 
Два
нечетких


подмножества
A
и
~
B
называют
взаимно
~
 A x    B x   1 для всех x из E. В этом случае пишут B  A
~
~
~
Дизъюнктивной суммой нечетких подмножеств
дополнительными,
если
или A  B .
~
~
A и B , обозначаемой A B , называется
~
~
~
~
подмножество  A B    A  B  .
~

~
~

Проиллюстрируем эти операции на примерах.
Пример
Пусть E  1,2,3,4,5,6,7.
A  1 0.4, 2 0.5, 3 0.1, 4 0.9, 5 0.3, 6 0, 7 0
~
B  1 0, 2 0, 3 0, 4 0.7, 5 0.1, 6 0.8, 7 0.4.
~
Для этих нечетких подмножеств получаем:
A  1 0.6, 2 0.5, 3 0.9, 4 0.1, 5 0.7, 61, 7 1,
~
B  11, 21, 31, 4 0.3, 5 0.9, 6 0.2, 7 0.6,
~
A B  1 0.4, 2 0.5, 3 0.1, 4 0.9, 5 0.3, 6 0.8, 7 0.4,
~
~
~
~
~
~
~
~
~
~
A B  1 0, 2 0, 3 0, 4 0.7, 5 0.1, 6 0, 7 0,
A B  1 0.4, 2 0.5, 3 0.1, 4 0.3, 5 0.3, 6 0, 7 0,
A  B  1 0, 2 0, 3 0, 4 0.1, 5 0.1, 6 0.8, 7 0.4,
A B  1 0.4, 2 0.5, 3 0.1, 4 0.3, 5 0.3, 6 0.8, 7 0.4.
Пример
Пусть E  a,b,c,d,e,f,g,h .
8
A  a 0.1, b 0.2, c 0.9, d 1,  f 0.7, g 0.1, h 0
~
B  a 0.4, b 0, c 0.8, d 0.2,  f 0.4, g 0.1, h 1.
~
Для этих нечетких подмножеств получаем:
A  a 0.9, b 0.8, c 0.1, d 0,  f 0.3, g 0.9, h 1,
~
B  a 0.6, b 1, c 0.2, d 0.8,  f 0.6, g 0.9, h 0,
~
A B  a 0.1, b 0.2, c 0.2, d 0.8,  f 0.6, g 0.1, h 0,
~
~
A  B  a 0.4, b 0, c 0.1, d 0,  f 0.3, g 0.1, h 0,
~
~
A B  a 0.4, b 0.2, c 0.2, d 0.8,  f 0.6, g 0.1, h 0.
~
~
Пример
Универсальное множество состоит из 33 строчных букв русского алфавита. Заданы множества A,
B, C. Найти множества X и Y и вычислить их мощность (количество элементов в множествах).
Пусть даны множества: А={фпдкш}; В={чмпуш}; C={аючкмтф}.
Требуется найти множества X=(A \ C) U (B\C); Y=(A \ C) Ç (B\C);
Решение.
A \ C={пдш}; (B\C)={пуш}; Х={пдуш}; Y={пш}.
Мощность множества X равна 4. Мощность множества Y равна 2.
Пример
Заданы множества Z={5,7,1,4} и D={3,2,1},Y={1,5}.Какое из множеств является подмножеством?
Найти Z È D; Z Ç D;
Решение.
Z È D={5,71,4,3,2}; Z Ç D={1}; Z \ D={5,7,4}; D \ Z={3,2};
Y={1,5}Є Z={5,7,1,4} .
Пример
Дано три множества М = {7, 2, 3, 5}, N = {1, 2, 4, 7, 9}, K = {6, 7, 9}.
Найти:
X = (M Ç N) È (M Ç К) \ (N Ç К) È (N \ K).
Z = (M È N) Ç (M È К) \ (N È К) È (N \ K).
Решение.
1) M Ç N={7, 2};
2) M Ç К ={7};
3) N Ç К={7, 9};
4) M È K={2, 3, 5, 6, 7, 9};
5) N È М= N = {1, 2, 3, 4, 5, 7, 9};
6) K È N={1, 2, 4, 6, 7, 9};
7) N \ K={1, 2, 4}.
X= (M Ç N) È (M Ç К) \ (N Ç К) È (N \ K)=(1,2,4).
Z = (M È N) Ç (M È К) \ (N È К) È (N \ K)=(1,2,3,4,5).
Контрольные вопросы и методические рекомендации
1. Понятие «множество», «элемент», данные в интерпретации Г. Кантор, сопроводить примерами
из высшей математики, технических дисциплин.
2. Обоснование объективной необходимости появления элементов теории множеств,
комбинаторики, алгебры логики, теории графов, автоматов и алгоритмов, объединенных
интегративной дисциплиной «Дискретная математика», при развитии прикладной теории систем
подвижной связи, телекоммуникаций, вычислительных сетей.
9
3. Перечислить основные аксиоматические принципы построения теории множеств. Назовите
примеры противоречий (парадоксов), возникших при перенесении логических принципов на
бесконечность множеств.
4. Дайте трактовку методам задания множеств и рекомендации по их применению.
5. В каких отношениях могут находиться между собой элементы, подмножества, множества.
6. Пусть N – множество целых натуральных чисел:
- тогда {xN | 0 <x ≤ 7} что означает эта запись и можно ли это множество задать в другой форме;
- задано множество чисел путем перечисления {1, 2, 4, 8, 16, 32,…}. Необходимо записать это
множество посредством задания свойства элемента. Сделайте вывод о связи множества и свойства
элементов.
7. Какие множества называют ординарными? Привести примеры.
8. Дайте понятие «пустое множество» и его значимость в теории множеств.
9. Доказать, что для любых множеств А, В и С, если АВ и ВС, то АС. Как называется это
свойство?
10. Дано множество А = {1, 2, 3, 4}. Найти и записать булеанР(А) множества А. Какова мощность
этого булеана |Р(А)|?
11. Записать условие и мощность взаимно-однозначного соответствия между элементами
множеств, подмножеств множества.
12. Что означают записи:
- если x[ x  X  x  Y ] , то XY?
- [X  Y и Y  Z]  X  Z ?
- М; ММ и как называют такие подмножества?
13. Какие бесконечные множества называют счетными? Привести примеры.
14. Дать словесное, формализованное и топологическое определение операциям пересечения и
объединения множеств.
15. Образовать множество О1О2 и О1О2, если
O1  {x  Z | x  [3,...,5]};
O2  {x  Z | x ]  ,...,2]}.
16. Дать словесное, формализованного и топологическое определения операциям разности,
симметрической разности.
17. Использовав условие п. 15, образовать множества О1 \ О2 и О1 О2.
18. Дать смысловую трактовку понятию универсальному и пустому множествам и их свойствам.
Операция дополнения множества Х до универсального. Если I = {1, 2, 3, 4, 5, 6, 7} и Х = {3, 5, 7},
то записать X  {...} .
19. Если задано множество М и система подмножеств N = {X1, X2,…, Xn}, то записать условия
разбиения множества М на подмножества X i  N , i  1..n .
20. Записать коммутативный, ассоциативный и дистрибутивный законы для операций
объединения и перечисления над множествами дать смысловую интерпретацию.
21. Записать соотношения между множеством А и множествами I, .
Доказать, что A    A; A    ; A  I  A.
22. Какой закон отображают записи
A   A  B   A;
A  A  B  A?
Докажите, что это так.
23. В чем смысл теоремы де Моргана?
24. Докажите, что если A  B  I и A  B  , то B  A.
25. Докажите, что  A  B \  A  B  A  B .
26. Докажите, что если A  B  A и A  B  B, то A  B .
27. Докажите, что если A  B  \  A  B    , тоА = В.
10
28. В чем заключается принцип двойственности и показать, в каких случаях тождество между
множествами не нарушается?
29. Докажите методом от противного тождество L   A \  A \ B \  A  B   .
Методическое указание.
Для доказательства делают предположение, что L ≠  и что существует некоторый произвольный
элемент xL и затем последовательным анализом доказывают, что x, L = .
30. Применить метод эквивалентных преобразований для доказательства следующего тождества
A  B  C    A  B   A  C  , при этом необходимы Ваши последовательные комментарии
относительно применяемых операций над множествами.
31. Докажите тождество A  B   A \ B  B методом эквивалентных преобразований.
32. Метод доказательства тождеств путем использования свойства принадлежности элемента
определенным множествам
Если A  B  C    A  B   A  C  , то доказать, что A  B  C    A  B   A  C  .
33. Докажите тождества:
 A  B  C   A  C   B  C   C;
M \ N   N \ M   .
34. Привести алгоритм решения уравнения с одним неизвестным множеством на примере:
X C  D
и тем самым показав, что D \ C   X  D .
35. Дано тождество A  B  C    A  B   A  C  . Провести его доказательство с использованием
кругов Эйлера.
36. Топологически посредством кругов Эйлера доказать, что  A  B  C   A  C   B  C   C .
37. Показать принцип диаграмм Венна при решении уравнения X  C  D .
38. Определить декартово произведение множеств: А = {a1, a2, a3, a4} и B = {b1, b2}.
39. Определить области определений D0(A) и значений Dз(A) отношения XAY множеств X= {x1, x2,
x3} и Y = {y1, y2}.
40. Методы задания отношений между множествами.
41. Роль комбинаторики в практике оценок множеств. Основные правила комбинаторики: прямое
произведение и сумма.
42. Привести схему комбинаторных операций: перестановок, размещений и сочетаний как без
повторений и, так и с повторениями.
43. Привести оценки мощности операций перестановок.
44. Привести оценки мощности операций размещений.
45. Привести оценки мощности операций сочетаний.
Контрольное задание
1. Доказать тождество закона поглощения А(АB) = A; А(АVB) = A
2. Произвести эквивалентные преобразования (АBС) ( A ВС)  B  C = ?
3. Образовать множество О1VO2; О1O2; О1\O2; О1O2, если О1={xz|x=[-3;5]}; О2={xz|]=[-,2]}
4. Записать множество М = {xz | |x|<1} виде пересечения и объединения двух множеств.
5. Опросили 80 студентов. 45 сообщили, что знают английский язык (А), 31 – немецкий (Н), 52 –
французский (Ф). 28 – знают два языка: А и Ф; 16 - А и Н; 20 - Н и Ф, 8 студентов сообщили, что
владеют тремя языками: А, Н и Ф.
Сколько студентов не владеют иностранными языками? Сколько студентов владеют только одним
иностранным языком, соответственно А, Ф, Н? Двумя языками А Н, А Ф, НФ?
6. Доказать, что А\(ВС) = (А\В) (А\С); А\В = А\(АВ); А(АВ) = В.
7. Решить уравнение
АХ = D; А,D- фиксированные множества; Х – искомое множество.
8. Решить систему уравнений
11
A \ X  B
, если А, В, С – фиксированные множества, причем С B ;АС=.

X \ A  C
9. Доказать включения
(АВ)\С  А(В\С)
10. Если А={2,3,4,5,6,7,8}, запишите бинарные отношения R={(x,y)}: х1уА, х делит у, и х ≤ 3.
11. Являются ли следующие отношения функциями:
1) {(1,2);(2,3);
2) {(1,2);(1,3);(2,3)}
3) {x1x2-2x-3 :хR} ?
3
4
Р  Р4
10 А8  А7
12. Вычислите: C15
;
; 5
, где C ni - сочетания, Ani - размещение, Pni - перестановки.
3
Р3
А6
13. Решите уравнения: Ax21  30; С х3  С х2  15( х  1) .
n
14. Докажите, что (а+в)n=  C ni при а=в=1.
i 1
15. Из колоды из 52 карт вынули 10 карт. В скольких случаях окажется среди этих карт: хотя бы
один туз; ровно один туз и не менее двух тузов?
Методические указания к выполнению контрольного задания
1. Необходимо знать тождества алгебры множеств, чтобы выполнить 1-4 задания.
2. При выполнении п. 5, для оценки мощности множеств следует их записывать посредствам
операций алгебры множеств, отображая их диаграммой Элера.
3. Уравнение с неизвестным множеством решается по следующими алгоритму:
- к обоим частям уравнения прибавляется множество D и уравнение приводится к стандартному
виду, то есть левая часть уравнения приравнивается к пустому множеству;
- добавляется переменная Х посредствам I =(X X );
- формируется система двух уравнений, анализ каждого из них позволит найти соотношение
искомого множества Х с фиксированными;
- объединив найденные соотношения, получаем итоговый результат.
Практическая работа №2
Тема: «Элементы теории множеств. Соответствия»
Цель работы:
Вспомнить определение соответствия, рассмотреть свойства соответствий. На конкретных
примерах рассмотреть частные случаи соответствий. Закрепить полученные знания по данной
тематике при решении задач.
Основные понятия
Пусть даны множества X и Y. Соответствием q называется тройка множеств q  X, Y, Q  , где
Q  X  Y, Q- график соответствия. Содержательный смысл понятия «соответствия» состоит в
том, что некоторые элементы множеств Xи Yсопоставляются друг с другом, образуя пары
x, y  X  Y .
Множество X называется областью отправления соответствия q; множество Y- областью
прибытия соответствия q; Q - закон (график) соответствия q; pr1Q- область определения; pr2Qобласть значений соответствия q . Если пара x, y  Q , то говорят, что элемент yсоответствует
элементу xв соответствии q. Геометрически этот факт изображают стрелкой, направленной от xк
y . Множество всех y  Y , соответствующих элементу x  X , называется образом элемента xв
Yи
обозначается
Q(x);
Q( x )  y  Y; x, y  Q. Множество всех
x  X , которым
12
yY,
соответствует
Q 1 ( y); Q 1 ( y)  x  X;
называется
x, y  Q.
прообразом
yв
X
и
обозначается
Прообраз y; Q –1(y)
Образ x; Q(x)
Рис. 2.1
Рассмотрим пример.
Пусть
X  1,2,3, Y  a, b, c, тогда Q   1, a , 1, b , 1, c , 2, a , 2, b , 2, c , 3, a , 3, b , 3, c  
Х  Y  закон соответствия (см. рис.). Q(1)  Q(2)  Q(3)  a , b, c  Y - образ1,2,3.
Q 1 (a )  Q 1 (b)  Q 1 (c)  1,2,3  X – прообразa,b,c.
1
2
3
1
a
b
c
a
2
b
3
c
qq-1
Пусть A  pr1Q,
1
Рис. 2.2
B  pr2 Q . Тогда q(A)   Q( x ) – образ множества Aв соответствии q , а
xA
1
q (B)   Q ( y) - прообраз множества Bв соответствии q .
yB
Для каждого соответствия q=(X,Y,Q)определим обратное соответствие q-1.
1
 
1 1
 q , и поэтому все образы соответствия qq-1=(Y,X,Q-1), где Q  Y  X . Очевидно, что q
1
совпадают с прообразом соответствия q, а все образы соответствия q-1 совпадают с образами
соответствия q.
Пусть q  X, Y, Q , Q  X  Y и p  Y, Z, P , P  Y  Z – два соответствия, причем
область значений соответствия q совпадает с областью определения соответствия p, т .е.
pr2 Q  pr1P . Тогда соответствие
q  p  X, Z, Q  P ,
где Q  P  X  Z композиция графиков Q и P называется композицией соответствий.
Соответствия могут характеризоваться следующими свойствами:
1.
Соответствие всюду определено, если pr1Q=X,т.е. x  X  y  pr2 Q , что x, y  Q
 x  pr1Q , что x, y  Q
3. Соответствие функционально (однозначно), если образ Q(x)любого элемента x  pr1Q состоит
2.
Соответствие сюръективно, если pr2Q=Y, т.е. y  Y
из одного элемента
4. Соответствие взаимно однозначно, если оно всюду определено, сюръективно, функционально и
прообразом любого элемента из pr2Q является единственный элемент из pr1Q.
Соответствие – способ задания взаимосвязей, взаимодействий между элементами множества.
Частными случаями соответствий являются:
•
функции
•
отображения
•
преобразования
•
операции
и др.
13
Способы задания функций.
1) график
2) таблица
3) формула, описывающая функцию как суперпозицию других (исходных) функций
4) рекурсивная вычислительная процедура
Пример: функция f(x)=1∙2∙3∙…∙x=x!
Описывается процедурой, задаваемой правилами:
1. f(o)=1
2. f(x+1)=f(x)∙x+1
Отображения множеств.
Аналитическое понятие функции, геометрическое понятие отображения или преобразования
фигуры и т. п. объединяются в общее понятие отображения одного множества в другое. Пусть
даны два множества Х и Y, пусть каждому элементу х∈Х поставлен в соответствие некоторый
определённый элемент у = f(x) множества Y; тогда говорят, что имеется отображение множества
Хв множество Y, или что имеется функция, аргумент х которой пробегает множество X, а значения
у принадлежат множеству Y; при этом для каждого данного х∈Х элемент у = f(x) множества Y
называется образом элемента х∈Х при данном отображении или значением данной функции для
данного значения её аргумента х.
Примеры.
1) Пусть задан в плоскости с данной на ней прямоугольной системой координат квадрат с
вершинами (0; 0), (0; 1), (1; 0), (1; 1) и осуществлена проекция этого квадрата, например на ось
абсцисс; эта проекция есть отображение множества Х всех точек квадрата на множество Y всех
точек его основания; точке с координатами (х; у) соответствует точка (х; 0).
2) Пусть Х — множество всех действительных чисел; если для каждого действительного
числа x∈X положить у = f(x) = x3, то тем самым будет установлено отображение множества Х в
себя.
3) Пусть Х — множество всех действительных чисел; если для каждого х∈Х положить у = f(x)
= arctgх, то этим будет установлено отображение множества Х на интервал ( — π/2, π/2).
(1—1)-соответствие между двумя множествами Х и Y есть такое отображение множества Хв
множество Y, при котором каждый элемент множества Y является образом одного и только одного
элемента множества X. Отображения примеров 2) и 3) взаимно однозначны, примера 1) — нет.
К определению композиции соответствий можно подойти с более общих позиций. Пусть
и
. При этом на множества
и
априори не накладывается
никаких органичений. Композиция
соответствий и в этом случае также определяется
соотношением (1.3). Чтобы такая композиция была отлична от пустого соответствия, необходимо
и достаточно выполнение условия
. В частности,
всякий раз, когда
.
Пример.
Построить биективное отображение между множествами точек единичной окружности и
множеством
действительных
чисел.
Решение
Произведем
построение,
как
показано
на
рисунке.
Рис. 2.3
14
Тогда, проводя отрезки Рх1, Рх2,…. мы каждой точке единичной окружности z1,z2,.. ставим в
соответствие
единственную
точку
действительной
оси.
Если принять точку Р за полюс полярной системы координат с осью РО, то для точек оси x
можем
записать
причем, каждому φ соответствует единственная точка z, определяемая уравнением окружности в
полярной системе координат
Пример.
Является ли отображение
Очевидно, что графиком
инъективным и сюръективным, если
Решение
является парабола ветвями вверх с точками
пересечения оси Х: х1=-3, х2=-2 и с вершиной в точке х0=-2,5 причем,
образом, для области определения
таким
а для области значений
Рис. 2.4
Следовательно, отображение не сюръективно. Если взять
то каждому уа будет
соответствовать два (а не одно) значения х’2 и х’’2 (рисунок), т.е. нарушается условие
инъективности:
Пример.
Заданы множества кортежей:
Таким образом, отображение не инъективно.
.
Показать, что эти множества представляют собой соответствия между множествами N1 и N2 , если
N1 = N2 =
. Дать полную характеристику этих соответствий.
Решение:
Найдем декартово произведение:
15
Видно, что заданные множества являются подмножествами этого прямого произведения.
Следовательно, данные множества есть соответствия.
А)
.
Рис. 2.5
. Следовательно, соответствие является частично
Область определения:
определенным.
Область значений:
. Следовательно, соответствие является сюръективным.
Образом элемента
являются два элемента
. Значит соответствие не является
функциональным. Из этого следует, что соответствие не является функцией, отображением.
б)
.
Рис. 2.6
. Следовательно, соответствие является частично
Область определения:
определенным.
Область значений:
. Следовательно, соответствие не является сюръективным.
Образом любого элемента из
является единственный элемент из
. Следовательно,
соответствие является функциональным, функци-ей. Соответствие является частично
определенным. Это означает, что функция является частично определенной и не является
отображением.
в)
.
Область определения:
Рис. 2.7
.Следовательно, соответствие всюду определено.
16
Область значений:
. Следовательно, соответствие не является сюръективным.
Образом любого элемента из
является единственный элемент из
. Следовательно,
соответствие является функциональным, функцией. Так как соответствие всюду определено, то
имеем полностью определенную функцию, т.е. имеем отображение N 1 в N2 .
г)
.
Рис. 2.8
Область определения:
. Значит, соответствие полностью определено.
Область значений:
. Значит, соответствие сюръективно.
Образом любого элемента из N1 является единственный элемент из N2 . Следовательно,
соответствие является функциональным, функцией.
Так как соответствие всюду определено, сюръективно, функционально и прообразом любого
элемента из
является единственный элемент из
, то соответствие является взаимно
однозначным.
Так как функция полностью определена и соответствие сюръективно, то имеем отображение N 1 на
N2 .
Так как для любых двух различных элементов из N1 их образы из N2 также различны, то
отображение является инъективным.
Так как отображение является одновременно сюръективным и инъективным, то имеем биективное
отображение (взаимно однозначное отображение).
Практическая работа №3
Тема: “ Элементы теории множеств. Отношения”
Цель работы:
На конкретных примерах разобраться с конечными множествами и операциями над ними; на
примерах изучить свойства отношений, способы их задания. Закрепить полученные знания по
данной тематике при решении занимательных задач. Научиться использовать в своей работе
компьютер как инструмент.
Основные понятия
Отношения задаются:
1.
Списком (перечислением) пар.
R={(a,b),(a,c),(b,d)}
2.
Матрицей.
M={a1,a2,…,an}
R⊆M⨉M
Пример 1.
Пусть M={1,2,3,4,5,6,7}. Задать в явном виде (списком) и матрицей отношение R⊆M⨉M, если R
означает – «быть строго меньше».
R={(a,b):a∈M;b∈M;a<b}
Список:
R={(1,2);(1,3);…;(1,6);(2,3);…;(2,6);(3,4);(3,5);(3,6);(4,5);(4,6);(5,6)}
Матрица
Свойства бинарных отношений
17
R – отношение, M – множество
R⊆M⨉M
1.
R – рефлексивно, если ∀a∈R a R a
2.
R – антирефлексивно, если ∄a∈R : a R a
3.
R – симметрично, если из a R b следует b R a
4.
R
–
антисимметрично,
если
∄(a,b)
:
a≠b
для которой из a R b следует b R a
5.
R – транзитивно, если из a R b и b R c следует a R c
Пример 1.
Какими признаками характеризуется матрица отношения R, если R обладает свойствами 1-5. (Не
одновременно!)
1.
Главная диагональ матрицы рефлексивного отношения состоит из единиц.
2.
Главная диагональ матрицы антирефлексивного отношения состоит из нулей.
3.
Матрица симметричного отношения симметрична относительно главной диагонали.
4.
В матрице антисимметричного отношения отсутствуют единицы, симметричные
относительно главной диагонали.
Операции над бинарными отношениями
1.
Объединение
R1∪R2={(a,b):(a,b)∈R1 или (a,b)∈R2}
2.
Пересечение
R1∩R2={(a,b):(a,b)∈R1 и (a,b)∈R2}
3.
Разность
R1\R2={(a,b):(a,b)∈R1 и (a,b)∉R2}
4.
Дополнение
R=U\R, где U=M1⨉M2 (или U=M2)
5.
Обратное отношение R-1:
-1
R ={(a,b):(b,a)∈R}
/R – быть младше R-1 – быть старше/
6.
Композиция отношений R1∘R2:
(a,b)∈R1∘R2, если ∃c:(a,c)∈R1 и (c,b)∈R2
Пример.
Проверить, является, ли отношение R, заданное на множестве натуральных чисел :
, отношением эквивалентности?
Решение
Отношение эквивалентности обладает свойствами рефлексивности, симметричности и
транзитивности.
Проверим
наличие
этих
свойств
у
заданного
отношения.
Рефлексивность: aRa? Но очевидно, что a=a(mod k), так как равные числа имеют равные остатки
от
деления
наk.
Следовательно,
отношение
рефлексивно.
Симметричность:
Конечно, так как, если aRb то есть остатки от a и b при делении на
k равны, значит и остатки от b и a также равны. Следовательно, отношение симметрично.
Транзитивность:
Если aRb и bRc, то пары (a, b) и (b,c) имеют одинаковые
остатки от деления на k, а, следовательно, тот же остаток имеет и пара (a, c) и, как следствие, aRc.
Таким
образом,
отношение
транзитивно.
В итоге получили, что заданное отношение является отношением эквивалентности.
Пример.
Пусть A={1,2,3,4,5,6,7}. Определить отношение R, его область определения, область значения и
обратное отношение, если отношение xRy задано
B={5,10,13}
Построить
матрицы
отношений
условием
R
если
и
R-1.
Решение
18
Построим матрицу отношения R,
Рис.3.1
в
которой
единицы
стоят
в
тех
местах,
где
Тогда область определения отношения R: ПР1R={1,2,3}, а область значений – ПР2R={1,2,3}.
Поскольку обратное отношение R-1 определяется условием
тогда и только тогда,
когда
а исходное отношение обладает свойством симметрии
то обратное отношение R-1 совпадает с R, а значит матрица R-1 совпадает с матрицей R.
Пример.
Пусть дано уравнение y = x+2. Для данной функциональной зависимости можно записать
множество из упорядоченных пар. Пример записи множества из упорядоченных пар в виде:
{(2,4),(4,6),(6,8),(8,10)}.
Пример.
Отношение задано неравенством: 5x - 7y < 0. Построить новое множество Z из упорядоченных пар
с бинарным отношением между элементами.
Решение.
Новое множество Z из упорядоченных пар с бинарным отношением между элементами может
быть любым. Произвольно выбираем любые пары так, чтобы при подстановке в заданное
неравенство оно выполнялось. Пусть множество получилось в виде:
Z={{-1,1},{1,1},{0,1}}. Все упорядоченные пары во множестве Z удовлетворяют заданному
отношению.
Пример.
Пусть задано отношение на множестве в виде функциональной зависимости.
Z = {(x, y) | xÎX; y = x2}.
В этом примере можно строить любое множество из упорядоченных пар, задаваясь значением х и
вычисляя y = x2. Например. {(1,1); (2,4); (3,9); (4,16)}.
Самостоятельно.
По примеру 2 каждый студент самостоятельно задаёт отношения между двумя множествами X,Yв
виде произвольного неравенства. Построить новое множество Z из упорядоченных пар с
бинарным отношением между элементами так, чтобы при подстановке в заданное неравенство оно
выполнялось.
Практическая работа №4
Тема: “ Элементы теории множеств. Операции над множествами. Кортежи. Прямое
произведение множеств. Проекции. График ”
Цель работы:
На конкретных примерах разобраться с конечными множествами и операциями над ними;
научиться изображать на плоскости подмножества, заданные аналитически. Закрепить
19
полученные знания по данной тематике при решении занимательных задач. Научиться
использовать в своей работе компьютер как инструмент.
Решение задач.
1.
Изобразить на плоскости R2 подмножества, заданные аналитическими выражениями:
а)
x, y  R : x  y 1  x  y   0;
x, y R 2 : y  2  y  x 2  1 x, y R 2 : 0  y  1  x 2    x  0,1.
2
2
2
б)
Решение представлено на рисунках
y
y
2
0
x
1
-0,1
0
а)
0,1
Рис. 4.1
Найти аналитическое выражение для заштрихованного множества М:
y
45o
M
-1
1
Рис. 4.2
x
Рис. 4.3

x
б)

Ответ: M  x , y   R : ( x  y 1)  xy  0   y  x  .
3. Даны множества А={простые числа < 20}, B={нечетные числа < 20}. Найти следующие
множества: а) A  B ;
б) A \ B ;
в) B \ A ;
г) A  B .
Решение.
Множества A и B конечные и можно перечислить их элементы. А={2,3,5,7,11,13,19} ,
В={1,3,5,7,9,11,13,15,17,19}. Так как объединению множеств A и B принадлежат элементы,
входящие в A или B ,( при этом одинаковые элементы зачисляются только один раз), то A  B 
{1,2,3,5,7,9,11,13,15,17,19}. По определению в множество A\B должны входить те элементы
множества A, которые не принадлежат множеству B. Поэтому A \ B  {2}. Аналогично
множество B \ A  {1,9,15}  , множество A  B  {3,5,7,11,13,17,19} .
4.
2
2
 1 1
2

1
Множества X n   ,  ; n  1,2,...; Yn   0,  ;
 n n
 n


n 1
n 1
n  1,2,... . .
Найти  X n и  Yn .
20
Решение.

 1 1
 1 1
Ясно, что X1   1,1  X 2   ,   ...  X n  ..., поэтому   ,    1,1  X1 .
n 1 n n 
 2 2

 Yn  . Пусть x 0  (0,1) – любое число. Тогда найдется такое
Покажем, что
n 1


 1 
 1 




n 0  n 0     , что x 0  Yn 0   0,  . Поэтому  Yn   .
n 1
 n0 
x0  

5. Найти: а)  X ;
б)  X , если М - множество всех правильных треугольников,
XM
XM
вписанных в данный круг.
Решение:
а) пусть С - произвольная точка круга. Проведем прямую, проходящую через точку С и центр
круга О. Пусть А и А  - точки пересечения окружности с прямой. Найдется правильный
треугольник (одна из вершин которого А или А ), содержащий точку С, поэтому  X совпадает
XM
с кругом; б) любая точка, лежащая в круге, вписанном в некоторый правильный треугольник X,
принадлежит также любому другому правильному треугольнику. Если же точка не принадлежит
вписанному в некоторый треугольник X кругу, то найдется треугольник из M, не содержащий эту

точку. Следовательно,  X совпадает с вписанным в любой треугольник из M кругом.
6.
Используя тождества с множествами, упростить
а) A  B \ A  ; б) A  C \ B  C.
Решение:
а) прежде всего заметим, что B \ A  B  A. Используя свойство дистрибутивности и свойства
A  A  E, A  E  A получаем:
A  B \ A   A  B  A   A  B  A  A   A  B  E  A  B ;
 
 
 A  C  B  A  C  C  A  C  B  A  C  C 
 A  C  B    A  C  B  A  C \ B.
б) A  C \ B  C  A  C  B  C  A  C  B  C 
7. Для любого конечного множества A через n(А) обозначим число его элементов. Показать, что
nA  B  nA   nB  nA  B.
Решение.
Если A  B   , то равенство nA  B  nA   nB очевидно. Если A  B   , то
множества A и B можно представить в виде объединения непересекающихся множеств




A  A  B  A  B, B  B  A  B  A  .






nA   n A  B  nA  B и
nB  n B  A  nB  A  .
Так как множества A  B, A  B и A  B попарно не пересекаются и их объединение есть
множество A  B , то
nA  B  n A  B  n A  B  nA  B  n A  B  nA  B  n A  B 
 n A  B  n A  B  n A   n B  n A  B .
Тогда

 



8.Из 20 человек двое изучают только английский язык, трое – только немецкий, шестеро – только
французский. Никто не изучает трех языков. Один изучает немецкий и английский, трое
французский и английский. Сколько человек изучают французский и немецкий?
Решение.
Пусть A,N,F– множества людей, изучающих английский, немецкий, французский язык.
Воспользуемся результатом предыдущей задачи для трех множеств. Легко получить, что
21
n A  N  F  n A   n N   n F  n A  N   n A  F  n N  F  n A  N  F .
Подставляя данные задачи, получим:
20 = (2+1+3) + (1+3+ n N  F ) + (3+6+ n N  F )-1-3- n N  F .
Отсюда n N  F  5 . Здесь при вычислениях использовались представления множеств A,N,F в
виде объединения непересекающихся множеств. Например,
A   A  N  F    A  N  F    A  N  F    A  N  F  .
 только англ .:2   англ . и нем .:1   франц. и англ .:3   все языки :0 
Задача легко решается также с помощью диаграммы Венна.
9.
Пусть A  a, т.е. A – одноэлементное множество, элементом которого является
одноэлементное множество {a}. Тогда a A – верно, а a  A – неверно, так как у множества
A нет элемента a, но есть элемент {a}.
Самостоятельно: Верно ли, что 1,2 1,2,3, 1,3,1,2; 1,2  1,2,3, 1,3,1,2?
10. Показать, что множество F = {множества, которые не являются элементами самих себя} =
{A: A – множество и A  A } не существует.
Решение. Допустим, что множество F существует. Тогда существует элемент G такой, что
G  F , либо G  F . Если G  F , то по условию содержания G  G ( G не является элементом
G), следовательно, G  F . Если же G  F , то G не удовлетворяет условию вхождения в F и ,
следовательно, G  F . Следовательно, во всех случаях приходим к противоречию. Поэтому F не
может существовать.
Этот пример – один из логических парадоксов ХХ века, придуманный
Б. Расселом. Вот его широко известная формулировка. В небольшом городке цирюльник бреет
всех, кто не бреется сам и не бреет никого из тех, кто бреется сам. Бреет ли цирюльник самого
себя? Если цирюльник бреет самого себя, то тем самым он нарушает правило, так как бреет
одного из тех, кто бреется сам. Если же цирюльник не бреет самого себя, то он опять-таки
нарушает правило, так как не бреет одного из тех, кто не бреется сам. Ответ заключается в том,
что существование такого цирюльника невозможно.
11. Для следующих рассуждений построить их буквенную форму и проверить с помощью
диаграммы Венна, правильна ли эта форма:
а) «если все квадраты являются прямоугольниками, то некоторые прямоугольники не являются
квадратами»;
б) «если ни один кит не может летать, то ни один летающий предмет не является китом»;
в) «если некоторых хищников можно приручить и все львы хищники, то некоторых львов можно
приручить».
Решение: а) обозначим x – квадрат; y – прямоугольник. Тогда буквенная форма рассуждения
имеет вид: «Если все x являются y, то некоторые y не являются x». Чтобы проверить правильность
этой формы, обозначим через А и В множества, содержащие соответственно элементы x и y.
Тогда условие примера можно записать так: A  B .
Поскольку возможен случай А=В (все прямоугольники являются квадратами), то рассуждение
неправильное. В случае A  B неправильное рассуждение приводит к истинному заключению
(не всякий прямоугольник является квадратом);
б) обозначим x – кит, y – летающий предмет. В буквенной форме это рассуждение звучит так:
«Если ни один x не является y, то ни один y не является x». Обозначим через А и В множества
соответственно элементов x и y. Тогда условие примера
означает, что A  B   .
В этом случае рассуждение верно.
в) обозначим x – хищник, y - животное, которое можно приручить, z - лев. Рассуждение звучит
так: «Если некоторые x являются y и все z являются x, то некоторые z являются y». Пусть A,B,C
– соответственно множества элементов x,y,z. Тогда условия примера означают: A  B   ,
С  A . Может быть так, что C  B   , то есть ни один z не является элементом множества B.
Рассуждение неправильное.
22
12. Рассмотрим множество клеток шахматной доски. Каждая клетка может быть задана
однозначно кортежем длины 2, например e,2 . Множество клеток шахматной доски – это прямое
произведение
F K , где множество F  a , b, c, d, e, f , g, h, а множество K  1,2,3,4,5,6,7,8.
Пусть R  x :   x   - множество вещественных чисел.
1
13.
R 2   x, y :   x, y  
Тогда
-
множество
точек
плоскости;
R 3  R1  R1  R1   x, y, z :   x, y, z   - множество точек трехмерного пространства.
14.
Пусть X  1,0, Y  a , b. Тогда
Х  У   0, а , 0, b , 1, b ;
Y  X  X  Y    a,0 , b,0 , a,1 , b,1 ;
1
Y 3   a, a, a , a, b, a , b, a, a , b, b, b , b, b, a , a, a, b , a, b, b , b, a, a .
15. Если M   1,2,3,4,5 , 2,1,3,5,5 , 3,3,3 , то выражения pr2 M и pr1,3 M не имеют
смысла, так как понятие проекции множества определено только в случае, когда кортежи,
составляющие множество M, имеют одинаковую длину.
Самостоятельно:
1. Кортеж a  1,3,2,3,5,4 . Найти pr2 a ; pr4 a ; pr1,3 a ; pr1,3,5 a ; pr2,6,6 a ; pr7 a .

3.
. Найти pr1M; pr2,3M; pr1,2,3M.
Пусть M  1,2, 3,4,5, К  1,2, 3,4,5,6,7, L  1,2, 1,2. Верно
М  К; 1,2 L; 1,2  L ?
4.
Изобразить на плоскости R
2. Пусть M  , □,  , 3,2,1 , в, r, g

x
2
2


2

  
5. Даны два множества
A  B; A  B; A \ B; B \ A .


n 1
n 1
что
подмножества, заданные аналитическими выражениями:
r

 y 2  r  x  0  x  0    y  r ;
2


2
2
2
2
2
б) x , y   R ; x  y  1  y   x  y  x  1 .
а) x, y  R ;
ли,
 

A  2n : n  Z, n  0, B  2
 1 1
, ;
 n n
6. Найти  X n и  X n , если a) X n   
n

: n  1,2,... . Найти множества
 1


б) X n  0, .
n
7. Используя тождества алгебры множеств упростить
а) A  B  A  B ;
б) A  B  A .
8. Из 220 студентов 163 играют в баскетбол, 175 – в футбол, 24 не играют в эти игры. Сколько
человек одновременно играют в баскетбол и футбол?
9. В группе 30 студентов. Все, кроме двух, имеют оценки «5» ,«4» и «3». Число студентов,
имеющих оценки «5», - двенадцать, «4» – четырнадцать, «3» - шестнадцать. Трое учатся лишь на
«5» и на «3», трое – лишь на «5» и на «4» и четверо лишь на «4» и на «3». Сколько человек имеют
одновременно оценки «3»,
«4», «5»?




2


y2
2 x

 1 . Найти pr1M, pr2 M .
10. M  x , y   R ;
4
9


2
2
2
1
11. M  x , y   R ; x  y  1 , P  t ; t  R . Что представляет собой множество M  P




?
12. A  1,2,3,4,5 . Изобразить множество A3. Найти pr4,5 A .
3
13. Упростить выражения:
23
а) pr2 X  pr3 X  Y  X  Y ;
2

1
б)  Y  X 

3

1 1


  X 5  X 2  Y 2  pr X 2  Y .
2, 3

14. Доказать равенства:
а) A  B  C  A  C  B  C ;
б) A  B  C  A  C  B  C ;
c) A \ B  C  A  C \ B  C .
Практическая работа №5
Тема: “ Алгебра логики. ”
Цель работы:
На конкретных примерах научиться записывать рассуждения в виде последовательности формул
логики высказываний.
Закрепить полученные знания по данной тематике при решении задач.
Основные понятия.
Основными объектами разделов логики являются высказывания.
Высказывание – последовательное предложение (утверждение, суждение), о котором можно
говорить, что оно истинно или ложно. Для того, чтобы оперировать высказываниями, необходимо
знать их истинное значение (истинность).
Основные понятия.
•
Простое (элементарное) высказывание – рассматривается как неделимое целое. Обычно это
высказывания не содержащие логических связок.
•
Сложное (составное) высказывание – составляется из простых с помощью логических
связок.
•
«и»,
«или»,
«не»,
«если
…
то
…»,
«либо
…
либо
…» (в
разделительном
смысле),
«тогда
и
только тогда»
и др.
Пример 1.
Представить логическими формулами следующие высказывания:
1.
Сегодня понедельник или вторник.
2.
Идёт дождь или снег.
3.
Если идёт дождь, то крыши мокрые. Дождя нет, а крыши мокрые.
4.
Что в лоб, что по лбу.
A⊕B
A∨B
(A→B)&(A&B)
A∼B
Логической ( булевой) функцией (или просто функцией) n переменных y = f(x1, x2, …, xn)
называется такая функция, у которой все переменные и сама функция могут принимать только два
значения: 0 и 1.
Переменные, которые могут принимать только два значения 0 и 1 называются логическими
переменными (или просто переменными). Заметим, что логическая переменная х может
подразумевать под числом 0 некоторое высказывание, которое ложно, и под числом 1
высказывание, которое истинно. Например, высказывание “Волга впадает в Каспийское море”
является истинным и, значит, с точки зрения дискретной математики принимает значение 1, а
высказывание “в неделе 8 дней” является ложным, и переменная, которая заменяет это
высказывание, принимает значение 0. Имеется много высказываний, которые либо истинны, либо
ложны, но о которых мы не знаем, что имеет место на самом деле. Например, высказывание
“студент Петров (имеется в виду конкретный человек) имеет дома компьютер”. Такого рода
24
высказывания требуют проверки (конечно, если нам важен этот факт). Поэтому считаем, что
переменная, заменяющая это высказывание может принимать значение 0 или 1.
Из определения логической функции следует, что функция п переменных – это
отображение Еп в Е, которое можно задать непосредственно таблицей, называемой таблицей
истинности данной функции. Например, функция трех переменных f(x,y,z) может определяться
следующей таблицей истинности.
x y z f(x,y,z)
0 0 0
1
0 0 1
0
0 1 0
1
0 1 1
1
1 0 0
0
1 0 1
1
1 1 0
0
1 1 1
0
Это означает, что f(0,0,0) = 1, f(0,0,1) = 0, f(0,1,0) = 1 и т. д.
Две функции равны, если совпадают их таблицы истинности (на объединенном наборе
переменных).
При таком задании наборы Еп всегда упорядочены естественным образом, это позволяет
определять функцию только последним столбцом (который иногда для экономии места
записывается в строчку). Например, в нашем примере функцию f(x,y,z) можно задать так:
f = (10110100), это означает, что последний столбец таблицы истинности
Заметим, что все функции п переменных также можно перенумеровать по принципу
“скользящей единицы”. Теоретически число таких функций – 22n но некоторые из них являются по
существу функциями меньшего числа переменных, а две – вообще константами. Если фактически
функция не зависит от некоторой переменной, то такую переменную называют фиктивной.
Теперь можно описать основные функции дискретной математики.
Функции одной переменной y=f(x). Перенумеруем эти функции (их 4) естественным образом
и расположим в виде таблицы:
x f0 f1 f2 f3
0 0 0 1 1
25
1 0 1 0 1
Видно, что f0 (х) = 0, a f3 (х) =1, т. е. эти две функции не зависят от х, f1 (х) = х, т. е. она не
меняет аргумента. Функция f2 (х) действительно содержательная функция. Она принимает
значения, противоположные значениям аргумента, обозначается f2 (х)=
и называется
отрицанием (применяют еще обозначение ù x (читается “не x”)).
Функции двух переменных z = f(x,y).
Число этих функций равно 24 = 16. Перенумеруем и расположим их тоже в естественном
порядке.
Табл. 5.1
Рассмотрим более подробно эти функции. Две из них f0 = 0 и f15 = 1 являются константами.
Функции
являются по существу функциями одной переменной.
Наиболее важные функции двух переменных имеют специальные названия и обозначения.
Заметим, что эти обозначения не всегда общеприняты.
Перечислим 7 важнейших функций:
1) конъюнкция (функция И)
Заметим, что конъюнкция – это фактически обычное умножение (нулей и единиц). Иногда
эту функцию обозначают x&y или
y;
2) дизъюнкция (функция или)
3) импликация (следование)
26
Иногда импликацию обозначают x y
y (читается “из x следует y”).
Это очень важная функция, особенно в логике. Ее можно рассматривать следующим
образом: если х = 0 (т. е. х “ложно”), то из этого факта можно вывести и “ложь”, и “истину” (и это
будет правильно), если у = 1 (т. е. у “истинно”), то истина выводится и из “лжи” и из “истины”, и
это тоже правильно. Только вывод “из истины ложь” является неверным. Заметим, что любая
теорема всегда фактически содержит эту логическую функцию;
4) сложение по модулю 2 (здесь и далее, если не оговорено противное, знаком “+” мы
будем обозначать такое сложение):
5) эквивалентность или подобие
Эта f9 = 1 тогда и только тогда, когда х = у. Заметим, что будем применять оба обозначения:
х (в основном при изучении функций) и х~ у (когда речь будет идти о логических операциях);
6) штрих Шеффера
у
Иногда эту функцию называют “не и” (так как она равна отрицанию конъюнкции);
7) стрелка Пирса (иногда эту функцию называют штрих Лукасевича)
Эта функция является отрицанием дизъюнкции и поэтому иногда ее называют “не или”.
Заметим, что свойства последних двух функций (как будет видно далее) похожи между
собой и, может быть, поэтому в литературе их часто путают (т. е. называют f8 штрихом Шеффера,
а f14 – стрелкой Пирса).
Три оставшиеся функции, (f2 , f4 и f11) особого значения в дискретной математике не имеют.
Заметим, что часто будут рассматриваться функции от функций, т. е. суперпозиции
перечисленных выше функций. При этом последовательность действий указывается (как обычно)
скобками. Исключение составляет конъюнкция (которая на самом деле является обычным
умножением в двоичной системе). Поэтому конъюнкция совершается первой даже если
отсутствуют скобки. Например, запись xy yz означает (xy
yz).
Из перечисленных функций особую роль играют три функции, а именно конъюнкция,
дизъюнкция и отрицание, поэтому рассмотрим более подробно их свойства.
Свойства конъюнкции, дизъюнкции и отрицания
Особая роль двух функций (из этих трех) определяется тем обстоятельством, что
определение этих функций легко может быть перенесено на любое число переменных:
27
Конъюнкцией n переменных f (x1, x2, …, xn) = x1 x2…xn называется функция, которая
принимает значение 1, если и только если все переменные равны 1 (и, значит, равна 0, если
хотя бы одна из этих переменных равна 0).
Дизъюнкцией n переменных f (x1, x2, …, xn) = x1Ú x2Ú … Ú xn называется такая функция,
которая равна 0 если и только если все переменные равны 0 (и, значит, равна 1 тогда и
только тогда, когда хотя бы одна переменная равна 1).
Из этих определений видно, что конъюнкция и дизъюнкция коммутативны, т. е. обе
функции не зависят от порядка переменных.
Будем обозначать через
(x1, x2, … , xn) новую функцию, которая на наборе переменных
x1, x2, …, xn принимает значение, противоположное f(x1, x2, …, xn).
Заметим, что в перечисленных далее свойствах в роли x, y, z может выступать любая
логическая функция. Все свойства легко могут быть доказаны из приведенных выше определений
этих функций.
1. Универсальные границы:
0 = х; х1 = х; х0 = 0.
2. Ассоциативность конъюнкции и дизъюнкции:
x(yz) = (xy)z; x (y z) = (x y z.
Это свойство означает, что в конъюнкции или дизъюнкции нескольких переменных можно
как угодно расставлять скобки (а значит, можно вообще их не ставить).
3. Поглощение (“целое поглощает часть”):
х ху = х
у) = х.
4. Два распределительных закона:
х (y z) = x y x z; х (y z) = (x y)(x z),
оба свойства могут быть доказаны простым рассуждением (например, если х = 0, тогда по
свойству 1 справа выражение равно 0 и слева тоже 0, если х = 1, то справа стоит y z и слева будет
то же самое).
5. Правила де Моргана:
оба эти правила обобщаются на любое число переменных:
6. Правило Блейка:
Пусть К1 и К2 – какие-то логические функции, тогда
что легко доказывается справа налево:
Следствием правила Блейка являются два правила обобщенного поглощения:
Заметим, что правила Блейка и следствия из него часто используются для упрощения
дизъюнкции (см. разд. 5)
Замечание. Конъюнкция, дизъюнкция, отрицание были определены для объектов,
принимающих лишь два значения 0 и 1. Однако бывают случаи, когда можно ввести такие
28
операции для некоторых других объектов (эти операции также называют иногда конъюнкцией,
дизъюнкцией и отрицанием), для которых также выполнены свойства 1–6. В этом случае говорят,
что на этих объектах введена булева алгебра.
Например,
– некоторое множество точек (или элементарных событий в теории
–
A, B
сумму множеств (дизъюнкцию) A+B = A
(равную объединению точек из А и В), произведение
множеств (конъюнкцию) АВ = А В (равное набору точек, входящих и в А, и в B одновременно) и
дополнение
(отрицание А), т. е.
–
А. Тогда для этих
операций (и это легко проверить) будут выполнены свойства 1–6. Таким образом, множество всех
булевой алгеброй
Пример .
Записать логическими формулами следующие высказывания:
1.
Если допоздна работаешь с компьютером и при этом пьёшь много кофе, то утром
просыпаешься в дурном расположении духа или с головной болью.
2.
Если исследования показывают, что потребитель отдаёт предпочтение удобству и
многообразию выбора, то фирме следует сделать упор на усовершенствование товара или
увеличение многообразия новых форм.
(X&Y)→(A∨B).
42=16 различных логических интерпретаций.
Пример
К каким схемам относятся следующие рассуждения:
1.
«Если студент отсутствовал на контрольной работе, то он не выполнил задания. Он не
выполнил заданий. Следовательно, он отсутствовал на контрольной».
2.
«Этот человек студент и двоечник. Он студент. Следовательно, не двоечник».
3.
«Этот человек живет в Москве или СПб. Он живет в Москве. Следовательно, он не живет в
СПб».
4.
«сегодня понедельник или вторник. Сегодня вторник. Следовательно сегодня не
понедельник».
Являются ли данные рассуждения логически правильными?
Задачи.
1. Определить, какая логическая связка используется в следующих выражениях: "А, если В", "коль
скоро А, то В", "в случае А имеет место В", "как А, так и В", "для А необходимо В", "для А
достаточно В", "А вместе с В", "А не имеет места", «A, только если B», «A, пока B», «или A, или
B», «A одновременно с B», «A – то же самое, что и B».
2. Записать следующие рассуждения в виде последовательности формул логики высказываний.
2.1. Профсоюзы штата будут поддерживать губернатора, если он подпишет этот закон. Фермеры
окажут ему поддержку, если он наложит на него вето. Очевидно, что он или не подпишет закон,
или не наложит на него вето. Следовательно, губернатор потеряет голоса рабочих, объединенных
в профсоюзы, или голоса фермеров.
2.2. Если мы не будем продолжать политику сохранения цен, то мы потеряем голоса фермеров.
Если же мы будем продолжать эту политику и не прибегнем к контролю над производством, то
продолжится перепроизводство. Без голосов фермеров нас не переизберут. Значит, если нас
переизберут, и мы не прибегнем к контролю над производством, то продолжится
перепроизводство.
2.3. Если завтра будет хорошая погода, то я буду кататься на коньках или я пойду на лыжах. Если
я пойду на лыжах, то лучше поехать за город, а если буду кататься на коньках, то останусь в
городе. Мне не хочется завтра в выходной день оставаться в городе. Следовательно, если завтра
будет хорошая погода, то я пойду на лыжах.
10. Будет ли логичным следующее рассуждение ?
29
10.1. Если Джонс не встречал этой ночью Смита, то Смит был убийцей или Джонс лжет. Если
Смит не был убийцей, то Джонс не встречал Смита этой ночью, и убийство произошло после
полуночи. Если убийство произошло после полуночи, то Смит был убийцей или Джонс лжет.
Эксперты установили, что убийство произошло до полуночи. Следовательно, Смит был убийцей.
10.2. В бюджете возникнет дефицит, если не повысят пошлины. Если в бюджете возникнет
дефицит, то расходы на социальные нужды сократятся. Следовательно, если повысят пошлины, то
расходы на социальные нужды не сократятся.
10.3. Намеченная атака удастся, если захватить противника врасплох или его позиции плохо
защищены. Захватить противника врасплох можно только, если он беспечен. Он не будет
беспечен, если его позиции плохо защищены. Следовательно, намеченная атака не удастся.
10.4. Если губернатор не имеет соответствующего авторитета или если он не желает принимать на
себя ответственность, то порядок не будет восстановлен и волнения не прекратятся до тех пор,
пока участникам волнений это не надоест, и власти не начнут примирительные действия.
Следовательно, если губернатор не желает взять на себя ответственность и участникам волнений
это не надоест, то волнения не прекратятся.
14. Для следующих схем построить эквивалентные им более простые цепи:
а)
б)
в)
Рис. 5.1
30
15. Требуется, чтобы включение света в комнате осуществлялось с помощью трех различных
выключателей таким образом, чтобы нажатие на любой из них приводило к включению света,
если он был выключен, и выключению, если он был включен. Построить по возможности более
простую цепь, удовлетворяющую этому требованию.
16. Пусть каждый из трех членов комитета голосуют «за», нажимая кнопку . Построить по
возможности более простую цепь, которая была бы замкнута тогда и только тогда, когда не менее
двух членов комитета голосуют «за».
Ответы, указания и решения.
14. Приведем решение задачи 2.1. Рассмотрим высказывания: Х=«профсоюзы будут
поддерживать губернатора», Y=«губернатор подпишет закон», U=«фермеры окажут
губернатору поддержку», V=«губернатор наложит вето». Тогда рассуждение 2.1
представимо формулами F1
2
3
15. Тождественно истинны формулы а,в,ж и з. Остальные формулы тождественно истинными не
являются.
16. В случаях а и б ответ положительный, в качестве F можно соответственно взять X&Y и Y. В
17. В случаях б и г формулы равносильны, в остальных нет.
9. Рассуждения из задач 2.2 и 2.3 логично, а из задачи 2.4 – нелогично.
11. Указание. Применить алгоритм приведения к ДНФ.
18. Указание. Применить алгоритм приведения к СДНФ.
19. Указание. Применить алгоритм приведения к КНФ.
14. Эквивалентные простые схемы приведены на следующих рисунках:
а)
б)
в)
Рис. 5.2
15. Приведем решение задачи. Рассмотрим формулу F(X1,X2,X3), имеющую следующую таблицу
истинности
31
Табл. 5.2
X1
X2
X3
F
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
Атомарные формулы X1,X2 и Х3 обозначают выключатели. Заметим, что в таблице истинности
значения атомарных формул X1,X2 и Х3 в каждой следующей строке отличаются от предыдущей
только одной из атомарных формул, а значение формулы F меняется на противоположное. Это
отражает требование о том, чтобы при нажатии на любой из выключателей свет выключался, если
он был включен, и включался, если он был выключен.
По таблице истинности выпишем формулу F:
По формуле G построим искомую схему
Рис. 5.3
16. Указание. Рассмотреть формулу F(X1,X2,X3), таблица истинности которой получается в
соответствие с формулой
1
2
3)}.
По таблице истинности, выписать формулу в совершенной дизъюнктивной нормальной форме.
Затем упростить ее и по упрощенной формуле составить схему так, как это сделано в решении
предыдущей задачи.
Самостоятельно.
Определить значение истинности следующих сложных высказываний: Пусть а - истинное
высказывание, b - ложное высказывание
Составьте таблицы истинности
32
Практическая работа №6
Тема: “ Алгебра логики. Булевы функции многих переменных. Нормальная форма. ”
Цель работы:
На конкретных примерах научиться записывать рассуждения в виде последовательности формул
логики высказываний. Закрепить полученные знания по данной тематике при решении задач.
Основные понятия
Алгебра логики как раздел математической логики изучает строение логических формул и
способы установления их истинности с помощью алгебраических методов. Основные объекты
алгебры логики, состоящие из букв, знаков, логических операций и скобок. Каждая формула
задаёт логическую функцию – функцию от логических переменных, которая может принимать
только 2 логически значения.
Как установить равносильность двух формул?
1.
По каждой формуле восстановить таблицу истинности.
2.
Полученные таблицы сравниваются по каждому набору значений переменных.
Примеры
1.
Логическая функция трех переменных задана формулой в префиксной форме:
f(x1,x2,x3)=f3(f1(x3,x1),f2(x1,f3(x1,x2))).
Представить f в инфиксной форме, если
f1 – &; f2 – ⊕; f3 – ∨.
Вычислить f на наборе (0;1;1), т. е.
X1=0; x2=1; x3=1.
2.
Обоснуйте следующие преобразования (укажите названия законов, которые применены):
a) (a  b)  (a  c)  a  b  a  c  a  b  (a  c )  ab  (a  c )
33
b)
(ab  abc  bc  c )(c  ac  abc )  (ab  c )(ac  c )  abac  cac  abc  cc 
 abc  abc  c  abc  c  (ab  c )(c  c )  ab  c
Разберите решение следующих задач:
a) В соревнованиях по гимнастике участвуют Алла, Валя, Сима и Даша. Болельщики высказали
предположения о возможных победителях:
Сима будет первой, Валя — второй;
Сима будет второй, Даша — третьей;
Алла будет второй, Даша — четвертой.
По окончании соревнований оказалось, что в каждом из предположений только одно из
высказываний истинно, другое ложно. Какое место на соревнованиях заняла каждая из девушек,
если все они оказались на разных местах?
Введем обозначения:
C1 – Сима заняла 1 место,
С2 – Сима заняла 2 место,
С3 – Сима заняла 3 место,
С4 – Сима заняла 4 место,
B1 – Валя заняла 1 место,
…
А1 – Алла заняла 1 место,
…
D1 – Даша заняла 1 место,
…
F  (C1  B2 )  (C2  D3 )  ( A2  D4 )  (C1 B2  C1B2 )(C2 D3  C2 D3 )( A2 D4  A2 D4 ) 
 (C1 B2C2 D3  C1B2C2 D3  C1 B2 C2 D3  C1B2 C2 D3 )( A2 D4  A2 D4 ) 
 C1B2C2 D3 A2 D4  C1 B2 C2 D3 A2 D4  C1B2 C2 D3 A2 D4  C1B2C2 D3 A2 D4
C1 B2 C2 D3 A2 D4  C1B2 C2 D3 A2 D4 
 C1 B2 C2 D3 A2 D4
Следовательно, решение таково:
1 место – Сима,
2 место – Алла,
3 место – Даша,
4 место – Валя.
b) Перед сдачей вступительных экзаменов в институт Миша предполагал, что:
если он сдаст математику, то информатику он сдаст только при условии, что не завалит диктант;
не может быть, чтобы он завалил и диктант, и математику;
достаточное условие завала по информатике — это двойка по диктанту.
После сдачи экзаменов оказалось, что из трех высказанных предположений только одно было
ложным. Как Миша сдал экзамены?
Введем обозначения:
M – Миша сдал математику,
I – Миша сдал информатику,
D – Миша написал диктант.
Тогда из условия задачи:
F1  M  ( I  D)
F2  M  D
F3  D  I
34
Составим таблицу истинности для функций F1, F2, F3:
Табл. 6.1
M
0
0
0
0
1
1
1
1
I
0
0
1
1
0
0
1
1
D
0
1
0
1
0
1
0
1
F1
1
1
1
1
1
1
0
1
F2
0
1
0
1
1
1
1
1
F3
1
1
0
1
1
1
0
1
Решение выделено. Миша не сдал экзамены
Самостоятельно.
a)
Виктор, Роман, Леонид и Сергей заняли на математической олимпиаде четыре первых
места. Когда их спросили о распределении мест, они дали три таких ответа:
- Сергей – первый, Роман – второй;
- Сергей – второй, Виктор – третий;
- Леонид – второй, Виктор – четвертый.
Известно, что в каждом ответе только одно утверждение истинно. Как распределились места?
b) В санатории на берегу моря отдыхают отец, мать, сын и две дочери. До завтрака члены семьи
часто купаются в море, причем известно, что если отец утром отправляется купаться, то с ним
обязательно идут мать и сын; если сын идет купаться, то его старшая сестра отправляется вместе с
ним; младшая дочь купается тогда и только тогда, когда купается мать; каждое утро купается по
крайней мере один из родителей. Если в воскресенье утром купалась в море лишь одна из дочерей,
то кто из членов семьи в это утро ходил на море?
1. Упростить: ( A1  A2 )( A1VA2 ); ( Р  Q)  ( PQ) .
2. Следующие равносильности доказать с помощью таблиц истинности и посредствам
равносильных преобразований
( р  (q  r )  pq  r ;
( р  q )( p  r )  p  qr.
3.
Упростите формулы:
( xyVx yz )  ( x V ( xyVy );
( xVy )V ( yVz );
4.
Упростить :
5. Определить будет ли формула верной, ложной или неопределенной.
35
6. Являются ли следующие пары высказываний тождественными?
7. Доказать тождественность формул:
Контрольная работа.
1. Доказать равносильность A  B  AB ;
( x  y )( y  z )  ( z  x)  xVz .
2. Составить таблицы истинности для формул: ( A1  A2 )( A1VA2 ); ( Р  Q)  ( PQ) .
3. Доказать ТИФ:
( Р  (Q  PQ)$
( P  Q)  ((Q  R)  ( P  R)).
4. Упростите формулы:
( xyVx yz )  ( x V ( xyVy );
( xVy )V ( yVz );
5. Студент решил в воскресенье закончить курсовой проект, сходить в музей или картинную
галерею, а если будет хорошая погода – пойти на Солнечный пляж. В каком случае можно сказать,
что решение студента не выполнено? В ответе отрицания должны содержаться лишь в простых
высказываниях. Записать сложное высказывание посредствам логической формулы, по
возможности ее упростить и ответ сформулировать на естественном языке.
6. Следующие равносильности доказать с помощью таблиц истинности и посредствам
равносильных преобразований
36
( р  (q  r )  pq  r ;
( р  q )( p  r )  p  qr.
7. Формулу привести к СДНФ, СКНФ, предварительно приведя
преобразованиями к ДНФ, КНФ:
p(qr  pq ); xVyV ( z  x )  ( y  z ) .
7. Таблицей истинности функция F(x,y,z) Необходимо найти формулу.
ее
равносильными
Табл.6.2
х
1
1
1
1
0
0
0
0
y
1
1
0
0
1
1
0
0
z
1
0
1
0
1
0
1
0
F(x,y,z
1
0
0
0
1
1
1
1
Практическая работа №7
Тема: “ Алгебра логики. Булева алгебра. Совершенная дизъюнктивная (конъюктивная )
нормальная форма.”
Цель работы:
На конкретных примерах научиться переходить от табличного задания логической функции к
булевой. Закрепить полученные знания по данной тематике при решении задач.
Основные понятия
Приведение к дизъюнктивной нормальной форме (ДНФ).
Элементарной конъюнкцией называется конъюнкция переменных или их отрицаний, в которой
каждая переменная встречается не более одного раза.
Дизъюнктивной нормальной формой (ДНФ) называется формула, имеющая вид дизъюнкции
элементарных конъюнкций.
Совершенная ДНФ – это ДНФ, каждая элементарная конъюнкция, которой включает в себя все
переменные с отрицаниями или без.
Процедура приведения к ДНФ:
1. Все отрицания «спустить» до переменных.
2. Раскрыть скобки.
3. Удалить лишние конъюнкции и повторения переменных в конъюнкциях.
4. Удалить константы.
Процедура приведения ДНФ к СДНФ состоит в расщеплении (обратном склеивании)
конъюнкций, которые содержат не все переменные.
Простой конъюнкцией называется конъюнкция одной или нескольких переменных, при
этом каждая переменная встречается не более одного раза (либо сама, либо ее отрицание).
Например,
является простой конъюнкцией,
Дизъюнктивной нормальной формой (ДНФ) называется дизъюнкция простых конъюнкций.
Например, выражение
является ДНФ.
Совершенной дизъюнктивной нормальной формой (СДНФ) называется такая
дизъюнктивная нормальная форма, у которой в каждую конъюнкцию входят все переменные
данного списка (либо сами, либо их отрицания), причем в одном и том же порядке.
37
Например, выражение
является ДНФ, но не СДНФ. Выражение
является СДНФ.
Аналогичные определения (с заменой конъюнкции на дизъюнкцию и наоборот) верны для
КНФ и СКНФ. Приведем точные формулировки.
Простой дизъюнкцией называется дизъюнкция одной или нескольких переменных, при этом
каждая переменная входит не более одного раза (либо сама, либо ее отрицание).Например,
выражение
– простая дизъюнкция,
Конъюнктивной нормальной формой (КНФ) называется конъюнкция простых дизъюнкций
(например выражение
– КНФ).
Совершенной конъюнктивной нормальной формой (СКНФ) называется такая КНФ, у
которой в каждую простую дизъюнкцию входят все переменные данного списка (либо сами,
либо их отрицания), причем в одинаковом порядке.
Например, выражение
является СКНФ.
Приведем алгоритмы переходов от одной формы к другой. Естественно, что в конкретных
случаях (при определенном творческом подходе) применение алгоритмов бывает более
трудоемким, чем простые преобразования, использующие конкретный вид данной формы:
а) переход от ДНФ к КНФ
Алгоритм этого перехода следующий: ставим над ДНФ два отрицания и с помощью правил
де Моргана (не трогая верхнее отрицание) приводим отрицание ДНФ снова к ДНФ. При этом
приходится раскрывать скобки с использованием правила поглощения (или правила Блейка).
Отрицание (верхнее) полученной ДНФ (снова по правилу де Моргана) сразу дает нам КНФ:
Заметим, что КНФ можно получить и из первоначального выражения, если вынести у за
скобки;
б) переход от КНФ к ДНФ
Этот переход осуществляется простым раскрытием скобок (при этом опять-таки
используется правило поглощения)
Таким образом, получили ДНФ.
Обратный переход (от СДНФ к ДНФ) связан с проблемой минимизации ДНФ. Подробнее
об этом будет рассказано в разд. 5, здесь же мы покажем, как упростить ДНФ (или СДНФ) по
правилу Блейка. Такая ДНФ называется сокращенной ДНФ;
в) сокращение ДНФ (или СДНФ) по правилу Блейка
Применение этого правила состоит из двух частей:
- если среди дизъюнктных слагаемых в ДНФ имеются слагаемые
, то ко
всей дизъюнкции добавляем слагаемое К1К2. Проделываем эту операцию несколько раз
(можно последовательно, можно одновременно) для всех возможных пар слагаемых, а
затем, применяем обычное поглощение;
- если добавляемое слагаемое уже содержалось в ДНФ, то его можно отбросить совсем,
например,
или
38
Разумеется, сокращенная ДНФ не определяется единственным образом, но все они
содержат одинаковое число букв (например, имеется ДНФ
применения к ней правила Блейка можно прийти к ДНФ, равносильной данной):
, после
в) переход от ДНФ к СДНФ
Если в какой-то простой конъюнкции недостает переменной, например, z, вставляем в нее
выражение
,после чего раскрываем скобки (при этом повторяющиеся дизъюнктные
слагаемые не пишем). Например:
г) переход от КНФ к СКНФ
Этот переход осуществляется способом, аналогичным предыдущему: если в простой
дизъюнкции не хватает какой-то переменной (например, z, то добавляем в нее выражение
(это не меняет самой дизъюнкции), после чего раскрываем скобки с использованием
распределительного закона):
Таким образом, из КНФ получена СКНФ.
Заметим, что минимальную или сокращенную КНФ обычно получают из соответствующей
ДНФ.
Пример.
-
задана функция f;
найти значения функции f и свести полученные результаты в таблицу
используя полученную таблицу, построить таблицу для двойственной функции f*
построить СДНФ для функции f
выразить функцию f в виде полинома Жегалкина
f=[ ( x1  x2 )  ( x3  ( x4  x1 )) ]/x2
x1 x2 x3 x4
x1  x2
x 4  x1
x3  ( x4  x1 )
( x1  x2 )  ( x3  ( x4  x1 ))
f
Табл.7.1
f*
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
39
СДНФ:
f= x1 x 2 x3 x 4  x1 x 2 x3 x 4  x1 x 2 x3 x 4  x1 x 2 x3 x 4  x1 x 2 x3 x 4  x1 x 2 x3 x 4  x1 x 2 x3 x 4  x1 x 2 x3
x 4  x1 x 2 x3 x 4  x1 x 2 x3 x 4
ДНФ:
x 2  x1 x 2 x3 x 4  x1 x 2 x3 x 4
A =A
Задача . В школе произошло чрезвычайное происшествие: в классе кто-то из учеников разбил
окно. Учителем были опрошены четыре ученика— Лёня, Дима, Толя и Миша. Каждый из
учеников сделал по три заявления (см. таблицы 7.2 – 7.5). Учитель усомнился в одном из трёх
заявлений каждого из опрошенных учеников. Последнее означает, что у каждого одно из трёх
заявлений неверно. Из анализа всех заявлений необходимо узнать— кто разбил окно.
Табл. 7.2
№
1
Показания Лёни
Я не виноват.
2
3
Я не подходил к окну.
Миша знает, кто разбил окно.
События
A1
A2
A3
Вероятности
P( A1 )
P( A2 )
P( A3 )
Переменные
x1
x2
x3
Табл. 7.3
№
1
2
3
Показания Димы
События
Стекло разбил не я.
B1
С Мишей я не был знаком до поступления B2
в школу.
Это сделал Толя.
B3
Вероятности
P( B1 )
P( B2 )
Переменные
y1
y2
P( B3 )
y3
Табл. 7.4
№
1
2
3
Показания Толи
События
Я не виноват.
С1
Это сделал Миша.
С2
Дима говорит неправду, что я разбил С 3
окно.
Вероятности
P(С1 )
P(С2 )
P(С3 )
Переменные
z1
z2
z3
Табл. 7.5
№
1
Показания Миши
Я не виноват.
События
D1
Вероятности
Переменные
P( D1 )
s1
2
Стекло разбил Лёня.
P( D2 )
D2
s2
3
Дима может поручиться за меня.
D3
P( D3 )
s3
Для получения вычислимого логического алгоритма решения данной задачи необходимо
формализовать её условие, т.е. показаниям всех учеников придать форму математических
соотношений, состоящих из символов, обозначающих понятия, и знаков логических операций,
выполняемых над указанными символами.
С этой целью предположим, что каждое из показаний Лёни есть события A1 , A2 , A3 , которые могут
произойти или не произойти. Вероятности того, что каждое из названных событий имело место,
обозначим соответственно P( A1 ) , P( A2 ) , P( A3 ) . Вероятности же того, что события не имели
40
место, обозначим через P( A1 ) , P( A2 ) , P ( A3 ) . При этом предполагается, что событие
A1
противоположно событию A1 и т.д. применительно к оставшимся событиям.
Событие A , состоящее в том, что из трёх показаний Лёни одно не верно, называется сложным
событием. Оно составляется как комбинация простых событий следующим образом:
(3)
A  A1 A2 A3  A1 A2 A3  A1 A2 A3
Здесь операция суммы событий заменена операцией дизъюнкции, а операция произведения—
конъюнкцией. Такие законы обоснованы выше. Вероятность сложного события A обозначим
через P( A) . В теории вероятностей значения вероятности могут принимать весь спектр числовых
значений от нуля до единицы. Применительно к данной задаче будем считать, что вероятности Р
принимают только предельные значения: нуль или единица. Это позволяет отождествлять
вероятность P с Булевой переменной x , т.е. ввести обозначения: P( A)  f1 , P( A1 )  x1 , P( A2 )  x2 ,
P( A3 )  x3 , P( A1 )  x1 , P( A2 )  x2 , P( A3 )  x3 . В этом случае x  1 означает истинность данного
события, а x  0 — ложность. Аналогично f1  1 говорит об истинности сложного события A , а
f1  0 — об его ложности.
Теперь, согласно теоремам о вероятности суммы и произведения нескольких событий,
A
вероятность
сложного
события
определяется
следующим
образом:
f1
(4)
f1  x1 x2 x3  x1 x2 x3  x1 x2 x 3
Проводя аналогичные рассуждения для показаний остальных учеников, и используя обозначения
таблиц 2 – 4, заявления Димы, Толи и Миши представим в форме следующих математических
соотношений:
(5)
f 2  y1 y2 y3  y1 y2 y3  y1 y2 y 3
f 3  z1 z 2 z3  z1 z 2 z3  z1 z 2 z 3
(6)
(7)
f 4  s1 s2 s3  s1 s2 s3  s1 s2 s 3
Все эти логические формулы однотипны и представляют совершенную дизъюнктивную
нормальную форму (СДНФ) одной и той же логической функции f (abc ) .
f  abc  abc  abc
(8)
Придавая набору, (abc) различные комбинации из нулей и единиц, подставляя их в (8) и
производя вычисления с помощью таблиц операций конъюнкции и дизъюнкции, получаем
таблицу 10 логической функции f .
Табл. 7.6
j
f
a b c
0
000
0
1
001
0
2
010
0
3
011
1
4
100
0
5
101
1
6
110
1
7
111
0
В таблице через j обозначен десятичный код набора переменных, представляющего множество
трёхразрядных двоичных чисел.
Единичные значения логической функции f называются единичными термами. Для них
введём новое обозначение F j ( j  3,5,6) .
Единичные термы можно вычислять с помощью операций конъюнкции и отрицания по
следующим формулам:
41
F3  abc; F5  abc; F6  abc (9)
Поскольку в формулах (9) главной операцией считается операция конъюнкции, то единичные
термы называют конъюнктивными термами. Если три конъюнктивных терма объединить знаком
дизъюнкции, то согласно теории логических функций, получим аналитическое представление
функции в форме СДНФ (8).
Пример. Составить для импликации и сложения по модулю 2 СДНФ и СКНФ.
Табл.7.7
х у
х→ у
х+у
0 0
1
0
0 1
1
1
1 0
0
1
1 1
1
0
Тогда СДНФ для этих функций:
СКНФ для этих функций:
Самостоятельно:
1.
Упростить
( x  y ) ( y  z )  ( z  x)
2.
Формулу привести равносильными преобразованиями к ДНФ, КНФ:
p(qr  pq ); xVyV ( z  x )  ( y  z ) .
3.
Пусть известно, что в дорожном происшествии участвовали три автомобиля с водителями
A, B и C. Свидетели происшествия дали следующие показания:

1-ый свидетель: если A виновен, то из остальных B и C хоть один не виновен;

2-ой свидетель: если C не виновен, то виновен кто-то один из пары A, B но не оба вместе;

3-ий свидетель: в столкновении виновны не менее двух водителей.
Опишите показания свидетелей в виде булевых формул и постройте таблицу значений их
конъюнкции. Можно ли на основании этих показаний сделать вывод, что C является виновником
происшествия? Можно ли однозначно определить второго виновника?
4.
Какие подмножества вершин B4 соответствуют следующим булевым функциям:

f1(x1,x2, x3, x4) = 1 x1 = 0 ;

f2(x1,x2, x3, x4) = 1 x4 = 1 ;

f3(x1,x2, x3, x4) = 1 x1 + x2 x3 + x4 (здесь + - арифметическое сложение);

f4(x1,x2, x3, x4) = 1 x1x2 = 0 или x3x4 = 1 .
5.
Построить таблицы значений для следующих булевых функций:

f1(X1,X2,X3) = 1 X1 + X3 X2 ;

f2(X1,X2,X3) = 1 сумма (X1 +X2 + X3) четна;
42
f3(X1,X2,X3) = 0 значение X1 совпадает со значением X2 или со значением X3.
f4(X1,X2,X3) = если X1=1 , то X2 , иначе X3 .
6.
Построить таблицы для функций, задаваемых следующими формулами:
Ψ1= ((X1 ¬ X3) (X2 + X3)) ;
Ψ2 =(¬ (X1 | X2) ~ (¬ X1 X2)) ;
Ψ3 = ((X2 + ¬ X3) ((X1 X2) (X1 ~ ¬ X3))) .
7.
Назовем два набора =( 1, … , n) Bn и β =(β1, … , βn) Bn соседними}, если они
находятся в соседних строках таблицы для функции от n переменных, т.е. представляют двоичные
записи чисел i и iβ, для которых | i - iβ| = 1 .
Найти число функций в
, которые на любой паре соседних наборов принимают

одинаковые значения;

разные значения.
8.
Назовем два набора =( 1, … , n) Bn и β =(β1, … , βn) Bn противоположными}, если для
всякого i i= 1 βi=0 (и, следовательно, i= 0 βi=1 ).
Найти число функций в
, которые на любой паре противоположных наборов принимают
разные значения.
9.
Пусть n =2k. Назовем набор =( 1, … , n) Bn парным,} если для любого i=1, …, k i =
_{k+i} ,т.е. = ^′ ^′ для некоторого набора ^′ размера k.
Найти число функций в
, которые на всех парных Наборах принимают одинаковое значение.
10.
Администратор базы данных обнаружил, что одна или несколько из трех записей его базы
A, B и C ошибочна. Он установил, что

если запись B корректна, то A ошибочна;

хотя бы одна запись из пары B, C корректна и хотя бы одна запись из пары A, C корректна;

если A ошибочна, то хотя одна из записей B, C корректна (но не обе вместе).
Опишите знания администратора в виде булевой формулы. Может ли он сделать вывод, что запись
B ошибочна? Можно ли достоверно утверждать, что ошибочная запись единственна?
11.
Программист Петр использовал в своей программе три целочисленные переменные x, y и
z. В определенном месте программы он поместил условный оператор:
IF (x*y 0)OR (x*z 0) THEN x=1 ELSE x=2;
Проанализировав свою программу, Петр установил, что перед выполнением этого Оператора
выполнены следующие условия:

если z < 0, то x < 0 или y 0;

x 0 или y < 0;

если y < 0 , то хотя бы одна из переменных x, z отрицательна, но не обе вместе.
Опишите знания Петра в виде булевой формулы. Может ли он оптимизировать программу,
заменив указанный условный оператор на присвоение x=1 или на присвоение x=2? Если "да", то
на какое?
12.
Комитет состоит из пяти членов. Решения принимаются большинством голосов, однако,
если председатель голосует "против", то решение не принимается. Постройте формулу,
зависящую от 5 переменных X1, X2,X3, X4, Y ( Xi=1 i -ый член комитета голосует "за", Y=1
председатель "за"), значение которой равно 1 тогда и только тогда, когда в результате голосования
решение принимается.


Контрольные вопросы
1. Дайте анализ эволюционного развития математической теории логики высказываний.
2. Поясните логический смысл определений: «предложение», «высказывание», «высказывательная
форма», «элементарные и сложные высказывания».
3. Содержание и структура высказываний, их взаимосвязь.
4. Дать описательные определения логическим операциям, отобразить их таблицами истинности
(отрицание, конъюнкция, дизъюнкция, импликация, эквивалентность) и привести их замену
структурами естественного языка.
5. Что такое формула логики высказываний?
43
6. Соглашение о значимости логических операций. Записать формулу
 p  q & r   q  r    p  q
в соответствии с правилами значимости.
7. Функции логики высказываний, формы ее задания.
8. Какие формулы могут быть названы равносильными?
9. Привести перечень равносильностей, отображающих коммутативный, ассоциативный и
дистрибутивный законы относительно конъюнкции и дизъюнкции.
10. Привести равносильности, отображающие законы исключения третьего и противоречия.
11. Выразить операции импликации, эквивалентности через элементарные: конъюнкцию,
дизъюнкцию и отрицание.
12. Привести равносильности операций в законах поглощений и расщепления.
13. Осуществить преобразование формул:
p & q  r;
 p  q    p  q .
14. Классификация формул логики высказываний.
15. Отношение равносильности и эквивалентности – привести доказательства возможности
замены операций.
16. Методы доказательства формулы ТИФ и ТЛФ.
17. ДНФ и КНФ логики высказываний, их свойства.
18. СДНФ и СКНФ логики высказываний, их свойства.
19. Привести к КНФ формулу:
f  x  y  &  y  z   x .
20. Привести к ДНФ формулу:
f   x  y   y  z .
21. Найдите СДНФ для ДНФ:
f  x & y   x  x & y & z .
22. Найдите СКНФ для КНФ:
f  x  z  y  & x  z  & y.


Практическая работа №8
Тема: «Алгебра логики. Исчисление предикатов»
Цель работы: На конкретных примерах изучить основные понятия алгебры логики и научиться их
применять при решении задач.
Решение задач.
1. Для следующих предложений выделить предикаты и для каждого из них указать область
истинности, если область определения для одноместного М=R, для двухместногоM=R2 :
1) х+5=1;
2) при х=2 выполняется равенство х2 – 1 = 0;
3) существует такое число х, что х2 – 2х + 1 =0;
4) х2 – 2х + 1 =0;
5) х+2<3x – 4;
6) однозначное число х кратно 3;
7) (х+2)-(3х-4);
8) х2 + у2 >0.
2. Какие из предикатов тождественно истинны?
1) х2 + у2  0;
2) sin2x + cos2x =1;
44
3)
4)
5)
x2 + 1(x+1)2;
х2 + у2 > 0;
(x+1)2>x-1.
4. Изобразить на декартовой плоскости области истинности предикатов:
1) х+у=1;
2) х+3у=3;
3) sinx=siny;
4) (x-2)2+(y+3)2=0;
5) (x-2)2+(y+3)24;
6) ((x>2)v(y>1))((x<-1)v(y<-2)).
5.На множестве М = {1,2,3,4,5,6,7,8,9,10} заданы предикаты А(х): «х не делится на 5», В(х): «х –
четное число», С(х): «х кратно 3». Найти множество истинности предиката: А(х)VB(x)C(x).
6.
Изобразить
на
диаграмме
Эйлера
-Венна
область
истинности
предиката:
(P(x)Q(x))VR(x)
7. Установит истинность или ложность высказываний:
x( x  {2;5}  {( x 2  6 x  8}  0));
x( x 2  5 x  6  0).
8. Обоснование необходимости появления логики предикатов – новой логической системы. Дать
понятие предиката, субъекта.
9. Одноместный предикат – отображение свойства логической функции одной переменной,
область определения предиката.
10. Двуместный предикат – отображение отношений между двумя логическими переменными.
11. Привести перечень логических операций, выполняемых над предикатами. Показать область
истинности новых предикатов.
12. Назвать характерные особенности кванторов и преобразования двуместных предикатов в
одноместные, в высказывания.
13. Определение формулы логики предикатов.
14. Равносильные формулы логики предикатов. Перенос квантора через отрицание, вынос
квантора за скобки, перестановка одноименных кванторов, переименование связанных
переменных:
xW x   ;
xW x   ;
x W x  & B   ;
x W x   B   ;
x y W x, y   ;
x y W x, y   .
15. Приведенные и нормальные формы в логике предикатов. Привести примеры.
16. Алгоритмы преобразования формул в нормальную приведенную форму.
Методические указания.
Приведем формулу xPx  xQx к нормальной форме:


xPx   xQx   xPx   xQx   x Px   xQx   x Px   Qx  .
17. Установит истинность или ложность высказываний:
x( x  {2;5}  {( x 2  6 x  8}  0));
x( x 2  5 x  6  0).
18. Являются ли выражения формулами логики предикатов:
45
( P ( x)  Q( x))Vy (yR ( y ));
?
P  xQ( x, y )
19. Изобразите на диаграммах Элера – Венна области истинности для следующих предикатов:
P ( x)  (Q( x)V )Q( x));
P ( x)VQ( x)  R ( x).
20. Записать в виде формулы логики предикатов следующее рассуждение: «Если всякий разумный
философ – циник, и только женщины являются разумными философами, то тогда, если
существуют разумные философы, некоторые из женщин - циники».
21. Доказать: xA( x)  x A( x).
22. Привести к предваренной нормальной форме следующие формулы логики предикатов:
x( P( x)  yQ( y \);
xyP( x, y )VxyQ( x, y ).
Практическая работа№9
Тема: «Алгебра логики. Полнота в логике высказываний. Карта Карно. Коммутационные
схемы»
Цель работы: На конкретных примерах научиться минимизировать при помощи карт Карно
булевы функции .
Пример
Является ли полной система булевых функций
функций полная ,то выписать все возможные базисы.
Решение:
Рассмотрим функцию
1. Принадлежность функции к классу
? Если система
.
:
.
Следовательно,
.
2. Принадлежность функции к классу
:
.
Следовательно,
.
3. Принадлежность функции к классу
.
Предположим, что функция линейная и, следовательно, представима в виде полинома Жегалкина
первой степени:
.
Найдем коэффициенты
.
Фиксируем набор 000:
,
,
Следовательно,
.
Фиксируем набор 100:
,
,
Следовательно,
.
46
Фиксируем набор 010:
,
,
.
Следовательно,
.
Фиксируем набор 001:
,
,
,
.
Следовательно, функция (по нашему предположению) может быть представлена полиномом вида:
.
Если функция линейная, то на всех остальных наборах ее значение должно равняться 1. Но на
наборе 111
. Значит, функция не является линейной, т.е.
.
4. Принадлежность функции к классу
.
Функция самодвойственная, если на любой паре противоположных наборов (наборов, сумма
десятичных эквивалентов которых равна
, где п – количество переменных функции) функция
принимает противоположные значения.
Вычисляем
. Вычисляем значения функции на оставшихся наборах:
Строим таблицу:
Табл.9.1
(000) (001) (010) (011) (100) (101) (110) (111)
0
1
2
3
4
5
6
7
1
1
1
1
1
1
1
0
На наборах 1 и 6, 2 и 5, 3 и 4 функция принимает одинаковые значения. Следовательно,
5. Принадлежность функции к классу
.
Из таблицы видно: 000 < 111 , но
. Следовательно,
.
Рассмотрим функцию
1. Принадлежность функции к классу
.
.
:
.
Следовательно,
.
2. Принадлежность функции к классу
:
.
Следовательно,
.
3. Принадлежность функции к классу
Предполагаем, что
.
Фиксируем набор 000:
,
.
.
Фиксируем набор 100:
,
.
47
Фиксируем набор 010:
,
.
Фиксируем набор 001:
,
.
Окончательно получаем
.
Это равенство не соблюдается на наборе 011:
,
.
Следовательно,
.
4. Принадлежность функции к классу
.
Вычислим значения функции на оставшихся наборах:
Строим таблицу :
Табл.9.2
(000) (001) (010) (011) (100) (101) (110) (111)
0
1
2
3
4
5
6
7
1
1
1
0
0
0
0
0
Из таблицы видно, что на наборах 3 и 4 функция принимает одинаковые значения. Следовательно,
.
5. Принадлежность функции к классу
.
Из таблицы видно, что 111 > 000 , но
. Следовательно,
.
Строим критериальную таблицу:
Табл.9.3
К0 К1 КЛ КС КМ
f1 f2 В таблице в каждом столбце стоят минусы. Следовательно, система булевых функций
является полной .
Найдем все возможные базисы. По критериальной таблице составим КНФ :
.
Приведем КНФ к ДНФ :
.
По полученной ДНФ выписываем искомые базисы:
.
Самостоятельно:
Минимизируйте при помощи карт Карно булевы функции:
f ( x1 x2 x3 )  x1 x2 x3Vx1 x2 x3Vx1 x 2 x3Vx1 x2 x3Vx1 x 2 x3 ;
f ( x1 x2 x3 )  x1 x2 x3Vx1 x2 x3Vx1 x 2 x3Vx1 x2 x3Vx1 x 2 x3 .
Символически логические элементы изображаются следующим образом:
48
Рис. 9.1
49
Решение логических задач с помощью теории булевых функций
Суть применения методов теории булевых функций к решению логических задач состоит в
том, что, имея конкретные условия логической задачи, стараются записать их в виде логической
функции. При этом учитывается, что каждое высказывание может быть либо истинным, либо
ложным и, значит, его можно обозначить логической переменной. В дальнейшем путем
равносильных преобразований упрощают полученную формулу, что, как правило, приводит к
ответу на все вопросы задачи, но иногда все-таки требуется применять логические рассуждения.
Покажем на ряде конкретных примеров, как использовать возможности теории булевых
функций для решения элементарных логических задач.
Пример 1. Пытаясь вспомнить победителей прошлогоднего турнира, 5 бывших зрителей
турнира заявили:
1) Антон был вторым, а Борис пятым.
2) Виктор был вторым, а Денис третьим.
3) Григорий был первым, а Борис третьим.
4) Антон был третьим, а Евгений шестым.
5) Виктор был третьим, а Евгений четвертым.
Впоследствии выяснилось, что каждый мог ошибиться, не более чем в одном
высказывании. Каково было истинное распределение мест в турнире?
Решение. Будем обозначать высказывания зрителей Хk , где Х – первая буква имени
участника турнира, а k – номер места, которое он занял в турнире. В высказываниях зрителей одно
высказывание может быть ложным, поэтому будут истинными дизъюнкции этих высказываний
А2
Д3 , Г1 Б3 , А3 Е6 , В3 Е4. Но тогда истинной будет конъюнкция : K= (А2
5, В2
5)(В2
Д3)(Г1
)(А
Е
)(В
Е
)
=
1.
3
3
6
3
4
Учитывая, что Хk Хп = 0 при k п и ХkYk
раскрытия скобок в К:
К = (А2Д3
5В2
5Д3)( Г1А3 Г1Е6
3Е6)(В3 Е4) =
= (А2Д3Г1Е6
5В2Г1А3
5В2Г1Е6
5Д3Г1Е6)(В3 Е4) = А3Б5В2Г1Е4 = 1
Полученное соотношение дает распределение первых 5 мест и автоматически получаем,
что Денис был шестым т. е. Д6 = 1.
Пример 2. По подозрению в совершении преступления задержали Брауна, Джонса и Смита.
Вот что они показали:
Браун: Я совершил это. Джонс не виноват.
Джонс: Браун не виноват. Преступление совершил Смит.
Смит: Я не виноват. Виновен Браун.
В процессе следствия выяснилось, что у одного из них оба утверждения ложны, у другого
одно ложно, одно истинно, а у третьего оба истинны, а также, что преступник только один.
Требуется определить имя преступника, кто из них говорил правду, а кто нет.
Решение. Обозначим буквами B, D, C высказывания: виноват Браун, виноват Джонс,
виноват Смит соответственно. Тогда утверждения, высказанные задержанными, можно записать в
виде конъюнкций
, из которых по условию задачи, две ложны, а одна истинна.
Истинной будет формула ,
но из этой формулы решение получится
только дополнительным рассуждением: пусть B = 1, тогда по условию C = 0 и D = 0. Но тогда из
трех конъюнкций, составляющих К две будут верны:
, а это противоречит условию.
Значит В=0. Видно, что C=1 удовлетворяет условию задачи, и это решение единственно, так как
если предположить, что D = 1, то это будет означать, что
, а значит, что либо В,
либо С равно 1, но это противоречит тому, что преступник только один.
Таким образом, преступник – Смит, оба его высказывания ложны, у Брауна одно
высказывание ложно, одно нет, а Джонс сказал правду.
50
Все эти рассуждения используются не только для решения логических задач (которые
действительно приходится решать следователям), но и для составления игровых программ
(компьютерная игра ШЕРЛОК, содержащая больше 60 тыс. логических задач, составлена с
использованием тех же самых конъюнкций, дизъюнкций и отрицаний).
Практическая работа№10
Тема: «Комбинаторный анализ. Перестановки и сочетания ”
Цель работы:
На конкретных примерах научиться находить число перестановок и сочетаний с повторениями.
Закрепить полученные знания по данной тематике при решении занимательных задач.
Основные понятия
Общим термином «соединения» мы будем называть три вида комбинаций, составляемых из
некоторого числа различных элементов, принадлежащих одному и тому же множеству (например,
буквы алфавита, книги в библиотеке, машины на стоянке и т.д.).
Перестановки. Возьмём n различных элементов: a1 , a2 , a3 , …, an . Будем переставлять их всеми
возможными способами, сохраняя их количество и меняя лишь порядок их расположения. Каждая
из полученных таким образом комбинаций называется перестановкой. Общее количество
перестановок из n элементов обозначается Pn . Это число равно произведению всех целых чисел
от 1 до n :
Символ n! ( называется факториал ) - сокращённая запись произведения: 1 · 2 · 3 · … · ( n – 1 ) ·
n.
П р и м е р . Найти число перестановок из трёх элементов: a, b, c.
Р е ш е н и е . В соответствии с приведенной формулой: P3 = 1 · 2 · 3 = 6.
Действительно, мы имеем 6 перестановок: abc, acb, bac, bca, cab, cba.
Размещения. Будем составлять группы из m различных элементов, взятых из множества,
состоящего из n элементов, располагая эти m взятых элементов в различном порядке.
Полученные комбинации называются размещениями из n элементов по m .
Их общее количество обозначается:
и равно произведению:
П р и м е р . Найти число размещений из четырёх элементов a, b, c, d по два.
Р е ш е н и е . В соответствии с формулой получим:
Вот эти размещения: ab, ba, ac, ca, ad, da, bc, cb, bd, db, cd, dc.
Сочетания. Будем составлять группы из m различных элементов, взятых из множества,
состоящего из n элементов, не принимая во внимание порядок расположения этих m элементов.
Тогда мы получим сочетания из n элементов по m .
Их общее количество обозначается
и может быть вычислено по формуле:
51
Из этой формулы ясно, что
Заметим, что можно составить только одно сочетание из n элементов по n , которое содержит
все n элементов. Формула числа сочетаний даёт это значение, если только принять, что 0! = 1,
что является определением 0! .
В соответствии с этим определением получим:
Общее число сочетаний можно вычислить, пользуясь и другим выражением:
П р и м е р . Найти число сочетаний из пяти элементов: a, b, c, d, e по три.
Решение:
Эти сочетания: abc, abd, abe, acd, ace, ade, bcd, bce, bde, cde.
Бином Ньютона. Это формула, представляющая выражение ( a + b )
целом n в виде многочлена:
n
при положительном
Заметим, что сумма показателей степеней для a и b постоянна и равна n.
Пример 1.
( См. формулу суммы кубов двух чисел ).
Числа
называются биномиальными коэффициентами.
Их можно вычислить, применяя только сложение, если пользоваться следующей схемой. В
верхней строке пишем две единицы. Все последующие строки начинаются и заканчиваются
единицей. Промежуточные числа в этих строках получаются суммированием соседних чисел из
предыдущей строки. Эта схема называется треугольником Паскаля:
52
Рис. 10.1
Первая строка в этой таблице содержит биномиальные коэффициенты для n = 1; вторая - для n =
2; третья - для n = 3 и т.д. Поэтому, если необходимо, например, разложить выражение:
( a + b )7 ,
мы можем получить результат моментально, используя таблицу:
Треугольник Паскаля
(n-я строка состоит из чисел
).
Свойства биномиальных коэффициентов.
1. Сумма коэффициентов разложения ( a + b ) n равна 2 n .
Для доказательства достаточно положить a = b = 1. Тогда в правой части разложения бинома
Ньютона мы будем иметь сумму биномиальных коэффициентов, а слева:
2. Коэффициенты членов, равноудалённых от концов разложения, равны.
Это свойство следует из соотношения:
3. Сумма коэффициентов чётных членов разложения равна сумме коэффициентов нечётных
членов разложения; каждая из них равна
Для доказательства воспользуемся биномом:
Здесь чётные члены имеют знак «
+ » , а нечётные - « - ». Так как в результате разложения получается 0, то следовательно, суммы их
биномиальных коэффициентов
равны между собой, поэтому каждая из них равна:
что и требовалось доказать.
Пример.
53
Найти разложение:
Решение.
В данном примере:
,
и
, т.е. нужно взять четвертую строку треугольника (где
справа стоит
).
Выписываем разложение с неопределенными коэффициентами:
подставляем вместо
и
, получаем
Теперь берем значения из четвертой строки треугольника и подставляем их поочереди вместо
коэффициентов:
Ответ:
Здесь прослеживается реккурентная связь между коэффициентами. Получаем, что если известны
коэффициенты для многочлена
находятся простым суммированием.
Получается, что элемент, стоящий в
-ой степени, тогда для многочлена
-ой строке (
), и в
-ой степени они
-ом столбце (
) определяется по формуле
т.е. это будет связь треугольника Паскаля с биномиальными коэффициентами.
Рассмотрим пример, про который говорилось в начале пункта: найти коэффициент, который стоит
перед
многочлена
?
Решение.
Используя бином Ньютона, получаем:
Степень, равная
-и, у
будет при
, получаем, что коэффициент при
равен
Пример Возвести в указанную степень: а)
; б)
Решение. а) Применим формулу бинома Ньютона (1.10):
54
б) применяем формулу (1.13):
Например, возведем трехчлен a  b  c в четвертую степень.
4! 3
4!
4! 3
4! 3
4!
4!
a b  a 3c 
b a
b c  c 3a  c 3 b 
3!
3!
3!
3!
3!
3!
4! 2 2
4! 2 2
4! 2 2 4! 2
4! 2
4! 2

ab 
ac 
bc 
a bc 
b ac  c ab 
2! 2!
2! 2!
2! 2!
2!
2!
2!
4
4
4
3
3
3
2 2
2 2
2 2
 a  b  c  4 a b  a c  b c  6 a b  a c  b c  4 b 3a  c 3a  c 3 b 
 a  b  c 4  a 4  b 4  c 4 








12 a bc  b ac  c ab .
2
3
2
2
При a b коэффициент равен
3  1  0 !  4 ! ,
3 ! 1! 0 !
3!
при
a 2 bc 
 2  1  1 !  4 !
2 ! 1! 1!
2 ! и т. д.
Решения задач по комбинаторике
I. На использование принципов умножения и сложения
1. Сколькими способами могут восемь человек стать в очередь к театральной кассе?
Решение задачи:
Существует 8 мест, которые должны занять 8 человек. На первое место может стать любой из 8
человек, т.е. способов занять первое место – 8. После того, как один человек стал на первое место,
осталось 7 мест и 7 человек, которые могут быть на них размещены, т.е. способов занять второе
место – семь. Аналогично для третьего, четвертого и т.д. места. Используя принцип умножения,
получаем произведение – 8  7  6  5  4  3  2 1 . Такое произведение обозначается как 8!
(читается 8 факториал) и называется перестановкой P8.
Ответ: P8 = 8!
2. Позывные радиостанции должны начинаться с буквы W. 1) Скольким радиостанциям можно
присвоить различные позывные, если позывные состоят из трех букв, причем эти буквы могут
повторяться? 2) Если позывные состоят из четырех букв, которые не повторяются?
Решение задачи:
В современном латинском алфавите 26 букв. На первом месте всегда должна стоять одна буква,
следовательно, существует только один способ занять первое место.
1) На оставшиеся два места может претендовать любая из 26-ти букв, т.к. буквы в позывных могут
повторяться. Используя принцип умножения, получаем произведение: 1  26 26 = 262.
2) На второе место можно поставить любую из 25 букв, т.к. в позывных буквы не должны
повторяться. На третье место – 24 буквы, на четвертое место – 23 буквы. Используя принцип
умножения, получаем произведение: 1  25  24  23 .
Ответ: 1) 262; 2) 25  24  23 .
3. В автомашине 7 мест. Сколькими способами семь человек могут усесться в эту машину, если
занять место водителя могут только трое из них?
Решение задачи:
Действие, которое должно быть выполнено особым способом, необходимо выполнять первым.
Итак, на место водителя можно посадить только одного из трех человек (умеющего водить
машину), т.е. существуют 3 способа занять первое место. Второе место может занять любой из 6
человек, оставшихся после того, как место водителя будет занято. И т.д. Используя принцип
умножения, получаем произведение: 3  6  5  4  3  2 1 = 3  6! = 3  P6.
Ответ: 3  P6 = 3  6!.
4. Алфавит некоторого языка содержит 30 букв. Сколько существует шестибуквенных слов
(цепочка букв от пробела до пробела), составленных из букв этого алфавита, если:
55
1)
буквы в словах не повторяются?
2)
буквы в словах могут повторяться?
Решение задачи:
Существует шесть мест, на которые нужно разместить 30 букв.
1. Буквы не должны повторяться. Используя принцип умножения, получаем произведение:
30  29  28  27  26  25 . Такое произведение достаточно сложно использовать в дальнейшем, и
информация задачи представлена в ней в скрытой форме. В комбинаторике используют для 1   24! 
 
таких произведений формулу размещений. Чтобы получить формулу размещений, умножим
 24! 
это произведение на единицу, которую представим следующим образом:
30  29  28  27  26  25  1
=
30  29  28  27  26  25 
24!
24!
=
30  29  28  27  26  25  24!
24!
=
30! =
30!
24!
(30  6)!
=
6
А 30
-
формула для размещений.
2. Буквы повторяются. Используя принцип умножения, получаем: 30  30  30  30  30  30 = 306 =
6
à 30
– формула для размещений с повторениями.
6
6
Ответ: 1) А 30
; 2) Ã 30
.
5. Из цифр 1, 2, 3, 4, 5 составляются всевозможные числа, каждое из которых содержит не менее
трех цифр. Сколько таких чисел можно составить, если повторения цифр в числах запрещены?
Решение задачи:
Необходимо посчитать, сколько существует трехзначных, четырехзначных и пятизначных чисел,
составленных из этих пяти цифр. Трехзначных чисел - 5  4  3 = А 35 , четырехзначных – 5  4  3  2 =
А 54 , пятизначных – 5  4  3  2  1 = А 55 . Используем принцип сложения: А 35 + А 54 + А 55 = 60 + 120 +
120 = 300.
Ответ: 300.
II. На использование формул для перестановок и размещений
1. Сколько слов можно образовать из букв слова фрагмент, если слова должны состоять:
(а) из восьми букв, (б) из семи букв,
(в) из трех букв?
Решение задачи:
В слове фрагмент 8 букв алфавита.
8!
8! 8!
(а) Всевозможные перестановки 8 букв по восьми местам: А 88 =
   8! =P8.
(8  8)! 0! 1
7
(б) Размещения 8 букв по 7 местам: А 8 .
(в) Размещения 8 букв по 3 местам: А 83 .
Ответ: P8, А 87 , А 83 .
2. Сколько существует различных автомобильных номеров, которые состоят из пяти цифр, а)
если первая из них не равна нулю; б) если номер состоит из одной буквы латинского алфавита, за
которой следуют четыре цифры, отличные от нуля?
Решение задачи:
а) Всего существует 10 цифр. На первом месте не может быть цифры 0, поэтому способов
поставить цифру на первое место существует 9. На втором месте может стоять любая из 10-ти
цифр (цифры могут повторяться), т.е. способов поставить цифру на второе место существует 10, и
4
т.д. Используя принцип умножения, получаем: 9 10  10  10  10 = 9  104 =9  Ã 10
.
б) На первом месте может стоять любая из 26 букв. На остальных местах - любые из девяти цифр,
причем они могут повторяться. Используя принцип умножения, получаем: 26  9  9  9  9=26  Ã 94 .

4
Ответ: 9  Ã 10
, 26  Ã 94 .
3. Сколькими способами можно расставить на полке семь книг, если (а) две определенные книги
должны всегда стоять рядом,
(б) эти две книги не должны стоять рядом?
Решение задачи:
(а) Книги, которые должны стоять рядом, считаем за одну книгу. Тогда нужно расставить 6 книг
по шести местам. Применяя формулу перестановок, получаем: P6 = 6!. Мы учли перестановки
шести книг, не учитывая порядок внутри тех книг, которые мы посчитали за одну. А так как две
56
книги по двум местам можно разместить только двумя способами (P2), то получаем окончательно
следующее произведение: P2  P6 =2  6! = 1440.
(б) Способов переставить 7 книг существует P7= 7!. Из них - 2  6! способов поставить
определенные книги вместе. Следовательно, способов поставить книги так, чтобы 2 заданные
книги не стояли вместе существует: 7! - 2  6!.
Ответ: 1440; . 7! - 2  6!
III. На использование формул для сочетаний
1. Сколькими способами из восьми человек можно избрать комиссию, состоящую из пяти
членов?
Решение задачи:
Для решения этой задачи необходимо использовать формулу для сочетания элементов, т.к. здесь
не имеет значения порядок элементов в выборке. Запишем формулу для сочетаний и произведем
вычисления:
8!
8!
8  7  6  5! 8  7  6
С 85 =



 8  7  56 .
(8  5)!5! 3!5!
3!5!
1 2  3
Ответ: 56.
2. Компания из двадцати мужчин разделяется на три группы, в первую из которых входят три
человека, во вторую — пять и в третью — двенадцать. Сколькими способами они могут это
сделать? (Ответ записать в виде произведения сомножителей, не вычисляя его.)
Решение задачи:
Из 20-ти элементов необходимо сделать три выборки, причем порядок внутри выборок значения
не имеет. Поэтому используем формулу для сочетаний. Чтобы выбрать из 20-ти элементов 3,
5
существует С 320 способов. Остается 17 элементов, из которых выбирается 5 элементов - С 17
способами. Остается 12 элементов, из которых выбирается 12 элементов. Это можно сделать С 12
12 =
12
3
5
1, т.е. одним способом. Используя принцип произведения, получаем: С 20  С 17  С 12 .
5
 С 12
Ответ: С 320  С 17
12 .
3. Сколькими способами можно отобрать несколько фруктов из семи яблок, четырех лимонов и
девяти апельсинов? (Мы считаем, что фрукты одного вида неразличимы.)
Решение задачи:
Т.к. фрукты одного вида неразличимы, то существует один способ взять одно яблоко, один способ
взять 2 яблока, один способ взять три яблока и т.д., т.е. всего семь способов выбрать несколько
яблок (несколько – это не менее одного). Необходимо также прибавить один способ не взять ни
одного яблока. Следовательно, существует 8 способов взять яблоки. Аналогично существует 5
способов выбрать лимоны и 10 способов выбрать апельсины. Следуя принципу умножения,
получим все способы отбора фруктов: 7  5  10. Но среди этих способов существует один способ,
когда не выбирается ни один фрукт. Следовательно, решением данной задачи будет следующее
выражение: 7  5  10 – 1 = 349.
Ответ: 349.
IV. На использование формул для перестановок и сочетаний
1. Сколько четырехбуквенных слов можно образовать из букв слова сапфир? 2) Сколько среди
них таких, которые не содержат буквы р? 3) Сколько таких, которые начинаются с буквы с и
оканчиваются буквой р?
Решение задачи:
1. Из шести букв составляются четырехбуквенные слова, причем порядок букв важен для
образования новых слов. Поэтому используется формула для размещений: А
6!
6! 6  5  4  3  2!
4
 
 6  5  4  3  360 .
6
(6  4)! 2!
2!
2. Необходимо исключить букву р из рассмотрения. Количество слов, не содержащих эту букву:
5!
5!
А 54 
  120 .
(5  4)! 1!
57
3. На первое место поставить букву с можно только одним способом. На последнее место
поставить букву р можно тоже только одним способом. Остаются 4 буквы, которые необходимо
4!
4! 4  3  2!
разместить по двум местам: А 24 
 
 12 .
(4  2)! 2!
2!
Ответ: 360, 120, 12.
2. Сколько пятибуквенных слов, каждое из которых состоит из трех согласных и двух гласных,
можно. образовать из букв слова уравнение?
Решение задачи:
В слове уравнение 3 согласных и 4 гласных буквы русского алфавита. Чтобы посчитать
количество требуемых пятибуквенных слов, необходимо посчитать количество сочетаний 3
согласных из 3-х заданных и двух гласных из четырех заданных: С 33 и С 24 . После того, как 5 букв
выбраны, необходимо посчитать все возможные перестановки этих букв: С 33  С 24  P5.
Ответ: С 33  С 24  P5.
V. На использование формул для перестановок и сочетаний с повторениям
1. Сколько различных перестановок можно образовать изо всех букв слова перестановка?
Сколько из них начинается с буквы п и оканчивается буквой а?
Решение задачи:
В слове перестановка 12 букв, из них повторяются 2 буквы е и две буквы а. Число перестановок
из 12 элементов вычисляется с помощью формулы P12. Но среди этих перестановок будут
повторяющиеся, в которых буквы е или а меняются местами. Чтобы не считать такие
~
P212, 2
перестановки, используется формула для перестановок с повторениями:
=
12!
12  11!

 3  11!.
2!2!
4
Чтобы посчитать количество перестановок, начинающихся на букву п и оканчивающихся на букву
а, необходимо исключить эти элементы и места, на которых они стоят из рассмотрения. Остается
10 букв и десять мест, причем остается только одна повторяющаяся буква е. Применяем формулу
для перестановок с повторениями:
~
10! 10  9!
P210 =

 5  9! .
2!
2
Ответ: 311! , 5 9! .
Самостоятельно.
1  x 
Пример
1.
Разложить
бином
по
степеням
x.
Применяем
формулу
бинома
Ньютона:
1  x 6  1 C61x  C62 x 2  C63 x3  C64 x 4  C65 x5  x6 .
Значения биномиальных коэффициентов находим последовательно по формуле
6
Cnk  Cnk 1  Cnk11 .
C63
 C52
 C53


C41
 C42

C42
 C43
  4  2
C31
 C32
  4  4  2  6  4  20
Например,
1  x 6  1  6x  15x 2  20x3  15x 4  6x5  x 6 .
Пример
2.
Доказать
формулу
Подставляем в формулу для разложения
требуемый результат.
Cn0  2  Cn1  22  Cn2 
1  x n
значение
 2n  Cnn  3n .
x  2.
Получаем
58
Практическая работа№11
Тема: «Элементы теории графов. ”
Основные понятия
Графом называется набор точек (эти точки называются вершинами), некоторые из
которых объявляются смежными (или соседними). Считается, что смежные вершины
соединены между собой ребрами (или дугами).
Таким образом, ребро определяется парой вершин. Два ребра, у которых есть общая
вершина, также называются смежными (или соседними).
Граф называется ориентированным (или орграфом), если некоторые ребра имеют
направление. Это означает, что в орграфе некоторая вершина может быть соединена с другой
вершиной, а обратного соединения нет. Геометрически граф часто изображают точками
плоскости, причем соседние вершины соединены дугами (для орграфа некоторые дуги имеют
направление, что обычно отмечают стрелкой).
Помимо этого, в теории графов рассматриваются также мультиграфы – это такие графы, в
которых могут быть петли (т. е. некоторая вершина соединена сама с собой ребром) или
некоторые пары вершины могут быть соединены между собой несколькими ребрами.
Маршрут в графе – это последовательность соседних (смежных) вершин. Ясно, что можно
определить маршрут и как последовательность смежных ребер (в этом случае ребра приобретают
направление). Заметим, что в маршруте могут повторяться вершины, но не ребра. Маршрут
называется циклом, если в нем первая вершина совпадает с последней.
Путь в графе (иногда говорят простой путь) – это маршрут без повторения вершин (а
значит, и ребер).
Контур – это цикл без повторения вершин, за исключением первой вершины, совпадающей
с последней.
Последовательности вершин (рис. 1): 1–2–3–4–2–5 не простой путь, а маршрут;
последовательности 1–2–3–4–7–5 и 1–2–5 – простые пути; 1–2–3–4–2–5–6–1 –это цикл (но не
контур); 1–2–5–6–1 – это контур.
Если имеется некоторый маршрут из вершины t в вершину s, заданный в виде
последовательности ребер, которые в этом случае приобрели направление, и если в этот маршрут
входит ребро, соединяющее вершины (i, j), то это ребро по отношению к вершине i называют
иногда прямой дугой, а по отношению к вершине j – обратной дугой (или обратным ребром).
Граф называется связным, если любые две его вершины можно соединить маршрутом
(или путем). На рис. 1 изображен связный граф.
Ребро, при удалении которого граф перестает быть связным, иногда называют мостом или
перешейком.
Следующее определение имеет смысл только для графов или мультиграфов без петель (но
не для орграфов).
59
Степень вершины – это число ребер, входящих в эту вершину. Вершина называется
висячей, если ее степень равна единице.
Лемма 1. Если степень всех вершин в графе больше или равна двум, то граф обязательно
содержит контур.
Доказательство. Действительно, выйдя из некоторой вершины и войдя в другую, всегда
можно выйти из нее по другому ребру , так как степень вершины больше или равна двум. Выйти
из вершины по новому ребру невозможно только в том случае, если эта вершина уже встречалась,
а это означает, что можно выделить контур из вершин этого графа.
Деревья и их простейшие свойства
Деревом называется связный граф без контуров (а значит, и без циклов). Граф (несвязный),
состоящий из нескольких деревьев иногда называют лесом.
Напомним, что вершина в графе называется висячей, если ее степень равна единице. Дерево
должно обязательно иметь висячую вершину, так как если бы степень всех вершин в дереве была
бы больше или равна 2, то по самой первой лемме граф должен иметь цикл, что противоречит
определению дерева.
Докажем сейчас следующую достаточно важную теорему.
Теорема. Если граф G является деревом, то число его ребер (т) и число его вершин (п)
связаны соотношением т = п – 1.
Доказательство этой теоремы проведем по индукции по числу вершин. Если данный граф
содержит всего 2 вершины, то в нем только 1 ребро, и нужное соотношение выполнено. Пусть
наше утверждение выполнено для любого дерева, число вершин которого строго меньше п,
Докажем его для дерева G, содержащего п вершин. Возьмем висячую вершину дерева G и удалим
ее из графа (вместе с единственным ребром, выходящим из этой вершины). Тогда новый граф
также является деревом: новый граф не содержит контуров (циклов), он остается связным. (Если
бы новый граф оказался несвязным, то какие-то две вершины графа G были бы связаны между
собой через удаленную (висячую) вершину. В этом случае степень этой висячей вершины была бы
больше или равна 2, что невозможно). Таким образом, новый граф является деревом, и по
индукционному предположению для него число ребер меньше числа вершин на единицу. Так как
число вершин и число ребер нового графа отличается от числа вершин и ребер “старого” графа G
на единицу, то для графа G также выполнено то же самое соотношение. Таким образом, индукция
проведена, и теорема доказана.
На самом деле верно и обратное утверждение, которое является частью более общей
теоремы, отражающей простейшие свойства дерева.
Теорема. Следующие 4 условия равносильны:




граф G является деревом;
число ребер (т) и число вершин в графе (п) связаны соотношением т = п – 1;
любые две вершины в графе могут быть связаны (простым) путем, и этот путь единствен;
граф G связен и не содержит контуров.
Заметим, что генеалогическое дерево (в котором вершины графа – это некоторый человек и его
прямые предки, а смежные вершины – это люди, связанные родством: мать и ее ребенок или отец
и его ребенок) деревом в смысле теории графов не является (так как оно обязательно должно
содержать циклы: некоторые предки данного человека должны иметь общего предка).
60
Однако игры с полной информацией (т. е. игры, не имеющие вероятностного характера:
шахматы, шашки, уголки и т. д. ) могут быть изображены в виде дерева. Именно поэтому такого
типа игры допускают возможность применения компьютеров даже для решения теоретических
вопросов этих игр.
Эйлеровы и полуэйлеровы графы
Именно с задач, поставленных и решенных в этом разделе, началась теория графов.
Философ Иммануил Кант, гуляя по городу Кенигсбергу (сейчас этот город называется
Калининград), поставил задачу (1736), известную в математике как задача о семи кенигсбергских
мостах: можно ли пройти по всем этим мостам и при этом вернуться в исходную точку так, чтобы
по каждому мосту пройти только один раз. Наш петербургский знаменитый математик
швейцарского происхождения Леонард Эйлер блестяще решил эту задачу. На рис. 2 изображена
схема семи мостов Кенигсберга (заметим, что сейчас осталось только два из них), а также
мультиграф, соответствующий этой схеме (при построении графа считалось, что каждый берег
реки и острова – это вершины графа, а мосты – его ребра; видно, что в данном случае у нас
получился мультиграф без петель).
В соответствии с поставленной Кантом (и решенной Эйлером) задачей можно дать
следующие определения:
Граф (или мультиграф без петель) называется эйлеровым, если существует цикл без
повторения ребер (такой цикл называют эйлеровым), обходящий все вершины графа. Граф
называется полуэйлеровым, если существует маршрут без повторения ребер (эйлеров путь),
обходящий все ребра графа ровно один раз. На рис. 3 изображены: а – эйлеров граф, б –
полуэйлеров граф и в – граф, не являющийся ни эйлеровым, ни полуэйлеровым (люди старшего
поколения знают, что в школах раньше было много загадок типа “можно ли нарисовать данную
фигуру не отрывая ручку от бумаги”, что и соответствует эйлерову или полуэйлерову графу).
Теорема (Эйлер). Для того чтобы данный связный граф (не орграф, но, возможно,
мультиграф без петель) был эйлеровым, необходимо и достаточно, чтобы степени всех вершин
были четными.Данный связный граф будет полуэйлеровым тогда и только тогда, когда степени
двух вершин будут нечетными, а степени остальных вершин – четными.
Доказательство этой теоремы начнем с так называемой леммы о рукопожатиях. Название
этой леммы связано с тем, что эта лемма отвечает на следующий вопрос: У Вас собрались гости.
Некоторые из них здороваются друг с другом посредством рукопожатий. Какими свойствами
обладает число таких людей? Ответ дается следующей достаточно простой леммой.
61
Лемма о рукопожатиях. Число вершин в графе (или мультиграфе без петель), имеющих
нечетную степень, четно.
Доказательство леммы. Заметим, что сумма степеней всех вершин в графе (или
мультиграфе без петель) должна быть четной. Это следует из того, что если взять вершины,
вообще не связанные друг с другом, то сумма степеней этих вершин равна нулю. Прибавляя
любое ребро, которое связывает две вершины, увеличиваем сумму всех степеней на 2 единицы.
Таким образом, сумма всех степеней вершин четна. Удаляя из этой суммы степени четных
вершин, получим, что сумма степеней нечетных вершин, должна быть четной. Это значит, что
само число таких вершин должно быть четным. Лемма доказана.
С точки зрения задачи о рукопожатиях это означает, что число гостей, которые
поздоровались за руку нечетное число раз, должно быть четным.Перейдем к доказательству
теоремы Эйлера.
а) Пусть граф является эйлеровым. Тогда в нем имеется эйлеров цикл, который должен
прийти в вершину по одному ребру и покинуть его по другому, так как каждое ребро должно
использоваться только один раз (т. е. каждый “заход” в вершину и “выход” из нее дает 2 степени
вершины). Таким образом, сумма степеней всех вершин должна быть четной (и равна удвоенному
числу “заходов” в эту вершину при обходе эйлерова цикла).
б) Пусть в данном связном графе (или мультиграфе без петель) степень любой вершины
четна (т. е. степень больше или равна 2, так как нулевая степень приводит к несвязному графу).
Докажем, что в нем имеется эйлеров цикл. Доказательство проведем индукцией по числу вершин.
В случае, когда в связном графе всего 2 вершины и обе они имеют четную степень (в этом случае
имеем мультиграф, один из которых изображен на рис. 4), ясно, что в этом случае имеется эйлеров
цикл (при любой четной степени этих двух вершин).
Предположим, что наше утверждение верно для всех связных графов, число вершин в
которых строго меньше п, и докажем его для графа, имеющего п вершин.
Заметим, что по лемме 1 в этом графе есть контур (степень всех вершин больше или равна
2). Если этот контур содержит все ребра, то этот контур сам является эйлеровым циклом (а граф
эйлеровым). Удалим все эти ребра из графа и те вершины, которые после удаления ребер стали
иметь нулевую степень. Тогда получим новый граф (который может быть несвязным), но в этом
новом графе все вершины обязательно имеют четную степень (так как при удалении ребер
контура степень каждой вершины, входящей в этот контур, уменьшается на 2). Новый граф
распадается на “компоненты связности”, каждая из которых должна иметь общую вершину с
удаленным контуром (иначе первоначальный граф не был бы связным), степени всех вершин
каждой компоненты связности четны и число вершин в ней строго меньше п, т. е. по
индукционному предположению эта компонента имеет эйлеров цикл. Теперь можем построить
эйлеров цикл в данном графе следующим образом. Обходим последовательно ребра удаленного
контура. Если мы пришли в вершину, общую для контура и какой-то компоненты связности, то
обходим по эйлерову циклу эту компоненту, возвращаемся при этом в вершину контура и идем по
этому контуру дальше. Тем самым все ребра будут пройдены и каждое только один раз (все это
схематично изображено на рис. 5: сначала начинаем обходить контур АВСDEА. Пройдя ребро АВ,
62
проходим “верхний” граф, затем возвращаемся в т. В и далее идем по ребру АС, обходим
“правый” граф и т. д.). Утверждение Б доказано.
в) Пусть теперь граф полуэйлеров. Это значит, что он имеет эйлеров путь, начинающийся в
одной вершине и заканчивающийся в другой. Видно, что обе эти вершины должны иметь
нечетную степень, а степень остальных четная.
г) Обратно. Пусть в связном графе вершины к и р имеют нечетную степень, а остальные
вершины – четную. Тогда возможны 2 случая: эти вершины связаны ребром или не связаны. В
первом случае удалим это ребро, а во втором добавим. В обоих случаях степень всех вершин
станет четной. Заметим, что в случае удаления ребра, новый граф может стать несвязным и иметь
2 компоненты связности (в этом случае удаляемое ребро было мостом), каждая из которых или
весь новый граф имеет эйлеров цикл. Теперь если новый граф имеет эйлеров цикл, то начнем (и
закончим его) в вершине с нечетной степенью и далее добавим ребро или удалим его. В обоих
случаях получим эйлеров путь. Если новый граф имеет 2 компоненты связности, то, пройдя одну
из них по эйлерову циклу, начиная и заканчивая в вершине (которая в первоначальном графе
имела нечетную степень), затем добавим удаленное ребро (мост), пройдем его, попадем в другую
вершину, которая ранее имела нечетную степень, и пройдем вторую компоненту связности по
эйлерову циклу. Во всех разобранных случаях получим эйлеров путь, который начался в одной из
вершин с нечетной степенью и закончился в другой. Теорема доказана.
Заметим, что все 4 вершины мультиграфа (рис. 2), соответствующего мостам Кенигсберга,
имеют степень 3. Поэтому эйлеров цикл или путь невозможен.
Примечание. Если граф (или мультиграф без петель) содержит 2k вершин нечетной
степени, то его можно разбить на k полуэйлеровых графов (т. е. нарисовать k росчерками пера).
Доказательство аналогично доказательству теоремы Эйлера.
Имеется простой алгоритм (так называемый алгоритм Флери) для нахождения эйлерова
цикла (конечно, если этот цикл существует), который состоит в следующем: начинаем с любой
вершины и “стираем” пройденные ребра. При этом по мосту (перешейку) проходим только, если
нет других возможностей.
Очевидно, что для того чтобы построить эйлеров путь достаточно использовать алгоритм
Флери, который надо начать с вершины, имеющей нечетную степень.
Рассмотрим некоторые приложения теоремы Эйлера, которые в основном связаны с так
называемой задачей китайского почтальона.
Пусть имеется некоторый граф (связный), ребрам которого приписаны некоторые числа,
называемые весами ребер (часто, но не всегда!, в приложениях вес ребра – это его длина).
Требуется найти такой цикл, при котором каждое ребро проходится по крайней мере один раз и
суммарный вес всех ребер, вошедших в цикл, минимален. Заметим, что если граф является
эйлеровым, то любой эйлеров цикл решает поставленную задачу (для эйлерова графа веса роли не
играют).
Эта задача имеет много приложений, например, поливка улиц одной машиной (здесь ребра
графа – дороги, а перекрестки – вершины; веса – это длины дорог), а также сбор мусора, доставка
63
почты или даже наилучший маршрут для осмотра музея или уборка помещений и коридоров в
больших учреждениях.
Заметим, что имеется алгоритм решения задачи китайского почтальона, но он требует
достаточно длительного описания.
Кратко рассмотрим проблему, связанную с возможным обходом всех вершин в графе:
существует ли в данном (связном) графе цикл (или маршрут), обходящий каждую вершину (кроме
первой) только один раз. Если такой цикл (маршрут) существует (в этом случае такой цикл будет
контуром, а маршрут – путем), то граф называется гамильтоновым (полугамильтоновым), и
соответствующий цикл (путь) также называют гамильтоновым циклом (путем).
На рис. 6 изображены гамильтонов, полугамильтонов и не гамильтонов графы.
Несмотря на сходство постановки задач для гамильтоновых графов с эйлеровыми,
“хорошего” решения для гамильтоновых графов нет. Вообще, о гамильтоновых графах известно
очень мало. В основном – это теоремы типа “если в графе достаточное число ребер, то он
гамильтонов”. Ясно, что теоремы такого типа не могут дать критерия гамильтонова графа,
(рис. 6,а), поскольку в графах такого типа вершин может быть очень много, а ребер сравнительно
мало).
Приведем без доказательства самую известную теорему.
Теорема (Дирак, 1952). Если в связном графе с п вершинами (при n
) степени всех
вершин больше или равны п/2, то граф гамильтонов.
Пример.
По данному ориентированному графу составить структурную матрицу, а по ней (методами
булевой алгебры) найти все пути из вершины i в вершину j, а затем (отрицанием этих путей) найти
все сечения между двумя указанными вершинами. Пусть дан ориентированный граф (рис. 12) ,
причем ребра a,b,h являются ориентированными (их направление указано стрелками), а остальные
ребра не ориентированы. Требуется методами булевой алгебры найти пути и сечения между
вершинами 2 и 4.
64
Составляем структурную матрицу S, затем вычеркиваем из нее 4-ю строчку и 2-й столбец
(тем самым получаем минор М(4,2)):
.
Раскрытие определителей производится по известному правилу: определитель равен сумме
(в данном случае дизъюнкции) произведений элементов, умноженных на свои алгебраические
дополнения (в данном случае просто миноры). При этом для определителей 3-го порядка можно
пользоваться и правилом треугольника.
Тогда получаем
Искомые пути, расположенные в порядке прохождения ребер:
П 24 = d
hf
ce
hgbe.
Сечения же получатся отрицанием этих путей. Применяя правила де Моргана (заменяя
конъюнкцию на дизъюнкцию и наоборот), затем раскрывая скобки, получаем: (знаки отрицания
опущены во всех равенствах, кроме 1-го):
=
S24= d(h
f)(e
ch
cg
cb) = d(he
S24 = d(he
ch
S24=dhe dch
ch
cgh
fe f cg
dfе
dfcg
f
e)
сbh fe f ch fcg
fcb),
fcb),
dfcb.
Пример.
Требуется, расставляя пометки в графе с заданным потоком с помощью алгоритма,
описанного в теореме Форда – Фалкерсона, найти максимальный поток между вершиной с
номером 1 и вершиной с максимальным номером. При этом если улучшенный поток окажется
максимальным, то нужно указать то минимальное сечение, которому равен наш поток (если же
улучшенный поток не окажется максимальным, то нужно снова его улучшать до тех пор, пока он
не окажется максимальным). На рис. 13а изображен граф с данными пропускными способностями
65
ребер, при этом вершина номер 1 является “источником”, а вершина 6 – стоком. На рис. 13б
изображен тот же граф, но на ребрах его задан поток, удовлетворяющий свойствам 1–4, который
надо либо увеличить, либо доказать, что он является максимальным.
После этого подробно объясняем, как расставляются пометки в этом графе, и результат
этого показываем на рис. 14. Для нового потока (рис. 14) снова расставляем пометки и
убеждаемся, что этот поток является максимальным (рис. 15). Здесь же находим минимальное
сечение, которому равен поток.
Начинаем расставлять пометки во втором графе (там дан поток). 1-я вершина (источник)
всегда имеет пометку
(это означает, что второе число как угодно большое). Далее вторую
вершину пометить пока нельзя, зато можно пометить вершину 4 и ее пометка будет (+1,25). Это
означает, что дуга (1,4) прямая, ненасыщенная и по ней можно “перевезти” дополнительно 25
единиц “груза”. Далее вершину 5 пометить пока нельзя, но теперь можно пометить вершину 2 и ее
пометка будет (–4,20).
Это означает, что дуга (4,2) обратная, и, учитывая возможный “разворот” ее, по ней можно
дополнительно “перевезти” 20 единиц “груза”. Так как 20 меньше 25, получаем данную пометку.
Теперь можно пометить вершину 3 пометкой (+2,15) и, вершину 5, пометка которой будет (–3,15).
(Заметим, что по дуге (5,3) с учетом разворота можно дополнительно “перевезти” 25 единиц груза,
но так как для вершины 3 второе число было равно 15, то любое следующее число не может быть
его больше). Только после этого можем пометить вершину 6 (сток), пометка которой будет
(+5,15). Таким образом, наш поток можно увеличить на 15 единиц, прибавляя эти 15 единиц к
прямым дугам и вычитая из обратных с учетом возможного “разворота” обратных дуг. Результат
всех этих действий изображен на рис. 14.
Таким образом, получили новый поток, изображенный на рис. 15.
После этого для нового потока (рис. 15), снова расставляем пометки, которые также
изображены на рис. 15. Мы видим, что для этого потока (кроме источника) можно пометить
только 2 вершины: вершину 4 (ее пометка будет (+1,10)) и (после этого) вершину 2, пометка
которой будет (+4,5). Больше ничего пометить нельзя, так как из множества помеченных вершин
66
(Y) в множество непомеченных вершин (Z) идут только прямые, насыщенные дуги (дуги (2–3) и
(4–5)). Эти две дуги образуют минимальное сечение, величина которого равна 30 условных
единиц, и эта же величина равна величине потока. Заметим, что величина потока также равна
“количеству груза”, вывозимого из источника, и равна количеству груза, ввозимого в сток. Таким
образом, поток на рис. 15 является максимальным, а дуги (2–3) и (4–5) образуют минимальное
сечение, которому равен наш поток.
Самостоятельно.
В задачах 51–60 требуется составить структурную матрицу для данного орграфа (или
графа) и, методами булевой алгебры, найти все пути Pij из вершины i в вершину j, затем найти все
сечения Sij между этими вершинами. В данном задании (чтобы исключить возможные неясности
графического рисунка) указываются все ориентированные ребра, причем запись (2–4) означает,
что 2 вершина связана с 4-й, а обратной связи нет. Напомним, что для нахождения путей из
вершины i в вершину j нужно раскрывать минор структурной матрицы Мji (вычеркивать из
структурной матрицы строчку с номером j и столбец с номером i). Сечения же находятся
отрицанием путей (конъюнкция меняется на дизъюнкцию и наоборот).52. Дан орграф. Имеется 2
ориентированных ребра: (2–3) и (2–4); i=4, j=6.
51. Дан орграф. Имеется 2 ориентированных ребра: (2–5) и (3–4); i=3, j=1.
Рис. 16
52. Дан орграф. Имеется 2 ориентированных ребра: (2–3) и (2–4); i=4, j=6.
Рис. 17
53. Дан орграф. Имеется 1 ориентированное ребро: (4–5); i=3, j=4.
Рис. 18
67
54. Дан орграф. Имеется 2 ориентированных ребра: (6–2) и (5–4); i=3, j=5.
Рис. 19
55. Дан орграф. Имеется 4 ориентированных ребра: (3–2), (3–4),
(2–5) и (1–6); i=3,j=1.
Рис. 20
56. Дан орграф. Имеется 4 ориентированных ребра: (2–3), (3–5),
(5–4) и (4–6); i=3, j=2.
Рис. 21
57. Дан орграф. Имеется 3 ориентированных ребра: (2–1), (2–3) и (4–5); i=2, j=4.
68
Рис. 22
58. Дан орграф. Имеется 2 ориентированных ребра: (2–1) и (5–3); i=3, j=1.
Рис. 23
59. Дан орграф. Имеется 2 ориентированных ребра: (2–3) и (5–2); i=4, j=6.
Рис. 24
60. Дан орграф. Имеется 3 ориентированных ребра: (2–1), (4–3), (3–5); i=2, j=4
Рис. 25
Контрольные вопросы и методические рекомендации
1. Что называется графом? Что называется ориентированным графом? Приведите примеры.
2. Что такое степень вершины?
3. Перечислите основные понятия, связанные с неориентированными графами.
69
4. Перечислите основные понятия, связанные с ориентированными графами.
5. Перечислите способы задания графов.
6. В чем состоит аналитический способ задания графа?
7. В чем состоит геометрический способ задания графа?
8. Достоинства матричного представления графовой модели.
9. Привести граф, обозначив вершины и ребра и построить матрицу смежности.
10. Какая матрица называется матрицей инцидентности графа?
11. Маршрут, цикл и цепь графа. Покажите на примерах.
12. Изобразите графически:
1) неориентированное и ориентированное ребра;
2) неориентированный граф G(V, E), заданный множеством V = {v0, v1, v2, v3, v4, v5} и
соответствием E(v0) = {v1, v2}, E(v1) = {v0, v2, v4}, E(v2) = {v0, v3, v5}, E(v3) = {v0, v1, v5}, E(v4) = {v3},
E(v5) = {v2}.
3) Плоский граф.
4) Полный неориентированный граф на 3-х, 4-х и 5-ти вершинах.
5) Неполный ориентированный граф на пяти вершинах.
6) Неориентированный мультиграф.
nn  1
13. Докажите, что в полном графе с n вершинами
ребер.
2
14. Сформулируйте понятие связности графа.
15. Какие два графа называются изоморфными?
16. Перечислите операции над графами.
17. Какой граф называется гамильтоновым?
18. Дайте определение эйлерова графа.
19. Дана матрица
10 2 0 0
20 0 1 0
31 0 0 1
43 1 0 0
1 2 3 4
Построить ориентированный граф, для которого данная матрица является матрицей смежности.
Найти матрицу инцидентности.
20. Что включает в себя понятие «конечный автомат»?
21. Какие основные термины связаны с введением понятия конечного автомата?
22. Дайте определение конечного автомата.
23. Укажите способы задания конечного автомата.
24. Изложите алгоритм задания конечного автомат системой булевых функций.
25. Приведите примеры конечных автоматов.
26. Какие уравнения называются каноническими уравнениями конечного автомата?
27. Как построить каноническое уравнение конечного автомата?
28. Покажите, что машина Тьюринга со следующей программой команд:
q10  q20R;
q11  q01;
q20  q21;
q21  q21R;
выполняет функцию f(x) = x + 1.
29. Постройте машину Тьюринга, которая правильно вычисляет функцию О(х) = 0.
Решение:
q10  q20R;
q20  q30L;
q21  q21R;
q30  q00;
q31  q30L.
30. Какая функция называется вычислимой?
31. Характерные свойства алгоритмов. Привести пример алгоритма.
32. Какая функция может быть названа примитивно-рекурсивной, частично рекурсивной?
33. Дайте определение машины Тьюринга.
70
34. Что представляет собой алгоритмическая система Маркова?
35. Какие команды выполняются в алгоритмической системе Тьюринга?
Практическая работа№12
Тема: «Элементы теории алгоритмов. Алгоритмическая разрешимость, рекурсивные
функции. ”
Цель работы:
На конкретных примерах изучить рекурсивные функции. Закрепить полученные знания по данной
тематике при решении занимательных задач.
Основные понятия
1. Рекурсивные функции
а) Терминологическое введение
По сути один и тот же метод, применительно к различным областям носит различные названия –
это индукция, рекурсия и рекуррентные соотношения – различия касаются особенностей
использования.
Под индукцией понимается метод доказательства утверждений, который строится на базе
индукции при n=0,1, затем утверждение полагается правильным при n=n b и проводится
доказательство для n+1.
Под рекурсией понимается метод определения функции через её предыдущие и ранее
определенные значения, а так же способ организации вычислений, при котором функция вызывает
сама себя с другим аргументом.
Термин рекуррентные соотношения связан с американским научным стилем и определяет
математическое задание функции с помощью рекурсии.
Основной задачей исследования рекурсивно заданных функций является получение f(n) в явной
или как еще говорят «замкнутой» форме, т.е. в виде аналитически заданной функции. В связи с
этим рассмотрим ряд примеров:
б) Примеры рекурсивного задания функций
1.
f(0)=0
f(n)= f(n-1)+1
2.
f(0)=1
f(n)= n*f(n-1)
Последовательная подстановка дает – f(n)=1*2*3*…*n = n!
Для полноты сведений приведем формулу Стирлинга для приближенного вычисления факториала
для больших n:
3.
f(0)=1
f(1)=1
f(n)= f(n-1)+ f(n-2), n>=2
Эта рекурсивная функция определяет числа Фибоначчи: 1 1 2 3 5 8 13, которые достаточно часто
возникают при анализе различных задач, в том числе и при анализе алгоритмов. Отметим, что
асимптотически
71
4.
f(0)=1
f(n)= f(n-1)+ f(n-2)+…+1 =
f(i)+1
Для получения функции в явном виде рассмотрим ее последовательные значения: f(0)=1, f(1)=2,
f(2)=4, f(3)=8, что позволяет предположить, что f(n)=
индукции.
5.
, точное доказательство выполняется по
f(0)=1
f(n)= 2*f(n-1)
Мы имеем дело с примером того, что одна и та же функция может иметь различные рекурсивные
определения – f(n)=
6.
, как и в примере 4, что проверяется элементарной подстановкой.
f(0)=1
f(1)=2
f(n)= f(n-1)*f(n-2)
В этом случае мы можем получить решение в замкнутой форме, сопоставив значениям функции
соответствующие степени двойки:
Обозначив через Fn - n-ое число Фибоначчи, имеем: f(n)=
.
2. Рекурсивная реализация алгоритмов
Большинство современных языков высокого уровня поддерживают механизм рекурсивного
вызова, когда функция, как элемент структуры языка программирования, возвращающая
вычисленное значение по своему имени, может вызывать сама себя с другим аргументом. Эта
возможность позволяет напрямую реализовывать вычисление рекурсивно определенных функций.
Отметим, что в силу тезиса Черча–Тьюринга аппарат рекурсивных функций Черча равномощен
машине Тьюринга, и, следовательно, любой рекурсивный алгоритм может быть реализован
итерационно.
Анализ трудоемкости рекурсивных реализаций алгоритмов, очевидно, связан как с
количеством операций, выполняемых при одном вызове функции, так и с количеством таких
вызовов. Графическое представление порождаемой данным алгоритмом цепочки рекурсивных
вызовов называется деревом рекурсивных вызовов. Более детальное рассмотрение приводит к
необходимости учета затрат как на организацию вызова функции и передачи параметров, так и на
возврат вычисленных значений и передачу управления в точку вызова.
Можно заметить, что некоторая ветвь дерева рекурсивных вызовов обрывается при достижении
такого значения передаваемого параметра, при котором функция может быть вычислена
непосредственно. Таким образом, рекурсия эквивалентна конструкции цикла, в котором каждый
проход есть выполнение рекурсивной функции с заданным параметром.
Рассмотрим пример для функции вычисления факториала (рис.12.1):
72
Цепочка
рекурсивных
возвратов
Цепочка
рекурсивных
вызовов
Рис.12.1 Дерево рекурсии при вычислении факториала – F(5)
Дерево рекурсивных вызовов может иметь и более сложную структуру, если на каждом
вызове порождается несколько обращений – фрагмент дерева рекурсий для чисел Фибоначчи
представлен на рис 2:
Рис.12.2 Фрагмент дерева рекурсии при вычислении чисел Фибоначчи – F(5)
3. Анализ трудоемкости механизма вызова процедуры
Механизм вызова функции или процедуры в языке высокого уровня существенно зависит от
архитектуры компьютера и операционной системы. В рамках IBM PC совместимых компьютеров
этот механизм реализован через программный стек. Как передаваемые в процедуру или функцию
фактические параметры, так и возвращаемые из них значения помещаются в программный стек
специальными командами процессора. Дополнительно сохраняются зна-чения необходимых
73
регистров и адрес возврата в вызывающую процедуру. Схематично этот механизм иллюстрирован
на рис 3:
Рис.12.3 Механизм вызова процедуры с использованием программного стека
Для подсчета трудоемкости вызова будем считать операции помещения слова в стек и
выталкивания из стека элементарными операциями в формальной системе. Тогда при вызове
процедуры или функции в стек помещается адрес возврата, состояние необходимых регистров
процессора, адреса возвращаемых значений и передаваемые параметры. После этого выполняется
переход по адресу на вызываемую процедуру, которая извлекает переданные фактические
параметры, выполняет вычисления, помещает их по указанным в стеке адресам, и при завершении
работы восстанавливает регистры, выталкивает из стека адрес возврата и осуществляет переход по
этому адресу.
Обозначив через:
m - количество передаваемых фактических параметров,
k - количество возвращаемых процедурой значений,
r - количество сохраняемых в стеке регистров,
имеем:
fвызова = m+k+r+1+m+k+r+1 = 2*(m+k+r+1) элементарных операций на один вызов и возврат.
Анализ трудоемкости рекурсивных алгоритмов в части трудоемкости самого рекурсивного вызова
можно выполнять разными способами в зависимости от того, как формируется итоговая сумма
элементарных операций – рассмотрением в отдельности цепочки рекурсивных вызовов и
возвратов, или совокупно по вершинам дерева рекурсивных вызовов.
4. Анализ трудоемкости алгоритма вычисления факториала
Для рассмотренного выше рекурсивного алгоритма вычисления факториала количество вершин
рекурсивного дерева равно, очевидно, n, при этом передается и возвращается по одному значению
74
(m=1, k=1), в предположении о сохранении четырех регистров – r=4, а на последнем рекурсивном
вызове значение функции вычисляется непосредственно – в итоге:
fa(n)=n*2*(1+1+4+1)+(n-1)*(1+3)+1*2=18*n - 2
Отметим, что n – параметр алгоритма, а не количество слов на входе.
Самостоятельно.
Упражнения
1. Напишите рекурсивную функцию summ(s,i, j), проверяющую, является ли симметричной часть
строки s, начинающаяся i-м и заканчивающаяся i-м ее элементами.
2. Напишите рекурсивную функцию, "переворачивающую" заданное натуральное число.
3. Напишите рекурсивную функцию, которая по последовательности литер, представляющих
двоичное число, определяет соответствующее десятичное число.
4. Напишите рекурсивную функцию, вычисляющую n!!.
5. Напишите рекурсивную функцию, определяющую количество единиц в двоичном
представлении натурального числа.
6. Напишите рекурсивную функцию, которая по заданным натуральным числам m и п выводит все
различные представления числа « в виде суммы m натуральных слагаемых. Представления,
различающиеся лишь порядком слагаемых, считаются одинаковыми.
7. Напишите рекурсивную функцию, которая формирует в обратном порядке текст, задаваемый
пользователем в текстовом поле формы.
8. Напишите рекурсивную функцию для вычисления биномиального коэффициента C.
9. Напишите рекурсивную функцию, проверяющую, является ли последовательность символов
идентификатором. Напомним, что идентификатором будем считать последовательность букв
и/или цифр, начинающуюся с буквы.
10. В последовательности символов могут встречаться только цифры и знаки + (плюс), при этом
последовательность представляет собой формулу сложения однозначных чисел. Напишите
рекурсивную функцию, определяющую значение формулы.
11. В последовательности символов могут встречаться только цифры и знаки + (плюс) или (минус), при этом последовательность представляет собой формулу арифметической суммы
однозначных чисел. Напишите рекурсивную функцию, определяющую значение формулы.
Дополнительные задачи
Элементы такого рода задач будут в тестах, предназначенных для сдачи текущего
контроля знаний.
В заданиях 1–10 требуется привести данные выражения к ДНФ, пользуясь правилами де
Моргана. Если возможно, сократить ДНФ, используя свойство поглощения и правило Блейка:
75
1.
В заданиях 11–20 требуется: в задаче а) написать по данной ДНФ полином Жегалкина, от ДНФ
перейти к КНФ, а затем перейти к СКНФ; в задаче б) перейти от данной КНФ к ДНФ, а затем
перейти к СДНФ.
В заданиях 21–30 требуется: составить таблицу истинности данной функции; написать для
неё СДНФ и СКНФ (если возможно); найти по таблице истинности полином Жегалкина для
данной функции; составить карту Карно для данной функции и найти сокращенную ДНФ.
76
В обоих (а, б) заданиях 31–40 с помощью карт Карно по данной таблице истинности для
функции 4 переменных найти её сокращённую ДНФ.
31а.
31б.
x3 , x4
x3 , x4
х1 , х2 0
0
0
1
1
1
1
0
х1 , х2 0
0
0
1
1
1
1
0
00
1
0
0
1
000
0
1
0
0
1
01
1
0
1
1
01
1
0
0
1
11
1
1
0
1
11
1
0
0
1
10
1
1
1
1
10
0
1
1
0
х1 , х2 0
0
0
1
1
1
1
0
32а.
32б.
x3 , x4
x3 , x4
х1 , х2 0
0
0
1
1
1
1
0
00
1
0
0
1
00
0
1
1
0
01
1
0
0
1
01
0
1
1
0
11
0
1
1
0
11
0
0
0
0
10
0
0
0
1
10
1
0
0
1
х1 , х2 0
0
0
1
1
1
1
0
33а.
33б.
x3 , x4
x3 , x4
х1 , х2 0
0
0
1
1
1
1
0
00
1
1
1
0
00
0
0
1
0
01
1
1
0
0
01
0
1
1
0
11
1
1
0
0
11
1
0
0
0
10
1
0
0
1
10
1
0
0
1
х1 , х2 0
0
0
1
1
1
1
0
35а.
35б.
x3 , x4
x3 , x4
х1 , х2 0
0
0
1
1
1
1
0
00
0
0
1
0
00
1
0
1
1
01
1
0
0
1
01
0
1
0
0
11
0
0
1
0
11
0
0
1
0
77
10
1
0
0
1
10
1
0
0
1
х1 , х2 0
0
0
1
1
1
1
0
34а.
34б.
x3 , x4
x3 , x4
х1 , х2 0
0
0
1
1
1
1
0
00
1
0
0
1
00
1
0
1
1
01
1
0
0
1
01
1
0
0
1
11
0
1
1
0
11
1
0
0
1
10
0
1
1
1
10
0
0
0
1
х1 , х2 0
0
0
1
1
1
1
0
36а.
36б.
x3 , x4
x3 , x4
х1 , х2 0
0
0
1
1
1
1
0
00
0
1
1
1
00
1
1
0
1
01
1
1
0
1
01
1
0
0
1
11
1
1
0
0
11
0
1
0
1
10
0
0
1
0
10
1
0
0
1
х1 , х2 0
0
0
1
1
1
1
0
37а.
37б.
x3 , x4
x3 , x4
х1 , х2 0
0
0
1
1
1
1
0
00
0
1
1
0
00
1
0
1
1
01
0
0
1
1
01
0
0
1
1
11
0
0
0
1
11
1
0
1
0
10
1
0
0
0
10
0
0
1
0
х1 , х2 0
0
0
1
1
1
1
0
38а.
38б.
x3 , x4
x3 , x4
х1 , х2 0
0
0
1
1
1
1
0
00
1
1
1
0
00
1
0
0
0
01
1
1
0
0
01
1
0
1
0
11
1
1
1
1
11
1
1
0
1
10
1
1
1
0
10
1
1
1
1
78
39а.
39б.
x3 , x4
x3 , x4
х1 , х2 0
0
0
1
1
1
1
0
х1 , х2 0
0
0
1
1
1
1
0
00
1
0
0
0
00
1
1
0
1
01
1
0
1
1
01
1
0
0
1
11
1
0
1
1
11
0
1
1
0
10
0
1
1
0
10
1
0
0
1
х1 , х2 0
0
0
1
1
1
1
0
40а.
40б.
x3 , x4
x3 , x4
х1 , х2 0
0
0
1
1
1
1
0
00
1
1
1
1
00
1
1
0
1
01
0
1
1
0
01
1
1
0
0
11
0
0
0
0
11
1
1
1
0
10
1
0
1
1
10
1
0
0
1
В заданиях 41–50 составить таблицу Поста и найти базисы из следующих функций.
41. (x~
, (xy) + z, x ~
42. (x +
43. ( x
44. (x +
(
, x+ y + yx,
),
(x~ yz), x~ (y +
(y ~ z), x(x + y), (
z,
45. ((xy
(y
z, xy
46. (x
y
47. (
(yz), x
)).
) y,
x), (x | x) | (y | y ), x~ yz).
x, y + xz, x+ y, x ~ (yz)).
,
,
y,
x + (y
48. (x + yz, (00010111), x ~
49. (
( y ¯ x)).
, x ~ (yx), x + xy).
z), x | x, x ~ (y + x)).
,yx+
,
).
, x ~ (y+xz), (11010100), yx+ z, (xy) | x).
50. (x+ (y ~ x)
(xz), (00101011),
(y | z ), x+ y).
79
51. а) Упростить формулы (привести их к сокращенной ДНФ).
52. Проверить, что наборы следующих функций являются базисами и выразить через них
конъюнкцию, дизъюнкцию и отрицание: а) импликация и константа 0; б) импликация и сложение
по модулю 2; в) функция трех переменных, заданная таблицей истинности (при естественном
порядке наборов переменных: 10011110).
Следующие логические задачи требуется решить методами теории булевых функций:
53. Определите, кто из четырех студентов сдал экзамен, если известно:
а) если первый сдал, то и второй сдал;
б) если второй сдал, то третий сдал или первый не сдал;
в) если четвертый не сдал, то первый сдал, а третий не сдал;
г) если четвертый сдал, то и первый сдал.
54. Известно следующее: если Петя не видел Колю на улице, то либо Коля ходил в кино,
либо Петя сказал правду; если Коля не ходил в кино, то Петя не видел Колю на улице, и Коля
сказал правду; если Коля сказал правду, то либо он ходил в кино, либо Петя солгал. Выясните,
ходил ли Коля в кино.
55. В школе, перешедшей на самообслуживание, четырем старшеклассникам Андрееву,
Костину, Савельеву и Давыдову поручили убрать 7, 8, 9 и 10-й классы. При проверке выяснили,
что десятый класс убран плохо. Не ушедшие домой ученики сообщили о следующем:
а) Андреев: “Я убирал 9-й класс, а Савельев 7-й”;
б) Костин: “Я убирал 9-й класс, а Андреев 8-й”;
в) Савельев: “Я убирал 8-й класс, а Костин -10-й”.
Давыдов уже ушел домой. В дальнейшем выяснилось, что каждый ученик в одном из двух
высказываний говорил правду, а в другом – ложь. Какой класс убирал каждый ученик?
56. Пять школьников из пяти различных городов Брянской области прибыли в Брянск для
участия в областной олимпиаде по математике. На вопрос: “Откуда вы?” каждый дал ответ:
а) Иванов: “Я приехал из Клинцов, а Дмитриев – из Новозыбкова”;
б) Сидоров: “Я приехал из Клинцов, а Петров – из Трубчевска”;
в) Петров: “Я приехал из Клинцов, а Дмитриев из Дятькова”;
г) Дмитриев: “Я приехал из Новозыбкова, а Ефимов – из Жуковки”;
д) Ефимов: “Я приехал из Жуковки, а Иванов живет в Дятькове”.
Откуда приехал каждый из школьников, если одно его утверждение верно, а другое ложно?
57. На вопрос: кто из трех студентов изучал логику, получен верный ответ: “Если изучал
первый, то изучал и третий, но неверно, что если изучал второй, то изучал и третий”. Кто изучал
логику?
58. Однажды следователю пришлось допрашивать трех свидетелей: Клода, Жака и Дика.
Их показания противоречили друг другу, и каждый из них обвинял кого-то во лжи:
80
а) Клод утверждал, что Жак лжет;
б) Жак обвинял во лжи Дика;
в) Дик уговаривал следователя не верить ни Клоду, ни Жаку.
Но следователь быстро вывел их на чистую воду, не задав им ни одного вопроса. Кто из
свидетелей говорил правду?
59. Нарисовать функциональную схему для функции
(x¯ y) ~ ( xy | z).
60. Нарисовать РКС для ДНФ:
а также сократить её по правилу Блейка и нарисовать РКС для полученной сокращённой ДНФ.
61. Найти хроматическое число и реберно-хроматическое число для графов из заданий 61 и
70.
62. Выяснить являются ли графы из заданий 61и 70 эйлеровыми, полуэйлеровыми,
гамильтоновыми или полугамильтоновыми. (Объясните свой ответ) . Если ответ на какой-нибудь
из этих четырех вопросов является положительным, то укажите соответствующий путь.
63. Нарисовать все возможные деревья, содержащие 5 вершин (и значит 4 ребра).
64. Для графа на рис. 16 определите, является ли он эйлеровым, и если да, то найдите
эйлеров путь в соответствии с алгоритмом Флери.
Вопросы для самопроверки
1. Булевы функции. Таблицы истинности.
2. Конъюнкция, дизъюнкция и отрицание. Свойства. Правила поглощения, де Моргана и
Блейка.
3. ДНФ, КНФ, СДНФ, СКНФ. Представление булевой функции (по таблице истинности) в
виде СДНФ и СКНФ.
4. Сокращенная ДНФ. Нахождение сокращенной формулы с помощью правила Блейка и с
помощью карт Карно.
5. Полиномы Жегалкина и их нахождение.
6. Суперпозиция функций. Полные наборы функций и базисы. Теорема Поста и таблица
Поста.
7. Графы. Общие понятия. Ориентированные графы. Пути и сечения в графе.
8. Структурная матрица. Нахождение путей и сечений методами булевой алгебры.
9. Сети и потоки в сетях. Теорема Форда-Фалкерсона.
Список рекомендуемой литературы
1.
Кузнецов О.П., Адельсон-Бельский Г.М. Дискретная математика для инженера. –
М.: Наука, 2010.
2.
Ерусалимский, Яков Михайлович. Дискретная математика: теория, задачи,
приложения/Я. М. Ерусалимский. — 3-е изд. — М.: Вузовская книга, 2005.
3.
Гаврилов Гарий Петрович. Задачи и упражнения по курсу дискретной математики:
учебное пособие для вузов / Г. П. Гаврилов, А. А. Сапоженко. — 2-е изд., перераб. и доп. — М. :
Наука, 2008.
4.
Лавров Игорь Андреевич. Задачи по теории множеств, математической логике и
теории алгоритмов / И. А. Лавров, Л. Л. Максимова. — 5-е изд. — М.: Физматлит, 2006.
5.
Лихтарников, Л. М. Математическая логика: Курс лекций. Задачник-практикум и
решения / Л. М. Лихтарников, Т. Г. Сукачева. — СПб.: Лань, 2007.
6.
Харари Ф. Теория графов. М.: Мир, 2010.
81
Download