Упражнения - в г. Златоусте

advertisement
УДК 519.45(075.8)
П64
Одобрено
учебно-методической комиссией филиала ЮУрГУ в г. Златоусте
Рецензенты:
к.ф.-м.н. доц. Смирнов А.И., д. т. н. проф. Демиденко Н.Д.
Потапов, В.И.
П6
Элементы дискретной математики: конспект лекций / В.И. Потапов. –
4
Челябинск: Изд. ЮУрГУ, 2008. – 102 с.
В конспекте лекций излагается теория множеств, комбинаторики,
отношений, переключательных функций, теории графов в объеме,
предусмотренном
Госстандартом
специальностей,
связанных
с
программированием, вычислительной техникой. В конце каждой главы
приведены упражнения для закрепления теоретического материала.
Предназначен для студентов технических университетов, обучающихся по
направлению «Информатика и вычислительная техника».
УДК 519.45(075.8)
 Издательство ЮУрГУ, 2008
ВВЕДЕНИЕ
Дискретная математика или дискретный анализ – сравнительно новое
направление в математике, объединяющее отдельные её разделы, ранее
сформированные как самостоятельные теории. К ним относятся математическая
логика и теории множеств, графов, кодирования, автоматов.
Дискретной математикой называют совокупность математических
дисциплин, изучающих свойства абстрактных дискретных объектов, т.е. свойства
математических моделей объектов, процессов, зависимостей, существующих в
реальном мире, которыми оперируют в различных областях знаний. Таким
образом, дискретный анализ – самостоятельный раздел современной
математики, изучающий свойства различных структур, имеющих конечный
характер. Они могут возникать как в самой математике, так и в её приложениях. К
их числу принято относить объекты, имеющие прерывный (дискретный) характер
в отличие от объектов, изучаемых классической математикой и носящих
непрерывный характер.
Вообще говоря, деление математики на дискретную и классическую
достаточно условно. Например, аппарат теории множеств и теории графов
используется при изучении не только дискретных, но и непрерывных объектов. С
другой стороны, сама дискретная математика использует средства, разработанные
в классической математике. Однако характер объектов, исследуемых дискретной
математикой, настолько своеобразен, что методов классической математики не
всегда достаточно для их изучения. Поэтому те специфические методы, которые
применяются для очень широкого класса конечных дискретных объектов, и были
объединены в общее направление – дискретную математику.
XXI в. называют веком информатизации, когда основной объём информации
хранится в памяти ЭВМ. Любому человеку, стремящемуся ею воспользоваться,
необходимо освоить азы «безбумажной информатики». Применение ЭВМ для
комплексной автоматизации информационной деятельности принципиально
изменило характер взаимоотношений человека и машины. Если раньше
компьютер осваивали только те, кто непосредственно его обслуживал:
программисты, электронщики, операторы, то в XXI в. без машинной обработки
информации не обойдется ни одна отрасль деятельности.
В последнее время раздел математики, называемый «Дискретный анализ», всё
чаще вводится в программы подготовки не только математиков, инженеров,
программистов, но даже юристов. Интерес к этой дисциплине не случаен, так как
потребность в знаниях этой области математики объясняется широким кругом её
применения: электроника и информатика, вопросы оптимизации и принятия
решений.
Методы, разрабатываемые дискретной математикой, используются в
различных областях знаний. Так, теоретическая информатика (или
теоретическая кибернетика) использует математические методы для построения и
изучения моделей обработки, передачи и использования информации. Объекты её
3
изучения – дискретные множества. Теоретическая информатика является как
поставщиком задач, так и потребителем методов дискретной математики.
Теория автоматов разрабатывает методы, с помощью которых можно на
основе моделей логического типа изучать процессы, протекающие в самой
машине во время её работы. Для работы на компьютере информацию
представляют в дискретной форме, позволяющей переводить её в программы,
понятные ЭВМ.
Теория информации изучает вид тех форм, в которых информация
представляется в компьютере. Формализация любой информации, реально
существующей в живой и неживой природе, происходит через компьютерное
моделирование.
Системный анализ изучает структуру реальных объектов и дает способы их
формализованного описания. Общая теория систем как часть системного
анализа изучает различные по характеру системы с общих позиций.
Теория массового обслуживания изучает широкий класс моделей передачи и
переработки информации в системах массового обслуживания (СМО).
Имитационное моделирование – наука, в которой создаются и используются
специальные приемы воспроизведения процессов, протекающих в реальных
объектах, в тех моделях этих объектов, которые реализуются в вычислительных
машинах.
Теория принятия решений изучает общие схемы, используемые при выборе
решения из альтернативных возможностей (в условиях неопределенности).
Теория игр изучает модели, в которых выбор происходит в условиях
конфликта или противоборства.
Математическое программирование рассматривает проблемы принятия
оптимальных решений с помощью математического аппарата.
Искусственный интеллект – одно из молодых и перспективных направлений
информатики, появившееся во второй половине XX в. на базе вычислительной
техники, математической логики, программирования, психологии, лингвистики и
других отраслей знаний. Объектами его изучения являются межпредметные
процедуры (метапроцедуры), используемые при решении задач, традиционно
называемых интеллектуальными. Проникая в тайны творческой деятельности
людей, искусственный интеллект создает программные и программно-аппаратные
модели таких метапроцедур.
Информационные системы применяются для анализа и прогнозирования
потока информации, исследования способов её представления, хранения и
извлечения. Актуальным является также создание информационно-поисковых
систем хранения, обработки, передачи информации, в состав которых входят
информационные базы данных, терминалы, средства связи. Операционные
системы связаны с разработкой и производством компьютеров.
Для нас представляют интерес все эти направления современной
информатики. Теперь мы сможем осознать место дискретной математики в
системе знаний, необходимых для тех, кто связал свою жизнь с компьютером.
4
Понятия «множества», «отношения», «функции» и другие, близкие к ним,
составляют основной словарь дискретной математики. Рассматриваются
конечные множества, а тонкие и сложные вопросы, связанные с бесконечными
множествами, сознательно опущены.
Глава 1. МНОЖЕСТВА И ОТНОШЕНИЯ
1.1. Множества
Понятие множества принадлежит к числу фундаментальных неопределяемых
понятий. Можно сказать, что множество – это любая определенная совокупность
объектов. Объекты, из которых составлено множество, называют элементами.
Элементы множества отличают друг от друга. Например, множество всех книг в
библиотеке или множество вершин многоугольника.
Множества обозначаются большими буквами. Например, A, B, C, X, N и т.д.
Если объект a является элементом множества A, то говорят, что a принадлежит A.
Это записывается, как a  A . Запись a  A будет означать, что a не является
элементом A.
Множества как объекты могут быть элементами других множеств. Множества,
элементами которых являются другие множества, называются классом или
семейством.
Множество, не содержащее элементов, называется пустым и обозначается  .
1.2. Задание множеств
Чтобы задать множество, нужно указать, какие элементы ему принадлежат.
Это можно сделать разными способами:
- перечислением М элементов: M : a1 , a2 ,..., ak  ;
- характеристическим предикатом: M : x P( x);
- порождающей процедурой: M : x x : f .
Перечисление задается в фигурных скобках, через запятую.
Здесь и далее фигурными скобками   будем обозначать множество, в
котором не играет роли порядок следования элементов, и круглыми скобками  
последовательность, в которой порядок следования элементов важен. Угловыми
скобками
будем обозначать совокупности элементов, имеющие неоднородную
математическую природу (структуру), например, в графе имеем два вида
элементов – вершины  i и дуги (пары) этих элементов (  i  i ).
Характеристический предикат – это некоторое условие, выраженное в
форме логического утверждения. Если для данного элемента условие выполнено,
5
то оно принадлежит определённому множеству. В противном случае – не
принадлежит.
Порождающая процедура – это процедура, которая, будучи запущенной,
порождает некоторые объекты, являющиеся элементами определённого
множества.
M 9 : 1,2,3,4,5,6,7,8,9.
Пример:
M 9 : n n  N & n  10.
М9:={n|for n:=1 step 1 to 9}.
1.3. Операции над множествами
Множества удобно изображать с помощью кругов Эйлера (диаграмм Венна).
Элементы множества изображаются точками внутри круга, если они принадлежат
множеству ( a  M на рис 1.1 а), и точками вне круга, если они множеству не
принадлежат ( b  M ).
b
в
B
M
A
a
а)
б)
Рис. 1.1. Иллюстрация кругами Эйлера
Будем также использовать символы x вместо слов «для любых х», «каждый
элемент х» и x вместо слов «существует х».
Сравнение множеств
Множество A содержится во множестве B (множество B включает в себя
множество A), если каждый элемент A принадлежит также и B (рис 1.1 б):
A  B : x  A  x  B.
В этом случае A называется подмножеством B, а B – надмножеством A.
Если A  B и A  B , то A называется собственным подмножеством B.
Два множества равны, если они являются подмножествами друг друга,
т.е. A  B : A  B & B  A .
Мощность множества обозначается как |М|. Для конечных множеств мощность
– это число элементов. Например,   0 , но   1 .
6
Если А=В, то множества A и B называются равномощными.
Пример. Множество решений (корней) уравнения x 2  5x  6  0  {2,3} , т.е.
A : {2, 3} . Множество простых чисел, меньших пяти B : {2, 3} . Следовательно,
А=В.
Для некоторых числовых множеств приняты стандартные обозначения:
N – множество натуральных чисел N : {0,1,...n} ;
Z – множество целых чисел Z : {..., 5,..., 0,1,...} ;
1

Q – множество рациональных чисел Q :  , 2,... ;
3

R – множество действительных чисел;
C – множество комплексных чисел.
Тогда N  Z ; Z  Q; Z  R и т.д.
Если в множестве A найдется хотя бы один элемент, не принадлежащий B, то
A не является подмножеством B, т.е. A  B .
Например, интервал  a; b не является подмножеством промежутка a; b , так
как a   a; b , но a  a; b .
Из определения следует, что любое множество является подмножеством
самого себя, т.е. справедливо утверждение A  A . Полагают, что  является
подмножеством любого множества.
Пример. Рассмотрим множество, состоящее из трех элементов: M : {a, b, c} .
Найдем все его подмножества:
а) пустое  ;
б) по одному {a};{b};{c};
в) по два {a, b};{b, c};{a, c};
г) по три {a, b, c} .
Число всех подмножеств составляет 8=23. Если множество состоит из n
элементов, то число всех подмножеств равно 2n. Или булеан |2М|=2|М|.
Пересечение множеств
Множество, состоящее из всех элементов, принадлежащих и множеству A, и
множеству B, называется пересечением и обозначается A  B .
A  B : {x | x  A & x  B} .
Пример: A : {0, 1, 3, 5};
B : {1, 2, 3, 4};
A  B : {1, 3} .
Если же множества A и B не имеют общих элементов, то их пересечением
является пустое множество, то есть A  B   . Например, пересечение множества
четных чисел с множеством нечетных.
7
Пересечение пустого множества с любым множеством – пустое множество:
A    .
Свойства пересечения
1. Коммутативность (переместительное свойство). По аналогии с а+b=b+a
A B  B  A.
2. Ассоциативность. По аналогии с a  (b  c)  (a  b)  c
A  ( B  C )  ( A  B)  C .
3. Свойство нуля. По аналогии с a  0  0
A   .
4. Идемпотентность (аналогии нет)
A A  A.
5. Дистрибутивность. По аналогии с (a  b)  c  a  c  b  c
A  ( B  C )  ( A  B )  ( A  C ) ; ( A  B)  C  ( A  B)  ( A  C )
6. Свойство единицы.
Если задан универсум U и любые A, B, C  U , то можно записать: A  U  U
(рис. 1.2 а); A  U  A (рис. 1.2 б).
U
U
A
A
а)
б)
Рис. 1.2. Операции с универсумом
Объединение множеств
Множество, состоящее из всех элементов, принадлежащих или множеству A,
или множеству B, называется объединением множеств. Обозначается так: A  B .
Пример. Даны множества A : {0,1, 3, 5} и B : {1, 2, 3, 4} . Их объединением
будет A  B : {0,1, 2, 3, 4, 5} .
Даны числовые промежутки (рис. 1.3). Их объединением будет A  B  C .
Объединение и пересечение множеств хорошо иллюстрируются на плоскости
(рис. 1.4). При этом множества изображаются кругами или прямоугольниками.
Свойства объединения
Свойства объединения множеств можно сравнить со свойствами сложения
чисел. Проведем аналогию этих свойств.
8
1. Коммутативность (переместительное свойство). По аналогии с a  b  b  a
A B  B  A.
2. Ассоциативность. По аналогии с a  (b  c)  (a  b)  c
A  ( B  C )  ( A  B)  C .
3. Свойство нуля. По аналогии с a  0  a
A   A .
4. Идемпотентность (аналогии нет)
A A  A.
5. Дистрибутивность. По аналогии с (a  b)  c  a  c  b  c
( A  B)  C  ( A  C )  ( B  C ) .
A
–1
1
0
3
B
C
–1
3
Рис. 1.3. Множества точек отрезков
A
A
A
B
B
А, В
A B
B
A B
Рис. 1.4. Операции над множествами
Разность множеств
A \ B : {x | x  A & x  B} .
Записывается так:
Геометрическое представление разности множеств на рис. 1.5.
Симметричная разность (рис. 1.6):
AB : ( A  B) \ ( A  B) ;
AB : {x | x  A & x  B  x  A & x  B} .
9
A
A
B
A\B
AB
Рис. 1.5. Разность множеств
B
Рис. 1.6. Симметричная разность
Дополнение множеств (рис. 1.7):
А
A : {x | x  A};
A  U \ A.
U
A
Рис. 1.7. Дополнение
множеств
A  U  A. :
Свойства дополнения A  U  U ,
1) A  A  U ;
4) U   ;
2) A  A   ;
5) A  B  A  B ;
3) U   U ;
6) A  B  A  B .
Пример. Рассмотрим операцию дополнения множества, являющегося
пересечением множеств A и B. Её результат совпадает с объединением
дополнений этих множеств, (свойство 6) A  B  A  B ; в этом можно убедиться с
помощью диаграмм Эйлера – Венна (рис. 1.8).
A
A B
A
B
A B
A
B
A
B
Рис. 1.8. Геометрическая иллюстрация свойства 6
10
B
Декартово произведение множеств
Пусть A – конечное множество, состоящее из n элементов. Кортежем длины
n элементов множества A называется упорядоченная последовательность
(а1, а2, …, аn) элементов этого множества.
Кортежи (а1, а2, …, аk) и (b1, b2, …, bn) называются равными, если они имеют
одинаковую длину и их элементы с одинаковыми номерами совпадают, т.е.
(а1, а2, …, аk) = (b1, b2, …, bn), если (k=n) и для i ai= bi.
Например, равны кортежи ( 21 ,2 2 ,2 3 ,2 4 ,2 5 )= 2,4,8,16,32, так как оба кортежа
длины 5 и равны все пары соответствующих элементов данных множеств: 21  2 ,
3
5
2 2  4 , 2  8 , 2 4  16 , 2  32 .
Из двух данных кортежей (а1, а2, …, ai, …, аk), где ai  A , длины k и
(b1, b2, …, bj, …, bm), где bi  B , длины m можно составить новый кортеж длиной
k  m , элементы которого (а1, а2, …, аk, b1, b2, …, bm) принадлежат множеству
A  B . Эта операция называется соединением кортежей. Кортеж можно
образовать двумя способами, поэтому важно, какой кортеж назван первым. Так,
соединив кортежи четных и нечетных однозначных чисел 0,2,4,6,8 и 1,3,5,7,9 ,
получим кортеж всех однозначных чисел 0,2,4,6,8,1,3,5,7,9 .
Пусть A – конечное множество, элементами которого являются некоторые
символы, например цифры, буквы, знаки препинания. Такие множества принято
называть алфавитом над заданным множеством символов. Алфавит есть
кортеж попарно различимых символов, называемых буквами алфавита. Элементы
множества An принято называть словами длины n в алфавите A. Слово над
алфавитом есть просто некоторая конечная последовательность символов. Так,
шестизначный телефонный номер является словом длины 6 над алфавитом цифр
0,1,2,...,9.
Рассмотрим множество B, состоящее из двух элементов: 0 и 1. Кортежи длины
m
m
m из этих элементов обозначим Bm. Тогда n B  2 . Такие кортежи называют
упорядоченными наборами или векторами. Они имеют широкое применение в
дискретной математике.
Вектор из нулей и единиц можно рассматривать как двоичное представление
натурального числа.
Вектор, состоящий из единиц и нулей, описывает состояние памяти
вычислительных машин, причём память может содержать числа, тексты, команды
и т.д.
Пусть заданы множества A1 , A2 ,..., An . Декартовым произведением этих
множеств называется множество A1  A2  ...  An , состоящее из всех кортежей
a1 , a2 ,..., an  длины n, в которых ak  Ak , где 1  k  n . Поскольку для задания
кортежа важен порядок, то порядок множителей важен и в декартовом
произведении.
 
11
Например, декартовым произведением множеств A : 0,1 и B : X , Y , Z  будет
являться множество пар A  B : 0; X , 0; Y , 0; Z , 1; X , 1;Y , 1; Z . Скобки для
указания пар опускают там, где это не может привести к затруднениям:
A  B : 0 X ,0Y ,0Z ,1X ,1Y ,1Z . Если множества А:= a1 , a2 ,..., ak  и В:= b1 , b2 ,..., bm 
конечны, то их декартово произведение может быть представлено в общем виде
таблицей из m столбцов и k строк (рис. 1.9).
(a1,b1)
(a2,b1)
…
(ak,b1)
…
…
…
…
(a1,b2)
(a2,b2)
…
(ak,b2)
(a1,bm)
(a2,bm)
…
(ak,bm)
Рис. 1.9. Элементы декартового произведения
Если известны мощности множеств |А| и |В|, то |А×В|=|А| |В|.
Если А1= А2=…= Аn= А, то пишут Аn= А×A×…×A и называют n-й декартовой
степенью множества A. Тогда можно записать |А|n= |Аn|.
Например, плоскость является декартовым квадратом двух прямых и
обозначается соответственно R2. В физике пространственно-временной
континуум есть декартово произведение R3×T, где R3 – трехмерное пространство,
а T – числовая ось времени.
Декартово произведение не обладает переместительным законом, т.е. вообще
говоря, пары (a;b) и (b;a) различны: Х×Y≠ Y×Х. Так, различны точки плоскости с
координатами (5;3) и (3;5). Но для произвольного и пустого множеств
справедливо X      X   .
Свое название декартово произведение получило в честь выдающегося
французского математика и философа Рене Декарта (1596–1650), являющегося
автором знаменитого метода координат. На плоскости двумерные кортежи – это
пара вида (х;у), а в пространстве – трехмерные кортежи в виде тройки чисел
(х;у;z).
1.4. Функция, отображение
Основные понятия
Пусть даны два множества A : a1 , a2 ,... и B : b1 , b2 ,... . Тогда пары (ai, bi)
задают соответствие между множествами А и В, если указано правило R, по
которому для элемента ai множества А выбирается элемент bi из множества В.
Например, соответствие между элементами множеств x  R и y  R задаёт
точечное множество (хi; уi) координат точек на плоскости.
Пусть задано соответствие R и Y= R(Х). Ему соответствует точка M с
координатами (х; у). Тогда множество точек плоскости, выделяемое
отображением R, будет графиком.
12
Задание отображений
Для описания соответствий между множествами используют понятие
отображения (функции) одного множества на другое.
Для задания отображения необходимо указать:
- множество, которое отображается (область определения данного
отображения, часто обозначается D f  );
- множество, в (на) которое отображается данная область определения
(множество значений этого отображения, часто обозначается E f  );
- закон или соответствие между этими множествами, по которому для
элементов первого множества (прообразов, аргументов) выбраны элементы
f

B или f : A  B .
(образы) из второго множества. Приняты записи A 
Везде при записи f : A  B будем подразумевать, что отображение f
определено всюду на А, т.е А – полный прообраз отображения f, хотя для В такого
свойства полноты подразумевать не будем. Запись f(А) означает, что это
множество состоит из образов всех элементов множества А: f(А):= {f(a) |aA}.
Очевидно, что f  A  B . Далее будем иметь дело в основном с однозначными
отображениями, где каждому аргументу поставлено в соответствие не более
одного образа.
Отображения задаются аналитически, таблично, графически.
Способ задания отображения в виде формул называется аналитическим.
Для задания отображения множеств табличным способом принято строить
таблицу, в которой первую строку составляют элементы области определения
(прообразы вида a), а вторую строку – их образы f(a).
Графическое представление отображения связано со стрелочными схемами
(диаграммами или графами), которые подробно рассматриваются в главе 2.
Понятие «функция» является одним из основных в математике. В данном
случае подразумевается прежде всего функция, отображающая одно конечное
множество объектов в другое конечное множество. Поэтому по смыслу термин
«отображение» и «функция» почти идентичны.
Виды отображений
Различают два основных вида однозначных отображений (функций). По
мощности они делятся на сюръективные и инъективные.
Сюръекция – соответствие, при котором каждому элементу множества А
указан единственный элемент множества В, а каждому элементу множества В
можно указать хотя бы один элемент множества А, называется отображением
множества А на множество В.
Инъекция – соответствие, при котором каждому элементу множества А
соответствует единственный элемент множества В, а каждому элементу В
соответствует не более одного прообраза из А, называется отображением
множества А во множество В.
13
Биекцией называется отображение множества А на множество В, при котором
каждому элементу множества В соответствует единственный элемент множества
А, является взаимно-однозначным соответствием между двумя множествами. На
рис. 1.10 изображены отображения f : R  R .
Пусть множество А отображается взаимно-однозначно на множество В, т.е
f : A  B . Тогда отображение f –1, при котором каждому элементу множества В
ставится в соответствие его прообраз из множества А, называется обратным
отображением для f и записывается f 1 : A  B . Так как одному образу при
биекции соответствует в точности один прообраз, обратное отображение будет
определено всюду на В и однозначно.
A
B
а
)
B
A
A
B
б
)
в
Рис. 1.10. Различные виды функций: a – сюръекция, б – инъекция, в – биекция
1.5. Отношения
Пусть А и В – два множества. Бинарным отношением R из множества А в
множество В называется подмножество прямого (декартова) произведения А и В:
R  A  B . Для бинарных отношений используется следующая форма записи:
aRb : a, b  R  A  B .
Если А= В, то R есть отношение на множестве А.
Отношения являются частным случаем отображения, когда область
определения и множество значений совпадают, поэтому всё сказанное в п. 1.4
справедливо и для отношений.
Назовём n – местным отношением R на непустом множестве М, это
подмножество R  M n . При n  2 отношение R называется бинарным. То есть
бинарным отношением между элементами множеств А и В называют любое
подмножество R множества А×В.
Если отношение n – местное, то в общем случае можно записать
R  A1  A2  ...  An : a1 , a2 ,..., an  a1  A1 ,... & an  An .
14
Множества Аi не обязательно различны, а отношение R – это множество
упорядоченных кортежей a1 , a 2 ,..., a n .
Обратное отношение: R 1 : a, bb, a   R.
Дополнение отношение R : a, b  a, b  R.
Тождественное отношение: I : a, b a  R.
Композицией отношений R1 и R2 называется отношение, если
R1  A  C , R2  C  B , R : R1  R2 : a, b a  A & b  B & c  CaR, c & cR2b.
1.6. Свойства отношений
Приведем характерные свойства бинарных отношений, причём заметим, что
каждое конкретное отношение может обладать или не обладать некоторыми из
указанных свойств.
1. Рефлексивность: aRa , например, «быть не больше» на R.
2. Антирефлексивность. Имеет место, когда отношение не обладает
свойством 1 для любых а, например «быть больше», «быть младше» и др.
3. Симметричность любых двух элементов. Отношение R на множестве М
называется симметричным, если для любых a, b  M одновременно справедливо
aRb и bRa (т.е. R  R 1 ). Симметрична параллельность прямых, так как если а||b,
то b||а. Симметрично отношение «быть равным» на любом множестве или «быть
взаимно простым» на N.
4. Антисимметричность. Если для несовпадающих элементов а≠b верно
отношение aRb , то ложно bRa . Антисимметричными являются отношения «быть
больше», «не меньше» на R, «быть делителем» на N и др.
5. Транзитивность. Если aRb и bRс , то aRc для любых a, b, c  M .
Транзитивны отношения «быть больше», «быть параллельным», «быть равным» и
др.
6. Антитранзитивность. Имеет место, когда отношение не обладает
свойством 5. Например, «быть перпендикулярным» на множестве прямых
плоскости ( a  b, b  c , но неверно a  с ).
7. Асимметричность. Ни для одной пары а и b не выполняется одновременно
aRb и bRa .
8. Связность. Для любых а и b, если а≠b, то aRb или bRa . Некоторые
свойства конкретных бинарных отношений приведены в табл. 1.1.
1.7. Отношения эквивалентности
Различные отношения могут обладать (или не обладать) теми или иными
свойствами, приведенными в п. 1.6. Некоторые устойчивые комбинации этих
свойств встречаются настолько часто, что их следует выделить отдельно. Классы
15
отношений, обладающие определённым набором свойств можно изучить
отдельно. К таким классам отношений относятся: отношения эквивалентности,
толерантности, порядка.
Таблица 1.1
Свойства бинарных отношений
Множества
Отноше- Рефлек- Симмет- Асиммет- Антисим- Транзи- Антитранние
сивность ричность ричность метричность тивность зитивность
Любые
AB
A B  
Любые
непустые
Любые
B  A'
Любые
а=b
Любые
а≠b
R
а>b
R
аb
R
а<b
R
аb
Прямые
а||b
плоскости
Прямые
аb
плоскости
Векторы Коллинеарность
a, b
а=λb
Окружно- Касание
сти
Окружно- Концентсти
ричность
N
Взаимная
простота
+
+
–
+
–
–
+
–
+
–
–
–
–
+
–
–
+
–
+
+
+
+
+
–
–
–
–
+
–
–
–
+
–
+
–
–
–
–
–
–
+
–
+
–
–
+
–
+
+
+
+
+
–
–
+
+
+
+
+
–
–
+
–
–
–
–
+
+
–
–
+
–
+
+
–
–
–
–
+
+
–
–
+
–
–
+
–
–
–
–
Рассмотрим основные виды бинарных отношений.
Отношение эквивалентности. Бинарное отношение R называется отношением
эквивалентности, если оно одновременно обладает тремя свойствами:
рефлексивностью, симметричностью и транзитивностью, т.е. если для любых
x, y, z выполняется:
- xRx (рефлексивность);
- если xRy, то yRx (симметричность);
- если xRy, а yRz, то xRz (транзитивность).
Обозначение эквивалентных отношений: а Q b или a ~ b , что означает «а
эквивалентно b в отношении Q», например, «быть равным на множестве чисел»,
«быть подобным на множестве геометрических фигур».
16
Непересекающиеся подмножества, на которые разбивается множество М
отношением эквивалентности, называются классами эквивалентности.
Множество классов эквивалентности множества А относительно Q называется
фактор-множеством и обозначается A \ Q .
Например, множество всех рациональных чисел Q можно разбить на классы
эквивалентности, для которых а/b – рациональная дробь, где a  Z ; b  N . Любая
дробь c/b будет отнесена к тому же классу тогда и только тогда, когда ad=bc, т.е
а/b и Q эквивалентны, если ad=bc (например, –2/4 ~ –3/6). Проверим
выполнимость свойств для такого решения.
Рефлексивность. Для любой дроби а/b выполняется равенство ab=ba, значит
а/b Q а/b.
Симметричность. Если а/b Q c/d, то ad=bc, но bc = ad, значит c/d Q а/b.
Симметричность равенства произведений влечёт за собой симметричность
отношений между дробями.
Транзитивность. Известно, что а/b Q c/d, c/d Q m/n. Докажем, что а/b Q m/n,
т.е an=bm. Действительно, так как а/b Q c/d, то ad=bc, аналогично c/d Q m/n, то
cn=md. Умножим первое равенство на n, а второе на b, тогда имеем adn=bcn и
bcn=mdb. По свойству транзитивности adn  mdb или an  mb . Известно, что
такие дроби классифицируется по элементу, порождающему класс
эквивалентности, которым в этом примере является несократимая дробь
(например, для 2/4~3/6~4/8 таковой будет 1/2).
1.8. Отношения толерантности
Отношение A на множестве M называется отношением толерантности, если
оно рефлексивно и симметрично. Очевидно, что отношение эквивалентности есть
частный случай толерантности, когда к двум перечисленным свойствам
добавляется транзитивность. Например, отношение «быть другом» рефлексивно,
симметрично, но не транзитивно. Таким образом, толерантность является более
слабой мерой сходства, чем эквивалентность, но тем не менее помогает выявлять
различия в схожих вещах.
Пусть A и B имеют некоторые сходные признаки. Тогда A рефлексивно В
(признаки не только схожи, но и совпадают). Очевидно, что выполняется и
симметричность, т.е. порядок рассмотрения сходных объектов не важен.
Однако накопление несущественных различий у некогда сходных объектов
может впоследствии привести к их полному различию. Сложно разбить на классы
множество, состоящее из сходных элементов, так как размыты границы
признаков, по которым они объединяются в подмножества. Как известно, каждый
элемент множества несёт определённую информацию обо всех его элементах. В
случае отношения эквивалентности такая информация об одном элементе
достаточно полно характеризует свойства всего множества, а отношение сходства
малоинформативно.
Тогда
предельным
случаем
сходства
является
неразличимость (но не одинаковость).
17
При изучении отношения сходства сначала определяется мера сходства –
критерии, а затем исследуется взаимное расположение сходных объектов.
Отношение толерантности даёт интуитивное представление о сходстве объектов.
Понятно, что для толерантности свойство транзитивности излишне: сходство
между парами a1 и a2, a3 и a4, …, an–1 и an не означает, что сходны между собой a1
и an, так как размыты критерии сходства, и для каждой пары они могут быть
разными. Например, вспомните эффект детской игры в «испорченный телефон».
Пусть p  N . Обозначим через S p совокупность всех непустых подмножеств
множества 1,2,..., p. Два таких подмножества будут толерантными, если у них
есть хотя бы один общий элемент.
1.9. Отношения порядка
Отношение R называется отношением порядка на множестве M, если оно
обладает свойствами антисимметричности и транзитивности. Для произвольного
отношения порядка принято обозначение  , означающее предшествование.
Множество M, которое обладает отношением порядка, называется
упорядоченным. Такое определение не противоречит определению конечного
упорядоченного множества, a является его обобщением на бесконечные
множества. И наоборот, старое определение является частным случаем этого, так
как сравнение на множестве происходит за счёт естественного упорядочения
натуральных чисел, заложенного в определении N. Упорядочено множество цифр
в моем телефонном номере и множество букв в вашем имени.
Отношение порядка может быть рефлексивным и тогда оно называется
отношением нестрогого порядка и обозначается знаком  . Если отношение
порядка антирефлексивно, то оно называется отношением строгого порядка и
обозначается  . Отношение полного порядка, если сравнимы все элементы
множества.
Отношение нестрогого порядка должно удовлетворять трём условиям:
- рефлексивности, т.е. xRx;
- антисимметричности, т.е. если xRy и yRx, то x=y;
- транзитивности, т.е. если xRy, а yRz, то xRz.
Отношение нестрогого порядка является объединением отношения строгого
порядка и отношения тождественности. Каждому отношению порядка R на
множестве M можно поставить в соответствие обратное отношение порядка R 1 .
Например, отношения «больше» и «меньше» на множестве действительных
чисел. Для связного отношения порядка R на множестве M существует ему
противоположное R , причём, если R – отношение нестрогого порядка, то R –
отношение строгого порядка, и наоборот. Во множестве R отношение нестрогого
порядка  противоположно отношению строгого порядка  .
Отношение порядка даёт возможность сравнивать между собой различные
элементы множества M. Пусть M – упорядоченное множество с отношением
18
строгого порядка  . Об упорядоченной паре x  y говорят, что элемент x
предшествует элементу y. Пусть M – вполне упорядоченное множество. Тогда,
если для элемента x не нашлось предшествующего, то он называется
минимальным, т.е. не существует элементов y, «меньших», чем x. Символически
это записывается так:
y  M y  x и y  x .
На множестве N натуральных чисел выполняются лишь свойства
антисимметричности и транзитивности. Поэтому на нём установлено отношение
полного порядка: для любой пары натуральных чисел единица является
предшествующим числом, т.е. минимальным. Можно доказать, что конечное
вполне упорядоченное множество содержит единственный минимальный
элемент. Например, на множествах чисел Z , Q, R отношения  и  есть
отношения нестрогого полного порядка, а отношения < и > есть отношения
строгого полного порядка. Отношение  есть отношение нестрогого частичного
порядка на множестве 2 M (булеан).
Всякий частичный порядок на конечном множестве может быть доведён до
полного. То есть существует такое отношение полного порядка, для которого
заданное отношение частичного порядка является подмножеством.
1.10. Комбинаторика
Комбинаторика – раздел математики, изучающий способы решения задач
пересчета и перечисления элементов в конечных множествах. Задача
перечисления состоит в выделении элементов, принадлежащих некоторому
заданному конечному множеству и удовлетворяющих некоторым свойствам, а
задача пересчета – в нахождении числа таких элементов.
Задача. Описать все расположения 8 одинаковых ладей на шахматной доске,
при которых ладьи не бьют друг друга.
Это задача перечисления. Если бы в этой задаче требовалось найти количество
указанных расположений, то эта задача была задачей пересчета. Обычно речь в
подобных задачах идет о комбинациях некоторых объектов, поэтому такие задачи
называют комбинаторными.
Еще два примера комбинаторных задач.
1. В турнире по олимпийской системе («проигравший выбывает») участвует n
человек. Сколько встреч будет проведено?
2. В правлении банка 7 человек. Каково должно быть минимальное число
замков от сейфа и как следует распределить ключи между членами правления
(каждый член может получить ключи от нескольких замков), чтобы любое
большинство могло открыть сейф, а любое меньшинство не смогло бы?
Комбинаторика возникла как «математика досуга» для подсчета шансов
участников карточных и других азартных игр. Появление мощной
19
вычислительной техники резко увеличило возможности комбинаторики и
расширило круг её приложений. Комбинаторные методы применяются ныне в
теории вероятностей, статистике, экономике, биологии, химии, физике и других
областях.
Правила суммы и произведения в комбинаторике
Рассмотрим основополагающие правила комбинаторики – правила суммы и
произведения.
Пусть Х – конечное множество, состоящее из n элементов x. Тогда говорят, что
элемент x из X может быть выбран n способами и пишут X  n . Эта запись
совпадает с записью мощности множества X.
Пусть X 1 ,..., X K – попарно непересекающиеся множества, т.е. X i  X j   ,
i  j.
Очевидно, что в этом случае
k
K
U Xi   X i .
i 1
i 1
Таково комбинаторное правило суммы. Для k  2 оно формулируется
следующим образом. Если объект x может быть выбран n способами из множества
X, а объект y из непересекающегося с ним множества Y – другими m способами, то
выбор «x или y» может быть осуществлён n  m способами.
Правило произведения для k  2 формулируется следующим образом. Если
объект x может быть выбран n способами и после каждого из таких выборов
объект y в свою очередь может быть выбран m способами, то выбор
упорядоченной пары – вектора x, y  – может быть осуществлён n m способами,
например, X : x1 , x2 , Y : y1 , y2 .
Тогда упорядоченные пары x, y  описываются декартовым произведением:
X  Y   x1 , y1 ,  x1 , y 2 ,  x2 , y 2 ,  x2 , y 2 .
Выбор упорядоченной последовательности из k объектов вектора
x1 , x2 ,..., xk  может быть осуществлён n1  n2  ...  nk – способами, где ni – число
способов выбора i-го объекта xi, i меняется от 1 до k (записывается: i  1, k ).
В частности, если все ni равны, что может быть, например, в случае, когда
элементы принадлежат одному и тому же множеству, т.е. рассматривается
k
декартово произведение X , то число способов равно n k .
Размещения
Пусть задано некоторое конечное множество A : {a1; a2 ;...; an } – генеральная
совокупность. Из элементов генеральной совокупности образуются выборки
ai1 , ai2 ,..., ai , где i j  {1, 2,..., n} .
Выборки классифицируются следующим образом:
20
- в зависимости от того, существенен порядок элементов выборки или нет, её
называют упорядоченной или неупорядоченной;
- в зависимости от того, могут или не могут элементы выборки повторяться,
её называют выборкой с повторениями или выборкой без повторений.
Число элементов выборки называют её объёмом. Выборку объёма r называют
r-выборкой.
Размещением из n элементов по m называется упорядоченная m-выборка из nэлементной генеральной совокупности.
Пример. Даны три буквы – a, b, c. Размещения из трех элементов (букв) по два
в каждом:
(a, b), (b, a), (a, c), (c, a), (b, c), (c, b).
Если говорить о размещениях с повторениями, то к этому списку добавится
еще три:
(a, a ), (b, b), (c, c) .
m
Число размещений из n элементов по m без повторений обозначают An , а с
повторениями Anm . Например, A32  6, A32  9 .
Получим общие формулы для числа размещений. Если элементы размещения
не могут повторяться, то число способов, каким можно выбрать каждый
очередной элемент размещения, будет на единицу меньше, чем для
предшествующего ему, а так как первый элемент размещения выбирается n
способами, то с помощью правила произведения получаем формулу
Anm  n  (n  1)  (n  2)...(n  (m  1)) .
В размещении с повторениями каждый очередной элемент может быть выбран
m
m
n способами, поэтому An  n .
Число размещений можно еще вычислить по формуле
Anm  n  (n  1)  (n  2)... n  (m  1) .
Разделим и умножим эту формулу на ( n  m)!, получим
n  (n  1)...(n  m  1)  (n  m)!
n!
Anm 

;
(n  m)!
(n  m)!
n!
.
Anm 
(n  m)!
(1.1)
(1.2)
Сочетания
Сочетанием из n элементов по m называют неупорядоченную m-выборку из n
элементов генеральной совокупности. Выборки отличаются только составом
элементов, порядок следования их не учитывается.
Пример: n  3, m  2, A : {a; b; c} .
Выпишем всевозможные сочетания из трех букв по две (без повторений):
ab, ac, bc .
21
Если говорить о сочетаниях с повторениями, то к этому списку добавится еще
три: aa, bb, cc .
m
Число сочетаний из n по m-элементам обозначают Cnm , а с повторениями Cn ,
2
2
например C3  3 , C3  6 .
m
Выведем формулу для Cn . Всякое размещение можно получить как
произведение сочетания на перестановку:
Anm  C nm  Pm ;
Anm  Cnm  m!,
Anm
n!
m
откуда
Cn 

;
m! m!n  m!
n!
.
(1.3)
Cnm 
m!(n  m)!
Сочетания с повторениями
Закодируем сочетания с повторениями последовательностью из нулей и
единиц следующим образом: сначала запишем столько единиц, сколько раз в
сочетание входит первый элемент исходного множества, затем – 0, затем столько
единиц, сколько раз в сочетание входит второй элемент исходного множества,
затем 0 и т.д. После единиц, соответствующих повторению последнего элемента,
0 не ставим.
Пример. Пусть n=3, m=5. Исходное множество a, b, c – n=3. Сочетания с
повторениями из пяти элементов, например:
aaabc – кодировка 1110101;
abbbb – кодировка 1011110;
ccccc – кодировка 0011111.
Заметим, что в кодирующей последовательности ровно n  m  1 элементов
3  5  1  7 , m – единиц (столько, сколько элементов в сочетании) и n  1 нулей
(отделяющих друг от друга n наборов единиц, соответствующих n элементам
исходного множества). Очевидно, что любой последовательности такого вида
соответствует некоторое сочетание с повторениями из n по m.
Пример: n=3, m=5; a, b, c; последовательности 1110011 соответствует ааасс, а
0111110 – bbbbb.
Таким образом, установлено взаимно-однозначное соответствие между
множеством сочетаний из n по m и множеством последовательностей из m единиц
m
m
и n  1 нулей. Число этих последовательностей равно Cnm1 или Cn1m . Это
m
m
соответствие: Cn  Cnm1 .
22
Примеры задач на сочетания с повторениями
1. Каким числом способов можно разместить n одинаковых шаров по k
различным урнам?
Решение. Присвоим урнам номера от 1 до k. Будем считать, что, помещая шар
в урну, мы присваиваем ему её номер. Тогда размещение шаров по урнам
сводится к построению последовательности, в которой n элементов, и каждый из
n
них принимает одно из k значений. Таким образом, ответ к задаче – C k :
(k  n  1)!
(k  n  1)!
Ckn  Cknn1 

.
n ! (k  n  1  n )! n ! (k  1)!
(1.4)
2. Найти число решений уравнения x1  x2  ...  xk  n в неотрицательных
целых числах.
Решение. Задача опять сводится к числу распределений одинаковых шаров по
различным урнам, если считать, что xi – количество шаров, помещаемых в i-ю
n
урну, n – общее число шаров, k – общее число урн. Ответ: C k .
Перестановки
Перестановки – это частный случай размещения, когда n=m, т.е. Ann .
В выборке элементы отличаются только порядком следования, состав
элементов – одинаковый. Обозначается Pn. По формуле Anm при n=m (0!=1) число
перестановок равно:
(1.5)
Рn=n!.
Перестановки с повторениями
Количество перестановок P(n, r1 , r2 ,..., rk ) из n элементов, среди которых
k
элемент m1 повторяется r1 раз, элемент m2 – r2 раз, …, mk – rk раз и
1
 k

P(n, r1 , r2 ,..., rk )  n !   ri ! (рис. 1.11).
 i1 
m1
nэл
n
m2

n  r1
r1
r2
C nr1
Cnr2r1
mi

n  r1  r2  ...  rk 1
rk
Cnrkr1r2 ...rk 1
Рис. 1.11. Схема к выводу числа перестановок
23
 r  n , равно
i 1
i
r1
r2
rk
n
n  r1
n  r1  r2 ...  rk 1
Pn, r1 , r2 ,..., rk   C  C  ... 
C
;
n  r1 !
n  r1  r2 !
n!



r!n  r1 ! r2 !n  r1  r2 ! r3!n  r1  r2  r3 !
n  r1  r2  r3  ...  rk 1 !
n!


;
rk ! n  r1  r2  r3  ...  rk 1  rk ! r1!r2 !...  rk !
Pn, r1 , r2 ,..., rk  


Pn, r1 , r2 ,..., rk  
или
n!
.
r1!r2 !...  rk !
(1.6)
Пример. Определить число перестановок слов, получаемых путем
перестановки букв в слове мама. Здесь n=4, повторение буквы «a» ra  2 , буквы
«м» rм  2 ,
4!
3 4

6.
2! 2!
2
Искомыми словами будут: ммаа, мама, маам, аамм, амам, амма.
P(4, 2, 2) 
Пример. Сколько перестановок можно образовать из букв слов: водород,
абракадабра.
В слове «водород» семь букв, n=7. Буква «o» повторяется три раза r1  3 , буква
«д» – два раза, r2  2 , остальные по одному разу. Тогда по формуле получим
2
7!
7!
4567


P(7,1, 3, 2,1)   ri  n  


 420 .
2
 i 1
 1! 3! 2! 1! 1  3! 2  1
В слове «абракадабра» n=11, r1=5 (буква «а» повторяется 5 раз), б – 2, р – 2,
к – 1, д – 1, тогда
k
2
P(11,5, 2, 2,1,1) 
Теорема. Сумма
11!
6  7  8  9  10  11 84  99  10


 83160 .
5! 2! 2! 1! 1!
1
22
полиномиальных
коэффициентов
в
разложении
( x1  x2  ...  xk ) n равна K n :
  n 1 
ki    k n ,
j1  k !  
i 1
  j

n
k  n .
i 1
i
Полученные формулы по вычислению числа комбинаторных соединений
можно представить в виде схемы (рис. 1.12).
24
Соединения
Выбор подмножества
элементов из
множества
Порядок
расположения
элементов
Перестановки
Размещения
Без повторений
Pn  n!
Без повторений
С повторениями
n!
P(n, r1 , r2 ,..., rk ) 
r1!r2 !...rk !
С повторениями
Anm  n m
Anm 
Сочетания
Без повторений
n!
n  m!
C nm 
n!
m!n  m!
С повторениями
n  m  1!  C m
Cnm 
n  m 1
m!n  1!
Рис. 1.12. Схема комбинаторных операций
1.11. Комбинаторные тождества
В ниже перечисленных соотношениях значения параметров предполагается
такими, чтобы все биномиальные коэффициенты имели смысл. Если в формуле
m
присутствует C n , то 0  m  n .
Имеют места следующие тождества:
k
nk
1. C n  C n .
n!
nk
 C nk .
Доказательство: C n 
(n  k )!(n  n  k )!
k 1
k
k
2. C n 1  C n 1  C n .
Доказательство:
(n  1)!
( n  1)!
Cnkk1  Cnk1 


(k  1)!(n  1  k  1)! k !( n  1  k )!
(n  1)!
( n  1)
k ( n  1)! ( n  k )( n  1)!




(k  1)!(n  k )(n  k  1)! k ( k  1)!( n  k  1)! ( n  k ) k ( k  1)!( n  k  1)!
(n  1)!(k  n  k )
n!


.
(n  k )k !(n  k  1)! k !(n  k )!
25
k m
3. Cn Ck  Cn Cnm .
Доказательство:
(n  m)! умножить
n!
k!
n!
Cnk Ckm 




разделить
k !(n  k )! m !(k  m)! m !(n  k )!( k  m)!
n !(n  m)!
n!
(n  m)!



 Cnm  Cnkmm .
n !(n  k )!(k  m)!(n  m)! m !(n  m)! ( k  m)!( n  m  k  m)!
k
m
m
k
k
s
k s
4. Cm n   Сm Cn – свертка Вандермонда.
s 0
Решим такую задачу: имеется m мужчин и n женщин. Из них нужно
сформировать делегацию из k человек. Каким числом способов это можно
сделать?
Запишем кратко данную задачу [5]:
m  n человек;
m – мужчин;
n – женщин;
s – мужчин;
k – человек;
k  s – женщин.
k
Всего делегаций Cmn . Пусть в делегацию входит s мужчин тогда Cms  Cnk s .
k
Если принять s  0, 1, 2, … k , просуммировав, получим Cmk  n   Cms Cnk s .
s 0
Из этого тождества следует: при m  n  k
n
C2nn   Cns Cns ;
n
C2nn   Cns Cnns
s 0
или
s 0
n
C2nn   (Cns )2 .
s 0
1.12. Бином Ньютона
m
Число сочетаний C n называется также биномиальными коэффициентами.
Смысл этого названия устанавливается следующей теоремой, известной так
же, как формула бинома Ньютона.
n
n
k k nk
Теорема: ( x  y )   C n x y .
k 0
Доказательство. Методом математической индукции База n=1,
1
( x  y )'  C10 x 0 y 10  C11 x1 y 11  1  x  1  y   C1k x k y 1 k .
k 0
Индукционный переход:
n 1
( x  y ) n  ( x  y )( x  y ) n1  ( x  y ) Cnk1 x k y n1k ;
k 0
26
n 1
 xC
k 0
k
k
n1
x y
n k 1
n 1
  C yx y
k
n1
k 0
k
n 1
 C x y
n k 1
k 0
n1
k
k 1 n k 1
n1
n 1
  Cnk1 x k y nk 
k 0
n1
  (Cnk11  Cnk1 ) x k y n1  Cnk11 x n y 0   Cnk x k y nk  Cnn x n y nn 
k 0
k 0
n1
n
k 0
k 0
  Cnk x k y nk  Cnn x n y nn   Cnk x k y nk
Следствие 1. При x  y  1 по биному Ньютона имеем
n
n
n
k 0
k 0
(1  1) n   Cnk x k y nk   Cnk 1k 1nk   Cnk ;
k 0
n
2 n   C nk .
k 0
Следствие 2. x  1; y  1 , тогда
n
n
k 0
k 0
0  (1  1) n   Cnk (1) k 1nk   (1) k Cnk ;
n
 (1)
k
k 0
C nk  0 .
Треугольник Паскаля приведен на рис 1.13.
Рис 1.13. Треугольник Паскаля
В этом треугольнике каждое число (кроме единиц на боковых сторонах)
является суммой двух чисел, стоящих над ним. Число сочетаний C nm находится в
m+1 ряду на n+1-м месте:
n0
1
( x  y) 0  1 ;
( x  y)'  x  y ;
n 1
1+1
2
2
2
n2
1+2+1
( x  y)  x  2 xy  y ;
3
3
2
2
3
n3
1 + 3 + 3 + 1.
( x  y)  x  3x y  3xy  y ;
27
1.13. Формула включения-исключения
Мощностью конечного множества A называется число его элементов и
обозначается |A|.
Выведем формулу для мощности объединения конечного числа конечных
множеств. В случае объединения двух, трёх множеств имеем:
A B  A  B  A B ;
A B C  A  B  C  A B  AC  B C  A B C .
Эти соотношения видны из рис 1.14.
A
B
A
B
C
а)
б)
Рис. 1.14. Мощность объединения: а – двух, б – трёх множеств
В общем случае имеет место следующая теорема (формула включенияисключения).
Теорема. Пусть A1 , A2 ,..., An – конечные множества. Тогда
n
A1  A2  ...  An   Ai 
i 1
  1
n 1

1i  j  n
Ai  A j 

1i  j  k  n
Ai  A j  Ak  ... 
(1.7)
A1  A2  ...  An .
Докажем методом математической индукции. При n  2 формула (1.7) имеет
место. Пусть она справедлива при n  k . Докажем, что она имеет место и при
n  k  1.
По предложению индукции
k
A1  A2  ...  Ak   Ai 
i 1

1i  j k
Ai  Aj  ...  (1) k 1 A1  A2  ...  Ak .
Пусть B  A1  A2  ...  Ak ; A  Ai  Ak 1 (i  1, 2,..., k ) , тогда
A1  A2  ...  Ak  Ak 1  B  Ak 1  B  Ak 1  B  Ak 1 .
(1.8)
Используя дистрибутивность операции пересечения множеств относительно
объединения, получаем
B  Ak 1   A1  A2  ...  Ak   Ak 1   A1  Ak 1    A2  Ak 1   ...   Ak  Ak 1  
1
i
 A1|  A2|  ...  Ak| .
28
Множество B  Ak 1 представлено в виде объединения k множеств, применим
к нему предположение индукции:
k
B  Ak 1  A1|  ...  Ak|   Ai| 
i 1
k
  Ai  Ak 1 

i 1

1i  j  k
Ai|  A|j  ...  (1) k 1 A1|  A2|  ...  Ak| 
(1.9)
Ai  A j  Ak 1  ...  (1)
1i  j  k
k 1
A1  A2  ...  Ak  Ak 1 .
После подстановки (1.9) в (1.8) получим требуемое соотношение:
n
A1  A2  ...  An   Ai 
i 1

1i  j n
Ai  Aj 

1i  j k n
Ai  Aj  Ak  ...  (1)n1 A1  A2  ...  An .
Еще один способ доказательства формулы включения-исключения. Возьмем
произвольный элемент из объединения данных n множеств и подсчитаем его
«вклад» в правую часть доказываемой формулы. Пусть элемент входит ровно в m
множеств Ai m  n  . Тогда в сумме  Ai он учитывается m раз; в сумме
 A  A – C раз, в стольких парных пересечениях m множеств он содержится;
в сумме  A  A  A – C раз и т.д.
i
2
m
j
i
j
k
3
m
Общий вклад элемента в мощность объединения: m  Cm2  Cm3  ...  (1) m1 Cmm ,
а это равно 1. Таким образом, правая часть формулы (1.7) равна общему числу
элементов из объединения n множеств, что и требовалось доказать.
При решении многих задач формула включенияисключения применяется в другом варианте. Пусть
множество Аi является подмножеством некоторого
A
Ai
Ai
множества А (рис. 1.15). Обозначим через Ai
дополнение к Аi до множества А.
Тогда Ai  A \ Ai , по закону де Моргана
Ai  A  Ai
A1  A2  A1  A2 . Для n множеств можно записать
A1  A2  ...  An  A1  A2  ...  An ; Ai  A \ Ai .
Рис. 1.15. Мощность
дополнения
Мощность пересечения дополнений
A1  A2  ...  An  A \ A1  A2  ...  An  A  A1  A2  ...  An .
Подставив мощность объединения Аi в формулу включения-исключения,
получим
n
A1  A2  A3  ...  An  A   Ai 
i 1

1i  j n
Ai  Aj  ...  (1)n A1  A2  ...  An .
Рассмотрим несколько примеров на эту формулу.
Пример. Экзамен по математике сдавали 250 абитуриентов. Оценку ниже «5»
получили 180 человек, а выдержали этот экзамен 210 абитуриентов. Сколько
абитуриентов получили оценки «3» и «4»?
29
Решение. Пусть A – множество абитуриентов, выдержавших экзамен, B –
множество абитуриентов, получивших оценки ниже «5». Тогда A  210, B  180 .
Значит A  B  250 . Оценки «3» и «4» получили A  B . Найдем A  B по
формуле
250  210  280  A  B  A  B  140 .
Пример (на дополнение). В школе 1400 учеников. Из них 1250 умеют кататься
на лыжах, 952 – на коньках. Ни на лыжах, ни на коньках не умеют кататься 60
учащихся (рис. 1.16). Сколько учащихся умеют кататься и на лыжах, и на
коньках?
Решение. U – универсум множества всех учащихся;
A – множество учащихся, катающихся на
лыжах;
B – множество учащихся, катающихся на
U
коньках;
A
B
Тогда A  B не умеют кататься ни на
?
лыжах, ни на коньках. По условию A  B  60 .
По формуле A  B  A  B получается, что
A  B  A  B  60 .
Значит
A  B  U  A  B  1400  60  1340 .
Число учащихся, умеющих кататься и на
лыжах, и на коньках
A  B  A  B  A  B  1250  952  1340  862 .
Рис. 1.16. Пояснение к задаче
1.14. Задача о беспорядках и встречах
В популярной литературе по теории вероятности часто встречается задача о
рассеянной секретарше. Секретарше нужно отправить n писем по n адресам. Она
подписывает конверты и случайным образом вкладывает письма в конверты.
Какова вероятность того, что ни одно письмо не дойдет до своего адресата?
Данная задача является вариантом широко известной задачи о беспорядках.
Перестановка a1 , a 2 ,..., a n  чисел 1, 2, …, n называется беспорядком, если
для любого i ai  i . Через Dn обозначим число всех беспорядков из n элементов.
Заметим, что в задаче о секретарше искомая вероятность Pn равна отношению Dn
к общему числу всех перестановок из n элементов Pn  Dn n! .
Пусть A : a1 , a 2 ,..., a n  – множество всех перестановок чисел 1, 2, …, n ;
30
Ai :
 a , a ,..., a 

ai  i – множество тех перестановок, у которых на i -м
месте стоит число i , Ai  A \ Ai , i  1,2,..., n , например:
A1 : 1, a 2 ,..., a n  ;
A2 : a1 ,2,..., a n ;
An : a1 , a2 ,..., n ;
1
2
n
A1  A \ A1
.
Тогда пересечение A1  A2  ...  An совпадает с множеством беспорядков, а Dn
равно его мощности. Поэтому можно использовать формулу включенияисключения и найти мощности соответствующих множеств.
Имеем A  n! (так как во всех перестановках, входящих в Ai , положение
одного элемента (числа) фиксировано, то число таких перестановок совпадает с
числом перестановок n  1 элементов).
Если i  j , то Ai  Aj  (n  2)! (здесь фиксированы положения двух
элементов); вообще, мощность пересечения k множеств равна (n  k )! .
Заметим, что парных пересечений Ai  A j будет C n2 и мощность каждого
3
(n  2)!, тройных пересечений Ai  A j  Ak будет Cn с мощностью (n  3)! и т. д.
Таким образом, число беспорядков D n будет равно
n
Dn  A1  A  ...  An  A   Ai 
i 1
 ...  (1)
k
A
1i1 ..ik  n
i1
 A A
1i  j  n
i
j

 Ai2  ...  Aik  ...   1 A1  A2    An 
n
 n!Cn1 (n  1)!Cn2 (n  2)!...  (1) k Cnk (n  k )!
n
n!
 ...  (1) n cnn (n  n)!  (1) k Cnk (n  k )! (1) k
 (n  k )!
k!(n  k )!
k 0
n
n!
1
 1 1 1
  (1) k  n!1     ...  (1) n  .
k!
n! 
k 0
 1! 2! 3!
n
n!
Итак, Dn   (1) k .
k!
k 0
Возвращаемся к задаче о «секретарше».
Из полученной формулы числа беспорядков следует вероятность
D
1 1 1
1
lim Pn  lim n  lim (1     ...  (1) k )  e 1 .
n 
n  n!
n 
1! 2! 3!
n!
Рекуррентные формулы для числа беспорядков можно получить в виде
31
1 1 1
1
1
   ...  (1) n  (1) n1
)
1! 2! 3
n!
(n  1)!
1 1 1
1
 (1) n1  (n  1)n!(1     ...  (1) n )  (1) n 1  (n  1) Dn .
1! 2! 3!
n!
Полученное соотношение
Dn  (1) n 1  (n  1) Dn
похоже на соотношение, позволяющее рекуррентно вычислять факториалы
(n  1)!  (n  1)n! (всё отличие – слагаемое (1) n 1 ).
В связи с этим обстоятельством число беспорядков Dn называют
субфакториалом. Зная, что D1  0 найдем несколько значений D n :
D2  1  2 1  1 ; D3  3  1  1  2 ; D4  4  2  1  9 ; D5  5  9  1  44 .
Можно получить еще соотношение:
Dn  n  1!(1 
Dn2  (n  2) Dn1  (1) n2  (n  1) Dn1  (1) n2  Dn  (n  1) Dn1  (1) n2  (n  1) Dn  (1) n1 
 (n  1)( Dn1  Dn )
или
Dn 2  (n  1)( Dn1  Dn ) .
Упражнения
1.1. Пусть А – множество делителей числа 15, В – множество простых чисел,
меньших 10, С – множество четных, меньше 9. Перечислить элементы этих
множеств и найти А  В, А  С, В∩С, (А  С)∩В, А∩В∩С.
1.2. Пусть А=[–1;1], В=]–∞;0[, С=[0;2[. Найти следующие множества: А  С,
А∩В, А  В  С, (А  В)∩С, В∩С – и изобразить их на координатной прямой.
1.3. Найти подмножества X и Y множества Е, если для любого подмножества А
множества Е имеет место равенство А∩X = A  Y.
Изобразить на координатной плоскости множество, координаты (x;y) точек
которого удовлетворяют условию (1.4–1.6):
1.4. |x| + |y| = 1;
1.5. |x + y| ≤ 1 и |x – y| ≤ 1;
1.6. x2 –2x y ≤ 0.
1.7. В группе из 100 туристов 70 человек знают английский язык, 45 знают
французский язык и 23 человека знают оба языка. Сколько туристов в группе не
знают ни английского, ни французского языка.
1.8. В олимпиаде по математике принимало участие 40 учащихся, им было
предложено решить одну задачу по алгебре, одну по геометрии и одну по
тригонометрии. Результаты проверки решений представлены в табл. 1.2
32
Известно также, что ни одной задачи не решили трое. Сколько учащихся
решили все три задачи? Сколько учащихся решили ровно две задачи?
Таблица 1.2
Решены задачи
Количество
решавших
Решены задачи
Количество
решавших
По алгебре
По геометрии
По тригонометрии
20
18
18
По алгебре и геометрии
По алгебре и тригонометрии
По геометрии и тригонометрии
7
8
9
1.9. Пусть А – множество решений уравнения f(x) = 0, В – множество решений
уравнения g(x) = 0. Доказать, что для любых многочленов f(x) и g(x) множество
А  В является множеством корней уравнения f(x) × g(x) = 0, а А∩В – множеством
корней уравнения (f(x))2 + (g(x))2 = 0.
Верно ли это же утверждение, если f(x) – многочлен, а g(x) – рациональная
функция?
Найти область определения функций (1.10–1.16).
х
.
1 х
1.10. f(x) =
3  х  3 х .
1.11. f(x) = 3
1.12. f(x) =
2 х  3х .
1.13. f(x) = log 3  х х2  1 .
1.14. f(x) =
х5
lg(9  х)

.
1.15. f(x) =

log 2 x
.
arccos2 х 
1.16. f(x) = lg[(1,25) 1 x  (0,4096)1 x ] .
2
Найти множество значений функций (1.17–1.18).
1.17. f(x) =
x 2  2x  2 .
1.18. f(x) =
2x
.
1 x2
Найти обратную функцию y = f –1(x) для функции y = f(x) (1.19–1.20).
1
1.19. y = x2 + 1, x  ] –∞; 0].
1.20. y = 1 + .
x
Записать множества А, В и С перечислением их элементов и найти А  В, В∩С,
(А  В)∩С, А∩В∩С (1.21–1.22).
1.21. А – множество делителей числа 12; В – множество корней уравнения
x – 6x + 5 = 0; C – множество нечетных чисел x таких, что 3 ≤ x ≤ 12.
2
1.22. А – множество четных чисел x, 3 < x < 10; В – множество делителей числа
21; С – множество простых чисел, меньших 12.
1.23. Привести примеры числовых множеств А и В таких, что:
а) А  В = R, А∩В = Ø;
б) А  В = А, А∩В = В.
33
Найти А  В, А∩В, А∩С, В  С, А∩В∩С, (А  В)∩С и изобразить эти множества
на координатной прямой (1.24–1.26).
1.24. A = [0; 3], B = ]1; 5[, C = ]–2; 0].
1.25. A = ] –∞; 1], B = [1; +∞[, C = ]0; 1[.
1.26. A = [–3; 1], B = [2; +∞[, C = ]– ∞; –2[.
Множества А и В – подмножества основного множества R. Найти А  В, А∩В,
А  B , A ∩В, A  B и изобразить эти множества на координатной прямой
(1.27–1.30).
1.27. A = ]–1; 0], B = [0; 2[.
1.28. A = [0; 3[, B = ]–1; +∞[.
1.29. A =]–∞; 1], B = ] –∞; –3[.
1.30. A = ]0; +∞[, B = [–1; 1[.
1.31. Множества А и В являются подмножествами
множества Е (рис. 1.17). Указать штриховкой множества:
а) А  B , A  B ;
б) A  B , A ∩В;
в) А∩В, A  B ;
г) A  B , ( A ∩В)  (А∩ B ).
А
Е
В
Рис. 1.17. Множества
А, В, Е
1.32. А – подмножество множества натуральных чисел,
каждый элемент множества А есть число, кратное или 2, или 3, или 5. Найти
число элементов в множестве А, если среди них имеется: 70 чисел, кратных 2; 60
чисел, кратных 3; 80 чисел, кратных 5; 32 числа, кратных 6; 35 чисел, кратных 10;
38 чисел, кратных 15, и 20 чисел, кратных 30.
1.33. В штучном отделе магазина посетители обычно покупают либо один
торт, либо одну коробку конфет, либо один торт и одну коробку конфет. В один
из дней было продано 57 тортов и 36 коробок конфет. Сколько было покупателей,
если 12 человек купили и торт, и коробку конфет?
1.34. В спортивном лагере 65% ребят умеют играть в футбол, 70% – в
волейбол и 75% – в баскетбол. Каково наименьшее число ребят, умеющих играть
и в футбол, и в волейбол, и в баскетбол?
1.35. Каждый из учеников класса в зимние каникулы ровно два раза был в
театре, при этом спектакли А, В и С видели соответственно 25, 12 и 23 ученика.
Сколько учеников в классе? Сколько из них видели спектакли А и В, А и С, В и С?
1.36. В течение недели в кинотеатре демонстрировались фильмы А, В и С. Из
40 школьников, каждый из которых просмотрел либо все три фильма, либо один
из трех, фильм А видели 13, фильм В – 16, фильм С – 19. Найти, сколько учеников
просмотрели все три фильма.
34
1.37. В отряде из 40 ребят 30 умеют плавать, 27 умеют играть в шахматы и
только пятеро не умеют ни того, ни другого. Сколько ребят умеют плавать и
играть в шахматы?
1.38. На уроке литературы учитель решил узнать, кто из 40 учеников класса
читал книги А, В и С. Результаты опроса оказались таковы: книгу А читало 25
учащихся, книгу В – 22, книгу С – также 22. Книгу А или В читали 33 ученика, А
или С – 32, В или С – 31; все три книги прочли 10 учащихся. Сколько учеников
прочли только по одной книге? Сколько учащихся не читали ни одной из этих
трех книг?
1.39. Среди абитуриентов, выдержавших приемные экзамены в вуз, оценку
«отлично» получили: по математике – 48 абитуриентов, по физике – 37, по
русскому языку – 42, по математике или физике – 75, по математике или русскому
языку – 76, по физике или русскому языку – 66, по всем трем предметам – 4.
Сколько абитуриентов получили хотя бы одну пятерку? Сколько среди них
получили только одну пятерку?
1.40. Найти пересечение числовых множеств А и В, если каждый элемент
множества А имеет вид 4n + 2, n  N, а каждый элемент множества В имеет вид 3n,
n  N.
1.41. Укажите множество действительных чисел, соответствующих записи:
а) А = {x | 3 x – 2 > 0};
г) M = {x | 5 ≤ x ≤ 6, x  N};
2
б) B = {x | x + x + 1 > 0};
д) С = {x | x 2 – 5 x + 6 = 0};
в) D = {x | –3 ≤ x < 9, x  Z};
e) Z = {x | x 2 – 3 x – 4 ≤ 0}.
1.42. Опишите множество М точек плоскости, заданных характеристическим
свойством:
а) X = {M | |AM| < 4};
г) Y = {M | |AM| = |BM| = |CM|};
б) A = {M | |MO| ≥ 5};
д) C = {M | |MK| + |ML| ≤ 6};
в) B = {M | |MK| < |MQ|};
е) Z = {M | |MQ| = |MP| = 3}.
1.43. Дано множество Mi:
1
n  N };
n2
1
б) M2 = {n3 – 2| n  N};
д) M5 = {
n  N };
n 1
1
1
n  N }.
в) M3 = { n  N };
е) M6 = {
2
n
2n
1. Приведите по три примера элементов множества Mi.
а) М1 = {n2 + 1| n  N};
г) M4 = {
1
,
9
3. Укажите, каким из множеств не принадлежат указанные числа.
эти утверждения символически.
2. Укажите, каким из множеств принадлежат числа 3, 4, 5, 13, 25,
1.44. Приведите по три примера конечных и бесконечных множеств.
35
1 1
, .
6 4
Запишите
1.45. Задайте характеристическим свойством множество:
а) всех параллелограммов;
б) всех прямоугольников;
в) всех квадратов;
г) всех равнобедренных треугольников;
д) всех ромбов;
е) всех прямоугольных треугольников.
1.46. Какие из следующих соотношений справедливы:
а) А  Ø = А;
в) А∩Ø = Ø;
д) А  A = А;
б) А  Ø = Ø;
г) А∩Ø = Ø;
е) А\А = Ø?
1.47. Дано множество А = {a, b, c, {a, b}, {a}, { a, b, c, d}, { a, b, c }}.
1. Какие из элементов этого множества являются множествами?
2. Какие из следующих записей верны?
а) a  A;
в) a  A;
д) { a, b, c, d}  A;
б) {a} A;
г) {a}  A;
е) { a, b, c, d} A.
1.48. На множестве U всех букв русского алфавита заданы множества А, В и С:
А = {ё, к, л, м, н}; В = {к, о, з, ё, л}; С = {б, ы, ч, о, к}.
Найдите следующие множества и изобразите их кругами Эйлера:
а) А∩В;
в) (А∩В)  С;
д) D = U \ (A  B  C);
б) А  В;
г) (А  С)∩В;
е) D = U \ (A∩B∩C).
1.49. Докажите, используя определения и круги Эйлера:
а) А∩(А  В) = А;
б) А  (А∩В) = А.
1.50. Даны отрезки А = [–4; 5], B = (2; 6], C = (5; 10]. Найдите следующие
множества и изобразите их кругами Эйлера:
а) (А  В)  С;
в) А∩В;
д) (С  В)\(А∩В);
б) (А∩В)  С;
г) (А  В)\(А∩В);
е) (А  С)\(А∩В).
1.51. В результате социологического опроса студентов факультета
программирования о занятиях в свободное от занятий время выяснилось, что из
100 человек:
18 – любят только читать книги;
24 – читают книги, но не ходят в театр;
7 – читают книги и посещают театр;
22 – посещают дискотеки и читают книги;
47 – ходят на дискотеки;
9 – посещают театр и дискотеки;
13 – лежат на диване перед телевизором, занимаются только просмотром всех
возможных каналов телевидения.
Найти:
1) сколько студентов любят ходить в театр;
2) сколько студентов читают книги, посещают театр, но не дискотеки;
36
3) сколько студентов посещают либо дискотеки, либо театр;
4) сколько студентов, посещая дискотеки и театр, не любят читать книги;
5) сколько студентов предпочитают только дискотеки;
6) сколько студентов посещают либо дискотеки, либо театр, либо читают
книги.
1.52. Определить вид множества по его мощности:
а) {x|x R и x  5 , x < 5};
б) {x|x R и x2 < 0};
в) множество четырехугольников с пятью вершинами;
5
г) {x|x  R и
, x > 5};
4x
д) множество городов нашей страны, начинающихся с буквы Ъ.
1.53. Определить мощность множества:
а) {{a}, f};
б) {0};
в) состоящего из букв слова «математика»;
г) состоящего из букв слова «перпендикулярные»;
д) состоящего из цифр числа 635252;
е) состоящего из цифр числа 1010111.
1.54. Выполните действия и определите мощность полученного множества:
а) A = {5, 7, 9}  {12, 15}, B = {5, 7, 9}∩{12, 15};
б) A = {5, 7, 9}∩{5, 57, 59}, B = {5, 7, 9}  {5, 57, 59};
в) A = {x|x – звонкий согласный звук}, В = {x|x – глухой согласный звук},
А  В = ?, А∩В = ?;
г) {1, 2, 3}\{2, 3};
д) {1, 2, 3}\{4, 5};
е) {x2 + y2 ≤1}\{x2 + y2 =1}.
1.55. Даны множества A = {1, 2, 3}, В = {x, y, z}, C = { ; }.
1. Запишите декартовы произведения множеств: а) А×В; б) В×А; в) В×С;
г) С×В; д) А×С; е) С×А.
2. Верно ли, что для декартова произведения справедлив переместительный
закон? Докажите вывод.
1.56. Постройте множество А2, если:
а) А = {0, 1};
в) А = {0, 2, 4, 6, 8};
б) A = {x, y, z};
г) A = {1, 3, 5, 7};
д) A = {день, ночь};
е) A = { a, b, c, d}.
1.57. Из 100 студентов факультета программирования 42 посещают
спортивные секции, 30 – занятия НСО, а 28 – кружки художественной
самодеятельности. На занятия НСО и спортом успевают ходить 5 студентов,
спортом и художественной самодеятельностью – 8, а сразу все три увлечения
имеют три студента.
37
Сколько студентов:
а) не посещают ни одно из этих объединений по интересам;
б) занимаются только спортом;
в) занимаются либо в НСО, либо в художественной самодеятельности;
г) занимаются либо спортом, либо художественной самодеятельностью, но не
в НСО;
д) занимаются или в НСО, или художественной самодеятельностью, но не
спортом?
1.58. Решите задачи.
1. В группе из 26 человек выбирают актив: старосту, физорга, профорга и
культорга. Сколькими способами могут избрать актив группы?
2. Сколько различных спортивных прогнозов могут дать болельщики перед
началом первенства по футболу, если в высшей лиге участвуют 16 команд и
разыгрываются три медали: золотая, серебряная и бронзовая?
3. Сколькими способами в бригаде из шести операторов можно распределить 3
путевки в профилакторий, на турбазу и в дом отдыха?
4. Для подведения итогов олимпиады по компьютерному моделированию
избрали жюри в составе председателя, заместителя председателя и трех членов
жюри. Сколькими способами можно выбрать жюри из 12 преподавателей
кафедры информатики?
5. Сколькими способами можно устроить на работу 10 выпускников
факультета программирования на различные должности в 5 вычислительных
центрах?
6. Сколькими способами можно устроить на летнюю практику 10 студентов на
3 предприятия города?
1.59. Решите задачи.
1. Из всех студентов вашей группы на беседу с деканом приглашены пятеро.
Сколькими способами это можно сделать?
2. Сколько существует вариантов, чтобы из букв слова «студент» составить
всевозможные кортежи длиной 5?
3. Сколько существует различных шестизначных телефонных номеров?
1.60. Решите задачи.
1. Сколько существует способов поставить на книжную полку в беспорядке
собрание сочинений, состоящее из 7 томов?
2. Из цифр 3, 4, 5, 6 составлены четырехзначные числа. Сколько вариантов
таких чисел можно найти, если среди найденных четверок нет чисел,
заканчивающихся на 36?
3. Сколько всевозможных кортежей длиной 7 можно составить из слова
«машиностроение»?
38
Решение задач 1.1–1.20
1.1. Имеем: A = {1, 3, 5, 15}, B = {2, 3, 5, 7}, C = {2, 4, 6, 8}.
Исходя из определений объединения и пересечения множеств, получаем
A  B = {1, 2, 3, 5, 7, 15}, B∩C = {2}, A  C = {1, 2, 3, 4, 5, 6, 8, 15}, поэтому
(A  C)∩В = {2, 3, 5}. Множества А и С не имеют общих элементов, следовательно
B∩C = Ø и А∩B∩C = Ø.
1.2. Легко находим, что A  C = [–1;2[, A∩B = [–1; 0[, А  B  C=]–∞; 2[,
(A  B)∩C = [0; 1], B∩C = Ø.
1.3. Если равенство
A∩X = A  Y
(1.10)
имеет место для любого подмножества А множества Е, то оно справедливо и в
том случае, когда А совпадает с множеством Е и когда А является пустым
множеством, так как для всякого множества Е по определению Е  Е и Ø  Е . При
А = Е из (1.10) следует Е∩X = Е  Y . Так как Х и Y – подмножества множества Е,
то Е∩X = Х и Е  Y = Y, таким образом, получаем Х = Е.
Если А = Ø, то из (1.10) получаем Ø∩Х = Ø∩Y. Заметим, что Ø∩Х = Ø и
Ø∩Y=Ø , следовательно, Y = Ø. Итак, X = E и Y = Ø.
y
1
–1
1
x
0
–1
Рис. 1.18. Множество
точек
1.4. Легко видеть, что если точка (х; у)
принадлежит
данному
множеству,
то
ему
принадлежат также точки (–х; –у), (–х; у), (х; –у), т.е.
это множество симметрично относительно обеих
координатных осей и начала координат. Поэтому
рассмотрим
точки,
принадлежащие
первому
квадранту: x ≥ 0, y ≥ 0. Координаты точек множества
удовлетворяют уравнению х + у = 1, а так как x ≥ 0 и
y ≥ 0, то это есть отрезок с концами в точках (0; 1) и
(1; 0). Все множество (рис. 1.18) получаем из этого
отрезка симметрией сначала относительно оси Ох,
затем
симметрией
полученного
множества
относительно оси Оу.
1.5. Перепишем условие x  y  1 в виде –1 ≤ x + y ≤ 1. Множество точек,
координаты которых удовлетворяют условию x + y ≤ 1, есть полуплоскость,
граница которой – прямая x + y = 1, причем та полуплоскость, которая содержит
точку (0; 0). Множество точек, определяемое неравенством x + y ≥ –1, также есть
полуплоскость, содержащая точку (0; 0), граница этой полуплоскости – прямая
х + у = –1. Множество точек, для координат которых выполняются оба
неравенства, есть пересечение этих полуплоскостей, т.е. есть полоса, границами
которой являются параллельные прямые x + y = 1 и x + y = –1.
Аналогично устанавливается, что условие x  y  1 определяет полосу,
границами которой являются параллельные прямые x – y = 1 и x – у = – 1. Если
39
координаты точки М удовлетворяют одновременно условиям x  y  1 и
x  y  1 , то точка М принадлежит пересечению множеств, определяемых
каждым из этих условий, т.е. искомое множество есть пересечение указанных
полос (рис. 1.19) – это квадрат с вершинами в точках (0; 1), (1; 0), (–1; 0), (0; –1).
1.6. Так как y = –x2 + 2x есть парабола, пересекающая ось абсцисс в точках
x = 0 и x = 2, имеющая прямую x = 1 осью симметрии, вершина которой имеет
координаты (1; 1), то множество точек, координаты которых удовлетворяют
условию y ≤ –x2 + 2x, ограничено этой параболой, точки множества лежат на
параболе и ниже ее (рис. 1.20).
y x-y =
y
-1
1
1
x-y =
1x
-1
0
2
0
1
-1
1
x
x+y
=1
x+ y =
-1
Рис. 1.19. Множество
точек полос
Рис. 1.20. Множество точек,
ограниченных параболой
1.7. Множество туристов данной группы, знающих английский язык,
обозначим А, знающих французский язык – В, тогда туристы, знающие и тот и
другой языки, образуют множество A∩B. По условию |A| = 70, |B| = 45, |A∩B| = 23.
Находим |A  B| = 92. Множество A  B есть множество туристов, знающих хотя бы
один из этих двух языков, следовательно, не знают ни французского, ни
английского 8 туристов из группы.
1.8. Эта задача решается легче, если прибегнуть к наглядному изображению
множеств (рис. 1.21). Введем обозначение: А – множество учащихся, решивших
задачу по алгебре, В – по геометрии, С – по тригонометрии.
Если x – число учащихся, решивших все три задачи, то (7 – x) есть число
учащихся, решивших задачи по алгебре и геометрии, но не по тригонометрии,
(8 – x) – по алгебре и тригонометрии, но не по геометрии, (9 – x) – геометрии и
тригонометрии, но не по алгебре.
Если a, b, c – количество учащихся, решивших только одну задачу
соответственно по алгебре, геометрии и тригонометрии, то имеем:
|A| = 20 = 15 + a – x,
|B| = 18 = 16 + b – x,
|C| = 18 = 17 + c – x,
откуда находим: а = 5 +x , b = 2 + x, с = 1 + x.
Всего в олимпиаде принимало участие 40 человек, три не решили ни одной
задачи, следовательно, хотя бы одну задачу решили 37 учащихся. Те, кто решил
40
хотя бы одну задачу, образуют множество A  B  C, таким образом,
m(A  B  C) = 37. А так как m(A  B  C) = a + b + c + 24 – 2x, то, подставляя
выражения для a, b и c, отсюда находим x = 5.
A
b
a
B
Рис. 1.21. Обозначение множеств
к решению задачи 1.8
7-x
8-x
x
9-x
c
C
Итак, все три задачи решило пятеро. Число учащихся, решивших ровно по две
задачи, равно 24 – 3х, т.е. равно 9.
1.9. Пусть С – множество корней уравнения f(x)·g(x) = 0. Если a C, f(a)·g(a) =0
и либо a  A, либо a  B, т.е. a  А  В. Верно и обратное: из a А  В следует a  C.
Действительно, если a  А  В, то либо a А, либо a В. Если, например, a A, то
f(a) = 0. Функция g(x) – многочлен, область ее определения – вся числовая
прямая, следовательно, функция g определена в точке а и f(a)·g(a) = 0.
Аналогично рассматривается случай a  B. Из сказанного следует, что С = А  В.
Если одна из функций, например g(x), не многочлен, а рациональная функция,
то утверждение С = А  В, вообще говоря, уже неверно. Например, если
x2  3
, f(x) = x – 1, то x = 1  A(f(1) = 0), однако при x = 1 функция g(x) не
g(x)  2
x 1
определена. Следовательно, при x = 1 не определена функция f(x)·g(x) и 1 не
может принадлежать множеству ее нулей.
Рассмотрим теперь уравнение f 2(x) + g2(x) = 0, множество его корней
обозначим D. Если a  D, то f(a)= 0, g(a) = 0, т.е. a  А∩В. Обратно, если a А∩В, то
a  А и f(a)= 0, a  B и g(x)= 0, следовательно, a D. Таким образом, D = А∩В.
1.10. Функция f(x)  3  x  3  x определена, если 3 + x ≥ 0 и 3 – x ≥ 0, т.е.
определена на пересечении множеств, заданных неравенствами x ≥ –3 и x ≤ 3.
Таким образом, D(f) = [–3; 3].
1.11. Функция определена при всех значениях x, кроме x = ±1. Ее область
определения:
]–∞; –1[  ]–1; +1[  ]1; + ∞[.
41
1.12. Функция определена при всех значениях аргумента, для которых
x
 3
2x – 3x ≥ 0. Перепишем это неравенство в виде   1 , откуда, логарифмируя по
 2
основанию 3/2 (заметим, что 3/2 >1), получим x ≤ 0. Область определения
функции такова: ]–∞; 0].
1.13. Логарифм определен для любого положительного числа при любом
положительном не равном единице основании. Таким образом, функция
определена для всех значений x, для которых x2 – 1 > 0 и 3 + x > 0, 3 + x ≠ 1.
Решая совместно неравенства, находим, что
x  ]–3; –1[  ]1; + ∞[.
Учитывая, что x ≠ –2, получаем следующую область определения функции:
]–3; –2[  ]–2; –1[  ]1; + ∞[.
1.14. Функция определена, если выполнены условия: x + 5 ≥ 0,
9 – x ≠ 1, т.е. x ≥ –5, x < 9, x ≠ 8.
Следовательно, D(f) = [–5; 8[  ]8; 9[.
9 – x > 0,
1.15. Функция arccos t определена на отрезке [–1; 1], обращается в нуль при
t= 1, значит, функция f(x) определена при выполнении условий: –1 ≤ 2x – 1 < 1 и
2x > 0, 2x ≠ 0. Из первого неравенства следует 0 ≤ x < 1, откуда, учитывая, что
x≠1/2 и x ≠ 0, получаем следующую область определения функции:
]0; 1/2[  ]1/2; 1[.
1.16. Функция определена для тех значений аргумента, для которых
положительно
выражение,
стоящее
под
знаком
логарифма,
т.е.
1  x2
1 x
(1,25)
 (0,4096)
 0 . Заметим, что 1,25 = 5/4; 0,4096 = (5/4–4), поэтому
5
неравенство можно переписать в виде  
 4
( x 2  1)
5
 
 4
( 4  4 x )
, откуда следует, что
х удовлетворяет неравенству x2 – 1 < 4 + 4x = 0 или x2 – 4x – 5 < 0. Корни
уравнения x2 – 4x – 5 = 0 есть –1 и 5, поэтому x2 – 4x – 5 < 0 при –1 < x < 5.
Область определения функции такова: ]–1; 5[.
1.17. Квадратичную функцию φ(x) = x2 + 2x + 2 представим в виде
φ(x) = (x + 1)2 + 1. Очевидно, что при x = –1 она принимает наименьшее значение
равное 1. Множество значений функции φ(x) есть промежуток [1; + ∞[. Отсюда
следует, что для функции
(x) множеством значений является также
промежуток [1; + ∞[.
1.18. Заметим, что функция нечетная. Рассмотрим x ≥ 0. Из неравенства
2ab ≤ a2 + b2 следует, что 2x ≤ 1 + x2 при всех x, причем равенство достигается
тогда и только тогда, когда x = 1 (a = b). Таким образом, при x ≥ 0
2x
 1.
0≤
1  x2
Функция нечетная, значит, множество ее значений есть отрезок [–1; +1].
42
1.19. На промежутке ]–∞; 0[ функция y = x2 + 1 монотонно убывает.
Действительно, если x1 < x2 ≤ 0, то
y(x1) – y(x2) = x12  x22 = (x1 – x2)( x1 + x2) >0
(так как обе скобки отрицательны). Следовательно, существует обратная функция.
Решаем уравнение y = x2 + 1 относительно x, учитывая, что x отрицательно,
получаем x = – y  1 . Таким образом, f –1(x) = – x  1 .
1
1
 , то y(x1) = y(x2) лишь при x1 = x2. Функция
x1 x2
устанавливает взаимно однозначное соответствие между областью определения и
множеством значений и поэтому имеем обратную функцию. Решая уравнение
1
1
1
y = 1 + относительно x, получаем x =
, тогда f –1(x) =
.
y 1
x
x 1
1.20. Так как y(x1) – y(x2) =
Ответы к задачам 1.21–1.40
1.21. A  B = {1, 2, 3, 4, 5, 6, 12}, B∩C = {5}, (A  B)∩C = {3, 5}, A∩B∩C = Ø.
1.22. A  B = {1, 3, 4, 6, 7, 8, 21}, B∩C = {3, 7}, (A  B)∩C = {3, 7}, A∩B∩C = Ø.
1.23. Пример: а) A = ]–∞; a], b = ]a; +∞[, где а – любое действительное число;
б) В – подмножество любого множества А.
1.24. A  B = [0; 5[, A∩B = [1; 3], A∩C = {0}, B  C = ]–2; 0]  ]–1; 5[,
A∩B∩C = Ø, (A  B)∩C = {0}.
1.25. A  B = ]–∞; +∞[, A∩B = {1}, A∩C = ]0; 1[, B  C = ]0; +∞[, A∩B∩C = Ø,
(A  B)∩C = ]0; 1[.
1.26. A  B = [–3; 1]  [2; +∞[, A∩B = Ø, A∩C = [–3; –2[, B  C = ]–∞;–2[  ]2; +∞[,
(A  B)∩C = [–3; –2[, A∩B∩C = Ø.
1.27. A  B = ]–1; 2[, A∩B = {0}, A  B = ]–∞; 0]  [2; +∞[,
A  B = ]–∞; –1]  [2; +∞[.
1.28. A  B = ]–1; +∞[,
A∩B = [0; 3[,
A ∩B = ]–1; 0[  [3; +∞[, A  B = ]–∞; –1].
A ∩B = ]0; 2[,
A  B = ]–∞; –1]  [0; 3[,
1.29. A  B = ]–∞; 1], A∩B =]–∞; 3[, A  B =]–∞; +∞[, A ∩B = Ø, A  B = ]1; +∞[.
1.30. A  B = [–1; +∞[, A∩B = ]0; 1[, A  B = ]–∞; –1[  ]0; +∞[, A ∩B = [–1; 0],
A  B = ]–∞; –1[.
43
1.31.
а)
б)
в)
г)
1.32. 125.
1.33. 81.
1.34. 10%.
1.35. 30; 18; 5.
1.36. 4.
1.37. 22.
1.38. Только книгу А– 6, только книгу В – 5, только книгу С – 4, не прочитали
ни одной – 3.
1.39. 94; 65.
1.40. 12n + 6(n = 0, 1, 2, …).
Глава 2. ВВЕДЕНИЕ В ТЕОРИЮ ГРАФОВ
2.1. Определения, обозначения графа
Теория графов зародилась в 1736 году, когда Леонард Эйлер решил задачу о
кенигсбергских мостах. Город расположен на реке Прегель и имел семь мостов
как показано на рис. 2.1. Мог ли житель этого города, выйдя из дома, вернуться
обратно, пройдя по каждому мосту ровно один раз?
Или задача о блок-схеме ЭВМ последовательного действия, которая состоит
из множества устройств M (рис. 2.2). Рассмотрим информационный обмен, между
устройствами ЭВМ, предложенный Дж. Фон Нейманом (1903–1957):
М : a, b, c, d , e,
где а – устройство ввода;
b – арифметическое устройство;
с – устройство управления;
44
d – запоминающее устройство;
е – устройство вывода.
Река
Рис. 2.1. Схема мостов
Устанавливается
совокупность
между
множеством устройств ЭВМ – М и связями
a
между ними.
Простым графом называется совокупность
множества V (вершин графа) и E – конечного
d
b
c
множества бинарных отношений – ребер.
Обозначается G:  V,E ,
e
где V – носитель графа (множество вершин);
E – сигнатура графа (множество дуг).
Угловыми скобками
будем обозначать
Рис. 2.2. Блок-схема ЭВМ
совокупности.
Синонимом слова «совокупность» является
сочетание «многосортное множество». Если в обычном множестве все элементы
имеют одну и ту же математическую структуру (природу), то в многосортном
множестве элементы неоднородны по своей структуре, в графе, например, имеем
два сорта: элементы вершин vi и пары из этих элементов (дуги) vi, vj. Пример
простого графа на рис. 2.3.
b
V : {a, b, c, d , e};
d
E : {ab, ac, bc, cd };
G : V , E .
a
e
c
Рис. 2.3. Простой граф
В множестве E элементы могут повторяться. Повторяющиеся элементы
называют кратными ребрами.
45
Вершины u и v – смежные, ребро l – инцидентно вершинам u, v;
вершины u и v инцидентны ребру l;
вершины u и v – концы ребра l (рис. 2.4).
Вершина u
Вершина v
l = uv
Ребро l
Рис. 2.4. Элементы графа
Два разных ребра называются смежными, если они имеют, по крайней мере,
одну общую вершину.
Ребро вида uu называют петлей.
Таким образом, простой граф – это граф без петель и кратных ребер.
Например, граф, изображенный на рис. 2.5 не
b
будет простым, так как есть петля и кратное ребро
d
ас, т.е. G : V,E ,
a
e где V : a, b, c, d, e;
c
E : ab, ac, ac,bc,bb, cd .
Рис. 2.5. Непростой граф
Ориентированный граф – это совокупность
множества вершин и множества дуг (рис. 2.6).
Дугой называют направленное ребро.
b
a
Пример: G : V , E ,
d
c
где V : a, b, c, d , e;
e
E : (ab), (dc), (ac), (ca), (cd ), (bb).
Рис. 2.6. Ориентированный граф
Степенью вершины графа называется число инцидентных ей ребер. У
вершины вида «петля» степень равна 2. У изолированной вершины е степень
равна 0, у висячей вершины d степень равна 1 (см. рис. 2.6).
Порядком графа называют число его вершин.
Граф, в котором нет ребер, называют пустым. Пустой граф порядка n будем
обозначать N n . Все вершины пустого графа являются изолированными.
Простой граф, в котором любые две вершины смежны, называют полным.
Обозначение полного графа порядка n: K n . Число ребер в K n равно
n  (n  1)
Cn2 
.
2
46
Граф называется регулярным степени r, если степени всех его вершин равны r.
Графы N n и K n – регулярные, их степени 0 и n–1. Регулярный граф степени 3
называют кубическим. В частности, кубическим будет граф, вершины и ребра
которого соответствуют вершинам и ребрам куба. Кубическим является и граф
Петерсона, изображенный на рис. 2.7.
Рис. 2.7. Граф Петерсона
Платоновыми графами называют графы правильных многогранников. Все они
регулярные.
Граф называется двудольным, если множество его вершин V представлено в
виде объединения двух непересекающихся непустых множеств V1 и V2 и при этом
каждое ребро графа соединяет какую-либо вершину из V1 с какой-либо вершиной
из V2. Множества вершин V1 и V2 будем называть долями графа. Заметим, что
вершины двудольного графа можно «раскрасить» в два цвета так, что каждое
ребро будет иметь концы разного цвета.
Полным двудольным графом K n , m называют двудольный граф, в котором доли
имеют соответственно n и m вершин и любые две вершины, входящие в разные
доли, смежны. K n , m содержит n  m ребер.
Звездным называют граф K1,n . В нем n висячих вершин и одна вершина
степени n. На рис. 2.8 изображены двудольные графы.
а)
б)
в)
Рис. 2.8. Двудольные графы: а – K2, 3; б – K3, 3; в – K1, 6.
2.2. Операции над графами
Объединением графов
G1  G2 : V1  V2 , E1  E2 .
G1 : V1 , E1
47
и
G2 : V2 , E2
называют
граф
Объединение графов – дизъюнктивное, если объединяемые графы не имеют
общих вершин: V1  V2  .
Объединение графов ассоциативно. Запись операции объединения можно
сделать в виде G1  G2  G3  ...  Gn   Gi .
i
Пример объединения графов (рис. 2.9), если заданы графы G1 и G2.
G1
G1  G2
G2
Рис. 2.9. Объединение графов
Соединение графов G1 :  V1 , E1 и G2 :  V2 , E2 – это граф G1  G2 , который
получается из дизъюнктного объединения графов G1  G2 добавлением
всевозможных ребер вида v1v2, где v1V1, v2V2. Например, N n  N m  K n ,m .
Пример соединения графов G1 и G2 на рис. 2.10
Рис. 2.10. Соединение графов G1 и G2, приведенных на рис. 2.9
G1+G2
Дополнением к графу G :  V , E
называют граф G : V , E , в котором
множество вершин совпадает с множеством вершин исходного графа G и
вершины смежны тогда и только тогда, когда они не смежны в графе G
(рис. 2.11). Например, N n  K n , K n  N n . Дополнение к дополнению G совпадает
с G: G  G .
а)
б)
Рис. 2.11. Граф G (а), дополнение G (б)
48
Произведение графов G1G2 (или декартово произведение): любые две
вершины (u1 и u2) и (v1 и v2) из V = V1  V2 смежны в G1G2. Произведение двух
графов G1 и G2 показано на рис. 2.12.
u1, u2
u1
G1:
G2:
u2
v2
w2
u1, v2
u1, w2
v1 , v2
v1, w2
G1  G2:
v1
v1, u2
Рис. 2.12. Произведение двух графов
2.3. Изоморфные графы
Графы G1 :  V1 , E1 и G2 :  V2 , E2 называются изоморфными, если существует
такое взаимно однозначное соответствие φ: V1  V2 , при котором для любых двух
вершин первого графа B  V1 число соединяющих их ребер, равно числу ребер,
соединяющих соответствующие им вершины второго графа φ(В), φ(v).
На рис. 2.13 изображены изоморфные графы.
4
5
4
6
3
1
1
2
3
6
5
2
G2
G1
Рис. 2.13. Изоморфные графы
Каждая вершина инцидентна трем ребрам. В изоморфных графах одинаковое
число вершин, ребер (петель и кратных ребер). Однако это условие не является
достаточным для изоморфности.
Два графа, представленные на рис. 2.14, не изоморфны.
Рис. 2.14. Неизоморфные графы
49
Отношение изоморфизма графов обладает свойствами рефлексивности,
симметричности и транзитивности, т.е. является отношением эквивалентности.
Граф G ' : V ' , E ' называется подграфом графа G :  V , E (обозначение –
G  G ), если V   V , E   E . Заметим, если графы G1 и G2 – изоморфные, то для
любого графа G1 найдётся изоморфный ему граф, являющийся подграфом G2.
Реберным графом L(G) графа G называется граф, множество вершин которого
находится во взаимнооднозначном соответствии с множеством ребер G, причем
две вершины в L(G) смежны тогда и только тогда, когда смежны
соответствующие им ребра графа G (рис. 2.15).
3
2
3
4
2
4
1 G
2
1
2
L(G)
3
1 G
1
1
L  G1 
3
2
3
2
1
1
G2
L  G2 
3
Рис. 2.15. Реберные графы
2.4. Матрицы графа
Граф полностью определяется или его смежностью, или его инцидентностями.
Эту информацию о графе представляют в матричной форме.
Граф порядка n называется помеченным, если его вершинам присвоены метки–
числа от 1 до n (у разных вершин разные метки). Вершина часто отождествляется
с её меткой.
Матрицей смежности помеченного графа называется матрица A   aij  , где aij
– число ребер, соединяющих вершины i и j. На рис. 2.16 изображен помеченный
граф 5-го порядка и приведена его матрица смежности.
Матрица смежности А(G) графа, вообще говоря, не симметрическая.
Подтверждение этого – приведенный пример. Однако, если помеченный граф не
содержит кратных ребер, петель, неориентированный, то матрица смежности А(G)
обладает свойствами:
1) каждый элемент матрицы – неотрицательное число;
2) матрица является симметричной AT  A ;
3) сумма элементов i-й строки равна степени вершины i;
50
4) пусть A и A – матрицы смежности изоморфных графов, тогда найдётся
такая матрица перестановок P, что A  PAP 1 . Матрица перестановок – матрица, в
каждой строке и каждом столбце которой находится ровно по одной единице, а
остальные элементы – нули.
1 2 3 4 5
3
4
1
 0 2 1 0 0

 Вершины
2
 2 0 1 1 0
A(G )   1 1 2 0 0 
3


5
1
2
4
 0 1 0 0 0
 0 0 0 0 0
5


Рис. 2.16. Матрица смежности графа G
Другой матрицей, связанной с графом G, в котором помечены n и m ребер без
петель, является матрица инцидентности B(G) = (bij):
для неориентированного графа:
bij = 1, если вершина vi инцидентна ребру ej;
bij = 0, если вершина vi неинцидентна ребру ej;
для ориентированного графа:
bij = 1, если вершина vi является началом дуги ej;
bij = 0, если вершина vi неинцидентна дуге ej;
bij = –1, если вершина vi является концом дуги ej.
Рассмотрим пример записи матрицы B(G) для ориентированного G1 и
неориентированного G2 графов, изображенных на рис. 2.17.
Граф можно задать списком дуг, указав при этом n – число вершин графа, m –
количество дуг графа, Е – массив дуг, состоящий из пар вершин (начало дуги ei;
конец дуги ej). Информацию о графе вводят в компьютер или в виде списка дуг,
или таблицей инцидентности. Например, орграф на рис. 2.18 можно задать
списком дуг или табл. 2.1.
Таблица инцидентности графа фактически есть матрица инцидентности. Из
определения B(G) следует, что в каждом из её столбцов два ненулевых элемента –
1 и +1, так как дуга выходит из вершины vi и входит в vj, если вершина vi или vj
неизолированные (висячие). Если просуммировать все строки матрицы B(G), то в
матрице получим 0, т.е. строки матрицы линейно зависимы. Любая строка
матрицы B(G) однозначно определяется остальными (n–1)-ми строками.
Если i-ю строку вершины vi вычеркиваем из матрицы B(G), то получаем
усеченную матрицу Вi' (G). Тогда ранги матриц B(G) и Вi' (G) будут равны.
Конечный граф можно представить тремя способами:
1) графически, диаграммой;
2) таблицами инциденций, смежности;
3) матрицей смежности или инцидентности.
51
Дуги
II
1
I II III IV V VI VII VIII
2
1

0
B(G1 )   0

0
1

VI
III
I
3
V
G1:
VII
VI
5
VIII
4
1
II
2
III
1

0
B(G 2 )   0

0
1

3
V
VII
VI
5
VIII
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0

0
0

 1
1 
1
2

3
4

5
В
е
р
ш
и
н
ы
I II III IV V VI VII VIII
VI
I
G2 :
1
1
0
0
0
4
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0

0
0

1
1 
1В
е
2 р

3 ш
и

4 н
ы
5
Рис. 2.17. Матрицы B(G1) и B(G2)
2
I
III
1
IV
n = 3;
m = 4;
E:={(1;2); (3;1); (2;3); (2;3)}.
II
3
Рис. 2.18. Задание орграфа списком дуг
Таблица 2.1
Таблица инцидентности орграфа
Дуги графа
Вершины
графа
I
II
III
IV
1
2
3
–1
1
0
1
0
–1
0
–1
1
0
–1
1
52
Такая форма записи удобна при решении многих логических,
производственных задач и при компьютерной обработке информации.
2.5. Связные графы
Граф называется связным, если его нельзя представить в виде дизъюнктивного
объединения графов и несвязным в противном случае. Любой граф можно
представить в виде дизъюнктивного объединения связных графов, каждый из
которых называют компонентой связности исходного графа. На рис. 2.19
изображены несвязный граф G1 (имеет 2 компоненты связности) и G2 (имеет 1
компоненту связности).
G1:
G2:
Рис. 2.19. Несвязный граф G1, и связный G2
Маршрутом в графе называется последовательность вершин и ребер
V0 , e1 ,V1 , e2 ,..., ek ,Vk , в которых любые два соседние элемента инцидентны. Каждому
маршруту соответствует последовательность его вершин V0 ,V1 ,V2 ,...,Vm ; V0
называют начальной вершиной маршрута, а Vm – конечной вершиной. При этом
говорят о маршруте из V0 в Vm. Маршрут удобно обозначать в следующем виде:
V0  V1  V2  ...  Vm .
Длиной маршрута называется число содержащихся в нем ребер. Тривиальный
маршрут имеет длину 0 (он не содержит ребер и определяется начальной
вершиной V0). Если V0  Vk , то маршрут замкнут, иначе открыт. Маршрут
называется цепью (рис. 2.20), если все его ребра различны, и простой цепью, если
все его вершины различны. Цикл в графе – замкнутая цепь, содержащая, по
крайней мере, одно ребро. Две вершины в графе Vk и Ve назовем связными, если в
графе существует маршрут из Vk в Ve.
V1
V2
V3
V4
V5
Рис. 2.19. Компоненты графа:
1) V1 ,V3 ,V1 ,V4 – маршрут, но не цепь;
2) V1 ,V3 ,V5 ,V2 ,V3 ,V4 – цепь, но не простая цепь;
3) V1 ,V4 ,V3 ,V2 ,V5 – простая цепь;
4) V1 ,V3 ,V5 ,V2 ,V3 ,V4 ,V1 – цикл, но не простой;
5) V1 ,V3 ,V4 – простой цикл
53
Граф является связным тогда и только тогда, когда любые две его вершины –
связные (рис. 2.21).
G1:
G2:
Рис. 2.21. Граф G1 – несвязный и содержит 3 компоненты связности;
граф G2 – связный (1 компонента связности)
Для орграфов цепь называется путём, а цикл – контуром. Если маршрут
M  V0 , e1 ,V1 , e2 ,V2 ,...ek ,Vk , то длина M равна k (обозначается M  k ).
Расстоянием между вершинами Vk и Ve называется длина кратчайшей цепи
Vk , Ve , а сама кратчайшая цепь называется геодезической. Диаметром графа G
(обозначается D  G  ) называется длина длиннейшей геодезической цепи.
Множество вершин, находящихся на одинаковом расстоянии n от вершины V
(обозначение – D V , n  ), называется ярусом.
Разделяющим множеством графа называется такое множество его ребер,
удаление которых приводит к увеличению числа компонент связности. Разрез –
минимальное разделяющее множество, т.е. такое, что никакое его собственное
подмножество не является разделяющим подмножеством. Ребро называется
мостом, если оно образует разрез (рис. 2.22).
l1
l4
l6
l9
l3
l2
l5
l11
l7
l8
l10
l13
l12
Рис. 2.22. Элементы графа:
1) l1 , l2 , l3 – разделяющее
множество, но не разрез;
2) l1 , l2  – разрез;
3) ребра l6 и l10 – мосты
Оценка числа ребер через число вершин и число компонент связности
Теорема. Пусть в простом графе n вершин, m ребер и k компонент связности.
 n  k    n  k  1
Тогда справедливы неравенства n  k  m 
.
2
2.6. Метрические характеристики графа
Пусть G : V , E – связный граф. Через d  u, v  обозначаем длину кратчайшей
цепи, связывающей вершины u и v.
54
Покажем, что d  u, v  обладает свойствами метрики.
1. Симметричность: u , v  V d  u, v   d  v, u  .
2. Неравенство треугольника: u, v,  V d  u, v   d (u, )  d , v  .
Действительно, объединив кратчайшие цепи из u в ω и из ω в v, получим
маршрут из u в v длиной d  u,    d , v  . Длина кратчайшей цепи из u в v будет
не более этой величины.
3. Невырожденность: u, v V d  u, v   0; d u, v   0  u  v .
Таким образом, на множестве вершин связного графа введена структура
метрики.
Эксцентриситетом вершины u называется наибольшее из расстояний от u до
других вершин графа: e  u   max vV d u, v  .
Минимальный эксцентриситет вершин графа называют радиусом графа:
r  G   min vV d  u, v  .
Теорема. Для произвольного графа G справедливы неравенства
r(G) d(G)  2r(G).
Доказательство. Первое неравенство следует непосредственно из
определений. Чтобы доказать второе неравенство, предположим: d(u, v) = d(G);
e(w) = r(G). Применяя неравенство треугольника, получаем
d(G) = d(u, v)  d(u, w) + d(w, v)  e(w) + e(w) = 2r(G),
т.е. d(G)  2r(G), что и требовалось доказать.
2.7. Алгоритм определения связности графа и числа его компонент
связности
Введенная ранее матрица смежности графа позволяет определить связность
графа и число его компонент связности.
Теорема. Элемент aij матрицы An ( A  (aij ) – матрица смежности) – множество
последовательных идентификаторов ребер, образующих цепь между vi и vj;
представляет собой множество цепей длины n, соединяющих вершины vi и vj.
При возведении в n-ю степень матрицы смежности A  (aij ) умножение
рассматриваем как конкатенацию (приписывание справа к идентификатору,
соответствующему i-й строке, идентификатора, соответствующего j-му столбцу),
а суммирование как объединение полученных в результате умножения слов.
Пример. Дан неориентированный граф (рис. 2.23).
55
1


a

A G    c
d




2
f
a
e
5
b
x
d
y
4
1
t
6
3
c
2
3
4
a
c
b
d
5
6
f
b
y
e
f
e
y
t
t
x
x


1

2 

3

4 

5 
6 

Рис. 2.23. Граф и его матрица A(G)
Найдём A2  A  A .
1


a

c
d




2
3
4
a
c
b
d
5
6
f
b
y
e
f
e
y
t
A G 
x
t
x
 1
 
1
 
a
2
 
3  c
 
d
4
 
5



6
 
2
3
4
a
c
b
d
5
6
f
b
y
e
f
e
y
t
A G 
x
t
x


1

2

3

4

5
6

Скалярно перемножаем 1-ю строку на 1-й столбец и получаем элемент
a112  0  0  a  a  cc  dd  0  0  0  0  aa, cc, dd ;
Аналогично получаем остальные элементы:
a122  0  a  a  0  cb  d  0  0  f  0  0  cb; a132  0  c  ab  c  0  d  0  0  0  0  y  ab;
a142  0  d  a  0  c  0  d  0  0  e  0  t  0; a152  0  0  af  c  0  d  e  0  0  0  x  af , de;
2
2
a1,6
 0  0  a  0  cy  dt  0  x  0  0  cy, dt; a2,1
 a  0  0  a  bc  0  d  f  0  0  0  bc;
2
a2,2
 aa  0  0  bb  0  0  ff  0  0  aa, bb, ff ; a232  ac  0  b  b  0  0  0  f  0  0  y  ac;
2
2
2
2
2
2
2
a2,4
 ad , fe; a2,5
 0; a2,6
 by, fx; a3,1
 ba; a3,2
 ac; a3,3
 cc, bb, yy; a3,4
 cd , yt ;
2
2
2
2
2
2
2
2
a3,5
 bf , yx; a3,6
 0; a4,1
 0; a4,2
 da, ef ; a4,3
 dc  ty; a4,4
 dd , ee, tt ; a4,5
 tx; a4,6
 ex;
...
Матрица А2 имеет вид:
56













2
A 














aa,
cc,
dd
cb
ab
bc
aa,
bb,
ff
ac
ba
af ,
de
ad ,
fe
cc,
bb,
ac
yy
da,
dc,
ef
ty
af ,
xy
yx,
td
fb,
xy
cy,
dt
by,
fx
cd ,
yt
bf ,
yx
dd ,
ee,
tt
tx
ex
xt
ff ,
ee,
xx
et
yy,
yb,
xf
xe
te
tt ,
xx




























Матрица смежности A определяет распределение ребер (цепей единичной
длины). Для определения цепей длиной 2 возведем матрицу A в квадрат.
Просуммировав матрицы A  A2 , получаем, что в результирующей матрице
отсутствуют нулевые элементы, что означает существование цепей длины 1 или 2
между любой парой вершин графа. Следовательно, граф, представленный на
рис. 2.23, связный и представляет собой компоненту связности.
Матрица A называется k-клеточной, если в результате перестановки строк и
столбцов она приводится к виду:
 A1




0
A2
0

,


Ak 
где матрица Ai , i  1,..., k , не содержит ни одного нулевого элемента (кроме, быть
может, диагональных).
Теорема. Граф G состоит из k компонент связности тогда и только тогда, когда
его матрица достижимости D  G  
d G 
  A  G 
i 1
d  G  – диаметр графа G, является k-клеточной.
57
i
, где A(G) – матрица смежности,
Минимальная длина цепи, соединяющей вершины vi и vj, называется
расстоянием r  vi , v j   min lk  vi , v j  . Максимальное расстояние между вершинами
графа G называется диаметром графа.
Таким образом, исходя из теоремы, максимальная степень, в которую
необходимо возвести матрицу смежности A(G) для определения компонент
связности, равна диаметру d(G).
1.
2.
3.
4.
Алгоритм определения связности графа
Выписываем матрицу смежности A(G).
Определяем диаметр графа d(G).
Вычисляем матрицу достижимости D  A  A2  A3  ...  Ad .
По виду матрицы D делаем заключение о связности графа G.
Граф называется планарным (плоским), если он может быть изображен на
плоскости так, что все пересечения ребер являются вершинами (без пересечения
ребер).
Хроматическое число графа. Граф G называется p-хроматическим, где p –
натуральное число, если его вершины можно раскрасить p-различными цветами
так, чтобы никакие две смежные вершины не были раскрашены одинаково.
Наименьшее число p, при котором граф является p-хроматическим, называют
хроматическим числом графа и обозначают p(G). Если p(G) = 2, то граф называют
бихроматическим.
Если граф G имеет m ребер, n вершин, С компонент связности, то
цикломатическим числом называют
v(G) = m + C – n.
Цикломатическое число положительное, например, для полного графа K5 (10
ребер, 5 вершин, 1 компонента связности) v(G) = 10 + 1 – 5 = 6.
2.8. Экстремальные задачи на графах
Экстремальные задачи рассматриваются на обычных графах, но, как правило,
дугам и вершинам графа (или только дугам или только вершинам) поставлены в
соответствие числа, называемые весами.
Веса в зависимости от задач могут иметь различный смысл: длина дуги,
стоимость строительства дороги, пропускная способность, эксплуатационные
расходы и т.д. Различной постановкой может быть и оптимизационная задача:
найти кратчайший путь из вершины в вершину, определить оптимальное
размещение заправочных станций и т.п.
Поскольку графы, возникающие в прикладных задачах, конечные, то
экстремальная задача может быть решена и перебором всех вариантов, однако
такой перебор уже для графов со сравнительно небольшим числом вершин и дуг
оказывается невозможным даже на современных компьютерах.
58
Разработка эффективных алгоритмов решения экстремальных задач на графах
– бурно развивающееся направление прикладной математики.
Нахождение кратчайших путей в графе. Пусть G :  V , E – взвешенный
граф,
т.е.
каждой
его
дуге
l   u, v   A
поставлено
в
соответствие
неотрицательное число   l     u, v  , называемое её весом. Расстоянием между
произвольными вершинами s и t орграфа назовем наименьший вес пути из s в t:
d  s, t   min   P  ,
P: S 
t
где   P      l  – вес пути P,
lP
а соответствующий путь будем называть кратчайшим путем из s в t. Вес
тривиального (т.е. не содержащего дуг) пути считаем равным нулю: d  s, s   0 .
Алгоритм Е. Дейкстры находит кратчайшие пути от произвольной
фиксированной вершины орграфа. Алгоритм представляет собой итерационную
процедуру, на каждом шаге которой каждой вершине v сопоставляется пометка
l(v), которая является либо постоянной и равной при этом расстоянию d(s,v) от
начальной вершины s до данной вершины, либо временной – числом, являющимся
оценкой сверху для d(s,v).
В результате каждой итерации оценки уточняются, и при этом ровно одна
временная пометка (а именно наименьшая) переходит из разряда временных в
разряд постоянных (после чего уже не меняется).
Перед первой итерацией начальная вершина имеет постоянную пометку
l  s   0 , у остальных вершин пометки временные и полагаются равными  .
Итерация алгоритма состоит в просмотре вершин v с временными пометками, к
которым ведут дуги из вершины p – вершины, последней получившей
постоянную пометку (для первой итерации p=s). Пусть a  l  p     p, v  . Если
окажется, что l(v)>a, то a будет новым значением l(v) (временная пометка данной
вершины уменьшается).
Алгоритм заканчивает работу, когда заданная конечная вершина t получает
постоянную метку. Более детальное описание алгоритма с использованием
конструкций СИ, а также математической символики приведено для графа на
рис. 2.24.
2
1
5
6
1
3
2
3
1
4
6
3
5
5
4
59
Рис. 2.24. Орграф G для поиска
кратчайшего пути
Пример. Дан орграф (см. рис. 2.24). Найти кратчайший путь из вершины 1 до
вершины 6. Каждой дуге поставлено в соответствие неотрицательное число – вес.
Решение. Берем первую вершину 1 и сравниваем веса смежных с ней вершин –
min 6, 2  2 . Из вершины 1 перейдем в вершину 3. Берем смежные вершины 2, 4,
5 и, соответственно, дуги. Суммируем веса дуг с весом дуги из вершины 1 в
вершину 3, равным 2:
min 2  3, 2  1, 2  5  3;  1,3,5  3 .
Вершине 5 присвоим метку 3 (длину пути по 1, 3, 5 вершинам). Берем
смежные с вершиной 5 дуги и их веса. Находим min 3  3,3  4  6 – вершине 4
присваиваем метку 6. Переход из 4 в 6 не оптимален, min 6  5,3  4  7 в
вершину 6 из 5.
Алгоритм Дейкстры в этом примере можно изобразить с помощью табл. 2.2.
Таблица 2.2
Алгоритм Дейкстры
Итерация
0
1
2
3
4
5
Вершины
1
2
3
4
5
6
0
–
–
–
–
–


2






–
–
–
–
7
6
6
–
3

–
–
–
7
7
6
5
5
–
–
7
P
1
3
5
2
4
6
Алгоритм Дейкстры находит кратчайший путь между двумя данными
вершинами в орграфе [1].
Вход: орграф G V , E , заданный матрицей длин дуг C: array [1..p,1..p] of real; s
и t вершины графа.
Выход: векторы T: array [1..p] of real; и H: array [1..p] of 0..p. Если вершина v
лежит в непосредственно предшествующая v на кратчайшем пути.
for v from 1 to p do
T[v]:= {кратчайший путь не известен}
X[v]:=0 {все вершины не отмечены}
end for
H[s]:=0{s ничего не предшествует}
T[s]:=0 {кратчайший путь имеет длину 0 …}
X[s]:=1 {… и он известен}
v:=s {текущая вершина}
M: {обновление меток}
for uГ(v) do
60
if X[u] = 0 & T[u] > T[u] + C[v, u] then
T[u]: = T[u] + C[v, u] {найден более короткий путь из s в u
через v}
H[u]: =v {запоминаем его}
end if
end for
t: =;
v:=0 {поиск конца кратчайшего пути}
for u from l to p do
if X[u] = 0 & T[u] < t then
v: =u;
t:=T[u] {вершина v заканчивает кратчайший путь их S}
end if
end for
if v = 0 then
stop {нет пути из s в t}
end if
if v = t then
stop {найден кратчайший путь из s в t}
end if
X[v]: =1 {найден кратчайший путь из s в t}
goto M
2.9. Деревья и леса
Конечный связный граф с выделенной вершиной, не имеющей циклов,
называется деревом [3].
Деревья заслуживают отдельного и подробного рассмотрения по двум
причинам:
 деревья являются в некотором смысле простейшим классом графов. Для
них выполняются многие свойства, которые не всегда выполняются для графов в
общем случае;
 деревья являются самым распространенным классом графов, применяемых
в программировании.
Пусть p – число вершин, g – число ребер, k – компонентов связности, тогда
 p  k  p  k  1
pk  g 
для любого графа.
2
Деревья как простейший класс графов обладают определенными свойствами.
Теорема. Граф G :  V , E является деревом тогда и только тогда, когда
выполняется хотя бы одно из условий:
1) G – дерево, то есть связный граф без циклов k(G)=1 и z(G)=0, где z – число
циклов;
2) в графе G любые две вершины соединены единственной простой цепью;
61
3) G – связный граф и любое ребро есть мост – k(G)=1 и e  E k G  e  1 ;
4) G – связанный и древовидный, k(G)=1 и g(G)=p(G) –1;
5) G – зацикленный, но добавление ребра между несмежными вершинами
приведет к появлению одного и только одного цикла, z(G)=0 и z(G+x)=1;
6) G – не содержит циклов и имеет n–1 ребро.
Ориентированным графом (деревом) называется орграф со следующими
свойствами:
1) существует единственный узел, полустепень захода которого равна 0. Он
называется корнем ордерева;
2) полустепень захода всех остальных узлов равна 1;
3) каждый узел достижим из корня.
Пример. На рис. 2.25 а изображено ордерево с тремя узлами, на рис. 2.25 б – с
4 узлами.
а)
б)
Рис. 2.25. Ордеревья с тремя, с четырьмя вершинами
Концевая вершина дерева называется листом. Маршрут из корня в лист
называется ветвью. Длина наибольшей ветви называется высотой.
Уровень узла дерева – это расстояние от корня до узла. Узлы одного уровня
называются ярусом дерева (рис. 2.26).
v0 Корень
0 ярус
v1
v2
1 ярус
Листья
v3
v4
v5
v6
v7
Рис. 2.26. Иллюстрация графа-дерева
62
2 ярус
Наряду с «растительной» применяется еще и «генеалогическая» терминология.
Узлы, достижимые из узла U, называются потомками узла U (потомки образуют
поддерево). Если в дереве дуга (u, v), то узел U называется отцом (или родителем
узла U1), а узел U1 называется сыном узла U. Сыновья одного узла называются
братьями.
При изображении деревьев принято соглашение, что корень находится
наверху и все стрелки дуг ориентированы сверху вниз, поэтому стрелки можно не
изображать.
Упорядоченным деревом называется дерево, в котором поддеревья каждого
узла образуют упорядоченное подмножество.
Бинарное дерево – это конечное множество узлов, которое либо пусто, либо
состоит из корня и двух непересекающихся бинарных деревьев левого и правого.
Бинарное дерево не является упорядоченным. Строго бинарным деревом
называется такой граф, у которого каждый узел, не является листом, содержит два
и только два поддерева – левое и правое (рис. 2.27).
v0
v2
v5
v1
v6
v7
v3
v8
v4
v9
v10
Рис. 2.27. Бинарное дерево
Пусть G1 , G2 , ...,Gk – непересекающиеся деревья, т.е. Gi
G
1i  j  k
j
 . Тогда
k
упорядоченное объединение деревьев G   Gi представляет собой несвязный
i 1
граф, называемый лесом. Компонентами связности леса являются деревья.
Бинарное дерево уровня n называется полным, если каждый его узел уровня n
является листом, а каждый узел уровня n–1, имеет непустые левое и правое
ордеревья.
Бинарные деревья применяются в информатике для поиска одного из двух
возможных вариантов ответа. Например, при поиске данных, когда необходимо
сравнить каждый элемент списка с образцом, и если значения совпадают, то
процесс поиска завершен, а если не совпадают, то поиск продолжается.
Разработаны стандартные алгоритмы [1] анализа бинарного дерева.
63
2.10. Алгоритм симметричного обхода бинарного дерева
Реализация обходов бинарного дерева с помощью рекурсивной процедуры не
вызывает затруднений. В некоторых случаях из соображений эффективности
применение явной рекурсии оказывается нежелательным. Следующий очевидный
алгоритм реализует наиболее популярный симметричный обход без рекурсии, но
с использованием стека [1].
Алгоритм 1. Алгоритм симметричного обхода бинарного дерева.
Вход: бинарное дерево, представленное списочной структурой, r – указатель
на корень.
Выход: последовательность узлов бинарного дерева в порядке симметричного
обхода.
T: = ; p: = r {вначале стек пути r указывает на корень дерева}
M: {анализирует узел, на который указывает p}
if p = nil then
if T =  then
Stop {обход закончен}
end if
p ← T {левое поддерево обойдено}
Yield p {очередной узел при семеричном обходе}
p := p.r {начинаем обход правого поддерева}
else
p → T {запоминаем текущий узел …}
p := p.l {… и начинаем обход левого поддерева}
end if
goto M
При
использовании
упорядоченного
массива
для
представления
ассоциативной памяти операция поиска записи по ключу может быть выполнена
за время O(log2n) (где n – количество записей) с помощью следующего алгоритма
известного как алгоритм бинарного (или двоичного) поиска.
Алгоритм 2. Алгоритм бинарного (двоичного) поиска.
Вход: упорядоченный массив A: array [1..n] of real k: key; I: info end record; a:
key.
Выход: индекс записи с использованием ключа a в массиве A или 0, если
записи с таким ключом нет.
b := 1 {начальный индекс части массива для поиска}
e := n {конечный индекс части массива для поиска}
while b ≤ e do
c := (b+e)/2 {индекс проверяемого элемента (округленный до целого)}
if A[c].k > a then
e := c – 1 {продолжаем поиск во второй половине}
else if A[c].k < a then
64
b :=c+1 {продолжаем поиск во второй половине}
else
return c {нашли искомый ключ}
end if
end while
return 0 {искомого ключа нет в массиве}
Для обоснования этого алгоритма достаточно заметить, что на каждом шаге
основного цикла искомый элемент массива (если он есть) находится между
(включительно) элементами с индексами b и e. Поскольку диапазон поиска на
каждом шаге уменьшается вдвое, общая трудоемкость не превосходит log 2 n .
Следующий алгоритм находит в дереве сортировки узел с указанным ключом,
если он есть.
Алгоритм 3. Алгоритм поиска в дереве сортировки.
Вход: дерево сортировки T, заданное указателем на корень ключа a.
Выход: указатель p на найденный узел или nil, если в дереве нет такого ключа.
p :=T {указатель на проверяемый узел}
while p ≠ nil do
if a < p.i then
p := p.l {продолжаем поиск слева}
else if a > p.i then
p := p.r {продолжаем поиск справа}
else
return p {нашли узел}
end if
end while
Этот алгоритм работает в точном соответствии с определением дерева
сортировки: если текущий узел не искомый, то в зависимости от того, меньше или
больше искомый ключ по сравнению с текущим, нужно продолжать поиск слева
или справа, соответственно.
2.11. Сетевое планирование
Деятельность общества, а также многие физические, биологические,
химические процессы и др. хорошо интерпретируются сетями. Термин «сеть»
стал широко употребляемым: компьютерные сети, транспортные, нейронные и т.д.
Будем называть проектом совокупность взаимного связных событий
(операций), необходимых для достижения некоторой цели, длительность каждого
из которых известна [2].
Зададим проект в виде функционально сетевой модели (ФСМ), которая
представляет собой взвешенный граф
65
G R, S , t , P : V , Ri , S j , t j , Pk , U , t ij  ,
где носитель графа V – множество вершин;
Ri – i-й ресурс;
Sj – j-я работа;
tj – время продолжительности j-й работы;
Pk – k-я продукция;
U – сигнатура графа;
tij – транспортные затраты доставки продукта i-й вершины в j-ю вершину, где
этот продукт рассматривается как ресурс.
Каждая вершина ФСМ имеет вид, представленный на рис. 2.28.
Входные векторы Ra , Rb , Rc – ресурсы,
позволяют
начать
работу
Sα
P
Ra
продолжительностью
tα;
выходные
результаты работы Sα – продукции P , P .
S , t
Сигнатура графа U определяется
Rb
P
реализуемой технологией производства.
Когда
ФСМ
построена,
перед
руководителем предприятия встает вопрос:
Rc
каково время завершения всего комплекса
работ. Очевидно, что это время не может
Рис. 2.28. Вершина ФСМ
быть меньше суммы длительностей всех
времен,
взятых
вдоль
самого



неблагоприятного пути из S 0 в S n ; здесь Sα начало ФСМ, S n – конец ФСМ.


Путь, определяющий минимальное время Tmin S0 , S n  выполнения всех работ


ФСМ, называется критическим. Дальше Tmin S0 , S n  будем называть критическим
временем ФСМ.

Вычисление минимального момента реализации S n сводится к отысканию в
сети с максимальной суммой длительностей, соответствующих вершинам и
дугам, образующим этот путь.
Следовательно, критическим путем является путь, составленный из событий и
операций, сумма времен которых максимальна:
max T S ik   t S ik , S j .
k
С последующим суммированием его с временем выполнения t(Sj) события Sj
полученное число сопоставляется с событием Sj:
T S j   t S j   max T S ik   t S ik , S j  .
k
Здесь T – время выполнения нескольких операций (событий), t – время
выполнения одной операции.
66
 

При вычислении T S1



получаем t Sik , S1  0 . Очевидно, что T S j  есть
критическое время сетевой модели S1 , S n . При j  n в итоге получаем, что


критическое время сетевой модели S1 , S n

Tkp S , S

1


n
  T S
min

1
, S n  .
Для решения данной задачи можно модифицировать алгоритм Дейкстры.
В задаче сетевого планирования требуется найти минимальное время
выполнения проекта – время, за которое можно пройти по всем дугам графа,
двигаясь от начальной вершины к конечной, причем движение по каждой дуге
может начаться лишь после того, как пройдены все дуги, заходящие в ее начало.
Другими словами надо найти самый длинный путь (т.е. путь наибольшего веса).
Пронумеруем вершины орграфа G : V , A max , чтобы каждая дуга (vi, vj)
i, j  1,, n вела из вершины с меньшим номером в вершину с большим
номером: vi , v j   A  i  j.
Через l(vi) обозначим наиболее раннее время начала операции,
соответствующие дугам, исходящим из вершины vi, считая l(vi) = 0. Иными
словами, l(vi) – длина самого длинного пути из v1 в vi. Минимальное время
выполнения проекта тогда будет равно l(vn). Алгоритм состоит в
последовательном выполнений l v j   j  2,, n  по очевидной формуле:


l  v j   max l  vi   t  vi , v j  .
Пример. Дан граф G (рис. 2.29).
v4
4
v1
3
3
2
2
3
4
v2
3
v6
5
v8
v5
3
Рис. 2.29. Орграф для поиска
критического пути
2
4
v3
v7
В результате алгоритма находим:
l v1   0, l v2   3, l v3   6,
l v4   5, l v5   8, l v6   10,
l v7   10, l v8   13.
Путь наибольшей длины от начальной вершины графа к конечной называют
критическим путем. В общем случае, в графе может быть несколько критических
путей. Так в примере критическими будут пути:
67
v1  v2  v4  v6  v8 ;
v1  v2  v4  v5  v6  v8 .
Для того чтобы проект был выполнен за минимальное время, операция,
отвечающая каждой дуге критического пути, должна начинаться сразу после того,
как закончится предшествующая ей операция (на указанном пути). Если дуга не
принадлежит никакому критическому пути, то соответствующая ей операция
может начаться с некоторым запозданием, которое не отразится на общем
времени выполнения проекта. Обозначим через L(vi) самое позднее время начала
операции, отвечающее дугам, исходящим из вершины vi, при которой весь проект
всё еще может быть выполнен за минимальное время. Для нахождения L(vi)
поменяем ориентацию каждой дуги (при этом поменяется местами начальная и
'
конечная вершины) и повторим предыдущий алгоритм. Найдем l vi  – самый
'
длинный путь от vn до vi . Нетрудно увидеть, что Lvi   l vn   l vi  . Теперь для
каждой операции (vi, vj) можно определить резерв времени r(vi, vj) – на сколько
единиц времени можно отложить начало её выполнения, чтобы проект мог быть
выполнен за минимальное время: r vi , v j   Lv j   l vi   t vi , v j  .
Результаты расчета приведены в табл. 2.3.
Таблица 2.3
Расчет резерва времени
Обозначение
i
l vi 
l ' vi 
Lvi 
Время операции
1
0
13
2
3
10
3
6
6
4
5
8
5
8
5
6
10
3
7
10
2
8
13
0
0
3
7
5
8
10
11
13
Для дуги v3 ,v7  , не входящей в критический путь, определим резерв времени:
r v3 , v7   11  6  4  1 .
Упражнения
2.1. Граф G задан диаграммой, изображенной на рис. 2.30.
1. Составьте
для
него
матрицу
V2
V1
смежности.
2. Постройте матрицу инцидентности.
3. Укажите степени вершин графа.
V3
V6
4. Найдите длину пути из вершины V2 в
V7
вершину V5, составьте маршруты длины
5, цепь и простую цепь, соединяющие
V4
V5
вершину V2 и вершину V5.
Рис. 2.30
68
5. Постройте простой цикл, содержащий вершину V4.
6. Найдите цикломатическое число графа G.
2.2. Пусть граф задан матрицей смежности. Постройте изображение этого
графа, укажите степени вершин графа. По матрице смежности постройте матрицу
инцидентности этого графа.
V
V
1
V
2
V
V
3
V
V
4
1
5
V
6
1
1
V
1
1
2
V
1
V
1
1
1
3
1
1
4
V
1
1
2
5
V
1
1
6
2.3. Найдите объединение и пересечение графов G1 и G2, дополнение для графа
G1 (рис. 2.31).
V2
V1
V2
V1
V4
V5
V3
V3
G1
G2
Рис. 2.31
2.4. Орграф задан матрицей смежности. Постройте его диаграмму, определите
степени вершин графа и найдите маршрут длины 5.
0

0

0
A(G)  
0

1

1
1
0
1
0
1
1
69
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1

0

0
0
1

0
2.5. Пусть А – матрица смежности реберного орграфа, полного
симметрического. Показать, что все элементы матрицы А2 + А = 1.
2.6. Докажите равенство
S = (A+)T × P( А  ),
где S – матрица смежности;
А+ и А– – соответственно начальная и конечная матрицы инциденций;
Р – диагональная матрица весов дуг;
Т – знак транспонирования.
2.7. Докажите, что пути длины l (l<q) графа, заданного матрицей смежности А,
q
определяется матрицей Aq =
A
k
.
k 1
2.8. Как может измениться количество компонент сильной связности орграфа
при добавлении к нему одной дуги?
2.9. Перед Вами – карта (рис. 2.32). Числа на карте обозначают время
движения (в часах) от пункта до пункта. Можно ли успеть доехать из пункта А в
пункт О за 22 часа? В случае положительного ответа укажите маршрут, в случае
отрицательного ответа обоснуйте.
А
8
2
Б
6
З
1
4
10
1
4
8
3
2
И
К
7
В
Л
10
А
О
6
2
Г
4
Д
6
10
3
5
Е
Ж
1
7
3
5
7
4
М
9
Н
3
Рис. 2.32
2.10. Пусть в графе G V , E заданы вероятности успешного прохождения дуг,
0≤P(v)≤1. Вероятность успешного прохождения пути определяется как
произведение вероятностей составляющих его дуг. Построить алгоритм
нахождения наиболее надежного (т.е. имеющего наибольшую вероятность) пути
от вершины S к вершине t.
70
Глава 3. ПЕРЕКЛЮЧАТЕЛЬНЫЕ ФУНКЦИИ
3.1. Определение, способы задания переключательных функций
В различных электронных структурах возникает проблема анализа сигналов,
поступающих на вход структуры и на выходе из структуры. Связь между
входными
и
выходными
сигналами
устанавливается
с
помощью
переключательных функций (рис. 3.1).
x1
x2
f x1 , x2 ,..., xn 
Рис. 3.1. Схема электронной структуры
f
xn
Переключательной функцией f x1 , x2 ,..., xn  называется однозначное вправо
отображение вектора X  x1 , x2 ,..., xn , каждая переменная xi xi  X  которого
принимает значение из множества 0,1,..., ki  1, i  1,2,..., n в множестве
f , f  0,1,..., k f  1 [2]. В случае, если k1  k2  ...  kn  k f  k , получаем
определение k-значной функции; если k  2 – булевой функции.
Переключательную функцию (ПФ) можно задать с помощью таблицы,
аналитически, графом.
Пример. Пусть x1  0,1,2, x2  0,1, x3  0,1, f  0,1,2,3 . Определим
переключательную функцию f x1 , x2 , x3  с помощью одномерной табл. 3.1.
Двумерная
таблица,
определяющая
переключательную
функцию
f x1 , x2 ,..., xn  , строится в результате разбиения переменных X  x1 , x2 ,..., xn 
на два подмножества: подмножество строчных переменных X a и подмножество
столбовых переменных X b и в клетке i, j  записывается соответствующее
значение функции f xi , x j  .
Таблица 3.1
Задание ПФ одномерной таблицей
х1
х2
х3
f x1 , x2 , x3 
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
3
3
1
0
2
3
0
71
1
2
2
2
2
1
0
0
1
1
1
0
1
0
1
1
1
1
0
3
Двумерную таблицу, определяющую переключательную функцию будем
называть таблицей Вейча.
Рассмотрим задание функции f x1 , x2 , x3  (из предыдущего примера) с
помощью таблицы Вейча.
Разобьем множество переменных X  x1 , x2 , x3  на подмножества X a  x1 и
X b  x2 , x3 , тогда таблица Вейча примет вид табл. 3.2.
Таблица 3.2
Задание ПФ с помощью таблицы Вейча
x2 , x3
x1
0
1
2
00
3
2
1
01
3
3
1
10
1
0
0
11
0
1
3
Способы аналитического задания начнем рассматривать с предельного случая,
когда k1  k2  ...  k f  2 , т.е. двоичного (булева) случая.
Функция f, зависящая от n переменных, называется двоичной
переключательной (булевой), если она и любой из её аргументов xi, i  1, n
принимают значение только из конечного множества, содержащего два элемента.
Таким множеством может быть бинарное множество B : 0,1.
Для аналитического задания ПФ вводятся операции дизъюнкция   ,
конъюнкция   , отрицание (инверсия)   , импликация  , эквиваленция  .
Эти бинарные операции задаются одномерными таблицами истинности
(табл. 3.3–3.7).
Таблица 3.3
Бинарная конъюнкция
а
0
b
0
c  a b
0
Таблица 3.4
Бинарная инверсия
a
0
ca
1
72
Таблица 3.5
Импликация
a
0
b
0
c  a b
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
Таблица 3.6
b
0
1
0
1
1
0
1
Таблица 3.7
Бинарная конъюнкция
Эквиваленция
a
0
0
1
1
1
0
1
c  a b
1
0
0
1
a
0
0
1
1
b
0
1
0
1
c  ab
0
1
1
1
Операции дизъюнкции, конъюнкции и отрицания читаются соответственно
как «или», «и», «не», если в форме математических операций, то соответственно –
сложение, умножение, отрицание.
Эти операции имеют следующие равносильности:
1) a  a  a; a  a  a – идемпотентность;
2) a  b  b  a; a  b  b  a – коммутативность;
3) a  b  c  a  b  c; a  b  c  a  b  c – ассоциативность;
4) a  b  c  ab  ac; a  bc  a  b  a  c;
(3.1)
5) a  a – двойное отрицание;
6) a  b  a  b; a  b  a  b – закон де Моргана;
7) a  b  a  b  a; a  b   a  b   a – закон склеивания;
8) a  a  b  a; a  a  b  a – закон поглощения;
9) a  a  b  a  b; a  a  b  a – закон Порецкого;
10) a  0  a; a  0  0; a  1  1; a  1  a; a  a  1; a  a  0 – действия с 0 и 1;
Используя эти равносильности, можно преобразовывать по правилу замены
одни формулы в другие, равносильные им. Преобразование формулы в
равносильную называются эквивалентным преобразованием.
Пример. Используя равносильности (3.1) покажем, что имеет место правило
склеивания/расщепления: x  y  x  y  x . Действительно,
x  y   x  y   x   y  y   x  1  x .
Если равносильность из предыдущего примера применяется для уменьшения
числа операций, то говорят, что производится склеивание, а если наоборот, то
расщепление.
73
При геометрическом способе ПФ задаётся с помощью соответствующей
отметки вершин n-мерного куба, который по сути является решёткой Хассэ,
представляющей собой частично упорядоченное множество наборов (каждая
вершина – точка n-мерного пространства) [1]. Каждый путь из вершины,
соответствующей нулевому набору в вершину единичного набора, соответствует
увеличению сравнимых наборов (рис. 3.2).
Этот рисунок изображает частично упорядоченное множество наборов 000,
001, 010, 011, 100, 101, 110, 111, на которых задана переключательная функция
трёх переменных, например, a, b, c . Вершины, на которых функция равна 1,
должны быть как-то отмечены.
Переключательная функция может быть задана и некоторым словесным
описанием, указывающим, на каких наборах аргументов какое значение она
принимает, и исключающим неверное толкование, всякую двусмысленность.
Переключательная функция может быть задана перечислением её рабочих
(единичных), запрещённых (нулевых) и условных наборов (на этих наборах
функция не определена). Для упорядоченного задания n-мерных наборов
переменных функции f x1 , x 2 ,..., xn  удобно рассматривать их в виде целого
неотрицательного числа. При этом младший разряд располагается справа.
Например, для переменных x5 , x4 , x3 , x2 , x1 конкретное их значение истинности 1,
0, 0, 1, 1 соответствует двоичному числу 10011. Это число ещё называют номером
набора. Для компактной записи наборов значений переменных логической
функции целесообразно представлять их номерами – числами в десятичной,
восьмеричной, шестнадцатеричной системах счисления. Такой номер – набор –
называют ещё весовым состоянием или весом этого набора.
I=111
101
011
110
Рис. 3.2. Геометрическое представление
переключательной функции
100
010
001
000= 
Так, 100112  1910  238  1316 ,  – знак эквивалентности.
В случае использования десятичной системы счисления каждой переменной
соответствует степень числа 2 (вес разряда) в зависимости от номера переменной,
74
4
3
2 1
0
например, в порядке 2 ,2 ,2 ,2 ,2 . Зафиксированный порядок переменных,
каждая из которых имеет свой вес, называется базой функции (старший вес – слева).
Как мы знаем, переключательная функция может быть задана таблицей истинности,
которая иногда ещё называется таблицей соответствия. Рассмотрим таблицу
истинности некоторой недоопределённой логической функции (табл. 3.8) [4].
Таблица 3.8
Таблица истинности
22
х3
0
0
0
0
1
1
1
1
21
х2
0
0
1
1
0
0
1
1
Этой таблице соответствует
z x3 , x2 , x1   2,50,4,71,3,6 .
20
х1
0
1
0
1
0
1
0
1
BC
z
0
1
2
3
4
5
6
7
0
~
1
~
0
1
~
0
переключательная
(логическая)
функция
Здесь зафиксирована база переменных функции z  x3 , x2 , x1 перечислены
рабочие наборы в десятичном коде – 2, 5, запрещённые наборы в квадратных
скобках – 0, 4, 7, и условные наборы в фигурных скобках – 1, 3, 6. Такое задание
функции будем называть символической формой.
Пусть задана переключательная функция f x5 , x4 , x3 , x2 , x1  рабочими
двоичными наборами 10011, 01010, 11000 и двоичными запрещёнными наборами
00111, 00101. Тогда в восьмеричной системе счисления имеем следующую
f x5 , x4 , x3 , x2 , x1 8  23,12,3007,05,
символическую
форму:
а
в
шестнадцатеричной форме f x5 , x4 , x3 , x2 , x1 16  13,0 A,1807,05 .
Очевидно, что для задания логической функции одно из указанных множеств
можно опустить (см. табл. 3.8). При задании символической формы функции в
десятичной форме знак указания системы счисления опускают. У полностью
определённой логической функции можно указывать одно из множеств.
Таблицу истинности можно представить в двухмерном виде, который
называется картой Карно (табл. 3.9, 3.10).
Таблица 3.9
Одномерная таблица истинности некоторой функции
22
21
20
75
BC
z
х3
0
0
1
1
1
х2
0
1
0
0
1
х1
0
0
0
1
1
0
2
4
5
7
0
1
0
1
0
Таблица 3.10
Двухмерная таблица истинности
x2
x1
х2 х1
00
х3
01
11
0
0
x3
0
~
~
0
3
1
4
1
10
5
1
2
1
7
0
ВС
6
~
z
Около карты Карно (см. табл. 3.10) иногда указываются области единичного
значения переменных. Каждая клетка такой таблицы соответствует одному
набору значений переменных, весовое состояние которого указано в правом
верхнем углу, и в ней проставлено значение функции на таком наборе.
Область определения ПФ n переменных – множество всех возможных наборов
длины n при матричном задании ПФ, а при геометрическом способе задания –
множество всех вершин n-мерного куба.
Переключательную функцию, определённую на всех своих наборах, называют
полностью определённой. Вырожденные функции зависят не от всех переменных.
Например, для бинарной ПФ: вырожденная ПФ (табл. 3.11) – такая функция,
которая зависит не от всех n переменных.
Таблица 3.11
Вырожденная ПФ
Переменные
х3
0
0
0
0
1
1
1
х2
0
0
1
1
0
0
1
BC
х1
0
1
0
1
0
1
0
0
1
2
3
4
5
6
76
Z
1
1
1
1
0
0
0
1
1
1
7
0
Из табл. 3.11 видно, что столбец функции является инверсным столбцу х3, т.е.
z  x3 , от х2, х1 – z не зависит!
Двоичные ПФ описывают элементную базу электронной вычислительной
техники и устройств автоматики и телемеханики – комбинационные и
последовательностные автоматы.
3.2. Техническая реализация переключательных функций
Практическое применение теория переключательных функций нашла в так
называемых переключательных схемах (ПС, контактных схемах). Такие схемы
построены на механических переключателях и реле (дистанционных
переключателях), содержащих контакты двух типов: замыкающие, обозначаемые
, и размыкающие, обозначаемые
.
При этом параллельное соединение контактов соответствует дизъюнкции, а
последовательное – конъюнкции.
Например, переключательная схема, реализующая импликацию x1  x2 ,
представлена на рис. 3.3 а.
Такая схема проводит ток, если х2 замкнут (сработал) или х1 замкнут (не
сработал).
Иногда переключательные схемы изображают в виде только символов
контактов (см. рис. 3.3).
x1
х1
x1
х1
x1
x2
x2
х2
x2
х2
а)
б)
в)
Рис. 3.3. Реализация ПФ: а – x1  x2 ; б – f  x1 , x 2   x1  x 2 ; в – x1  x2
Возможна реализация ПФ схемами из функциональных элементов,
программно. Техническая реализация базисных логических функций может быть
77
основана на использовании различных физических явлений, например, базисы ИНЕ, ИЛИ-НЕ – явлений в полупроводниках, импликация – магнитных явлений.
В ряде случаев используются пневматическая реализация (струйные
элементы), гидравлическая реализация, оптическая реализация.
Переключательные
(логические)
элементы
изображают
в
виде
прямоугольников, в которых инверсные выходы и входы изображают в виде
кружков, а символы логических операций указывают в верхней части
прямоугольника, это условное графическое обозначение логических элементов
(рис. 3.4).
1
1
&
1
1
&
а)
б)
в)
г)
д)
е)
1
ж)
М2
М2
з)
и)
Рис. 3.4 Графическое обозначение логических элементов по стандарту РФ:
а – константа 1; б – константа 0; в – конъюнкция; г – дизъюнкция; д – инверсия;
е – x1  x 2  x1  x 2 ; ж – x1  x 2 = x1  x 2 ; з – x1  x2 ; и – x1  x 2  x1  x 2
3.3. Элементарные ПФ одной переменной
Переключательные (логические) функции, соответствующие логическим
операциям B 2  B , называют элементарными. Количество переключательных
(логических) функций от n переменных определяется выражением 2 2 n , поскольку
B n  2 n , а на каждом из 2 n наборов переключательная (логическая) функция
может принимать одно из значений из того же множества B. В табл. 3.12
приведены ПФ от переменной x.
Таблица 3.12
Переключательные функции одной переменной
x
0
1
Переключательная (логическая) функция
f0(x)
f1(x)
f2(x)
f3(x)
0
1
0
1
0
0
1
1
Поскольку 2 2  4 , то имеются четыре логических функции одной
переменной, две из них – константы: f 0 x   0 , f 3 x   1 (f0(x) – константа нуля,
f3(x) – константа единицы). Здесь номер функции означает десятичное число,
1
78
соответствующее двоичному числу, записанному в соответствующем столбце (см.
табл. 3.12).
Функция f 2 x  x , т.е. совпадает со значением переменной. Эта функция
называется функцией повторения. Функция f1  x   x нам уже известна – это
инверсия.
Можно заметить, что для каждой функции одной переменной существует
инверсная ей функция:
f1 x   f 2 x  ;
f 0 x   f 3 x  ;
f 2 x   f1 x  .
f 3 x   f 0 x  ;
3.4. Элементарные ПФ двух переменных
При n=2 число переключательных функций будет 22  24  16 . Каждая
элементарная функция имеет своё название. В табл. 3.13 приведены все эти
функции, их названия и формулы. В числе этих функций есть функции константы
0, 1, которые ещё называют вырожденными [4].
В табл. 3.13 функции f8(x1, x2), f9(x1, x2), f11(x1, x2), f14(x1, x2) – логические,
введены ранее (см. табл. 3.3–3.7). Если в этих таблицах истинности поставить
значения ПФ, то и получим соответствие между перечисленными ПФ и
логическими операциями. Причём в табл. 3.12 опущен знак конъюнкции и точка.
Это допустимо для краткости записи.
Таблица 3.13
Переключательные функции двух переменных
х1
х2
f0
0
0
0
Набор
1 0
0 1
0 0
f1
1
0
0
0
f2
0
1
0
f3
1
1
f4
0
f5
1
1
0
Название функции
Формула (Вебба)
0
0
Константа 0
Функция Пирса (Вебба),
«стрелка Пирса», ИЛИ-НЕ
Запрет х2
0
0
Отрицание х2
x2
0
1
0
Запрет х1
x1 x 2
1
0
1
0
Отрицание х1
x1
f6
0
1
1
0
x1  x2  x1 x 2  x1 x 2
f7
1
1
1
0
Сложение (сумма)
по mod2
Функция Шеффера,
«штрих Шеффера», И-НЕ
f8
0
0
0
1
f9
1
0
0
1
Конъюнкция, И
Эквиваленция
(эквивалентность)
79
x1  x2  x1 x 2
x1 x 2
x1 x2 
x1  x 2
х1 х 2
x1  x2  x1 x 2  x1 x 2
f10
0
1
0
1
f11
1
1
0
1
f12
0
0
1
1
f13
1
0
1
1
f14
f15
0
1
1
1
1
1
1
1
Повторение х1
Импликация х2 в х1
х1
x2  x1
Повторение х2
Импликация х1 в х2
x 2  x1
х2
x1  x2
x1  x 2
Дизъюнкция, ИЛИ
x1  x2
Константа 1
1
Кроме этого, имеются другие функции, зависящие от двух переменных:
f1(x1 x2) = x1 x2 – функция Пирса («стрелка Пирса»); f2(x1 x2) = x1 x2 – запрет x2;
f4(x1 x2) = x1 x2 – запрет x1; f6(x1 x2) = x1  x2 – сложение по модулю 2 (функция,
инверсная эквивалентности); f7(x1 x2) = x1  x2 – функция Шеффера («штрих
Шеффера»).
3.5. Полнота системы ПФ
Понятие сложной функции, известное из математического анализа, имеет
место и в теории ПФ.
Элементарные переключательные функции позволяют получить сложные
функции от большего числа аргументов путем подстановки в данную функцию
вместо ее переменных других функций. Такой метод получения функций
называется суперпозицией. Например, имея элементарные функции двух
переменных z1 = x1x2 и z2 = x3  x4, можно получить функцию z3 = x1(x3  x4),
z4 = x3  x1x2, зависящие от трех переменных.
При использовании суперпозиции возникает следующая проблема: каким
должен быть минимальный состав элементарных логических функций, который
позволяет путем их суперпозиции получить любую, сколь угодно сложную
логическую функцию от конечного числа переменных.
Эта
проблема
называется
проблемой
функциональной
полноты
переключательных функций.
Какими свойствами должны обладать функции системы S = {fi(X)}, чтобы
любая ПФ f(x1, x2, …, xn) была представима в виде суперпозиции этой системы S.
Система S называется полной в Pk, если любая функция f Pk представима в
виде суперпозиции этой системы.
Система S называется базисом, если полнота S теряется при удалении хотя бы
одной функции, где Pk – k-значная логика.
Для установления полноты системы S булевых функций fi(S в P2) используют
критерий полноты, сформулированный американским математиком Э.Л. Постом
(1897–1954) и отечественным математиком С.В. Яблонским.
Определим предварительно 5 классов булевых функций.
80
1. Класс функций, сохраняющих константу 0. В этот класс входят функции,
которые на нулевом наборе переменных принимают нулевое значение:
f(00…0) = 0. Такова, например, конъюнкция f8(00) = 0×0 = 0.
2. Класс функций, сохраняющих константу 1. В этот класс входят функции,
которые на единичном наборе переменных принимают единичное значение:
f(11…1) = 1. Этим свойством также обладает конъюнкция f8(11) = 1×1 = 1. Классы
1, 2 легко устанавливаются по таблице истинности.
3. Класс самодвойственных функций. Переключательные функции f(x1 x2 …xn)
и g(x1 x2 …xn) называют двойственными, если имеет место равенство
f(x1 x2 …xn) = g( x1 x2 ...xn ) , т.е. когда одна функция получается из другой, если
провести замену всех переменных на их инверсии и провести инверсию функции.
Например, f8(x1 x2) = x1 x2 и f14(x1 x2) = x1  x2 двойственны: x1  x2  x1 x2 . Это
можно доказать, построив таблицу истинности (табл. 3.14).
Таблица 3.14
Таблица истинности
x1
x2
0
0
1
1
0
1
0
1
Переключательная
функция
x1  x2  x1 x2
0
0
0
1
называется
x1 x 2
0
0
0
1
самодвойственной,
если
она
двойственна по отношению к самой себе: f(x1 x2 …xn) = f ( x1 x2 ...xn ) . Такова,
например, функция f10(x1 x2) = x1: f 10 ( x1 x2 ) = x1 = x1.
Самодвойственность устанавливается по таблице истинности следующим
образом: значения функции, симметричные относительно середины таблицы,
инверсны. Например, для f10(x1 x2) значения функции представляют собой вектор
0101 ,
каждый разряд которого является инверсным по отношению к
симметричному разряду относительно середины, отмеченной пунктиром.
Эти разряды соответствуют инверсным наборам x1 x2: 00–11, 01–10.
Самодвойственны функции: x2 , x1 , x2, x1.
4. Класс линейных функций. Переключательная функция называется
линейной, если возможно представление в виде линейного полинома,
использующего функцию сложения по модулю 2.
Эта операция определяется таблицей истинности (табл. 3.15).
Таблица 3.15
Таблица истинности
a
0
b
0
81
ab
0
0
1
1
1
0
1
1
1
0
Тогда линейная функция имеет вид:
f ( x1 x2 )  c0  c1 x1  c2 x2 ,
где c0, c1, c2 – константы 0, 1.
Например, для функции
f6(x1 x2) = x1  x2 при
c0 = 0, c1 = c2 = 1:
f6(x1 x2) = 0  1× x1  x2.
Получим все линейные функции двух переменных, задав все возможные
значения c0 c1 c2 (табл. 3.16).
Из табл. 3.16 видно, что каждая линейная функция имеет инверсную ей
функцию: константа 0 – константа 1; повторение x1, x2 – инверсия x1 , x2 ;
сложение по модулю 2 x1  x2 – эквиваленция x1  x2 .
Таблица 3.16
Линейные функции двух переменных
c0
c1
c2
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
Вид
полинома
0
x2
x1
x1  x2
1
1  x2
1  x1
1  x1  x2
Можно доказать,
используя, например,
таблицу истинности,
что:
= x1  x2
–
= x2
= x1
= x1  x2 = x1  x2
5. Класс монотонных функций. Монотонная функция на большем сравнимом
наборе переменных принимает не меньшие значения. Это удобно проверять на
решетках Хассэ. Так, для двух переменных решетка имеет вид, как на рис. 3.5.
На рис. 3.5 проставлены значения монотонной функции x1. Видно, что
11 > 01 > 00, 11 > 10 > 00 (частично упорядоченное множество наборов).
1{x1, x2}
11
Рис. 3.5. Решетка Хассэ для двух
переменных с указанием значений
f10(x1 x2) = x1
10 {x1}1
0{x2} 01
00
0{Ø}
82
Очевидно, что константы 0, 1 – монотонные функции, дизъюнкция и
конъюнкция – монотонные функции, повторения x1, x2 – монотонные функции.
Критерий полноты Поста – Яблонского
Система S булевых функций fi является полной тогда и только тогда, когда
выполняются пять условий:
1) существует fi S, несохраняющая константу 0;
2) функция fi S, несохраняющая константу 1;
3) нелинейная;
4) несамодвойственная;
5) немонотонная функция в системе S.
Рассмотрим пример анализа и определения свойств ПФ заданной десятичным
номером 17410 [4].
Дано: двоичная переключательная функция № 17410.
Получим соответствующий двоичный код: 101011102 (27 + 25 + 23 + 22 + 21).
Таблица истинности ПФ № 17410 показана в табл. 3.17.
Таблица 3.17
Таблица истинности
a
0
0
0
0
1
1
1
1
Переменные
b
0
0
1
1
0
0
1
1
c
0
1
0
1
0
1
0
1
ВС
f(abc)
Вес
0
1
3
3
4
5
6
7
0
1
1
1
0
1
0
1
20
21
22
23
24
25
26
27
Получим восьмеричный код ПФ: 2568.
Получим шестнадцатеричный код ПФ: AE16.
Получили символическую формулу: f(abc)10 = 1, 2, 3, 5, 7[0, 4, 6].
В двоичном виде: f(abc)2 = 0012  0112  1012  112  0102.
Определим свойства ПФ № 17410.
1. Поскольку на наборе 000 ПФ равна 0, то ПФ обладает свойством
сохранения константы «0».
2. Поскольку на наборе 111 ПФ равна 1, то ПФ обладает свойством
сохранения константы «1».
3. Рассмотрим все возможные линейные ПФ от трех аргументов в
зависимости от значений коэффициентов полинома k0  k1c  k2b  k3a (табл. 3.18).
83
Проверим, не равна ли наша функция функциям a  b, a  c, b  c, a  b  c и их
инверсиям: a  b , a  c , b  c , a  b  c .
Для этого получим соответствующие векторы этих линейных ПФ (табл. 3.19).
Видим, что ни один из полученных векторов этих восьми линейных ПФ не
совпадает с вектором нашей функции.
Следовательно, функция № 17410 – нелинейная.
4. Определим, обладает ли наша ПФ свойствами самодвойственности.
Для этого проанализируем ее вектор в двоичном коде (рис. 3.6).
Видим, что симметричные разряды 5 и 2 неортогональны. Следовательно, ПФ
– несамодвойственна. У самодвойственной ПФ симметричные разряды
ортогональны (противоположны).
5. Определим, монотонна ли наша ПФ.
Посмотрим на куб соседних чисел. Монотонная функция по всем возможным
путям из вершины (000) в вершину (111) монотонна. Однако наша функция на
наборе (010) принимает значение «1», а на большем сравнимом наборе (110) –
«0». Следовательно, она не монотонная.
Таблица 3.18
Переключательные функции от трех аргументов
Значение коэффициентов
k0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
k1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
k2
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
k3
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
Линейная функция
0
a
b
ab
с
ca
cb
cba
1
a = a1
b  1= b
a  b  1= a  b
1  c= c
c  a  1= c  a
1  b  c= b  c
c  b  a  1= c  b  a
Таблица 3.19
Векторы переключательных функций
Переменные
a
b
c
a b
ac
bc
a bc
84
a b
ac
bc
a bc
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
Представим вектор свойств ПФ (табл. 3.20).
В восьмеричном коде вектор свойств равен 308, а в шестнадцатеричном – 1816.
7
1
6
0
5
1
4
0
3
1
2
1
1
1
0
0
Рис. 3.6. Вектор в двоичном коде
Таблица 3.20
Вектор свойств ПФ
1
1
2
1
3
0
4
0
Номер свойства
Наличие свойства
5
0
3.6. Функционально полные базисы
Функционально полные системы переключательных функций представляет
собой базис. Всего можно получить 17 различных минимальных базисов из
логических функций двух переменных.
Имеются функции, обладающие всеми пятью отмеченными свойствами.
Таковы функции f1(x1 x2) = x1 x2 и f7(x1 x2) = x1  x2 (см. табл. 3.13). Часто их
называют соответственно ИЛИ-НЕ, И-НЕ. Таким образом, это базисы, состоящие
из одной функции (базис Вебба и базис Шеффера). Этот факт очень важен при
технической реализации дискретных устройств: достаточно иметь элементы,
реализующие только одну из этих функций, чтобы построить любую, сколь
угодно сложную схему.
Имеются базисы, состоящие из двух функций:
85
, , , .


Иногда используется базис из трех функций:
, ,  , базис Жегалкина , ,

.
3.7. Разложение функции f(x1, x2, …, xn) по переменным
Рассмотрим булевы функции представленные в виде суперпозиции
элементарных функций И, ИЛИ, НЕ. Используя законы алгебры логики, можно
заменить громоздкие булевы функции им равносильными, но более простыми.
Такой процесс называется минимизацией переключательных функций.
Его проводят для упрощения сложных логических выражений в программах, а
так же для того, чтобы построенные схемы не содержали лишних элементов.
Минимизировать переключательные функции (ПФ) следует в так называемой
нормальной форме (НФ).
Существуют два вида НФ – дизъюнктивная (ДНФ) и конъюнктивная (КНФ).
Элементарной конъюнкцией (дизъюнкцией) – называется выражение,
состоящее из конечного числа переменных и их отрицаний, взятых в том
выражении не более одного раза и разделенных операциями конъюнкции
(дизъюнкции):
k
& yi , где yi  xi или xi , например x1 x2 x3 – элементарная конъюнкция;
i 1
k
 yi , где yi  xi и xi , например x1  x2  x3 – элементарная дизъюнкция.
i 1
Дизъюнктивной
(конъюнктивной)
нормальной
формой
называется
дизъюнкция (конъюнкция) конечного числа элементарных конъюнкций
(дизъюнкций).
Нормальная форма называется совершенной, если в каждой её элементарной
дизъюнкции (конъюнкции) представлены все переменные, входящие в данную
ПФ (либо сами, либо с отрицанием).
Пример 1: f x1, x2 , x3   x1  x2 x3  x1x2 x3  x1  x1x2 x3  x1  x2 x3  x1x2 x3  x1x2 x3 .
Из всех различных ДНФ функции f x1 , x2 , x3  особо выделяется последнее
логическое выражение, которое является совершенной ДНФ, сокращено СДНФ.
На СДНФ накладываются следующие требования:
 формула не является тождественно – ложной;
 формула приведена к одному из видов ДНФ;
 из формулы удалены элементарные конъюнкции, включают одновременно
переменную и её отрицание, согласно закону инверсии;
 из формулы удалены одинаковые элементарные конъюнкции, кроме
одной, согласно правилу идемпотентности;
 каждая элементарная конъюнкция в ДНФ включает все переменные,
входящие в эту формулу
86
f x1 , x2 ,..., xn  

n
& X ii ,
1 , 2 ,...,  n  i 1
 f 1 , 2 ,...,  n 1
 xi при i  1

X


где i
.
 xi , i  0
i
(3.2)
Это разложение булевой функции f(x1, x2, …, xn) называется её совершенной
дизъюнктивной формой СДНФ. В примере 1 первая запись булевой функции.
В алгебре Буля справедлив принцип двойственности. Согласно этому
принципу имеем следующее двойственное разложение Шеннона булевой
функции (3.2).
 n i 
f x1 , x 2 ,..., x n  
&
 , x 
(3.3)
 1 , 2 ,...,  n   i 1 i  .
 f  , ,...,   0 
1
2
n
В примере вторая запись функции – f x1 , x2 , x3  .
Пример 2. Привести булеву функцию f x1 , x2 , x3   x1 x2  x3 x1  x2  x3  к
виду СДНФ.
f x1 , x2 , x3   x1 x2  x3 x1  x2  x3   x1 x2 x1  x1 x2 x2  x1 x2 x3  x1 x3 x1  x1 x3 x2  x1 x3 x3 
 x1 x2 x3  x3   x1 x2 x3  x1 x2 x3  x1 x2 x3  x1 x2 x3  x1 x2 x3  x1 x2 x3  x1 x2 x3  x1 x2 x3 .
СДНФ f x1 , x2 , x3  имеет вид f x1 , x2 , x3   x1 x2 x3  x1 x2 x3 .
Пример 3. Построить СДНФ и СКНФ булевой функции, заданной таблицей
истинности (табл. 3.21).
Каждому набору переменных (строке) поставим в соответствие элементарную
конъюнкцию, причем каждому аргументу xk  1 будет соответствовать xk , а
каждому xk  0 будет соответствовать xk в соответствующей конъюнкции.
Составим булеву функцию, объединив дизъюнкцией те элементарные
конъюнкции, которые дают значение булева выражения, равное единице:
f x1 , x2 , x3   x1  x2  x3 x1  x2  x3 x1  x2  x3 x1  x2  x3  .
Таблица 3.22
Таблица истинности
х1
х2
х3
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
87
f x1 , x2 , x3 
1
0
1
0
0
1
0
1
1
1
1
Таким образом, переключательная функция разлагается в совершенную
нормальную форму по формулам (3.2) или (3.3).
Существование СДНФ позволяет провести процедуру, называемую
разложением булевой функции по переменной xk . Разложение позволяет
представить произвольную функцию f x1 , x2 ,..., xn  в виде
f x1 , x2 ,..., xn   xk px1 ,..., xk 1; xk 1 ,..., xn   xk qx1 ,..., xk 1; xk 1 ,..., xn  .
Это легко сделать, отделяя в СДНФ все слагаемые с xk от xk и вынося xk или
xk за скобку. Тогда выражения в скобках будут функциями p и q, не зависящими
от xk . Тогда в примере 3 имеем
f x1 , x2 , x3   x1 x2 x3  x1 x2 x3  x1 x2 x3  x1 x2 x3  x1 x2 x3  x2 x3   x1 x2 x3  x2 x3   x1 x3   x1 x3  ,
т.е. функцию f разложили по х1.
3.8. Минимизация переключательных функций
При технической реализации переключательных функций, широко
используемых в вычислительной технике, системах автоматического
(автоматизированного) управления и контроля, возникает задача нахождения
наиболее экономичного представления соответствующих переключательных
функций. По существу решается задача оптимизации, причем минимизируется
стоимость реализации. Понятие стоимости устройства, реализующего
переключательную функцию, – дискретного устройства – относительно. Для
переключательных схем, реализуемых в виде релейно-контактных схем, для схем
из корпусных транзисторов и резисторов, из микросхем логических элементов
малой степени интеграции минимизация числа реле, контактов, транзисторов,
числа микросхем означает снижение стоимости [4]. Это было особенно актуально
на ранних этапах развития дискретной, цифровой техники. Для современных
цифровых автоматов на больших и сверхбольших интегральных схемах (БИС и
СБИС) стоимость определяется площадью схемы на кристалле кремния и
непосредственно не связана с числом микротранзисторов и других элементов.
Нередко схема с большим числом элементов, но обладающая высокой
регулярностью, занимает небольшую площадь, кроме того, она выгодна с точки
зрения проектирования, ведь стоимость проектирования, как и стоимость
изготовления, входит в суммарную стоимость устройства.
При построении устройства из дискретных компонентов в целях повышения
надежности наряду с уменьшением их числа (что увеличивает вероятность
безотказной работы) большое значение придается уменьшению числа соединений
между компонентами (это также увеличивает вероятность безотказной работы).
Кстати, эта задача решается на соответствующем графе – он разбивается на
подграфы, минимально связанные между собой. Однако для БИС надежность
88
соединений внутри кристалла достаточно высока по сравнению с надежностью
соединений между кристаллами. В связи с этим большое значение приобретает
деление системы на БИС таким образом, чтобы уменьшить число точек
соединений между ними.
Ограничимся в дальнейшем целью нахождения наиболее простого
представления переключательной функции в смысле наименьшего числа
входящих в нее символов (букв). Процесс получения такого представления будем
называть минимизацией. Под различными символами (буквами) будем понимать
вхождения одной и той же переменной в различные дизъюнктивные
(конъюнктивные) члены функции. Так, функция z1(abc) = ab  a  bc содержит
шесть букв, а функция z2(abc) = ab ac – четыре буквы, хотя обе функции зависят
от трех переменных a, b, c (закон обобщенного склеивания z1 = z2).
Методы минимизации разрабатываются применительно к каждой отдельной
функциональной полной системе элементных переключательных функций.
Наиболее детально такие методы разработаны для систем из дизъюнкции,
конъюнкции и инверсии.
При этом задача минимизации переключательной функции сводится к
нахождению такой ее формы, которая содержит наименьшее число дизъюнкций,
конъюнкций и инверсий.
Нахождение минимального представления функции в виде ДНФ или КНФ
связано с решением двух основных задач. Во-первых, это определение
конъюнкций (дизъюнкций), входящих в ДНФ (КНФ), каждая из которых
содержит минимальное число букв. Во-вторых, это определение ДНФ (КНФ),
содержащей минимальное число различных элементарных конъюнкций (дизъюнкций).
Будем рассматривать в основном минимизацию переключательных функций в
классе ДНФ, не требуя минимизации числа инверсий.
Основные понятия и определения, используемые при минимизации
При минимизации переключательных функций существенную роль играют
понятия импликанты, простой импликанты, имплиценты и простой имплиценты.
Пусть f(x), g(x), p(x) – полностью определенные функции, причем под x
понимается некоторый набор из n переменных (х1х2...хn). Функция f(x) определена
на рабочих (единичных) наборах M1[f(x)] и множестве запрещенных (нулевых)
наборов M0[f(x)]. Функция g(x) определена на множестве рабочих (единичных)
наборов M1[g(x)], а функция р(х) — на множестве запрещенных (нулевых)
наборов М0[р(х)].
Переключательная функция g(x) называется импликантой переключательной
функции f(x), если множество рабочих (единичных) наборов функции g(x)
совпадает или является подмножеством множества рабочих наборов функции f(x),
т.е. M1[g(x)]  M1[f(x)], где  – знак включения в множество, означающий, что
всякий элемент левого множества является элементом правого множества. При
89
этом говорят, что M1[f(x)] содержит M1[g(x)], т.е. в соответствии с определением
импликации g(x)  f(x).
Переключательная функция р(х) является имплицентой переключательной
функции f(x), если множество запрещенных (нулевых) наборов функции р(х)
совпадает или является подмножеством множества запрещенных (нулевых)
наборов функции f(x), т.е. М0[р(х)]  M0[f(x)].
Пусть функция в СДНФ имеет вид
f( x1 x2 x3 ) = x1 x2 x3  x1 x2 x3  x1 x2 x3 ;
g1(x) = x1 x2 x3 (конституента СДНФ);
g2(x) = x1 x2 x3 (конституента СДНФ);
g3(x) = x1 x2 x3 (конституента СДНФ);
g4(x) = f(x), т.е. сама функция в СДНФ.
Из СДНФ можно получить другие импликанты путем всевозможных
группировок
ее
членов
и
многократного
использования
(по возможности) закона склеивания, пока не останется конъюнкций,
xi – в одной, ~
x i – в другой, если
отличающихся значениями одной переменной ( ~
остальные члены конъюнкции одинаковы).
Так, g5(x) = x1 x2 x3  x1 x2 x3  x1 x2 ( x3  x3 )  x1 x2 ;
g6(x) = x1 x2 x3  x1 x2 x3  ( x1  x1 ) x2 x3  x2 x3 .
Группировка первой и второй конституент не позволяет применить закон
склеивания:
g7(x) = x1 x2 x3  x1 x2 x3 .
Других вариантов комбинаций и склеиваний для f(x) нет.
Простой импликантой функции f(x) называется любая элементарная
конъюнкция в g(x), являющаяся импликантой функции и обладающая тем
свойством, что никакая ее собственная часть уже не является импликантой. В
примере импликанты g 5  x1 x2 , g6 = x2 x3 являются простыми импликантами
функции f. Импликанты g1, g2, g3, g7 и, естественно, g4 не являются простыми, так
как их части являются импликантами функции f: например, g5 является частью g2
(g3). Говорят, что простые импликанты покрывают или поглощают
соответствующие конституенты.
В булевой алгебре переключательных функций утверждается и доказывается:
1) дизъюнкция любого числа – импликант переключательной функции – также
является импликантой этой функции;
2) любая переключательная функция равносильна дизъюнкции всех своих
простых импликант, и такая форма ее представления называется сокращенной
ДНФ (СкДНФ).
Рассмотренный перебор всех возможных импликант переключательной
функции f дает возможность убедиться, что простых импликант всего две: g5, g6.
Тогда сокращенная ДНФ функции f имеет вид f = g5  g6 = х1 х2  x2x3.
Рабочими наборами функции f(x1x2x3) являются 011, 110, 111 (табл. 3.22). Из
таблицы видно, что импликанты g5, g6 в совокупности покрывают своими
90
единицами все единицы функции f, т.е. рабочие наборы сокращенной ДНФ = 110,
111, 011, 111, последний повторяется дважды. Получение сокращенной ДНФ –
первый этап минимизации.
Иногда из сокращенной ДНФ можно убрать одну или несколько простых
импликант, не нарушая количества необходимых рабочих наборов. Такие простые
импликанты назовем лишними. В нашем случае их нет. Исключение лишних
простых импликант из сокращенной ДНФ – второй этап минимизации.
Таблица 3.22
Таблица истинности импликант
x1
x2
x3
f
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
1
1
g1
0
0
0
1
0
0
0
0
g2
0
0
0
0
0
0
1
0
Импликанты
g3 g4 = f g5
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
g6
0
0
0
1
0
0
0
1
g7
0
0
0
1
0
0
1
0
Сокращенная ДНФ переключательной функции называется тупиковой, если в
ней отсутствуют лишние простые импликанты.
Устранение лишних простых импликант из сокращенной ДНФ
переключательной функции не является однозначным процессом, т.е.
переключательная функция может иметь несколько тупиковых ДНФ.
Тупиковые ДНФ, содержащие минимальное число букв, являются
минимальными.
Минимальных ДНФ тоже может быть несколько. Минимальная ДНФ
функции, найденная путем построения и перебора всех тупиковых ДНФ и выбора
из них самой минимальной, называется общей (абсолютной) тупиковой ДНФ.
Поиск минимальной ДНФ всегда связан с перебором решений. Существуют
методы уменьшения перебора, но он всегда имеется. Как правило,
ограничиваются нахождением одной или нескольких тупиковых ДНФ, из которых
выбирают минимальную – ее называют частной минимальной ДНФ и считают
близкой к общей (абсолютной).
При минимизации не полностью определенных переключательных функций
особенностью является то, что необходимо найти такое ее доопределение за счет
условных наборов, которое соответствует минимальной ДНФ, содержащей
наименьшее число букв.
Метод Квайна
91
Метод основан на попарном сравнении и склеивании при возможности всех
конституент (членов СДНФ). Для этого каждая конституента сравнивается с
последующими, что приводит к получению импликант. Полученные импликанты
вновь подвергаются сравнению и при возможности склеиваются – и т.д. до тех
пор, пока оставшиеся импликанты уже не будут поддаваться склеиванию. Это и
есть простые импликанты, их дизъюнкция представляет собой сокращенную
ДНФ.
Для упорядочения целесообразно разбивать конституенты на группы по числу
неинверсированных переменных. В этом случае каждая очередная конституента,
начиная сверху, сравнивается, только с конституентами группы, соседней снизу, с
числом неинверсированных переменных на единицу больше.
Пусть имеется переключательная функция, заданная СДНФ:
f ( x1 x2 x3 x4 )  x1 x 2 x 3 x4  x1 x 2 x3 x4  x1 x2 x 3 x4  x1 x2 x3 x4  x1 x2 x3 x 4  x1 x2 x3 x4 .
Разобьем конституенты на группы по числу неинверсированных переменных.
Римская цифра номера группы соответствует числу неинверсированных
переменных. Проведем линии, указывающие склеиваемые конституенты.
Результатом склеивания является всегда элементарная конъюнкция,
представляющая собой общую часть исходных конъюнкций (в частности,
конституент).
I.
1) x1 x 2 x 3 x4
x1 x 2 x4
II.
2) x1 x 2 x3 x4
x1 x 3 x4
3) x 1 x 2 x 3 x 4
x1 x3 x4
4) x1 x2 x3 x4
x1 x2 x4
5) x1 x2 x3 x 4
x2 x3 x4
6) x1 x2 x3 x4
x1 x2 x3
III.
IV.
x1 x4
x1 x4
Рис. 3.7. Схема минимизации
Полученные импликанты также допускают склеивание, причем в результате
получается одна и та же импликанта x1 x 4 .
Дальнейшие склеивания невозможны, поэтому полученные импликанты –
простые, а сокращенная ДНФ имеет вид: x1 x4  x2 x3 x4  x1 x2 x3 .
Первый этап выполнен. На втором этапе необходимо исключить лишние
простые импликанты. Это делается с помощью специальной импликантной
таблицы Квайна (таблицы покрытий). Строки таблицы отмечаются простыми
импликантами переключательной функции, т.е. членами сокращенной ДНФ, а
столбцы – конституентами единицы, т.е. членами СДНФ переключательной
функции.
92
Как уже отмечалось, простая импликанта поглощает некоторую конституенту
единицы, если является ее собственной частью. Соответствующая клетка
импликантной таблицы на пересечении строки данной простой импликанты и
столбцов с конституентами единицы отмечается, например, знаком «+».
Минимальные ДНФ строятся по импликантной таблице следующим образом:
1) ищутся столбцы импликантной таблицы, имеющие только один крестик,
соответствующие этим крестикам простые импликанты называются базисными и
составляют так называемое ядро переключательной функции. Ядро обязательно
входит в минимальную ДНФ;
2) рассматриваются различные варианты выбора совокупности простых
импликант, которые накроют крестиками остальные столбцы импликантной
матрицы, и выбираются варианты с минимальным суммарным числом букв.
Ядром нашей функции (табл. 3.23) являются импликанты x1 x 4 и x1 x2 x3 , т.е.
функция имеет единственную тупиковую и минимальную ДНФ:
f ( x1 x2 x3 x4 )  x1 x4  x1 x2 x3 .
Таблица 3.23
Импликантная таблица Квайна
Импликанты
Простые
импликанты
A
x1 x4
x2 x3 x4
x1 x2 x3
B
C
Конституенты 1 (члены СДНФ)
x1 x 2 x 3 x4
x1 x 2 x3 x4
x1 x2 x 3 x4
x1 x2 x3 x4
+
+
+
+
x1 x2 x3 x 4
+
x1 x2 x3 x4
+
+
+
Видно, что импликанта х2х3х4 является лишней, так как она покрывает
конституенты, уже покрытые импликантами x1 x 4 , x1 x2 x3 .
Число крестиков в строке является степенью числа 2; можно убедиться, что
оно равно N = 2n–k, где k – число букв в простой импликанте, n – число
переменных, от которых зависит функция.
Если вначале не задана СДНФ, то ее надо получить, используя, например, уже
известные нам методы.
Ясно, что для больших импликантных таблиц трудно визуально выявить
варианты с минимальным числом букв. Поэтому используется метод Петрика,
позволяющий получать все тупиковые ДНФ по импликантной таблице путем
построения так называемого конъюнктивного ее представления. Для этого все
простые импликанты обозначаются разными буквами (А, В, С в табл. 3.23), а
затем для каждого столбца строится дизъюнкция всех букв, обозначающих строки
таблицы, пересечение которых с данным столбцом отмечено крестиком.
Конъюнктивное предоставление импликантной матрицы образуется как
конъюнкция построенных дизъюнкций для всех столбцов. К конъюнктивному
представлению импликантной таблицы могут быть применены все соотношения
булевой алгебры переключательных функций с целью его упрощения. После
93
раскрытия скобок и выполнения всех возможных поглощений получается
дизъюнкция конъюнкций, каждая из которых содержит все импликанты
тупиковой ДНФ:
1
1
K  A  A  A( A  B)  C ( B  C )  A( A  B)  C ( B  C )  AC .
Это означает, что тупиковая ДНФ содержит две простые импликанты:
(А = x1 x 4 и одновременно С = x1 x2 x3 ) и имеет вид: f  x1 x4  x1 x2 x3 .
Минимизация переключательных функций по картам Карно
При решении задач минимизации как полностью определенных, так и
неполностью определенных переключательных функций, зависящих от
небольшого числа переменных, широкое применение находят графические
методы. Чаще всего эти методы применяются для минимизации
переключательных функций четырех переменных, однако при соответствующем
навыке их можно применять и для функций пяти-шести переменных. При большом числе переменных графические методы теряют свое основное достоинство –
наглядность.
Метод минимизации по картам Карно позволяет графически получать
экономное покрытие переключательной функции правильными конфигурациями
ее единиц. Карта Карно – это таблица истинности специального вида, в которой
переменные функции расположены не одномерным, а двумерным массивом (по
горизонтали и вертикали), причем каждому набору переменных поставлена в
соответствие одна клетка. В эту клетку записывается значение функции (0 или 1)
на данном наборе. Входные переменные располагаются по внешним сторонам
карты напротив ее строк и столбцов. При этом единичное значение переменной
традиционно обозначается скобкой или линией «влияния» на строки или столбцы,
для остальных строк (столбцов) значение этой переменной равно нулю.
Каждая из входных переменных делит карту Карно на две разные части, в
одной из которых значение этой переменной равно 1, а в другой – 0.
Каждой клетке карты Карно соответствует один определенный набор, а каждая
сторона клетки представляет собой границу между значениями переменных.
Карты Карно для одной и двух переменных изображены на рис. 3.8.
а
0
(a )
b
1
00
( ab)
(а)
10
01
ab
(а)
а
( ab)
94
(аb)
11
Рис.3.8. Карты Карно для одной двух переменных
В правом углу для пояснения указаны наборы переменных, соответствующих
клеткам, в базе переменных «ab» («а» имеет вес 21,«b» – 20).
Задание переключательных функций картами Карно является более
компактным, а самое главное – более наглядным с точки зрения визуального
выделения групп рабочих (единичных) наборов. Число клеток карты Карно равно
числу таблицы истинности, т.е. 2n, где n — число входных переменных. В каждой
новой переменной число клеток удваивается, т.е. карта увеличивается вдвое.
Пусть задана таблица истинности функции трех аргументов, равная единице тогда,
когда две и более входных переменных равны единице. Это так называемая
мажоритарная функция, или функция голосования по большинству «2 из 3» (табл. 3.24).
Таблица 3.24
Мажоритарная функция
a
0
0
0
0
1
1
1
1
Входной набор
b
0
0
1
1
0
0
1
1
z
c
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
Представим эту функцию в виде карты Карно (рис. 3.9).
c
b
001
000
0
а
100
0
1
101
010
011
1
0
0
111
1
1
110
z
Рис. 3.9. Задание мажоритарной функции картой Карно
Если функция задана СДНФ, ее также просто представить в виде карты Карно.
Если функция задана в ДНФ, то необходимо проставить единицы в те клетки,
которые соответствуют областям конъюнкции соответствующих переменных.
Пусть задана та же функция «голосование по большинству голосов» («2 из 3» или
мажоритарная функция): f(abc) = ab  bс  ас.
Тогда в карте Карно на три переменных, единицы проставляются в клетках,
соответствующих пересечению «областей влияния» одновременно двух
переменных: а и b, b и с, а и с (рис. 3.10).
95
c
b
001
000
0
а
100
0
1 bc
0
1 ab
101
1
011
111
010
0
1 ac
110
Рис. 3.10. Задание картой Карно f(abc) = ab  bс  ас
Можно получить СДНФ, рабочие наборы этой функции:
Z(abc) = abc  abc  abc  abc  110 2  1112  1012  0112 .
Аналогично может быть получена СКНФ функции
Z(abc) = (a  b  c)(a  b  c)(a  b  c)(a  b  c) .
Для неполностью определенной переключательной функции проставляются
знаки «~» («тильда») в клетках, соответствующих условным наборам.
Карта Карно на четыре переменных содержит 16 клеток (рис. 3.11).
d
c
b
Рис. 3.11. Карта Карно на
четыре переменных
a
Такая таблица гораздо компактней, чем таблица истинности из 16 строк.
Заметим, что переменные в карте Карно проставляются в определенном порядке
так, чтобы каждая покрывала половину карты и не повторяла других переменных.
Переменные базы в карте Карно четырех переменных следуют: по вертикали –
снизу вверх, по горизонтали – справа налево (кстати, карты Карно и подобные им
карты Вейча отличаются способом кодировки – вариантами проставления
переменных).
Карты Карно имеют замечательное свойство, заключающееся в том, что
наборы значений переменных для клеток, стоящих рядом (соседние клетки),
отличаются значением лишь одной переменной. При переходе от одной клетки в
соседнюю всегда изменяется значение лишь одной переменной («1» на «0» или
наоборот).
96
Так, для карты четырех переменных (см. рис. 3.11) для второго столбца и
третьей строки получаются следующие конституенты или наборы переменных
номера клетки (рис. 3.12).
Очевидно, что наборы переменных (соответствующие конституентам
переключательной функции) двух соседних клеток отличаются друг от друга
значением только одной переменной. Такие наборы, отличающиеся значением
одной переменной, называются соседними наборами (кодами). Таким образом,
соседние клетки карты Карно имеют соседние коды (наборы). Можно также
сказать, что между соседними кодами имеется кодовое расстояние, равное
единице (кодовое расстояние равно количеству разрядов, в которых коды
отличаются друг от друга). Соседними являются также крайние левые клетки
карты Карно с крайними правыми клетками и крайние верхние клетки с крайними нижними (как если бы карта была свернута по вертикали и горизонтали). В
этом легко убедиться, сравнивая наборы (рис. 3.12):
a b c d – a b c d (соседние по переменной a),
a b c d – a b c d (соседние по переменной c).
ab cd
abc d
abc d
abc d
abc d
abc d
abc d
Рис. 3.12. Иллюстрация соседних клеток карты Карно
На картах Карно до четырех переменных соседние клетки расположены рядом,
граничат друг с другом, т.е. соседство очевидно.
На картах Карно пяти и более переменных соседние клетки, отличающиеся
значением только одной переменной, не всегда расположены рядом, т.е. их
соседство неочевидно. Поэтому чаще всего минимизация по картам Карно
используется для функций, зависящих не более чем от четырех переменных.
Минимизация переключательной функции по карте Карно в классе ДНФ
заключается в покрытии ее единиц минимальным количеством максимальных
правильных контуров. В эти контуры могут включаться и условные наборы.
Контуры могут пересекаться, но не могут включаться друг в друга – иначе не
получатся простые импликанты. Правильными контурами для карты четырех
переменных могут быть следующие:
1) одноклеточный – одна клетка с единицей, окруженная нулями;
2) двухклеточный – две соседние клетки, окруженные нулями;
97
3) четырехклеточный – квадрат из четырех соседних клеток, окруженных
нулями;
4) восьмиклеточный – куб из восьми соседних клеток, окруженных нулями;
5) сверхкуб (гиперкуб) – соответствует вырожденной функции четырех
переменных, не зависящей от переменных, – нет ни одного нуля. Он используется
для функций пяти и более переменных.
Типичные конфигурации максимальных правильных контуров представлены
на рис. 3.13—3.15.
x1 x2
x3 x 4
00
1
0
0
0
00
01
11
10
01
0
~
1
0
x1 x2
11
0
0
0
0
10
1
0
0
0
00
01
11
10
x3 x 4
00
0
0
0
0
01
1
0
0
~
11
0
1
0
0
10
0
1
0
0
а)
б)
Рис. 3.13. Двухклеточные контуры: а – пример 1; б – пример 2
x1 x2
00
01
11
10
00
0
0
1
1
x3 x 4
01 11
0
0
0
0
1
0
1
0
x1 x2
10
1
1
1
1
00
01
11
10
00
0
1
0
0
x3 x 4
01 11
1
1
1
1
0
0
1
1
x1 x2
10
0
1
0
0
00
01
11
10
x3 x 4
00 01 11 10
1 0 0 1
0 0 0 0
0 0 0 0
1 0 0 1
а)
б)
в)
Рис. 3.14. Четырехклеточные контуры: а – пример 1; б – пример 2; в – пример 3
x1 x2
00
01
11
10
00
1
1
0
0
x3 x 4
01 11
1
1
1
1
1
1
1
1
x1 x2
10
1
1
0
0
00
01
11
10
00
1
0
0
1
x3 x 4
01 11
1
1
0
0
0
0
1
1
x1 x2
10
1
0
0
1
00
01
11
10
x3 x 4
00 01 11 10
1 0 0 1
1 0 0 1
1 0 0 1
1 0 0 1
а)
б)
в)
Рис. 3.15. Восьмиклеточные контуры: а – пример 1; б – пример 2; в – пример 3
На этих рисунках изображена цифровая кодировка карт. Особое внимание
следует обращать на контуры, которые имеют видимый разрыв, так как
объединяемые ими соседние клетки находятся о крайних строках или столбцах
карты Карно. Найдем импликанты соответствующих функций для рис. 3.13 а.
Воспользуемся методом Квайна – Мак – Класки:
98
f ( x1 x2 x3 x4 )  0000  0010  0101  1101 .
Ясно, что наборы 0000 и 0010 склеиваются по переменным x1 x2 x4 (00–0), а
наборы 0101 и 1101 – по переменным x2 x3 x4 (–101). Получаем две
импликанты: f ( x1 x2 x3 x4 )  x1 x 2 x 4  x2 x 3 x4 .
Однако нет необходимости производить склеивания – нетрудно убедиться, что
простая импликанта легко находится по карте следующим образом: в нее входят
те переменные, которые во всех клетках данного контура не меняют своего
значения (речь идет о номере клетки!).
Для рис. 3.13 б получаем: f ( x1 x2 x3 x4 )  (011)  (001)  x1 x2 x3  x 2 x 3 x4 .
Для рис. 3.14 а: f ( x1 x2 x3 x4 )  (1  0)  (  10)  x1 x 3  x3 x 4 .
Для рис. 3.14 б: f ( x1 x2 x3 x4 )  (01  )  (0  1)  x1 x2  x 2 x4 .
Для рис. 3.14 в: f ( x1 x2 x3 x4 )  (0  0)  x 2 x 4 .
Для рис. 3.15 а: f ( x1 x2 x3 x4 )  (0  )  (  1)  x1  x4 .
Для рис. 3.15 б: f ( x1 x2 x3 x4 )  (0  )  x 2 .
Для рис. 3.15 в: f ( x1 x2 x3 x4 )  (  0)  x 4 .
По карте Карно удобна также минимизация в классе ДНФ. В этом случае
каждому контуру их нулей с возможным дополнением «~» соответствует
имплицента – член КНФ, которая строится также из переменных, не меняющих
своего значения в номере клеток «нулевого» контура, только, если переменная в
номере клетки равна нулю, то в КНФ она будет без инверсии, а если равна
единице – то в КНФ она будет с инверсией.
Так, для рис. 3.13 б f ( x1 x2 x3 x4 ) получим имплиценты:
1) ( x2  x4 ) – угловые клетки;
2) ( x 2  x3 ) – квадрат (0100, 1100, 0101, 1101);
3) ( x1  x 3 ) – квадрат (1111, 1110, 1011, 1010);
4) ( x2  x 3 ) – квадрат (0011, 0010, 1011, 1010).
Таким образом
f ( x1 x2 x3 x4 )  ( x2  x4 )( x 2  x3 )( x1  x 3 )( x2  x 3 ) .
Упражнения
n
3.1. Доказать, что число всех булевых функций от n аргументов равно 2 2 .
3.2. Записать в совершенных ДНФ и КНФ, булеву функцию y  f ( x1 , x2 , x3 ) ,
принимающую значение 1 на наборах с номерами 3, 4, 7.
3.3. Записать в ДНФ и КНФ булеву функцию y  f ( x1 , x2 , x3 , x4 ) ,
принимающую значение 0 на наборах с номерами 2, 6, 7, 8, 11, 12.
99
3.4. Проверить справедливость равенства x  x  1 .
3.5. Проверить
справедливость
x1  x2  x1  x2 , x1 | x2  x1 & x2 .
следующих
равенств:
x1 x2  x1  x2 ,
3.6. Найти минимальную ДНФ функции y  f ( x1 , x2 , x3 , x4 ) , принимающую
значение 1 на наборах 0, 1, 2, 5, 6, 7, 8, 12, 13.
3.7. Найти минимальную ДНФ функции y  f ( x1 , x2 , x3 , x4 , x5 ) , принимающую
значение 1 на наборах с номерами от 0 до 7, от 11 до 21 и от 26 до 31.
3.8. Функция y  f ( x1 , x2 , x3 ) равна 1 на наборах 1, 3, 4 и не определена на
наборе с номером 5. Найти ее минимальную ДНФ.
3.9. Проверить монотонность конъюнкции от n аргументов.
3.10. Привести пример монотонной функции, которая одновременно была бы
линейной.
3.11. Привести пример самодвойственной функции, которая одновременно
была бы линейной.
3.12. Привести пример линейной и монотонной функций.
3.13. Убедиться, что функции Шеффера и Вебба не являются ни линейными,
ни монотонными, ни самодвойственными.
3.14. Доказать теорему: при суперпозиции монотонных функций вновь
получаются монотонные функции.
3.15. Функция называется сохраняющей константу r (r = 0, 1), если на наборе
аргументов вида r , r ,..., r она принимает значения r. Доказать, что суперпозиция
функций, сохраняющих константу r, вновь является функцией, сохраняющей эту
константу.
3.16. Доказать полноту системы булевой функции, состоящей из дизъюнкции,
константы 0 и эквивалентности. Образует ли эта система базис?
3.17. Образует ли базис система булевых функций, состоящая из импликации и
константы 0?
3.18. Установить, является ли полной система, состоящая из дизъюнкции,
импликации и конъюнкции?
3.19. Образуют ли полную систему функция x1 x2  x1 x3  x2 x3 и отрицание?
100
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Новиков, Ф.А. Дискретная математика для программистов / Ф.А. Новиков.
– 2-е изд., перераб. – СПб: Питер, 2006. – 301 с.
2. Горбатов, В.А. Дискретная математика: учебник для студентов втузов /
В.А. Горбатов, А.В. Горбатов, М.В. Горбатова. – М.: АСТ: Астрель, 2006. – 447 с.
3. Харари, Ф. Теория графов / Ф. Харари. – М.: Мир, 1973. – 300 с.
4. Аляев, Ю.А. Дискретная математика и математическая логика: учебник /
Ю.А. Аляев, С.Ф. Тюрин. – М.: Финансы и статистика, 2006. – 386 с.
5. Эвнин, А.Ю. Дискретная математика: конспект лекций / Ю.А. Эвнин. –
Челябинск: ЧГТУ, 1998. – 178 с.
101
ОГЛАВЛЕНИЕ
Введение ....................................................................................................................... 3
Глава 1. Множества и отношения ............................................................................. 5
1.1. Множества .......................................................................................................... 5
1.2. Задание множеств ............................................................................................... 5
1.3. Операции над множествами .............................................................................. 6
1.4. Функция, отображение ..................................................................................... 12
1.5. Отношения......................................................................................................... 14
1.6. Свойства отношений ........................................................................................ 15
1.7. Отношения эквивалентности........................................................................... 15
1.8. Отношения толерантности .............................................................................. 17
1.9. Отношения порядка ......................................................................................... 18
1.10. Комбинаторика ............................................................................................... 19
1.11. Комбинаторные тождества ............................................................................ 25
1.12. Бином Ньютона ............................................................................................... 26
1.13. Формула включения-исключения ................................................................ 28
1.14. Задача о беспорядках и встречах .................................................................. 30
Упражнения................................................................................................................ 32
Решение задач 1.1–1.20 ............................................................................................. 39
Ответы к задачам 1.21–1.40 ...................................................................................... 43
Глава 2. Введение в теорию графов......................................................................... 44
2.1. Определения, обозначения графа ................................................................... 44
2.2. Операции над графами ..................................................................................... 47
2.3. Изоморфные графы .......................................................................................... 49
2.4. Матрицы графа ................................................................................................. 50
2.5. Связные графы .................................................................................................. 53
2.6. Метрические характеристики графа ............................................................... 54
2.7. Алгоритм определения связности графа и числа его компонент связности .. 55
2.8. Экстремальные задачи на графах ................................................................... 58
2.9. Деревья и леса ................................................................................................... 61
2.10. Алгоритм симметричного обхода бинарного дерева.................................. 64
2.11. Сетевое планирование.................................................................................... 65
Упражнения................................................................................................................ 68
Глава 3. Переключательные функции ..................................................................... 71
3.1. Определение, способы задания переключательных функций ..................... 71
3.2. Техническая реализация переключательных функций ................................ 77
3.3. Элементарные ПФ одной переменной ........................................................... 78
3.4. Элементарные ПФ двух переменных ............................................................. 79
3.5. Полнота системы ПФ ....................................................................................... 80
3.6. Функционально полные базисы ...................................................................... 85
3.7. Разложение функции f(x1, x2, …, xn) по переменным ................................... 86
3.8. Минимизация переключательных функций .................................................. 88
Упражнения................................................................................................................ 99
Библиографический список .................................................................................... 101
102
Download