Об одном методе вычисления вероятностей логических функций

обработка информации и управление X

УДК 510.647

об одном методе вычисления вероятностей логических функций

В. В. Дубаренко,

доктор техн. наук В. Г. Курбанов, канд. физ.-мат. наук А. Ю. Кучмин,

канд. техн. наук

Институт проблем машиноведения РАН

Приводится комбинаторный метод вычисления вероятностей сложных логических функций, причем элементы логических функций расположены в некотором лексикографическом порядке, т. е. нет необходимости хранить их в памяти ЭВМ в символьном виде. Описываются приближенные методы вычисления вероятности сложной логической функции по заданным вероятностям ее базисных переменных.

Ключевые слова — лингвистическая переменная, сложная логическая функция, логико-вероятностный метод.

Введение

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

Понятие лингвистической переменной и его применение к принятию приближенных решений, введенное Л. Заде в 1976 г. [1], практически не повлияло на развитие логики. На наш взгляд, формальная логика осталась неизменной. В большинстве работ по нечеткой логике и ее приложениям изменился лишь порядок операций над ЛП и их атрибутами, в результате чего интерпретация задач существенно усложнилась.

Введением концепции ЛФ нами сделана попытка упорядочить понятия, относящиеся к принятию решений при управлении динамическими объектами, обозначить проблемы, возникающие при учете различных ограничений, и показать возможные пути их решения.

Комбинаторный метод вычисления вероятностей сложных ЛФ

С введением понятия атрибута ЛФ, например вероятности, возникают проблемы, связанные с определением математических операций с атрибутами, при проведении операций над ЛФ. Отсюда появляются определения: «логико-вероятностная задача», «нечеткая логика» и др. Для отделения логических задач от задач, связанных с операциями над атрибутами ЛФ, нами принята следующая концепция:

— логические переменные являются атомами логической системы;

— если с ЛП связывается атрибут, ЛП называется логико-лингвистической переменной;

— атрибутом может быть любой упорядоченный набор данных;

— логические операции имеют приоритет перед операциями над атрибутами;

— символьное выражение, описывающее ЛФ, является алгоритмом над атрибутами ЛП.

Благодаря арифметическим свойствам ЛФ, которые они проявляют при их представлении в виде алгебраических структур по mod2, оказывается возможным сведение логических задач к «арифметическим» или подобным арифметическим. Это в общем случае позволяет представлять логические системы как линейные структуры, уравнения которых не содержат конъюнктивных элементов.

Тогда для таких систем логический вывод представляется как процедура обращения [0,

1]-матриц, а принятие решения — как многократное повторение этой процедуры при изменении начальных условий.

Линеаризация систем уравнений логического типа, содержащих конъюнкции из компонентов вектора состояний, позволяет за счет его расширения упорядочить причинно-следственные связи в комбинаторных задачах математического программирования и сравнительно просто определить их сложность, а также оценить логическую замкнутость и непротиворечивость исходной нелинейной системы логических уравнений.

При большом числе ЛП число логических слагаемых & в выражении для ЛФ может быть велико, так как & может достигать значений 2" - 1, где п — число ЛП. Запись таких функций в символьном виде в ЭВМ требует больших затрат памяти. Еще раз отметим, что для сравнительно богатых содержанием логических задач, требующих больших размерностей ЛФ, вряд ли является целесообразным использовать представление этих функций и их систем в ЭВМ в символьном виде. Практическую реализацию символьных преобразований в ЭВМ можно осуществлять на основе вычислительной комбинаторики. В частности, если условиться, что элементы ЛФ расположены в некотором лексикографическом порядке, то нет необходимости хранить ее в памяти ЭВМ в символьном виде, а для однозначной идентификации любого члена логической суммы достаточно задать число элементов множества ЛП и порядковый номер этого члена. Тогда номера индексов конъюнктивных элементов каждого члена логической суммы могут быть определены комбинаторными методами. Оперирование с упорядоченными множествами позволяет заменить хранение ЛФ, представленных в символьном виде, на хранение сравнительно простых программ, обеспечивающих быстрое вычисление индексов переменных и атрибутов для их использования в последующих численных операциях, в том числе и для вычисления вероятностей.

Характеристики логико-вероятностных систем с упорядоченными элементами

Для формального описания алгоритмов вычисления вероятности ЛФ с упорядоченными элементами введем следующие определения.

Базисный вектор вероятностей логической системы — упорядоченное множество вероятностей элементов базисного вектора x: PJ = <Рх1>

Px2, ..., Рхп>.

Фундаментальный вектор вероятности логической системы — упорядоченное множество

элементов декартова произведения базисного вектора Px, дополненного 1 на месте последнего элемента: PJ = <Pxi, Px2, ..., Pxn, PxlPx2, PxlPx3, ..., px1px2px3, ..., px1px2, ..., pxn 1>.

Фундаментальный вектор вероятности ЛФ — упорядоченное множество вероятностей элементов вектора Sf, дополненного 1 на месте последнего элемента:

PSf = <pf1, pf2, ..., pfn, pf1f2, pf1f3, ..., pf1f2f3, ..., pf1f2 ... fm, ..., pf1f2 ... fk, 1>.

Комбинаторные операции над ЛФ с упорядоченными элементами

При определении фундаментального вектора S как упорядоченного множества нами формально не был определен закон упорядочения. В частности, порядок следования элементов si, которые можно рассматривать как конъюнкции из компонентов базисного вектора, может подчиняться закону, согласно которому:

— индексы компонентов xi базисного вектора x, входящих в компоненты si фундаментального вектора S, представляются в виде кортежей (векторов) Ai целых чисел, располагающихся в порядке возрастания;

— для каждого st соответствующий ему кортеж индексов Ai имеет значение их произведения не меньше, чем значение произведения индексов, входящих в кортеж Ai _ 1, и не больше, чем в кортеж Ai + 1;

— ни одно сочетание входящих в кортежи индексов базисного вектора не повторяется. Таким образом, вектору S ставится в соответствие таблица A, строками которой являются кортежи Ai целых чисел, обозначающих индексы компонентов базисного вектора ЛП.

Алгоритм упорядочения элементов фундаментального вектора S в соответствии с этим законом в нотации языка Паскаль можно представить в следующем виде:

begin

for i:=1 to k do A[i]:=i; {Первое подмножество} p:=k;

while p>=1 do begin

write (A[1],...,A[k]); {Напечатать}

if A[k]=n then p:= p-1 else p:=k;

if p>=1 then {Цикл с уменьшением на 1}

for i:=k downto p then A[i]:=A[p]+i-p+1;

end

end

В основе алгоритма лежит комбинаторная процедура генерирования всех k-элементных подмножеств множества {1, ..., n}, названная [2] лексикографическим упорядочением.

Все элементы вектора S после лексикографического упорядочения могут быть разбиты на

т А т А

1 1 2 3 4 9 1 3 5 6

2 1 2 3 5 10 1 4 5 6

3 1 2 3 6 11 2 3 4 5

4 1 2 4 5 12 2 3 4 6

5 1 2 4 6 13 2 3 5 6

6 1 2 5 6 14 2 4 5 6

7 1 3 4 5 15 3 4 5 6

8 1 3 4 6

группы. Номер группы определяется по признаку количества элементов в каждом слагаемом. Число групп в S равно п. Число элементов п.

; п!

в группе с номером I равно п = Сп =--------.

£ !(п — I)!

Пример 1. Пример генерирования последовательности ^-элементных подмножеств множества {1, ..., п} при помощи рассмотренной выше процедуры, где п = 6, т. е. результаты упорядочения элементов фундаментального вектора, представлен в таблице.

Рассмотрим нахождение индексов S в 4-й группе для числа переменных базисного вектора, равного шести, т. е. п = 6, I = 4. Пусть требуется определить набор индексов 5-го (т = 5) элемента 4-й группы (I = 4). Как видно из таблицы, для т = 5 имеем A = <1 2 4 6>. Число членов этой

4 6!

группы П4 = С6 = 4 4)! = 15. Другой задачей

является определение порядкового номера т по заданному упорядоченному набору индексов. Например, для заданного набора индексов < 1 3 5 6 > ЛП, составляющих один из элементов фундаментального вектора S, из таблицы определяем, что этому набору соответствует порядковый номер т = 9. Поэтому, как будет показано далее, отказ от символьной формы представления в ЭВМ ЛФ, замена ее формой индексных векторов и применение комбинаторных методов их обработки имеет принципиальное значение, так как при большом числе ЛП и слагаемых ЛФ позволяет существенно экономить память ЭВМ и сокращать время вычислений.

Алгоритм вычисления вероятности сложной ЛФ

Пусть задана произвольная ЛФ в полиномиальной нормальной форме (ПНФ), аргументы которой логически совместны: f1 2 й = ^©/2©...

fm...fk. Требуется вычислить вероятность этой функции при заданном базисном векторе вероятностей логической системы Px.

Поскольку составляющими fi являются другие ЛФ fm и глубина вложенности ЛФ не ограничена, то без приведения их к каноническому виду

невозможно определить логическую зависимость одной ЛФ от другой. Поэтому приведение ЛФ к каноническому виду является основным условием при вычислении ее вероятности. При этом любая ЛФ [3] может быть представлена в форме полинома Жегалкина (канонической ПНФ) единственным образом — посредством компонентов вектора S в качестве ее аргументов.

Несложно показать, что значение вероятности логической суммы двух совместных ЛФ в алгебре Жегалкина fl2 = ^©/2 определяется выражением

рп,2 = рп + Р12 — 2 р/1/2;

для трех ЛФ —

Р/1,2,3 = р/1 + р/ 2 + р/ 3 —

— 2( р/1/2 + р/1/3 + р/ 2/3 ) + 4/1/2/3;

для четырех ЛФ —

р/1,2,3,4 = р/1 + р/2 + р/3 + р/4 —

— 2(р/1/2 + р/1/3 + р/1/4 + (/ 2/3 + (/ 2/4 + (/ 3/4 ) + + 4(р/1/2/3 + р/1/2/4 + р/1/ 3/4 + (/ 2/3/4 )_

— 8 р/1/2/3/4

и т. д., где вероятности рп, р/2, р/3, р/4, р/1/2, рта,

р/1/4, р/2/3, р/2/4, р/1/2/3, р/1/2/4, р/'1/'3/'4 ’ р/2/3/4, р/1/2/3/4 являются элементами вектора Ps/.

В общем случае вероятность произвольной ЛФ, приведенной к каноническому виду, можно представить как произведение вектора-строки R

на ps/:

р/1, 2, ..., й =

где И — вектор-строка, содержащая й + 1 группу упорядоченных элементов г; i — обозначает номер группы; й — число логических слагаемых в исходной ЛФ.

Все элементы в ^й группе равны, а их число п1 определяется числом сочетаний из Й по V. п1 = Сд..

Значения элементов г для каждой ^й группы, кроме последней (й + 1)-й, определяются выражением г = (— 1)Гк+1 (— 2)1—1, (й + 1)-я группа содержит всего один элемент.

Значение нормирующего коэффициента гй+1 для единственного элемента (й + 1)-й группы равно 0 или 1. При Гй+1 = 0 вычисляется вероятность ЛФ, а при гй + 1 = 1 — вероятность отрицания ЛФ.

При представлении ЛФ в дизъюнктивной нормальной форме (ДНФ), т. е. в виде

/1, 2, ..., Н ^ /1^/2^-^/т^~^/Ь « /Л1, 2, ..., Н>

где символ V — дизъюнкция, выражение для вероятности этой ЛФ совпадает с общеизвестным вы-

ражением для вероятности совместных событий [4], которая может быть вычислена по формуле

р/й1, 2, ..., й = ^Р/

а элементы гй. вектора Rd — по формуле

= (—1){1—1)+Гк+1.

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

Пример 2. Логическая функция / имеет шесть слагаемых й = 6, тогда число компонентов вектора Ps/ будет равно п8/ = 2й = 64. Требуется вычислить вероятность 50-го компонента (т = 50). Напомним, что число элементов в .-й группе п. = Сй

Порядковые номера элементов вектора Ps/, которые являются последними в каждой .-й группе,

Ш = 1

могут быть вычислены по формуле ]\ = ^ ст.

т=1

Вектор-строка J из этих элементов для нашего примера имеет вид J = < 6 21 41 56 62 63 64 >. При заданном т = 50, ]3 = 41, у4 = 56, т. е. 41 < т < 56, определяем, что элемент находится в 4-й группе. Порядковый номер элемента в группе будет т - ]3 = 50 - 41 = 9. В соответствии с таблицей 9-й элемент 4-й группы есть А9 = < 1 3 5 6 >. Он идентифицирует номера индексов слагаемых ЛФ, которые должны быть логически перемножены. После логического умножения компонентов слагаемых ЛФ в соответствии с А9 будет получен компонент, являющийся конъюнкцией компонента базисного вектора.

Вычисление значения вероятности этого компонента осуществляется путем арифметического умножения вероятностей, составляющих ее ЛП.

Таким образом, вероятность ЛФ определяется как сумма 2й элементов. Эти элементы могут быть разбиты на й групп. Число элементов в каждой группе определяется числом сочетаний из й элементов по ., где . — номер группы. Элементы, входящие в группы с нечетными номерами, имеют положительный знак, а с четными — отрицательный. Вычисление значения каждого элемента осуществляется алгоритмически, так как затруднительно указать формулу, по которой можно было бы вычислить вероятность путем подстановки исходных данных, а алгоритм можно описать и реализовать в ЭВМ в виде вычислительной процедуры.

Пример 3. Рассмотрим пример вычисления вероятности ЛФ /, представленной в форме ДНФ:

Исходные данные для расчета вероятности ЛФ имеют следующие значения:

— размерность базисного вектора п = 5;

— число логических слагаемых в ЛФ й = 4;

— базисный вектор вероятностей ЛФ Р/ = [0.6 0.7 0.9 0.6 0.7].

В соответствии с введенными выше определениями: / ^ /й1 2 4, ар = р/й1 2 й = RdPS/.

Вычисления вероятности ЛФ для этого примера дают следующие результаты:

1) число слагаемых функции вероятности пр = = 2й = 16;

2) Rd = [1 1 1 1 -1 -1 -1 -1 -1 -1 1 1 1 1 -1 0];

3) Р^ = [0.54 0.25 0.42 0.44 0.23 0.23 0.27 0.18

0.16 0.27 0.16 0.16 0.16 0.16 0.16 0]г;

4) вероятность ЛФ р = 0.81.

Приближенные методы вычисления вероятности сложной ЛФ по заданным вероятностям ее базисных переменных

При значениях й > 50 процедура вычисления на ЭВМ вероятности ЛФ по формуле р/1, 2, ., й = = RPs/ требует больших затрат машинного времени. Однако, как показали численные расчеты, не все слагаемые р/1 2 й дают соизмеримый вклад. Оказывается, что при определенных условиях частью слагаемых при вычислении р/1 2 й

можно пренебречь из-за их малого значения, при этом объем вычислений резко сокращается. По существу, задача состоит в определении числа первых номеров групп, которые определяют основной вклад в значение вероятности р, а влиянием остальных можно пренебречь.

Для оценки вклада отдельных групп слагаемых в выражении для вероятности ЛФ в ее результирующее значение допустим, что:

— логическая функция имеет й логических слагаемых и представлена в форме, в которой каждое логическое слагаемое является конъюнкцией из компонентов базисного вектора х;

— все логические слагаемые независимы и совместны;

— вероятности всех логических слагаемых равны М.

Для иллюстрации процесса вычисления р сформируем вспомогательный вектор SPS = D^Ps/, где Dr — диагональная матрица, диагональными элементами которой являются элементы вектора-строки Rd. Тогда процесс вычисления вероятности ЛФ р можно представить как суммирование элементов вектора SPS:

М

р( 0 = ^ sps(/), j=1

где . — номер слагаемого функции вероятности ЛФ. При таких допущениях для каждой .-й груп-

У обработка информации и управление У

пы можно вычислить составляющую вероятности ЛФ, которая определяет вклад в р всех элементов ^йгруппы.

Значение врв^) при задании ЛФ в ПНФ определяется по формуле

sps(i) = (-2У + 1(МЦС1к,

где Ск — число сочетаний из к по i.

При задании ЛФ в ДНФ sps(i) определяется по формуле

sps(i) = (-1^ + Чмус^.

Тогда вероятность ЛФ р можно представить как функцию:

М

Р( $ = ^ «Р«(/)• j=l

В соответствии с принятой моделью была составлена программа и проведены расчеты влияния М на то, какие группы слагаемых нужно учитывать, а какими можно пренебречь. На рис. 1-3 показаны результаты этих расчетов. На рис. 1, а—в изображено по две кривые линейно-

Номер группы /

Рис. 1. Графики приближенного вычисления вероятности ЛФ: а — р(к) = 0.338; М = 0.01; i < 4; б — р(к) = 0.8779134; М = 0.05; i < 8; в — р(к) = 1; М = 0.3; i < 25

Р

1^-—— / / 1 Г / 1

// // 1 // / 1 // / 1 1

Рис. 2. Графики функции вероятности ЛФ р = /(М) при фиксированных значениях числа логических слагаемых к = 10, 20,..., 50

Рис. 3. Трехмерный график функции вероятности ЛФ от двух аргументов: числа логических слагаемых к и их вероятности М

интерполированных функций: sps(i) и р(г). Вероятность ЛФ равна р при к = п = 41, число групп i, необходимых для точного расчета вероятности ЛФ, не превышает определенного значения. Из результатов расчетов видно влияние на поведение р(г) заданного значения М слагаемых ЛФ. При малых значениях М (0.01 < М < 0.05) р(г) сходится к вероятности р ЛФ при числе групп i < 7, т. е. из 41 группы следует, что для расчета вероятности ЛФ нужно учитывать только 7 первых групп. При значениях 0.05 < М < 0.15 (см. рис. 3) р(к, М) быстро сходится к 1 при числе слагаемых ЛФ к < 30. Анализ графиков (см. рис. 1-3) позволяет сделать следующий вывод: при числе слагаемых ЛФ больше 50 и их среднеарифметической вероятности М > 0.15 нет необходимости точно вычислять вероятность ЛФ, так как она практически равна 1, с другой стороны, чем меньше среднеарифметическое значение вероятности слагаемых ЛФ, тем меньшее число слагаемых в выражении для ее вероятности нужно учитывать при вычислениях (см. рис. 2).

Нами рассмотрен пример, в котором ЛФ представлена суммой других ЛФ, которые совместны и независимы. При несовместных ЛФ вычисление вероятности р ЛФ проводится для слагаемых только 1-й группы, при этом сумма вероятностей слагаемых не должна превышать 1 (по определению несовместных ЛП и ЛФ [5]).

Если слагаемые ЛФ совместны и логически зависимы, то при вычислении ее вероятности в об-

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

Однако оценку числа удерживаемых при расчете вероятности ЛФ групп слагаемых, при принятых выше допущениях, можно считать первым приближением. Если приближенный расчет вероятности ЛФ не удовлетворяет по точности, то число слагаемых можно итерационно увеличивать до тех пор, пока значение вероятности при последующих итерациях не будет удовлетворять заданной точности. Полученные в результате численных приближенных расчетов оценки точности вычислений вероятности ЛФ в зависимости от учета только первых групп слагаемых и отбрасывания остальных имеют важное принципиальное значение, так как позволяют при точном расчете р существенно уменьшить число слагаемых при суммировании. При большом числе базисных переменных такой двухэтапный подход к вычислению р может оказаться единственно возможным. Следует заметить, что именно лексикографическое упорядочение фундаментального вектора ЛФ и, соответственно, слагаемых в выражении для ее вероятности дает возможность при проведении вычислений контролировать вычислительный процесс и принимать решение о его прекращении при достижении требуемой точности.

Заключение

Таким образом, прежде чем приступать к точным расчетам вероятности ЛФ, содержащей большое число слагаемых, необходимо предварительно оценить погрешность, вносимую составляющими, входящими в соответствующую группу слага-

Литература

1. Заде Л. А. Понятие лингвистической переменной и его применение к принятию приближенных решений. — М.: Мир, 1976. — 165 с.

2. Липский В. Комбинаторика для программистов: Пер. с польск. — М.: Мир, 1988. — 213 с.

3. Толковый словарь по вычислительным системам / Под общ. ред. В. Иллингуорта. — М.: Машиностроение, 1990. — 560 с.

емых, определяющих эту вероятность. Это позволит существенно уменьшить объем вычислений путем «отсечения хвостов», дающих малый вклад в значение вероятности ЛФ. Кроме того, описанный подход к вычислению вероятности сложной ЛФ является одним из возможных. Для сравнения его с другими подходами и оценки эффективности предложенных алгоритмов должны быть приняты общие критерии сложности. Одним из таких критериев может служить критерий сложности, в соответствии с которым мера сложности вычислительной процедуры определяется числом шагов алгоритма. Поскольку число слагаемых в выражении для вероятности ЛФ возрастает по экспоненте от числа составляющих ее логических слагаемых, то вряд ли можно ожидать, что будет найден алгоритм, принципиально уменьшающий экспоненциальную сложность вычислительных процедур. В случае приведения ЛФ к ортогональному виду (совершенной ДНФ) число ее слагаемых также имеет экспоненциальную зависимость от исходной размерности [6]. Поэтому вычисление вероятности ЛФ «в лоб», без предварительных приближенных оценок числа «удерживаемых» членов, приведет к неоправданно большим затратам машинного времени или памяти ЭВМ.

Нами были рассмотрены возможности вычисления вероятности сложных ЛФ аналитическими методами, однако существует подход, когда эта вероятность может быть вычислена методом прямого статистического эксперимента, путем генерирования значений базисных ЛП и последующей статистической обработки. Однако обоснование корректности постановки статистического эксперимента представляет самостоятельную задачу, которая по сложности может оказаться не проще рассматриваемой.

4. Вентцель Е. С. Теория вероятностей. — М.: Наука, 1969. — 425 с.

5. Кук С. А. Сложность процедур вывода теорем // Кибернетический сборник. Новая серия. М.: Мир, 1975. Вып. 12. С. 5-15.

6. Рябинин И. А. Надежность и безопасность сложных систем. — СПб.: Политехника, 2000. — 248 с.