Решение практических заданий по дискретной математике

Принадлежность функции к классу .

Вычислим значения функции на оставшихся наборах:



Строим таблицу :


(000)

0

(001)

1

(010)

2

(011)

3

(100)

4

(101)

5

(110)

6

(111)

7

1 1 1 0 0 0 0 0

Из таблицы видно, что на наборах 3 и 4 функция принимает одинаковые значения. Следовательно, .

5. Принадлежность функции к классу .

Из таблицы видно, что 111 > 000 , но . Следовательно, .


Строим критериальную таблицу:



К0 К1 КЛ КС КМ
f1 - - - - -
f2 - - - - -

В таблице в каждом столбце стоят минусы. Следовательно, система булевых функций



является полной .

Найдем все возможные базисы. По критериальной таблице составим КНФ :


.


Приведем КНФ к ДНФ :


.


По полученной ДНФ выписываем искомые базисы:


.


Задание 5

Минимизировать булеву функцию по методу Квайна – Мак-Класки.



Решение:

1 этап. Определение сокращенной ДНФ.

По десятичным эквивалентам запишем 0-кубы :



Выполним разбиение на подгруппы:


.


Строим -кубы, сравнивая соседние группы (значок (*) указывает на участие данной импликанты в склеивании):



Выполняем разбиение всех -кубов в зависимости от расположения независимой переменной Х :


.


Выполняем сравнение кубов внутри каждой подгруппы с целью построения -кубов (значок (*) указывает на участие данной импликанты в склеивании):


.


Выполняем сравнение кубов внутри каждой подгруппы с целью построения -кубов (значок (*) указывает на участие данной импликанты в склеивании):


или

.


Так как они одинаковы, то .

Запишем сокращенную ДНФ, в которую должны быть включены им-пликанта из К 3 и импликанты, не участвовавшие в склеивании (в нашем случае таких импликант нет) :


.


2 этап. Определение тупиковой ДНФ.

Так как все импликанты участвовали в склеивании, и сокращенная ДНФ состоит из одной простой импликанты, то строить таблицу покрытий нет необходимости, т.е.


.


Задание 6

Для неориентированного графа , у которого ,

а) вычислить числа ;

б) определить хроматическое число .

Решение:

Построим граф:



а) Вычислим числа .

1) :

Используя алгоритм выделения пустых подграфов, построим дерево:



Согласно определению :

.


2) :

Используя алгоритм выделения полных подграфов, построим дерево:



Здесь - полные подграфы. Видно, что мощность носителей всех подграфов равна трем, т.е.


.


3) :


Построим модифицированную матрицу смежности заданного графа G :


1 2 3 4 5 6

.


Находим минимальное число строк, покрывающих все столбцы модифи-цированной матрицы . Таких строк – одна. Следовательно,


.


б) Определим хроматическое число .



Согласно алгоритму минимальной раскраски вершин графа, выделим все пустые подграфы графа G , т.е. построим дерево (оно построено в пункте а) ):


Построим таблицу:


1 2 3 4 5 6

1. {1,4,6} 1 1 1

2. {1,5} 1 1

3. {2,5} 1 1

4. {2,6} 1 1

5. {3} 1


Определяем минимальное число строк, покрывающих все столбцы таблицы. Такими строками могут быть строки 1, 3, 5. Значит,


.


Зададимся красками: для множества вершин - краска синяя (С ), для множества вершин - краска красная ( К ), для множества вершин - краска зеленая ( З ).

Раскрасим вершины графа G :



Задание 7


Для заданной сети :

а) найти величину минимального пути и сам путь от вершины до вершины по алгоритму Дейкстры ;

б) используя алгоритм Форда-Фалкерсона, определить максимальный поток ( v1 – вход , v6 – выход сети ) и указать минимальный разрез, отделяющий v1 от v6 ,

если задана матрица весов (длин, пропускных способностей) Р :


v1 v2 v3 v4 v5 v6


Решение:

Построим сеть:



а) Найдем величину минимального пути и сам путь сети G . Используем для этого алгоритм Дейкстры.

Этап 1. Нахождение длины кратчайшего пути.

.

Шаг 1. Полагаем



1-я итерация.

Шаг 2. Составим множество вершин, непосредственно следующих за с временными метками: . Пересчитываем временные метки этих вершин: ,


.


Шаг 3. Одна из временных меток превращается в постоянную:



Шаг 4. Следовательно, возвращаемся на второй шаг.

2-я итерация.

Шаг 2.



Шаг 3.



Шаг 4. Переход на второй шаг.

3-я итерация.

Шаг 2.



Шаг 3.



Шаг 4.


Переход на второй шаг.


4-я итерация.

Шаг 2.



Шаг 3.



Шаг 4. Переход на второй шаг.


5-я итерация.

Шаг 2.



Шаг 3.



Шаг 4. Конец первого этапа.

Следовательно, длина кратчайшего пути равна .

Этап 2. Построение кратчайшего пути.

1-я итерация.

Шаг 5. Составим множество вершин, непосредственно предшествующих с постоянными метками : Проверим равенство



для этих вершин:


т.е.

т.е.


Включаем дугу в кратчайший путь,

Шаг 6. Возвращаемся на пятый шаг.

2-я итерация.

Шаг 5.


Включаем дугу в кратчайший путь, .

Шаг 6. . Завершение второго этапа.

Следовательно, кратчайший путь построен. Его образует последовательность дуг: .

Окончательно, кратчайший путь от вершины до вершины v6 построен. Его длина (вес) равна . Сам путь образует последовательность дуг:



б) Определим максимальный поток через сеть G. Для этого используем алгоритм Форда-Фалкерсона.



Выбираем произвольно путь из вершины v1 в вершину v6 . Пусть это будет путь . Минимальную пропускную способность на этом пути, равную 10, имеет дуга , т.е. Увеличим на этом пути поток до 10 единиц. Дуга становится насыщенной. Дуга имеет на данный момент пропускную способность, равную 10.

Путь Следовательно, поток на этом пути можно увеличить на 9 единиц. Дуги становятся насыщенными.

Других маршрутов нет (другие маршруты проходят через насыщенные дуги). Поток максимален. Делаем разрез вокруг вершины v1 по насыщенным дугам


и получаем его величину единиц.

8. Используя алгоритм Краскала, построить остов с наименьшим весом для неориентированного взвешенного графа , у которого , если заданы веса (длины) ребер:

□ Построим граф G :



1. Упорядочим ребра в порядке неубывания веса (длины):