О ВЗАИМОСВЯЗЯХ РАЗЛИЧНЫХ АЛГОРИТМИЧЕСКИХ СХЕМ МЕТОДОВ ПОГРУЖЕНИЯ МНОЖЕСТВА РЕШЕНИЙ СИСТЕМЫ БУЛЕВЫХ УРАВНЕНИЙ В ДЕЙСТВИТЕЛЬНУЮ ОБЛАСТЬ
К.К. РЫБНИКОВ, к.ф.-м.н., докторант МГУЛа,
А. С. ХОХЛУ ШИН, аспирант МГУЛа
ешение системы булевых уравнений /і(х/,х2,...,хІІ)=аі, (і-1,2, ...,т) (1)
где /(х},х2,...,хп) - булевые функции, а хі,х2,...,хп, аі,...,ат принимают значение О или 1, является достаточно сложной задачей, носящей дискретный характер. В то же время эта задача представляет значительный практический интерес, так как является универсальной моделью т технических устройств с п двоичными входами и одним двоичным выходом.
Рассмотрим ряд подходов, позволяющих использовать для решения этой задачи классический аналитический аппарат.
Метод фундаментальных произведений
Пусть функция /(х],х2,...,хп) задана своей таблицей истинности. Будем искать непрерывную функцию, принимающую те же значения, что и функция/(хі,х2,...,х^ на каждом наборе (хі,х2, ...,х„), состоящем из нулей и единиц (см. напр. [1]).
Отметим в таблице истинности все строки у, в которых значение функции равно
1. Пусть некоторый (ОД) - на-
бор значений (хі,х2,...,хп), для которого =1. Образуем для этого набора
произведение
3°=Ґи\. <2>
к=I
л если =1,
ГДЄ 5 * = І п
[і-4*, если 4а- = О-
Произведения вида (2) называются фундаментальными произведениями. Соста-
вим теперь фундаментальное произведение Р}г) для каждой строки j> в которой /(Х],Х2,...,Хп) = 1 и образуем булеву сумму этих Р^:
£(Х1,...,Х„)= £3° , (3)
где 7, - множество номеров строк таблицы истинности, соответствующих единичному значению функции.
Существуют последовательно применяемые способы упрощения представления
(3) функции^Хи ...,х„) (например [1]):
1. Если представление (3) содержит выражение 0 + Р^, где слагаемое Р-‘}
входит множителем , то из представления (3) можно вычеркнуть Р^.
2. Если представление (3) содержит
выражение + {\-Ъ,к)Р^, то можно
прибавить к сумме (3) выражение Р-'1 7*° при условии, что:
а) Р^ не содержит произведений
вида 4/(1 ~4/) (т-к- в этом случае Р-‘] Р^ =0)
б) Р}‘] Р^1) не содержит подмножите-
ля, уже фигурирующего в сумме в качестве отдельного слагаемого.
Воспользуемся для иллюстрации примером, приведенным в [1], и на его основе покажем возможности решения системы булевых уравнений.
Пусть функция /(4р42>4з^4) описывается следующей таблицей истинности
^2 Ь /
0 0 0 0 0
0 0 0 1 0
0 0 1 0 0
0 0 1 1 0
0 1 0 0 0
0 1 0 1 1
0 1 1 0 0
0 1 1 1 1
1 0 0 0 0
1 0 0 1 0
1 0 1 0 0
1 0 1 1 0
1 1 0 0 1
1 1 0 1 1
1 1 1 0 0
1 1 1 1 0
Представление (3) будет иметь вид /Й1£2^) = (1-$1£20Чз)$4 +
+ (1-5,К£Д,+Ш1Ч,)(1-!;.) +
Прибавим к первым двум слагаемым (см. п.2) произведение
После этого (см. п.1) можно вычеркнуть первые два слагаемых. Тогда
/^Д2,4з^4) = (1-^^4 +
К первому и третьему слагаемому добавим произведение 42(1 ~4з)44(п-2Х а затем вычеркнем последнее слагаемое (п.1). Таким образом,
/К, = 0 -5, Ы, +5,0 -5. К. +
Ко второму и третьему слагаемому применим операцию, описанную в п.2, а зачем, применяя операцию п.1, получим
Ж1,Ъ£,А.) = а-ЪЫ.+Ъ(
Представление (3) может быть полезным при решении булевых уравнений и их систем. Так, например, решая уравнение
/<&,£2£зД4) = 0,
легко заметить, что значительная часть решений может быть найдена как множество векторов (415042>4з)- Рассматривая далее векторы вида (^, ,1,4г >^з) > найдем остальные решения.
Аналогично можно действовать, решая систему булевых уравнений. В качестве примера рассмотрим систему уравнений:
Г/(4,,42,4зД4) = 0,
и&£24з,$4) = 0;
где функция #(4,,42>4з£*) задается системой истинности
ь £з ^4 ё
0 0 0 0 0
0 0 0 1 0
0 0 1 0 0
0 0 1 1 0
0 1 0 0 0
0 1 0 1 0
0 1 1 0 0
0 1 1 1 0
1 0 0 0 0
1 0 0 1 0
1 0 1 0 0
1 0 1 1 0
1 1 0 0 0
1 1 0 1 0
1 1 1 0 1
1 1 1 1 1
и, соответственно, в виде фундаментальных произведений имеет представление
Тогда решение системы (4) осуществимо с помощью направленного перебора, схематически изображаемого в виде следующего дерева ветвлений.
№£2£э£4) = 0 Ьг($„42,$з>$4) = 0
$2
$2=0,
Решениями являются все векторы вида (4,,0,43,44)
4з=0
§2=1
[/=а-$,)$4+(1-$з)44+$,а-$з)=о
1*=$,$з(1-$4)+$,$Э$4=0
$3=1
Г/=44(1-4.)+$4+$, =$4(2-4,)+$, 1г*о
Г/ = (1-$,)$4=0 и=$,(1-$4)+$,$4=0
$4 $4=0
$4=1
$4=0
$4=1
[/=$,=0
1*-0
1
$,=0
1
I/-!
и-0
нет решений
(0,1 Д0)-решение
[/» 0 1*=$,
1
$,=0
I
(0,1,1,0)-решение
[/ = 1-$,=0 и=$,=о
нет решений
Таким образом, решениями системы (4) являются векторы: (0,1,0,0), (0,1,1,0) и восемь векторов вида (4, ,0,4з>$4)> где4,,$з,44пРинимают всевозможные значения 0 или 1.
Анализируя метод фундаментальных произведений, следует заметить, что структурно он представляет собой не что иное, как метод построения интерполяционного многочлена (3), принимающего на множестве 2” (ОД)-векторов те же значения, что и функция/(х1,...,х„). Нетрудно заметить также, что в случае а,~0 (г-1,2сумма всех
таких многочленов принимает нулевые значения на множестве решений системы (1).
Другой идеей является погружение множества решений системы (1) в действительную область, которая может быть проанализирована и свойства которой могут быть использованы при решении исходной задачи.
Метод полиэдрального представления множества решений системы булевых уравнений
Рассмотрим систему булевых уравнений
£(хьх2,...,хп)=0, 0=1,2,...,т). (5)
Применяя метод фундаментальных произведений и построении многочленов вида (3) заметим, что алгоритм построения этих многочленов совпадает с алгоритмом построения дизъюнктивных нормальных форм для функций/(Х1,Х2, ...,хп).
Действительно, заменяя в многочленах вида (3) знак операции умножения на «&» и знак операции сложения на «V», а
также выражения вида 1 - 4 /с на 4/,., получаем соответствующие дизъюнктивные нормальные формы.
Таким образом, систему булевых уравнений (5) можно представить в следующем виде:
К‘ V V... V К‘5. =0(1 = 1,2,..,,т), (6)
где К\,{1 = 1,2,...,т),(у' = 1,2,...,^) - многоместные конъюнкции, т.е.
5, 6 {0,1}, х[= х,., х1 = хк,
4 е {1,2к = 1,2,-,ги
Напомним, что элементарные (двухместные) конъюнкции х, & хг и дизъюнкции х2 задаются таблично следующим образом
*1 *2 х1 &х2 х2
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 1
Ясно, что система уравнений удовлетворяется тогда и только тогда, когда все конъюнкции, входящие в нее, принимают значение 0.
Нетрудно заметить, что условие К\ = 0 эквивалентно условию
^+-+%.\. (7)
1, если 5, =1,
/ = 1,2.г. ,,
-1, если 8,-( = 0, а г1] - число переменных, входящих в конъюнкцию К\х отрицанием.
Отсюда ясно, что решение системы булевых уравнений (6) может быть получено как решение соответствующей системы линейных неравенств, переменные в которой принимают значения 0 или 1.
Как известно, множество решений системы линейных неравенств называется полиэдром. Таким образом, предложенный метод заключается в погружении множества решений системы булевых уравнений в полиэдр. Подобный подход позволяет использовать для решения системы булевых уравнений некоторые возможности целочисленного программирования. Заметим, что этот подход, получивший в литературе название «метода разделяющих плоскостей» (напр. [2-4]), позволяет учесть структуру выпуклого многогранника (замкнутого полиэдра), содержащего все точки «-мерного пространства, являющиеся решениями системы булевых уравнений.
Проиллюстрируем схему построения системы линейных неравенств вида (7) на примере предыдущего раздела. Итак, будем рассматривать систему булевых уравнений
(4). По таблице истинности функции g(41,42Л3Л4) построим два неравенства. Последняя строка таблицы определяет очевидное неравенство
4,+^Нз+^З, (8)
предпоследняя строка аналогично определяет неравенство
4, +$2 + 4з +$4 - 3
где 44 = 1~44,или
4,+42+4з-44<2. (9)
Аналогично по таблице истинности функции /(4,,42,43,44)получаем
4^42+47+44^3, 4,=1-4,, Сз=1-
или
-4, +4а ~4з +44 ^1» (10)
$1 +$2 + $3 +$4 ИЛИ
-4,+$2+$3+$4^2, (11)
4. +$2 +$3+44 *3 ИЛИ
Ъ+Ъ-$3-Ъ<\, (12)
$1+$2+$3+$4^3 ИЛИ
41+42-4з+44<2, (13)
Окончательно система неравенств
вида (4) состоит из неравенств (8)-(13) сле-
дующим образом:
х; + х2 + х3 + х4 < 3 х, + х2 + х3 - х4 <2
- х] + х2 - х3 + х4 < 1
- х, + х2 + х3 + х4 < 2 х, + х2 - х3 - х4 < 1
1, если Цх1 ,х2,...,хп) > О,
(16)
х, + х2 — х3 + х4 < 2
х{= 0 или1, /=1,2,3,4.
Пороговые функции и разделяющие плоскости
Рассмотренный в предыдущем разделе подход характеризуется построением большого количества линейных неравенств, соответствующих таблице истинности. Каждое из этих неравенств определяет полупространство «-мерного эвклидова пространства, в котором лежат все (0,1) - векторы
(Х],Х2, ...,Хп).
Для некоторых булевых функции вида
/(х],х2,...,хп) = х0, 14)
где х,, х2,... ,х„, х0 могут принимать значения 0 или 1, оказывается возможным построить плоскость, строго разделяющую нулевые и единичные вершины единичного гиперкуба, т.е. векторы вида (х^х^, ...,х„,0) и (х1,х2,...,хп, 1), удовлетворяющие уравнению (14) (напр. [5]).
Другими словами можно построить плоскость, уравнение которой имеет вид
Цх[,х2,...,хп) = х0, (15)
причем
[0, если Дх,,х2,...,хи) < 0.
Такая плоскость называется разделяющей, а функция (14), для которой существует разделяющая плоскость, называется пороговой.
В том случае, если л’и А," - нижняя и верхняя границы для линейной формы Цх), то условие (16) можно записать как [1, если 0 < Дх) < X,
*0 = 1 (17) |0, если - X < Цх) < 0.
где X = шах(|Х'|,| А"|)
Так как Цх) > Х(ха -1), Цх) < Хх0, то отсюда следует, что
-X < Цх)-Хх0 <0, 18)
В качестве примера рассмотрим ограничения типа (16) и (18) для двухместной конъюнкции х0 = х1 д х2. Нетрудно видеть,
что уравнение разделяющей плоскости можно выбрать, например, таким образом х, + х2 -1,5 = 0. Соответственно,
1, если х, + х2 -1,5 > 0,
=\
0, если х, + х2 -1,5 < 0;
1,5 = тах{(—1,51,| 0,5)};
1, если х, + х2 -1,5 < 1,5,
1,5 <0;
х1 + х2 — 1,5 > 1,5(х0 -1), х, + х2 -1,5 < 1,5х0,
-1,5 < х, + х2 -1,5 - 1,5х0 < 0. Окончательно
0 < х, + х2 -1,5х0 <1.
Этот результат легко обобщается на общий случай
х0 = х, л х2 л ...л хп.
Условия вида (18) имеют в этом слу-
0, если 1,5 < х, + х2
чае вид
0 < х, + х2 +...+ х„ -(п-0,5)х0 <и-1.
Завершая статью, заметим, что все суждения, связанные с погружением множе-
ства решений системы булевых уравнений в полиэдр, могут быть распространены на случай, когда используются не все строки таблиц истинности. Тогда помимо решений системы булевых уравнений построенный по вышеизложенной схеме полиэдр будет, вообще говоря, содержать и другие (0,1)-векторы. Эти векторы можно «отсеять» непосредственно по исходной системе (1).
Окончательно анализируя вышеприведенные результаты, заметим также, что, несмотря на то, что мы доказали, что множество решений системы булевых уравнений может быть погружено в полиэдр, а также привели принципиальные общие алгоритмические схемы построения таких полиэдров, один из основных вопросов остался неизученным. Ясно, что предложенный подход можно будет трактовать как метод решения системы булевых уравнений только в том случае, если нами будет предложен метод определения (ОД)-точек полиэдра. В работе [2] дана оценка сложности одного из таких методов. В общем виде эта оценка является экспоненциальной от размеров задачи определения (ОД)-решений построенной системы линейных неравенств Сх<с!, где С — (у х п)- матрица, а с/ и * - 5-мерный и п-
мерный векторы, соответственно.
В том случае, когда матрица С абсолютно унимодулярна, может быть применен алгоритм, основанный на переборе вершин построенного ограниченного полиэдра, что приводит к построению всех решений системы булевых уравнений. В этом случае нижняя оценка сложности алгоритма опре-
деления (0,1)-точек полиэдра меньше, чем аналогичная оценка в работе [2]. Эта оценка достижима и может быть получена, если исходить из нижней оценки числа вершин ограниченного полиэдра [6]. Она полиномиальна относительно размеров матрицы С и имеет вид (s(n-\) + 2)L(n,s), где L(n,s)-полиномиальная оценка сложности определения вершины ограниченного полиэдра {x\Cx<d, х>0}[7].
Литература
1. Корбут А.А., Финкельштейн. Дискретное програм-
мирование. -М. «Наука» - 1969 - §3 главы 3.
2. Рыбников К.К. Методы решения систем булевых
уравнений, основанные на погружении множества решений в выпуклый многогранник // Научн. тр. МГУЛа - Вып. 269. - 1995 - с. 88-91
3. Рыбников К.К. Полиэдральные методы решения
систем булевых уравнений // Сб. научных статей докторантов и аспирантов Московского государственного университета леса. - науч. тр. МГУЛа -Вып. 309(3) - 2001 - с. 5-6
4. Полиэдральные оценки сложности метода разде-
ляющих плоскостей при решении системы булевых уравнений // Лесной вестник - №2(16) - 2001 -с. 217-224.
5. Головкин Б.А. Машинное распознавание и линей-
ное программирование. -М. «Сов. Радио» - 1973 - гл.1
6. Bartles Н. A priori informationen zur Linearen Pro-
grammierung. - Uber Ecken und Hyperflaschen auf Polyhedem. Berlin: Anton Hain, 1975, 31 Op.
7. Рыбников К.К. Оценки сложности некоторых схем
метода разделяющих плоскостей при решении систем булевых уравнений // Обозрение прикладной и промышленной математики, -т. 9 -вып. 2 - 2002 - с. 442-443
МАТЕМАТИЧЕСКИЕ МОДЕЛИ ВЫХОДА ЛЕСОПРОДУКЦИИ В СТОИМОСТНЫХ ПОКАЗАТЕЛЯХ ПРИ РУБКАХ УХОДА ЗА ЛЕСОМ
С.А. ЧЕРЕПУХИН, ст. преподаватель кафедры автоматизации производственных процессов Воронежской государственной лесотехнической академии, к. т. н.
На практике предприятия заготавливают латура и предъявляемые к ним технические древесное сырье в виде определенного требования оговариваются в ГОСТ 9463-88. набора сортиментов. Их возможная номенк-