Решение практических заданий по дискретной математике
Принадлежность функции к классу .Вычислим значения функции на оставшихся наборах:
Строим таблицу :
(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. Упорядочим ребра в порядке неубывания веса (длины):