- •ВВЕДЕНИЕ
- •1.1. Способы задания множеств
- •1.2. Подмножества
- •1.3. Операции над множествами
- •1.4. Алгебра множеств
- •1.5. Кортежи. Прямое произведение множеств
- •1.6. Соответствие
- •1.7. Мощность множества
- •1.8. Единичный гиперкуб
- •1.9. Парадокс Рассела
- •2. ЛОГИЧЕСКИЕ ФУНКЦИИ
- •2.1. Понятие предиката
- •2.2. Признаки (свойства)
- •3.1. Высказывания
- •3.2. Кванторы
- •3.4. Аксиоматическая модель и ее свойства
- •3.6. Понятие монадической логики
- •3.7. Алфавит и термы
- •3.8. Предикатные нормальные формы
- •3.11. Алгоритм унификации
- •3.13. Перспективы развития
- •ЗАКЛЮЧЕНИЕ
- •БИБЛИОГРАФИЧЕСКИЙ СПИСОК
выше отрезке. Построим бесконечную десятичную дробь 0,b1b2...bn... по
правилу b1 ≠ a11,b2 ≠ a22 ,...,bn ≠ ann ...
Такое построение возможно, так как действительные числа не обязаны быть бесконечными периодическими десятичными дробями, и, следовательно, дробь 0,b1b2...bn... может быть непериодической. С одной сторо-
ны, построенное неотрицательное действительное число 0,b1b2...bn..., не превышающее единицы, должно принадлежать отрезку [0,1], а с другой –
(согласно нашему построению) его там нет. Это противоречие свидетельствует, что наше предположение неверно, т. е. множество R несчетное. Теорема доказана.
Вопросы для самоконтроля
1. Будет ли A B = A + B , если A ∩ B = ?
2.Чему будет равно A B , если A ∩ B ≠ ?
3.Справедливо ли равенство A* B = A
B ?
1.8. ЕДИНИЧНЫЙ ГИПЕРКУБ
Множество {0,1}n играет очень важную роль в информатике и вычислительной технике. Его называют единичным n-мерным гиперкубом.
Нуль-мерный единичный гиперкуб – это {0,1}0 ={λ}; одномерный –
{0,1}1 ={0,1}; двумерный гиперкуб содержит всевозможные пары из ну-
лей и единиц – {0,1}2 ={(0, 0), (0,1), (1, 0), (1,1)}={00, 01,10,11}; трехмер-
ный – всевозможные тройки из нулей и единиц общим числом 23 =8, т. е.
{0,1}3 ={(0, 0, 0), (0, 0,1), (0,1, 0), (0,1,1), (1, 0, 0), (1, 0,1), (1,1, 0), (1,1,1)} = ={000, 001, 010, 011,100,101,110,111} и т. д. Поэтому множество {0,1}n
будет состоять из 2n n-ок с компонентами из нулей и единиц.
36
Эти n-ки называются вершинами гиперкуба, а их компоненты – координатами вершин. С вершинами гиперкуба связаны следующие числовые характеристики.
1. Весом (или нормой) вершины a с координатами α1,α2 ,...,αn назы-
n
вается сумма всех ее координат, т. е. a = ∑αi .
i=1
2. Номером вершины a {0,1}n |
называется число |
n |
αi 2n−i . |
ν(a)= ∑ |
|||
|
|
i=1 |
|
Следовательно, номера вершин гиперкуба {0,1}n – это целые числа из интервала 0, 2n −1 , а соответствующие им вершины суть двоичное представление этих чисел (число ν(a) в двоичной системе счисления есть a ).
3. Расстоянием Хэмминга между вершинами a и b гиперкуба {0,1}n
n
называется число ρ(a,b)= ∑ αi −βi , где a = (α1, α2 , ..., αn )
i=1
и b = (β1, β2 , ..., βn ), т. е. расстояние между двумя вершинами – это число
координат, которыми они различаются.
Пример 10. Вычислить вес, номер вершин 1011 и 1101 гиперкуба {0,1}4 и расстояние Хэмминга между ними.
Решение. 
1011
=1+0 +1+1 = 3, 
1101
=1+1+0 +1 = 3,
ν(1011)=1 24−1 +0 24−2 +1 24−3 +1 24−4 =8 + 2 +1 =11,
ν(1101)=1 24−1 +1 24−2 +0 24−3 +1 24−4 =8 + 4 +1 =13,
ρ(1011,1101)= 1−1 + 0 −1 + 1−0 + 1−1 = 0 +1+1+0 = 2 .
Используя данные числовые характеристики, можно выделять различные подмножества гиперкуба.
1.Вершины a и b гиперкуба {0,1}n называются смежными, если
ρ(a,b)=1, а неупорядоченная пара смежных вершин {a,b} {0,1}n назы-
вается ребром гиперкуба {0,1}n .
37
2.Вершины a и b гиперкуба {0,1}n называются противоположными, если ρ(a,b)= n .
3.Множество всех вершин гиперкуба {0,1}n , имеющих вес k , называется k -м слоем этого гиперкуба.
4.Выберем k (k < n) координат вершин гиперкуба {0,1}n с номера-
ми i1, i2 , ..., ik и выпишем все вершины этого гиперкуба, у которых выбранные (фиксированные) координаты совпадают. Полученное подмно-
жество вершин называется гранью гиперкуба {0,1}n ранга k и размерно-
стью n −k , т. е. {a {0,1}n : Прi1,i2 ,...,ik a = (β1, β2 , ..., βk )} – грань ранга k и размерностью n −k .
5. Два ребра гиперкуба называются смежными, если они имеют общую вершину, а упорядоченная последовательность попарно смежных ребер называется цепью гиперкуба. Такую цепь проще задавать упорядоченной последовательностью попарно смежных соседних вершин, например, (a, b, с, ..., s) – цепь, связывающая вершины a и s , где {a,b}, {b, c}, ...,{r, s}
– попарно смежные ребра.
Гиперкуб и его подмножества можно изобразить на плоском чертеже, где вершины будут изображаться точками, а ребра – отрезками, соединяющими точки, которым соответствуют смежные вершины.
Грань гиперкуба можно задавать троичным вектором, координаты которого могут принимать только три значения: 0, 1, Х, где Х – знак того, что данная координата не фиксирована и может принимать произвольное значение – либо нуль, либо единицу. Например, троичный вектор (Х, Х,
1) =ХХ1={001, 011,101,111}. Это есть верхняя грань куба {0,1}3
(рис. 1.16, в). В данном векторе фиксирована только одна координата (третья – в состоянии 1). Следовательно, эта грань имеет ранг 1 (k =1) и размерность 2 (две нефиксированные координаты в троичном векторе).
38
|
|
011 |
|
0111 |
1111 |
|
0 |
1 |
|
|
|
|
|
|
0011 |
1011 0110 |
1110 |
|||
|
а |
|
||||
|
|
|
|
|
|
|
|
001 |
111 |
0101 |
1101 |
|
|
01 |
11 |
010 |
0010 |
1010 |
1100 |
|
|
|
|
||||
|
|
101 |
0001 |
1001 |
0100 |
|
|
000 |
110 |
|
|
|
|
00 |
10 |
110 |
|
0000 |
1000 |
|
|
б |
в |
|
|
г |
|
|
Рис. 1.16. Примеры изображения гиперкуба {0,1}n : |
|
||||
а – n =1; б – n =2; в – n =3; г – n =4
Замечание 1. Вершину гиперкуба еще называют двоичным (или булевым) вектором, т. к. каждая из ее координат может принимать лишь два значения: 0 или 1. У вершины все координаты определены (фиксированы), т. е. для нее k = n . Поэтому можно утверждать, что грань ранга n (нуле-
вой размерности) есть вершина гиперкуба {0,1}n . Иначе говоря, двоичный
вектор – это частный случай троичного.
Замечание 2. Очевидно грань ранга n −1 (размерности 1) есть ребро гиперкуба {0,1}n . Грани размерности 2 суть единичные квадраты, например, ХХ0, 1ХХ1, 0Х1Х и т. д. Грань размерности m будет уже единичным гиперкубом той же размерности, т. е. множеством {0,1}m , а грань размерности n будет содержать в себе вершины всего гиперкуба. Следовательно, справедливы равенства ХХХ={0,1}3 , ХХХХХ={0,1}5 и т. д.
Пример 11. Найти пересечение двух граней Х11Х и 0Х1Х.
Решение. Определим вершины грани Х11Х={0110, 0111,1110,1111},
аналогично 0Х1Х={0010, 0011, 0110, 0111}. Тогда Х11Х ∩0Х1Х = ={0110, 0111,1110,1111}∩{0010, 0011, 0110, 0111}={0110,0111}, т. е.
39
в пересечении этих граней имеем (общее) ребро, т. к. ρ(0110, 0111)=1. Данное ребро представим троичным вектором 011Х={0110,0111}. Таким образом, получили равенство Х11Х ∩0Х1Х = 011Х .
Пример 12. Найти объединение третьего слоя гиперкуба {0,1}4 с пе-
ресечением граней Х11Х и 0Х0Х.
Решение. Третий слой образуют вершины с весом 3, т. е. это будет множество {0111,1011,1101,1110}.
Вершины грани Х11Х={0110, 0111,1110,1111}. Ее следуют пересечь с
гранью |
0Х0Х={0000, 0001, 0100, 0101}. |
Тогда |
Х11Х ∩0Х 0Х = |
={0110, 0111,1110,1111}∩{0000, 0001, 0100, 0101}= , |
т. е. эти множе- |
||
ства не имеют ни одного общего элемента. Тогда искомое множество бу-
дет {0111,1011,1101,1110} ={0111,1011,1101,1110}.
Замечание. Из примера 11 следует, что операцию пересечения двух граней, результат выполнения которой в общем случае дает снова грань, можно осуществлять в терминах языка троичных векторов по достаточно простому правилу. Пусть α1α2...αn ∩β1β2...βn = γ1γ2...γn . Тогда
α |
|
, если |
β = X |
β = α |
; |
|
|
|
||
|
(i =1,n) |
|||||||||
γi = |
i |
|
если |
i |
i |
i |
|
|||
βi , |
αi = X βi |
= αi . |
|
|
|
|||||
Вопросы для самоконтроля |
||||||||||
1. Выразите через |
|
|
размерность n |
гиперкуба общее число вершин |
||||||
иребер.
2.Выполните операции над троичными векторами:
а) Х10Х ∩ ХХ 00, б) 1ХХХ 0ХХХ , в) X1X1 X1X 0, г) Х 0Х 0 ∩(ХХ10 ХХ 00).
40
