
- •Лекция: Предварительные сведения
- •Множества
- •Операции над множествами
- •Как доказывать равенство множеств?
- •Отношения и функции. Мощность множества
- •2. Лекция: Индукция и комбинаторика Содержание
- •Метод математической индукции
- •Элементы комбинаторики
- •Размещения, перестановки, сочетания
- •Принцип включения и исключения
- •Лекция: Булевы функции и их представления Содержание
- •Булевы функции от n переменных
- •Геометрическое представление
- •Табличное представление
- •Булевы функции от 1-ой и 2-х переменных
- •Формулы
- •Булевы функции и логика высказываний
- •Эквивалентные преобразования формул Соглашения об упрощенной записи формул.
- •Дизъюнктивные и конъюнктивные нормальные формы Определение днф и кнф
- •Совершенные днф и кнф
- •Сокращенные днф
- •Многочлены Жегалкина
- •Лекция: Полные системы функций и теорема Поста Содержание
- •Замкнутые классы функций
- •Критерий полноты (теорема Поста)
- •6. Лекция: Хорновские формулы и задача получения продукции Содержание
- •Хорновские формулы
- •Задача получения продукции
- •Решение задачи о продукции
- •Алгоритм замыкание(X,f)
- •Алгоритм ПрямаяВолна(X,y,f)
- •Алгоритм БыстроеЗамыкание(X,f)
- •Лекция: Язык логики предикатов
- •Утверждения о свойствах объектов и отношениях между ними
- •Язык логики предикатов
- •Синтаксис: формулы логики предикатов
- •Семантика: системы и значения формул на их состояниях
- •Эквивалентные формулы и нормальные формы
6. Лекция: Хорновские формулы и задача получения продукции Содержание
Хорновские формулы
Задача получения продукции
Решение задачи о продукции
Алгоритм ЗАМЫКАНИЕ(X,F)
Алгоритм ПрямаяВолна(X,y,F)
Алгоритм БыстроеЗамыкание(X,F)
Задачи
Хорновские формулы
Определим вначале один интересный класс булевых формул - Хорновские формулы.
Определение 6.1. Пусть A - это множество логических (булевых) переменных. Хорновская (H-) формула - это формула вида
где ai, b A
Содержательно, такая Хорновская формула утверждает, что из истинности всех условий набора {a1, a2, … , ar} следует истинность заключения b. Утверждения такого вида находят широкое применение в различных разделах информатики. В частности, в теории баз данных такой вид имеют "функциональные зависимости", в логическом программировании - правила логических программ, в автоматическом синтезе программ - "аксиомы вычислимости". В таком же виде формулируются правила вывода во многих экспертных системах.
В этих и других областях представляют интерес связанные между собой задачи о минимальности набора H-формул и о выводимости некоторой H-формулы из заданного набора H-формул. Первая задача состоит в выяснении того, входит ли в набор H-формул F некоторая формула , которая может быть удалена из F без потери информации, т.е. которая выводится из F \ { }, а это и есть задача о выводимости. Уточним эту задачу.
Определение
6.2.
H-формула
является
следствием или выводится из множества
H-формул
F,
если на всяком наборе значений переменных
из A,
на котором истинны все формулы из F,
истинна и
(будем
это обозначать как
).
Это понятие следования некоторой формулы из множества формул можно сформулировать и для произвольных булевых формул, а не только для Хорновских. Следующее простое утверждение показывает, что понятие следования (выводимости) можно переформулировать в терминах тождественной истинности (см. определение 3.4).
Предложение 6.1. H-формула является следствием множества H-формул F тогда и только тогда, когда формула
|
(*) |
является истинной на всех наборах значений переменных (т.е. тождественно истинной).
Доказательство непосредственно следует из определения значений конъюнкции и импликации.
Как уже отмечалось в п.3, проблема проверки по булевой формуле ее тождественной истинности является весьма сложной. Известный нам метод такой проверки с помощью построения таблицы значений на всех наборах переменных практически не работает уже для формул с несколькими десятками переменных. В то же время во многих практических задачах число логических параметров исчисляется сотнями. Оказывается, что для установления тождественной истинности формул вида (*) или, что то же самое, для задачи проверки условия для H-формул имеется простой и очень эффективный алгоритм, позволяющий ее решать для формул с сотнями и тысячами переменных.
Мы изложим этот алгоритм на примере одного из интересных "экономических" приложений H-формул - задачи о возможности производства заданной продукции (набора товаров) из некоторого множества исходных продуктов (товаров, сырья).