Читайте также:
|
|
Пусть задано некоторое множество имён товаров (продуктов, сырья и т.п.) и имеется некоторое множество
технологических процессов (производств), описывающих возможности получения одних продуктов из других. Каждый технологический процесс
задаётся множеством
исходных продуктов (входов) этого процесса и результирующим продуктом (выходом)
, т.е. процесс
позволяет из исходных продуктов
получить продукт
– его выход. Будем задавать технологический процесс в виде
. Продукт, полученный в одном процессе, может далее использоваться в других процессах.
Определение: Задача получения продукции состоит в том, чтобы выяснить по заданному набору исходных продуктов и результирующему продукту
можно ли с помощью технологических процессов из
получить выход
по входным продуктам из
.
(Можно обобщить эту задачу и рассматривать возможность получения по некоторого множества результирующих продуктов
.)
Пример 10.1: Пусть = {дерево, клей, гвозди, кирпич, стекло, окна, полы, стены, крыша, столы}. Множество технологических процессов
задаётся соответствующими множествами входов и выходов.
: {дерево, клей, гвозди }
столы
: {дерево, гвозди}
полы
: {дерево, клей, стекло}
окна
: {стены, полы, крыша}
дача
: {кирпич, окна, дерево}
стены
Рассмотрим для этой системы технологических процессов задачу получения продукта дача по исходному множеству продуктов: {дерево, клей, гвозди, стекло, кирпич, крыша}.
Нетрудно понять, что эта задача решается положительно с помощью следующей цепочки процессов: ;
;
;
. Действительно, в
получаются окна, которые используются в
для получения стен, в
производятся полы, а затем произведённые ранее стены, полы, крыша используются в
для получения результата дача.
Подчеркнём, что мы абстрагируемся от количественных оценок исходных и производимых продуктов и считаем, что они всегда даются на входе и производятся в количестве, достаточном для обеспечения «сырьём» всех запускаемых процессов.
Построим формальную модель задачи о производстве с помощью булевых формул.
Будем рассматривать как множество булевых переменных. Каждому процессу
с параметрами
и
сопоставим следующую
-формул
:
Например, процессу из нашего примера соответствует формула
:
(кирпич & окна & дерево) стены.
Сохраним для множества -формул, соответствующих процессам, обозначение
.
Справедлива следующая теорема, которая показывает, что задача о возможности получения продукции и задача о следствии из множества -формул эквивалентны.
Теорема: Для любых множества продуктов , множества технологических процессов
, множества исходных продуктов
и результирующего продукта
задача получения продукта
по входным продуктам из
с помощью процессов из
разрешима тогда и только тогда, когда
, где
.
Доказательство:
Необходимость. Предположим, что с помощью набора процессов из множества из множества исходных продуктов
можно получить
. Пусть
– это последовательность процессов из
, которая приводит к получению
. Докажем, что тогда
. Рассмотрим произвольный набор значений переменных
, на котором истинны все формулы из
. Если хотя бы для одной переменной
её значение
, то формула
истинна, поскольку её левая часть ложна. Предположим теперь, что для любой переменной
её значение
.
Тогда индукцией по номеру процесса
в
покажем, что для каждого
значение соответствующей результирующей переменной
. Действительно, при
из применимости процесса
следует, что
, но тогда
для любой переменной
и левая часть импликации
истинна на наборе
. Но так как и вся формула
истинна на
, то и её заключение
тоже истинно на
, т.е.
. Пусть теперь для некоторого
при
. Докажем, что и
. Поскольку процесс
применим после процессов
, то
. Тогда все переменные из
истинны на
и, следовательно,
.
Из доказанного утверждения следует, что . Но так как последовательность
приводит к выпуску
, то
и, следовательно,
. Таким образом, формула
истинна на
и условие
выполнено.
Достаточность. Предположим теперь, что выполнено условие . Опишем построение последовательности процессов
, которая приведёт к производству
. Эта последовательность будет строиться по шагам. На шаге
вместе с последовательностью
будем определять множество продуктов
, которые можно произвести, исходя из
с помощью
. Процедура построения последовательности
завершается, как только в неё включается некоторый процесс с результатом
, либо когда на очередном этапе в
не добавляются новые элементы.
Шаг 0.Положим ,
.
Шаг 1. Положим и
.
Пусть уже определены и
.
Шаг . Положим
,
и
(процессы внутри
упорядочиваются в произвольном порядке).
Если или
, то положим
и закончим процедуру.
Заметим вначале, что эта процедура построения обязательно завершится через конечное число шагов, так как размер
не может превысить размер множества всех продуктов
. Покажем, что процесс построения
завершится на таком шаге
, для которого впервые
, т.е. что последовательность процессов
приводит к производству
. Действительно, предположим, что процедура завершилась после этапа
из-за выполнения равенства
(при этом
). Покажем, что тогда существует набор значений переменных
, на котором все формулы из
истинны, а формула
ложна. Положим
при
и
при
. Так как
, то для каждого
значение
, а так как
, то
, т.е. формула
на наборе
ложна. Каждая формула
для
истинна, поскольку
и, следовательно,
. Ложной могла бы оказаться лишь такая формула
, для такого процесса
, у которого заключение
. Но для такого процесса
обязательно имеется продукт
, который не входит в
(иначе бы
попало в
и процедура не остановилась бы на
-ом шаге). Для этого
значение
. Но тогда условие импликации
ложно на
, а вся формула
на нем истинна. Таким образом, мы пришли к противоречию, которое показывает, что
и процесс
приводит к производству
.
Дата добавления: 2015-10-28; просмотров: 68 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Раздел 10. Хорновские формулы | | | Тема 10.2. Решение задачи о продукции |