8.5.3. Точный метод
Точный метод нахождения кратчайшего покрытия представляет собой обход дерева поиска. Текущая ситуация, соответствующая некоторой вершине дерева поиска, представляется переменной матрицей Х, которая показывает, какие столбцы еще не покрыты и какие строки можно использовать для их покрытия. В этой ситуации выбирается первый из столбцов с минимальным числом единиц – так минимизируется число вариантов продолжения поиска. Очередной шаг процесса состоит в выборе покрывающей строки для этого столбца и пробном включении ее в получаемое решение. Таким образом, вершины дерева поиска соответствуют некоторым столбцам исходной матрицы, а дуги – выбираемым для их покрытия строкам.
Начальное значение матрицы Х совпадает с исходной матрицей. Последующие значения получаются удалением строк, включаемых в решение, и столбцов, покрытых этими строками. Кроме того, выполняются следующие правила редукции.
1. Если столбец k имеет единицы везде, где имеет единицы столбец l, то столбец k можно удалить. Любая строка, покрывающая столбец l, покрывает также столбец k. Поэтому при поиске покрытия столбец k можно не рассматривать. Достаточно, чтобы в покрытие была включена какая-либо из строк, покрывающих столбец l.
2. Если строка i имеет единицы везде, где имеет единицы строка j, то строку j можно удалить. Действительно, пусть в некотором кратчайшем покрытии имеется строка j. Очевидно, данное покрытие останется кратчайшим, если в нем строку j заменить строкой i.
Продемонстрируем описанный процесс на матрице из предыдущего примера:
.
На первом шаге выбираем столбец а6, содержащий две единицы. Среди покрывающих ее строк выбираем такую, которая покрывает наибольшее число столбцов. Такой строкой является строка В6. Удалив эту строку и покрываемые ею столбцы, получим следующее значение матрицы X:
.
После удаления строк В1, В2 и В8 согласно второму правилу редукции матрица Х будет иметь следующий вид:
.
Одним из столбцов, обладающих минимальным числом единиц, является столбец а2. Обе покрывающие его строки В3 и В7 содержат по три единицы. Выбираем первую по порядку строку В3 и включаем ее в формируемое покрытие. Теперь имеем множество {B3, B6}. Этот шаг приводит к матрице
.
После удаления строки В7 по второму правилу редукции получим матрицу, каждая строка и каждый столбец которой содержат ровно две единицы. Выбрав строку В4, покрывающую столбец а4, и проведя аналогичные преобразования, получим матрицу с одним столбцом а7 и двумя строками В5 и В9, любая из которых покрывает оставшийся столбец. Таким образом, получено покрытие {В3, В4, B5, В6}, но пройдена пока только одна ветвь дерева поиска, и до совершения полного обхода дерева неизвестно, является ли это покрытие кратчайшим.
Возвращаемся к ситуации, когда очередным столбцом для покрытия взят а2. Теперь вместо строки В3 возьмем для покрытия столбца а2 строку В7. Действуя дальше аналогичным образом, получаем очередное покрытие {В4, B6, В7}, которое вытесняет предыдущее, так как оно оказалось лучше, однако и его пока нельзя назвать кратчайшим.
а6 –––В6––– а2 –––В3––– а4 –––В4––– а7 –––В5–––
––––В7––– а8 –––В4––– решение
–––В2–––
Рис. 8.1. Дерево поиска кратчайшего покрытия
Возвратившись к начальной вершине дерева поиска и следуя по дуге, соответствующей строке В2, убеждаемся, что длина покрытия не может быть меньше трех. На этом поиск можно закончить и выдать в качестве решения множество {В4, B6, В7}. На дереве поиска, обход которого совершался в процессе решения данного примера (рис. 8.1), вершинам приписаны столбцы, а дугам – строки.
- Литература
- Перечень компьютерных программ, наглядных и других пособий, методических указаний и материалов и технических средств обучения
- 1.2.Операции над множествами
- 1.3. Булева алгебра множеств
- 1.4. Разбиения и покрытия
- 2. Отношения бинарные и n-арные
- 2.1. Декартово произведение
- 2.2. Бинарные отношения (соответствия)
- 2.3. Операции над бинарными отношениями
- 2.4. Функциональные отношения
- 2.5. Бинарные отношения на множестве
- 2.6. Алгебраические системы
- 3. Основные понятия теории графов
- 3.1. Абстрактный граф
- 3.2. Графическое представление бинарного отношения
- Множеств а и в
- 3.3. Матричные представления графа
- 3.4. Части графа
- 3.5. Достижимость и связность
- 3.6. Доминирующие множества графа
- 3.7. Независимые множества графа
- 3.8. Раскраска графа
- 3.9.Планарность графов
- 3.10. Инварианты графов
- 4. Булевы функции
- 4.1. Способы задания булевой функции
- 4.2. Элементарные булевы функции и алгебраические формы
- 4.3. Интерпретации булевой алгебры
- 4.4. Нормальные формы булевых функций
- 4.4.1. Дизъюнктивные нормальные формы
- 4.4.2. Конъюнктивные нормальные формы
- 4.5 Полнота и замкнутость системы логических функций
- 4.6. Локальные упрощения днф
- 4.6.1. Удаление избыточных элементарных конъюнкций
- 4.6.2. Удаление избыточных литералов
- 4.7. Графическое представление булева пространства и булевых функций
- 4.7.1. Булев гиперкуб
- 4.7.2. Развертка гиперкуба на плоскости. Карта Карно
- 4.8. Минимизация днф
- 4.8.1. Метод Квайна-МакКласки
- 4.8.2. Метод Блейка-Порецкого
- 4.8.3. Визуально-матричный метод минимизации
- 5. Элементы математической логики
- 5.1 Алгебра высказываний
- Всякое высказывание логично следует из самого себя.
- 2. Закон противоречия:
- Если из а следует b, а b ложно, то а тоже ложно.
- 5.2. Логические отношения
- 5.3.Проверка правильности рассуждений
- 5.4. Решение логических задач методом характеристического уравнения
- 5.6. Кванторы
- 5.7 Эквивалентные соотношения. Префиксная нормальная форма
- 6. Основы теории алгоритмов
- 6.1. Интуитивное понятие об алгоритме
- 6.2. Три типа алгоритмических моделей
- 6.3. Кризис теории множеств антиномии. Выводы из антиномий
- 6.4. Машины Тьюринга как модели алгоритмов
- 6.5. Алгоритмы решения некоторых задач теории графов на графах
- 7. Конечный автомат и его описание.
- 7.2. Представления автомата
- 7.3. Связь между моделями Мили и Мура
- 7.4. Автомат с абстрактным состоянием. Булев автомат
- 7.5. Понятие о регулярных выражениях алгебры событий.
- 7.6. Задачи абстрактной теории конечных автоматов
- 8. Комбинаторные задачи и методы комбинаторного поиска
- 8.1. Задачи подсчета числа комбинаторных решений
- 8.2. Особенности оптимизационных комбинаторных задач
- 8.3. Вычислительная сложность
- 8.4. Методы комбинаторного поиска
- 8.5. Задача о кратчайшем покрытии и методы ее решения
- 8.5.1. Постановка задачи
- 8.5.2. Приближенные методы решения задачи
- 8.5.3. Точный метод
- Вопросы к зачету
- 28. Нормальные формы булевых функций. Дизъюнктивные нормальные формы
- 44. Эквивалентные соотношения. Префиксная нормальная форма
- Практический раздел Контрольная работа Указания по выбору варианта
- Контрольное задание №1. Используя диаграммы Эйлера-Венна, решить задачу
- Методические указания
- Задачи для самостоятельного решения
- Контрольное задание №2. Получить сднф, скнф, используя таблицу истинности. Построить днф, кнф, упростив выражение.
- Методические указания
- Задачи для самостоятельного решения
- Контрольное задание №3. Упростить схему (рис. 2)
- Методические указания
- Задачи для самостоятельного решения
- Задачи для самостоятельного решения
- Методические указания
- Задачи для самостоятельного решения
- Контрольное задание №6. Найти инварианты неориентированного графа, заданного матрицей смежности
- Методические указания
- Задачи для самостоятельного решения