- •Предисловие
- •Введение
- •Глава 1. Множества
- •§ 1. Множества н их спецификация
- •§ 2. Простейшие операции над множествами
- •X ∉ ø при любом х.
- •§ 3. Диаграммы Венна
- •§ 4. Подмножества и доказательства
- •Глава 2. Отношения
- •§ 5. Произведения множеств
- •§ 1. Основные понятия
- •§ 2. Графические представления
- •§ 3. Свойства отношений
- •§ 4. Разбиения и отношения эквивалентности
- •§ 5. Отношения порядка
- •§ 6. Отношения на базах данных и структурах данных
- •§ 7. Составные отношения
- •§ 8. Замыкание отношений
- •Глава 3. Функции
- •§ 1. Функции и отображения
- •§ 2. Обратные функции и отображения
- •§ 3. Мощность множеств и счетность
- •§ 4. Некоторые специальные классы функций
- •§ 5. Аналитические свойства вещественных функций
- •§ 6. Операции
- •Глава 4. Основные понятия арифметики
- •§ 1. «Малая» конечная арифметика
- •§ 2. «Большая» конечная арифметика
- •§ 3. Двоичная арифметика
- •§ 4. Логическая арифметика
- •Глава 5. Алгебраические структуры
- •§ 1. Алгебраические структуры и подструктуры
- •§ 2. Простейшие операционные структуры
- •§ 3. Кольца и поля
- •§ 4. Линейная алгебра
- •4.1. Векторные пространства о линейные преобразования.
- •§ 5. Решетка и булевы алгебры
- •§ 6. Замкнутые полукольца
- •Глава 6. Матрицы
- •§ 1. Матрицы и бинарные отношения на конечных множествах
- •§ 2. Матрицы над другими алгебраическими структурами
- •§ 3. Матрицы и векторные пространства
- •Глава 7. Теория графов
- •§ 1. Вводные понятия
- •§ 2. Маршруты, циклы и связанность.
- •§ 3. Планарные графы
- •3.1. Теоремы Эйлера и Куратовского.
- •3.2. Раскраска карт и графов.
- •§ 4. Структуры данных для представления графа
- •§ 5. Обход графа
- •5.2. Обход графа по глубине.
- •5.4. Остовные леса обходов по глубине и ширине.
- •§ 6. Ориентированные графы
- •6.2. Маршруты и связность в орграфах.
- •Глава 8. Языки и грамматики
- •§ 1. Основные понятия
- •§ 2. Грамматики с фразовой структурой
- •2.1. Основные определения.
- •§ 3. Контекстно-свободные языки
- •§ 4. Понятия грамматического разбора и грамматических модификаций
- •§ 5. Грамматики операторного предшествования
- •Глава 9. Конечные автоматы
- •§ 1. Общие понятия
- •§ 2. Конечные автоматы
- •§ 3. Регулярная алгебра
- •Глава 10.Компьютерная геометрия
- •§ 1. Системы координат для подмножеств r3
- •§ 2. Преобразования
- •§ 3. Кривые и поверхности
X ∉ ø при любом х.
Второе множество, определение которого зависит от задачи, называют универсальным множеством.
Определение. Универсальное множество (обозначается ξ) есть множество всех рассматриваемых в данной задаче элементов.
Ограничение ξ в этом случае помогает избежать трудностей, подобных тем, которые возникали при рассмотрении «множества» F примера 1.1; в любом случае большинство элементов несущественно в каждой данной задаче. Например, размеры «Английского словаря», несомненно, неинтересны, если рассматривается поведение отдельной программы на Фортране.
Определение. Два множества А и В не пересекаются, если А В = ø.
Определение. В каждом случае, когда ξ задано, определим дополнение множества А (обозначается А') как
А' = ξ \А = {х: х ∉ А}.
Из определений ø, ξ и А' следует справедливость тождеств
A А'= ξ, А А' = ø.
В § 4 будет показано, что для данного ξ эти тождества достаточны, чтобы однозначно определить А'. Пример 2.3. Пусть
«ξ -{1,2,3,4}, A = {1, 3, 4}, В = {2, 3}, С = {1,4}.
Из определений легко найти, например, А', В С, С\А и т. д. Однако может понадобиться исследовать более сложные выражения, включающие две или более операций. Поскольку в этих случаях встает вопрос, как определить порядок, в котором мы должны осуществлять элементарные операции над множествами, будем использовать скобки. Каждое выражение, заключенное в скобки, должно быть выполнено перед тем, как его результат может быть использован в других вычислениях. Например, в (А В)' пересечение ({3}) вычисляется раньше, чем дополнение ({1,2,4}). Этого соглашения, очевидно, достаточно. Однако, чтобы избежать такого множества скобок, мы не будем требовать скобок, когда хотим произвести операцию дополнения перед любой из операций с множествами { , , \, Δ}. Поэтому АΔВ' означает А (В') и т. д. Следовательно,
А В' = А {1, 4} = {1, 4},
(А В)' = {3}' = {1, 2, 4},
(В\А) C = {2} C = {1, 2, 4}. //
Читатель может быть удивлен, почему изложение построено на понятии множества, а не числа. Действительно, до сих пор мы использовали числа только как элементы множеств. Это делалось лишь для того, чтобы читатель познакомился с объектами, с которыми ему придется работать. Дело в том, что существуют множества более сложные, чем числа; мы можем получить числа из множеств, но не наоборот. Однако для многих приложений последующей теории необходимо сделать точные утверждения о некоторых специальных множествах чисел. Чтобы обеспечить основу, с помощью которой будут конструироваться такие множества, определим множество N целых положительных чисел (натуральных чисел):
N = {1,2,3, … }.
Точное определение множества N вместе с арифметическими операциями + и * и его упорядочивание будут даны ниже. Однако в настоящей главе мы будем предполагать, что читатель знаком с некоторыми свойствами N. Аналогично Z определяют как множество всех целых чисел:
Z = {…, -2, -1, 0, 1, 2, …}.
Конечно, множества N и Z не могут быть выписаны явно (они достаточно велики), но в настоящее время мы должны понимать «...» как «и так далее».
Рассмотрим теперь множество
A = {1, 2…, n} = {x:x N,l≤x≤n}.
Оно имеет n элементов. Будем говорить, что мощность (или размер, норма, длина) этого множества есть п. Это обозначается как
|А| = card(A)= п.
Далее любое множество B, которое имеет то же число элементов, что и A, имеет такую же мощность, и, конечно, эти элементы не надо пересчитывать. Для небольших множеств достаточно легко пересчитать элементы, но для других множеств (например, N) это может быть невозможно. Далее мы дадим строгое, но в то же время неформальное правило для вычисления количества элементов.
Определение. Говорят, что множество X конечно, если X = ø или если для некоторого n N существует множество {1, 2, …, n} такое, что оно имеет то же самое число элементов, что и X. Если X ≠ ø и никакого п не может быть найдено, то X называют бесконечным.
Сейчас, когда мы ввели некоторые определения, можно сформулировать несколько упражнений. Чтобы сделать множества легко записываемыми, мы снова будем использовать числа и буквы для элементов, но будем помнить, что те же операции могут быть применены к произвольным множествам.
Упражнение 1.2.
Пусть
ξ = {1, 2, 3, 4}, Х = {1, 5},
Y ={1, 2, 4}, Z = {2, 5}.
Найти множества:
а) X Y'; б) (X Z)U Y ';
в) Х (Y Z);г) (X Y) (Х Z)'; д) (X Y)';e) X' Y '; ж) (Х Y)'; з) (X Y) Z; и) X (Y Z); к) X\Z; л) (X\Z) (Y\Z).
Пусть
ξ = {а, b, с, d, е, f}, А = {а, b, с}, В = {f, e, c, a}, C = {d, e, f}.
Найти множества:
а) A\C; б) B\C; в) С\B;
г) A\B; д) A' В; е) B А'; ж) A С; з) С А; и) С Δ А.
Даны два произвольных множества А и B такие, что А B = ø. Что представляют собой множества А\В и B\A?
Даны два произвольных множества С и D такие, что С D' = ø. Что можно сказать o C D и C D?
Дано произвольное множество X. Найти множества:
а) Х Х'; б) X X'; в) Х\Х'.
Какие из следующих утверждений справедливы:
а) 0∉ ø; б) ø = {0}; в) |{ø}| = 1;
г) {{ ø }} {{{ ø }}}; д) |{{ø}}| =2?
Это вопрос коварный. Хотя это может показаться простым или надуманным, пустое множество и его свойства являются достаточно важными. Если вы не совсем уверены в ответе, проработайте вопрос, используя аналогию портфеля вместо множества. Таким образом, {{}, {}} — портфель, содержащий два пустых портфеля, и, следовательно, |{{}, {}}| = 2 и т. д.
Пусть М а N — два конечных компьютера (см. пример 2.2) с фиксированными программами. Далее пусть А — множество значений данных, доступных М и таких, что если х е А и машина М работает с входным словом х, то М останавливается и выдает результат. Аналогично пусть В — множество значений данных, которые приводят N к остановке и выдаче результата. Если любой элемент А доступен М a N, что мы может сказать об элементах В? Объяснить эту ситуацию с помощью символов и пояснить бесполезность этой информации.
Объяснить в терминах множеств, почему пример 2.1 верен.
При определении операции объединения подчеркивалось, что мы использовали включение «или». Как в терминах множеств можно выразить исключающее «или»?
10. Часто в вычислениях будут использоваться арифметические операции для образования новых множеств. Так, если А и В — множества чисел, то
А + В = {х: х = а + b, а А, b В).
е) {1,
2}\{1,
3};
ж)
{2,
4}/{2};
з) {2,
4}\{2};
и) {2,
4}
- {2}.
а) {1,2} + {1,3};
б) {1,2} {1,3};
в) {1,2} * {1,3};
г) {1, 2} {1, 3};
д) {1, 2} - {1,3};
11. Для того чтобы быть в состоянии применить технику операций с множествами к конкретной задаче, мы неизбежно должны на некотором этапе взять «нематематическое» утверждение и перевести его в математическое. Обычно (но не всегда) это делает описание более компактным. Однако математическое выражение будет всегда математически строгим, тогда как исходное выражение может таким не быть. (Где это случается, требуется найти, чего же недостает в первоначальной формулировке.) Теперь надо:
а) попытаться сформулировать следующие утверждения на языке множеств:
даны множества А, В а С; определить множество, включающее в себя только два из этих множеств;
решить предыдущую задачу при условии, что А, В и С взаимно не пересекаются
даны множества V, W, Y, X и Z. Определить множество, включающее по крайней мере два из множеств V, W, X и Y и не включающее Z;
б) аналогично описать словами следующие множества:
(J
(K
L))'
(H\L),
(P
R
Q)\(P
(Q\R)),
((E\F)
F\E))'
G.
