Задача получения продукции

Хорновские формулы

Определим вначале один интересный класс булевых формул - Хорновские формулы.

Определение 6.1. Пусть A - это множество логических (булевых) переменных.Хорновская (H-) формула - это формула вида

Задача получения продукции - student2.ru

где Задача получения продукции - student2.ru

Содержательно, такая Хорновская формула утверждает, что из истинности всех условий набора {a1, a2, ... , ar}следует истинность заключения b. Утверждения такого вида находят широкое применение в различных разделах информатики. В частности, в теории баз данных такой вид имеют "функциональные зависимости", в логическом программировании - правила логических программ, в автоматическом синтезе программ - "аксиомы вычислимости". В таком же виде формулируются правила вывода во многих экспертных системах.

В этих и других областях представляют интерес связанные между собой задачи о минимальности набора H-формул и о выводимости некоторой H-формулы из заданного набора H -формул. Первая задача состоит в выяснении того, входит ли в набор H -формул F некоторая формула Задача получения продукции - student2.ru которая может быть удалена из F без потери информации, т.е. которая выводится из Задача получения продукции - student2.ru , а это и есть задача о выводимости. Уточним эту задачу.

Определение 6.2. H-формула Задача получения продукции - student2.ru является следствием или выводится из множества H-формул F, если на всяком наборе значений переменных из A, на котором истинны все формулы из F, истинна и Задача получения продукции - student2.ru (будем это обозначать как Задача получения продукции - student2.ru ).

Это понятие следования некоторой формулы из множества формул можно сформулировать и для произвольных булевых формул, а не только для Хорновских. Следующее простое утверждение показывает, что понятие следования (выводимости) можно переформулировать в терминах тождественной истинности (см. определение 3.4).

Предложение 6.1. H-формула Задача получения продукции - student2.ru является следствием множества H -формул F тогда и только тогда, когда формула

Задача получения продукции - student2.ru (*)

является истинной на всех наборах значений переменных (т.е. тождественно истинной).

Доказательство непосредственно следует из определения значений конъюнкции и импликации.

Как уже отмечалось в п.3, проблема проверки по булевой формуле ее тождественной истинности является весьма сложной. Известный нам метод такой проверки с помощью построения таблицы значений на всех наборах переменных практически не работает уже для формул с несколькими десятками переменных. В то же время во многих практических задачах число логических параметров исчисляется сотнями. Оказывается, что для установления тождественной истинности формулвида (*) или, что то же самое, для задачи проверки условия Задача получения продукции - student2.ru для H -формул имеется простой и очень эффективный алгоритм, позволяющий ее решать для формул с сотнями и тысячами переменных.

Мы изложим этот алгоритм на примере одного из интересных "экономических" приложений H-формул - задачи о возможности производства заданной продукции(набора товаров) из некоторого множества исходных продуктов (товаров, сырья).

Задача получения продукции

Пусть задано некоторое множество A={ a1, a2, ..., N} имен товаров (продуктов, сырья и т.п.) и имеется некоторое множество F технологических процессов(производств), описывающих возможности получения одних продуктов из других. Каждый технологический процесс Задача получения продукции - student2.ru задается множеством Задача получения продукции - student2.ru исходных продуктов (входов) этого процесса и результирующим продуктом (выходом) Задача получения продукции - student2.ru , т.е. процесс t позволяет из исходных продуктов Lt получить продукт bt - его выход. Будем задавать технологический процесс в виде t: Lt -> bt. Продукт, полученный в одном процессе, может далее использоваться в других процессах.

Определение 6.3. Задача получения продукции состоит в том, чтобы выяснить по заданному набору исходных продуктов Задача получения продукции - student2.ru и результирующему продукту Задача получения продукции - student2.ru можно ли с помощью технологических процессов из F получить выход y по входным продуктам из X .

(Можно обобщить эту задачу и рассматривать возможность получения по X некоторого множества результирующих продуктов Задача получения продукции - student2.ru .)

Пример 6.1. Пусть A= { дерево, клей, гвозди, кирпич, стекло, окна, полы, стены, крыша, столы}. Множество технологических процессов F={t1, t2, t3, t4, t5, t6} задается соответствующими множествами входов и выходов.

  • t1: { дерево, клей, гвозди } -> столы
  • t2: { дерево, гвозди} -> полы
  • t3: { дерево, клей, стекло} -> окна
  • t4: { стены, полы, крыша} -> дача
  • t5: { кирпич, окна, дерево} -> стены
  • t6: { дерево, гвозди } -> столы

Рассмотрим для этой системы технологических процессов задачу получения продукта дача по исходному множеству продуктов: {дерево, клей, гвозди, стекло, кирпич, крыша}.

Нетрудно понять, что эта задача решается положительно с помощью следующей цепочки процессов: t3; t5; t2; t4. Действительно, в t3 получаются окна, которые используются в t5 для получения стен, в t2 производятся полы, а затем произведенные ранее стены, полы, крыша используются в t4 для получения результата дача.

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

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

Будем рассматривать A как множество булевых переменных. Каждому процессу t с параметрами Lt={a1,... , ar} и bt сопоставим следующую H-формулу Задача получения продукции - student2.ru :

Задача получения продукции - student2.ru

Например, процессу t5 из нашего примера соответствует формула Задача получения продукции - student2.ru :

Задача получения продукции - student2.ru

Сохраним для множества H -формул, соответствующих процессам, обозначение F.

Справедлива следующая теорема, которая показывает, что задача о возможности получения продукции и задача о следствии из множества H-формулэквивалентны.

Теорема 6.1. Для любых множества продуктов A, множества технологических процессов F, множества исходных продуктов Задача получения продукции - student2.ru и результирующего продукта Задача получения продукции - student2.ru задача получения продукта y по входным продуктам из X с помощью процессов из F разрешима тогда и только тогда, когда Задача получения продукции - student2.ru , где Задача получения продукции - student2.ru

Доказательство Задача получения продукции - student2.ru Предположим, что с помощью набора процессов из множества F={t1, ..., th } из множества исходных продуктов X можно получить y. Пусть Задача получения продукции - student2.ru - это последовательность процессов из F, которая приводит к получению y. Докажем, что тогда Задача получения продукции - student2.ru . Рассмотрим произвольный набор значений переменных Задача получения продукции - student2.ru , на котором истинны все формулы из F. Если хотя бы для одной переменной Задача получения продукции - student2.ru ее значение Задача получения продукции - student2.ru , то формула Задача получения продукции - student2.ru истинна, поскольку ее левая часть ложна. Предположим теперь, что для любой переменной Задача получения продукции - student2.ru ее значение Задача получения продукции - student2.ru .

Тогда индукцией по номеру r процесса Задача получения продукции - student2.ru в Задача получения продукции - student2.ru покажем, что для каждого r=1, ..., m значение соответствующей результирующей переменной Задача получения продукции - student2.ru . Действительно, при r=1 из применимости процесса Задача получения продукции - student2.ru следует, что Задача получения продукции - student2.ru , но тогда Задача получения продукции - student2.ru для любой переменной Задача получения продукции - student2.ru и левая часть импликации Задача получения продукции - student2.ru истинна на наборе Задача получения продукции - student2.ru . Но так как и вся формула Задача получения продукции - student2.ru истинна на Задача получения продукции - student2.ru , то и ее заключение Задача получения продукции - student2.ru тоже истинно на Задача получения продукции - student2.ru , т.е. Задача получения продукции - student2.ru . Пусть теперь для некоторого k > 1\ Задача получения продукции - student2.ru при r < k. Докажем, что и Задача получения продукции - student2.ru . Поскольку процесс Задача получения продукции - student2.ru применим после процессов Задача получения продукции - student2.ru , то Задача получения продукции - student2.ru . Тогда все переменные из Задача получения продукции - student2.ru истинны на Задача получения продукции - student2.ru и, следовательно, Задача получения продукции - student2.ru .

Из доказанного утверждения следует, что Задача получения продукции - student2.ru . Но так как последовательность Задача получения продукции - student2.ru приводит к выпуску y, то Задача получения продукции - student2.ru и, следовательно, Задача получения продукции - student2.ru . Таким образом, формула Задача получения продукции - student2.ru истинна на Задача получения продукции - student2.ru и условие Задача получения продукции - student2.ru выполнено.

Задача получения продукции - student2.ru Предположим теперь, что выполнено условие Задача получения продукции - student2.ru . Опишем построение последовательности процессов Задача получения продукции - student2.ru которая приведет к производству y. Эта последовательность будет строиться по шагам. На шаге i вместе с последовательностью Задача получения продукции - student2.ru будем Определять множество продуктов Xi, которые можно произвести, исходя из X с помощью Задача получения продукции - student2.ru . Процедура построения последовательности Задача получения продукции - student2.ru завершается, как только в нее включается некоторый процесс с результатом y, либо когда на очередном этапе в Xi не добавляются новые элементы.

Шаг 0.Положим Задача получения продукции - student2.ru , X0=X.

Шаг 1. Положим Задача получения продукции - student2.ru и Задача получения продукции - student2.ru .

Пусть уже определены Задача получения продукции - student2.ru и Xi.

Шаг i+1. Положим Задача получения продукции - student2.ru , Задача получения продукции - student2.ru и Задача получения продукции - student2.ru ( процессы внутри Задача получения продукции - student2.ru упорядочиваются в произвольном порядке).

Если Задача получения продукции - student2.ru или Xi=Xi+1, то положим Задача получения продукции - student2.ru и закончим процедуру.

Заметим вначале, что эта процедура построения Задача получения продукции - student2.ru обязательно завершится через конечное число шагов, так как размер Xi не может превысить размер множества всех продуктов A. Покажем, что процесс построения Задача получения продукции - student2.ru завершится на таком шаге (i+1), для которого впервые Задача получения продукции - student2.ru , т.е. что последовательность процессов Задача получения продукции - student2.ru приводит к производству y. Действительно, предположим, что процедура завершилась после этапа (i+1) из-за выполнения равенства Xi=Xi+1 (при этом Задача получения продукции - student2.ru . Покажем, что тогда существует набор значений переменных Задача получения продукции - student2.ru на котором все формулы из Fистинны, а формула Задача получения продукции - student2.ru ложна. Положим Задача получения продукции - student2.ru при Задача получения продукции - student2.ru и Задача получения продукции - student2.ru при Задача получения продукции - student2.ru . Так как Задача получения продукции - student2.ru , то для каждого Задача получения продукции - student2.ru значение Задача получения продукции - student2.ru , а так как Задача получения продукции - student2.ru , то Задача получения продукции - student2.ru , т.е. формула Задача получения продукции - student2.ru на наборе Задача получения продукции - student2.ru ложна. Каждая формула Задача получения продукции - student2.ru \ для Задача получения продукции - student2.ru истинна, поскольку Задача получения продукции - student2.ru и, следовательно, Задача получения продукции - student2.ru . Ложной могла бы оказаться лишь такая формула Задача получения продукции - student2.ru , для такого процесса Задача получения продукции - student2.ru , у которого заключение Задача получения продукции - student2.ru . Но для такого процесса t обязательно имеется продукт Задача получения продукции - student2.ru , который не входит в Xi (иначе бы bt попало в Xi+1 и процедура не остановилась бы на (i+1) -ом шаге). Для этого a значение Задача получения продукции - student2.ru . Но тогда условие импликации Задача получения продукции - student2.ru ложно на Задача получения продукции - student2.ru , а вся формула Задача получения продукции - student2.ru на нем истинна. Таким образом, мы пришли к противоречию, которое показывает, что Задача получения продукции - student2.ru и процесс Задача получения продукции - student2.ru приводит к производству y.

Наши рекомендации