Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Дискретная математика в программировании. Практикум. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
1 Мб
Скачать

2)ассоциативность: X1 (X2 X3)=(X1 X2) X3;

X1ʌ(X2ʌX3)=(X1ʌX2)ʌX3;

3)дистрибутивность: X1ʌ(X2 X3)=(X1ʌX2) (X1ʌX3);

4)свойства констант: Xʌ1=X; Xʌ0=0; X 0=X;

5)X X=0; XʌX=X.

Утверждение. Через операции алгебры Жегалкина можно выразить все другие булевы функции:

¬X=1 X; XvY=X Y XY; X Y=1 X Y;

X→Y=1 X XY; (XÚY) =X↓Y=1 X Y XY;

Ø(XÙY)= X|Y=1 XY.

31

Построить полином Жегалкина можно с помощью метода

 

трецгольника. Этот метод позволяет преобразовать таблицу

 

истинности

в

полином

Жегалкина

путём

построен

вспомогательной

 

треугольной

таблицы

в

соответствии

со

следующими правилами.

 

 

 

 

 

1. Строится

полная

таблица истинности, в которой

 

 

строки идут в порядке возрастания двоичных

кодов от000...00

 

 

до 111...11.

 

 

 

 

 

 

 

2.Строится вспомогательная треугольная таблица, в

которой

первый

столбец

совпадает

со

столбцом значений

функции в таблице истинности.

 

 

 

 

3.

Ячейка в

каждом

последующем

столбце

получается

путём сложения по модулю 2 двух ячеек предыдущего столбца —

стоящей в той же строке и строкой ниже.

 

 

 

4.

Столбцы

вспомогательной

таблицы

нумеруются

двоичными кодами в том же порядке, что и строки таблицы

истинности.

 

 

 

 

 

5.

Каждому

двоичному коду ставится

в

соответствие

один из членов полинома Жегалкина в зависимости от позиций кода, в которых стоят единицы. Например, ячейке 111 соответствует член ABC, ячейке 101 — член AC, ячейке 010 — член B, ячейке 000 — член 1 и т.д.

6. Если в верхней строке какого-либо столбца стоит единица, то соответствующий член присутствует в полиноме Жегалкина.

Пример преобразования таблицы истинности в полином Жегалкина для функции трёх переменныхP(A,B,C) показан ниже.

32

Задания

1. Минимизировать булеву функцию, заданную таблично в соответствии с вариантом.

1.

x1

x2

x3

x4

F

0

0

0

0

1

0

0

0

1

1

0

0

1

0

1

0

0

1

1

0

0

1

0

0

0

0

1

0

1

1

0

1

1

0

1

0

1

1

1

1

1

0

0

0

0

1

0

0

1

0

1

0

1

0

1

1

0

1

1

1

1

1

0

0

1

1

1

0

1

0

1

1

1

0

0

1

1

1

1

0

2.

 

x1

 

x2

 

x3

x4

F

0

 

0

 

0

 

0

1

0

 

0

 

0

 

1

1

0

 

0

 

1

 

0

0

0

 

0

 

1

 

1

0

0

 

1

 

0

 

0

0

0

 

1

 

0

 

1

1

0

 

1

 

1

 

0

1

0

 

1

 

1

 

1

0

1

 

0

 

0

 

0

0

1

 

0

 

0

 

1

0

1

 

0

 

1

 

0

1

1

 

0

 

1

 

1

1

1

 

1

 

0

 

0

0

1

 

1

 

0

 

1

0

1

 

1

 

1

 

0

0

1

 

1

 

1

 

1

1

33

3.

x1

x2

x3

x4

F

0

0

0

0

0

0

0

0

1

0

0

0

1

0

0

0

0

1

1

1

0

1

0

0

1

0

1

0

1

0

0

1

1

0

0

0

1

1

1

0

1

0

0

0

1

1

0

0

1

1

1

0

1

0

0

1

0

1

1

0

1

1

0

0

0

1

1

0

1

1

1

1

1

0

1

1

1

1

1

1

4.

x1

x2

x3

x4

F

0

0

0

0

0

0

0

0

1

0

0

0

1

0

1

0

0

1

1

1

0

1

0

0

1

0

1

0

1

0

0

1

1

0

0

0

1

1

1

1

1

0

0

0

1

1

0

0

1

1

1

0

1

0

0

1

0

1

1

0

1

1

0

0

1

1

1

0

1

1

1

1

1

0

1

1

1

1

1

0

 

 

 

 

 

5.

 

x1

 

x2

x3

x4

F

0

 

0

 

0

0

1

0

 

0

 

0

1

0

0

 

0

 

1

0

0

0

 

0

 

1

1

0

0

 

1

 

0

0

1

0

 

1

 

0

1

1

0

 

1

 

1

0

0

0

 

1

 

1

1

0

1

 

0

 

0

0

0

1

 

0

 

0

1

1

1

 

0

 

1

0

1

1

 

0

 

1

1

0

1

 

1

 

0

0

0

1

 

1

 

0

1

0

1

 

1

 

1

0

1

1

 

1

 

1

1

1

6.

 

x1

 

x2

x3

x4

F

0

 

0

 

0

0

1

0

 

0

 

0

1

0

0

 

0

 

1

0

1

0

 

0

 

1

1

0

0

 

1

 

0

0

1

0

 

1

 

0

1

1

0

 

1

 

1

0

0

0

 

1

 

1

1

1

1

 

0

 

0

0

0

1

 

0

 

0

1

1

1

 

0

 

1

0

1

1

 

0

 

1

1

0

1

 

1

 

0

0

1

1

 

1

 

0

1

0

1

 

1

 

1

0

1

1

 

1

 

1

1

1

 

 

 

 

 

 

 

34

7.

x1

x2

x3

x4

F

0

0

0

0

1

0

0

0

1

1

0

0

1

0

0

0

0

1

1

0

0

1

0

0

1

0

1

0

1

1

0

1

1

0

1

0

1

1

1

0

1

0

0

0

0

1

0

0

1

1

1

0

1

0

1

1

0

1

1

1

1

1

0

0

0

1

1

0

1

0

1

1

1

0

1

1

1

1

1

1

8.

x1

x2

x3

x4

F

0

0

0

0

0

0

0

0

1

1

0

0

1

0

1

0

0

1

1

1

0

1

0

0

0

0

1

0

1

0

0

1

1

0

1

0

1

1

1

1

1

0

0

0

1

1

0

0

1

0

1

0

1

0

0

1

0

1

1

1

1

1

0

0

1

1

1

0

1

1

1

1

1

0

0

1

1

1

1

0

9.

 

x1

 

x2

x3

x4

F

0

 

0

 

0

0

0

0

 

0

 

0

1

1

0

 

0

 

1

0

0

0

 

0

 

1

1

1

0

 

1

 

0

0

0

0

 

1

 

0

1

0

0

 

1

 

1

0

1

0

 

1

 

1

1

0

1

 

0

 

0

0

1

1

 

0

 

0

1

0

1

 

0

 

1

0

0

1

 

0

 

1

1

1

1

 

1

 

0

0

0

1

 

1

 

0

1

1

1

 

1

 

1

0

0

1

 

1

 

1

1

0

10.

 

x1

 

x2

x3

x4

F

0

 

0

 

0

0

0

0

 

0

 

0

1

0

0

 

0

 

1

0

1

0

 

0

 

1

1

1

0

 

1

 

0

0

0

0

 

1

 

0

1

0

0

 

1

 

1

0

0

0

 

1

 

1

1

1

1

 

0

 

0

0

1

1

 

0

 

0

1

0

1

 

0

 

1

0

0

1

 

0

 

1

1

0

1

 

1

 

0

0

1

1

 

1

 

0

1

1

1

 

1

 

1

0

0

1

 

1

 

1

1

0

35

 

2.

 

Построить

 

полином

 

Жегалкина

методом

 

 

треугольника.

 

 

 

 

 

 

 

 

 

 

 

 

А

B

C

 

 

 

 

 

Варианты

 

 

 

 

 

 

1

2

3

4

 

5

6

 

7

 

8

9

10

 

 

 

 

 

 

 

 

1

1

1

1

1

0

0

 

1

1

 

0

 

1

0

0

 

1

1

0

0

0

1

0

 

0

1

 

0

 

1

0

1

 

1

0

1

0

1

1

0

 

1

1

 

0

 

1

1

1

 

1

0

0

1

1

1

1

 

0

0

 

0

 

1

0

0

 

0

1

1

1

0

0

0

 

1

1

 

1

 

0

0

0

 

0

1

0

0

1

1

0

 

1

1

 

0

 

0

1

1

 

0

0

1

1

1

0

1

 

1

0

 

1

 

1

0

1

 

0

0

0

0

1

0

1

 

1

1

 

1

 

1

1

1

 

Практическая работа № 7.

Способы задания графов: матрица инциденций, матрица смежности, таблица ребер, список инцидентности

Цель работы: приобрести навыки задания графов в ЭВМ различными способами и работы с ними.

Теоретические сведения

Существуют следующие способы представления графа в памяти ЭВМ. Рассмотрим конечный граф G = (V, E), где |V | = n,

|E| = m.

Матрица инциденций. Ориентированный граф задается прямоугольной матрицей B(n´m), элементы которой определяются по правилу:

ì-1,

если vi является начальной вершиной дуги e j;

ï

1,

если vi

является конечной вершиной дуги e j;

ï

bi j = í

0,

если vi не инцидентна дуге e j;

ï

ï

a, если

e j = (vi , vi ),

î

где a – любое

натуральное

число, отличное

от 1.

У

 

неориентированного

графа

оба

элемента

,

ма

соответствующие вершинам, инцидентным ребру ej, равны 1.

 

 

36

Это представление графа является самым неудобным, т. к. объем занимаемой памяти равенn×m единиц, причем в каждом столбце только две ненулевые ячейки. Кроме нерационального использования памяти, недостатком этого способа представления является неудобный доступ к информации. Например, для ответа на вопросы:

а) существует ли ребро (дуга) (vi, vj);

б) к каким вершинам ведут ребра (дуги) из вершины vi требуется, в худшем случае, перебор n×m элементов, т.е. порядка n×m шагов

алгоритма. От этого недостатка свободен следующий способ представления графа.

Матрица смежности. Элементы квадратной матрицы A(n´n) определяются следующим образом:

 

ì1,

если (v

, v

) ÎE;

aij

ï

 

i

j

 

= í

0,

если (v

, v

) ÏE.

 

ï

 

 

i

j

 

 

î

 

 

 

 

Число строк матрицы смежности равно числу столбцов и соответствует количеству вершин графа:

0 – соответствует отсутствию ребра,

1 – соответствует наличию ребра.

Такая форма эквивалентна матричному представлению бинарного отношения (см. с. 14). Проверка существования ребра (дуги) (vi, vj) осуществляется за один шаг, в отличие от матрицы инциденций, однако проверка свойств графа на основе такого представления требует, в худшем случае, порядка n2 шагов

37

алгоритма. При этом способе объем неиспользованной памяти по-прежнему велик.

При работе со взвешенными графами для хранения весов ребер (дуг) требуются дополнительные одномерные массивы размера m (для случая матрицы инциденций) или матрицы размера n´n (для случая матрицы смежности). Это обстоятельство делает неприемлемым использование матрицы смежности для взвешенных графов, т. к. количество неиспользованных единиц памяти увеличивается в k раз, где k число весов ребер (дуг).

Таблица ребер. Она представляет собой матрицу размером m´2, каждая строка которой содержит вершины инцидентные i-му ребру (i-й дуге). Для работы со взвешенными графами нужно добавить к матрице столбцы, соответствующие весам ребер (дуг). Такая форма эквивалентна табличному представлению бинарного отношения.

Однако этому способу представления графа присущ тот же

 

недостаток, что и матрице инциденций, – неудобство доступа к

 

информации,

хотя

число

шагов

при

поиске

ребра

здес

значительно меньше (порядка m).

 

 

 

 

Списки

инцидентности.

Для каждой

вершины

viÎV

 

создается

список

записей, характеризующих

ребра (дуги),

 

инцидентные этой вершине. Таким образом, это представление

 

использует объем памяти порядка n + m, поиск вершины смежной

 

с данной требует порядка n + m шагов, проверка свойств графа

 

осуществляется за

число

шагов

порядкаn. Такая

форма

 

эквивалентна представлению бинарного отношения в виде верхних срезов.

38

Задания

Написать программу в соответствии с заданием варианта.

1.По таблице смежности построить списки инцидентности неориентированного графа.

2.По таблице рёбер построить списки инцидентности ориентированного графа.

3.

По

таблице

смежности

построить

инцидентности ориентированного графа.

 

4.

По таблице рёбер построить списки инцидентности

неориентированного графа.

 

 

5.

По

таблице

смежности

построить

инцидентности ориентированного графа, записи в каждом списке

упорядочить по возрастанию номеров вершин.

 

6.

По таблице рёбер построить списки инцидентности

ориентированного графа, записи в каждом списке упорядочить по

убыванию номеров вершин.

 

 

7.

По

таблице

смежности

построить

инцидентности ориентированного графа, записи в каждом списке

упорядочить по убыванию номеров вершин.

 

8.

По таблице рёбер построить списки инцидентности

ориентированного графа, записи в каждом списке упорядочить по

возрастанию номеров вершин.

 

 

9.

По

таблице

смежности

построить

инцидентности неориентированного графа, удалить из графа все рёбра, начинающиеся и заканчивающиеся в вершинах n1, n2.

10. По таблице рёбер построить списки инцидентности ориентированного графа, добавить рёбра с началом в вершинах, кратных 2, и концом в вершинах, кратных 5.

39

Практическая работа № 8. Представление графа и определение его характеристик.

Алгоритмы поиска

Цель работы: приобрести навыки определения характеристик графа и применения алгоритмов поиска на графах.

Теоретические сведения

Существуют следующие характеристики ориентированного графа:

Г(хi) - множество вершин, в которые отображается вершина хi; Г-1i) - множество вершин, которые отображаются в

вершину°хi;

Г2i) - множество вершин, в которые отображаются вершины хi, отображенные в хi;

Г-2i) - множество вершин, которые отображаются в вершины, отображенные в хi;

ρsi) – полустепень исхода, т.е. количество дуг, выходящих из вершины хi;

ρti) – полустепень захода, т.е. количество дуг, входящих в вершину хi.

Например, для приведенного графа перечисленные ранее характеристики будут иметь следующие значения.

Г(х1)

х2, х5

Г(х2)

х3

Г(х3)

х4

Г(х4)

х2

Г(х5)

х2, х4

Г21)

х2, х3, х4

Г22)

х4

Г23)

х2

Г24)

х3

Г25)

х2, х3

40

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