Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Математические основания информатики. Учебное пособие.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
1 Мб
Скачать

выше отрезке. Построим бесконечную десятичную дробь 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 = AB ?

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 2ni .

ν(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 241 +0 242 +1 243 +1 244 =8 + 2 +1 =11,

ν(1101)=1 241 +1 242 +0 243 +1 244 =8 + 4 +1 =13,

ρ(1011,1101)= 11 + 0 1 + 10 + 11 = 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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]