Доклады БГУИР
2009 № 7 (45)
УДК 681.3.06
ЭФФЕКТИВНЫЙ В СРЕДНЕМ АЛГОРИТМ ДЛЯ ЗАДАЧИ О ПОКРЫТИИ С ПРИЛОЖЕНИЕМ К НЕЧЕТКОЙ КЛАССИФИКАЦИИ И НЕЧЕТКОМУ
ВЫВОДУ
Ю.О. ГЕРМАН1, АР. САМКО2, О.В. ГЕРМАН1
'Белорусский государственный университет информатики и радиоэлектроники, П.Бровки, 6, Минск, 220013,Беларусь
2НИИ средств автоматизации Независимости, 117, Минск, 220600, Беларусь
Поступила в редакцию 2 июля 2009
Рассмотрен оригинальный эффективный в среднем метод логического вывода, представляющий усовершенствованный вариант метода групповых резолюций. Метод может быть использован при построении машины вывода в системе с нечеткими знаниями.
Ключевые слова: логический вывод, резольвента, матрица покрытия, нечеткая классификация.
Введение
Излагается полиномиальный в среднем алгоритм для задачи о взвешенном минимальном покрытии 0,1-матрицы В. Алгоритм является развитием метода, представленного в [1,2], на идеях, указанных в [3]. Основу алгоритма составляет принцип групповых резолюций, модифицированный таким образом, что новые столбцы-резольвенты накладываются на некоторые из ранее присоединенных столбцов-резольвент, что ограничивает рост размеров матрицы величиной п+т, где п - число столбцов, а т - число строк матрицы В. Таким образом, представленный алгоритм не приводит к замедлению процесса вывода в связи с ростом числа порожденных резольвент. В [2, 4] приведено доказательство полиномиальности в среднем метода на основе принципа групповых резолюций для задачи о минимальном покрытии 0,1-матрицы В. Таким образом, в совокупности получаем результат, декларированный в заголовке этой статьи.
Формализация задачи о минимальном взвешенном покрытии и алгоритм на основе
принципа групповых резолюций
Пусть Впт - 0,1-матрица без нулевых столбцов и строк. Для каждой строки 1 известен вес wi - целое положительное число.
Определение 1. Строка 1 покрывает столбец у , если В(у) = 1.
Определение 2. Множество строк п = {/1з 12,..., ¡г} покрывает матрицу Впт, если для
каждого столбца матрицы Впт найдется строка в п, которая его покрывает. Покрытие п не избыточно, если из него нельзя удалить ни одной строки и при этом сохранить свойство покрытия.
Определение 3. Покрытие п минимальное взвешенное, если среди всех неизбыточных покрытий матрицы Впт оно доставляет минимум сумме ^ wi .
Определение 4. Любой единичный элемент Б(/,а) в строке 1 и столбце а таком, что для любой другой строки ] е п, ] Ф ¡, В(], а) = 0 , называется синдромным элементом покрытия п.
Определение 5. Множеством всех синдромных элементов покрытия п называется синдромом, а каждый столбец, содержащий синдромный элемент - синдромным столбцом.
Следующее свойство даем без доказательства.
Лемма 1. Синдром, соответствующий каждому неизбыточному покрытию, уникален.
Метод [4] реализован как итерационная схема, состоящая из следующих двух этапов.
31. Получение на каждой итерации неизбыточного покрытия (причем покрытия не повторяются в силу свойств принципа групповых резолюций (п.г.р.)).
32. Построение отсечения - групповой резольвенты - в виде дополнительного столбца матрицы. Каждый такой столбец-резольвента строится в предположении, что найденное на этапе Э1 покрытие не является оптимальным. Если на этапе Э2 получаем пустой столбец-резольвенту, то алгоритм заканчивается - наилучшее из найденных на итерациях алгоритма покрытие и является решением исходной задачи.
Описанная схема, как нетрудно понять, ограничена сверху числом присоединяемых групповых резольвент величиной 2 , т.е. является экспоненциальной оценкой, хотя теоретически число присоединяемых резольвент в среднем полиномиально.
Рассмотрим реализацию метода на примере матрицы Бпт на рис.1. Этап Э1 проводим следующим образом: отыскиваем столбец аг с минимальным числом единиц и строку ^ с минимальным весом, которая покрывает данный столбец. Включаем строку аг в очередное неизбыточное покрытие пк. Элемент (/ь аг) делаем синдромным. Временно удаляем из матрицы столбцы, в которых строка ^ содержит "1" и строки, в которых столбец аг содержит "1".
а1 а2 а3 а4 а5 аб а7 Вес
11 1 1 1 4
12 1 1 3
13 1 1 3
14 1 1 2
15 1 1 1 5
16 1 1 1 5
17 1 1 3
18 1 7
Рис. 1. Исходная матрица Би>,
Замечание. Если имеется несколько подходящих столбцов с минимальным число единиц, то выбираем всегда столбец с наименьшим номером.
Этап Э1 проводим до тех пор, пока в матрице останется хотя бы одна строка и хотя бы один столбец. Так, для матрицы на рис. 1 выберем строку ¡1 и столбец а1 . Затем матрицу редуцируем (рис. 2) за счет временного удаления строк и столбцов, как отмечено выше. Для матрицы на рис. 2 выберем строку /2 и столбец а2. Затем матрицу снова редуцируем: выберем строку ?з и столбец а4. Остается единственный синдромный элемент - (/4, а7). Итак, нами найдено покрытие: п1 = {¡1,¡2, ¡3,/4) . Его суммарный вес составляет Ж1=12.
а2 а4 а5 а7 Вес wi
12 1 1 3
13 1 1 3
14 1 2
16 1 1 5
17 1 1 3
18 1 7
Рис. 2. Редуцированная матрица после этапа Э1
Замечание. Будем далее называть рекордом наименьший вес, соответствующий одному из найденных на итерациях алгоритма покрытий. Рекорд обозначим Я. После выполнения первой итерации Э1 получаем рекорд Я= ^=12.
Приступаем к этапу Э2. Выпишем синдромные столбцы найденного покрытия (рис. 3). Разобьем множество строк в синдромной матрице на два непересекающихся подмножества:
и ДО^ . В множество строк ДО^ войдут те строки, которые содержат не более одной единицы в синдромной матрице. В ДО^ войдут остальные строки. Имеем в нашем случае: = {/1з /2, /3, /4, ¡7}, ={/5, ¡6} . Определим текущую нижнюю границу (С для текущего найденного покрытия следующим образом. В ДО^ найдем непересекающиеся подмножества строк, покрывающие каждый столбец синдромной матрицы: {/1},{/2,/8},{/3},{/4,г7}. Так, {¡'^ покрывает столбец а1 , {г2, ¡8} - столбец а2 и т.д. Определим (С как сумму минимальных весов строк из подмножеств {/1},{/2, /8},{/3},{/4, г7}. У нас ("=12.
а2 а4 а5 а7 Г1 Вес ™г
12 1 1 3
¡з 1 1 3
¡4 1 2
16 1 1 1 5
¡7 1 1 3
¡8 1 7
Рис. 3. Синдромные столбцы для построения резольвенты
Лемма 2. Если вес найденного покрытия меньше либо равен текущей нижней границе (С, то в предположении, что щ не оптимально, каждое оптимальное покрытие содержит как минимум одну строку из .
Если условие леммы 2 выполняется (а в нашем случае этот так и есть), то строим столбец-резольвенту так: он содержит "1" в каждой строке из ДО^ и "0" в остальных строках.
Если условие леммы 2 не выполняется, то следует часть строк вывести из ДО^ и включить их в ДО^ . Именно, в [4] выводят последовательно строки, которые максимально увеличивают (
Рассмотрим следующую итерацию алгоритма. Так, выберем строку ¡1 и столбец а1. Затем выберем строку ¡2 и столбец а2 и, наконец, выберем строку ¡6 и столбец г1. Итак, нами найдено новое покрытие: п1 = {/1з г2, г6} . Его суммарный вес также составляет Ж1=12. Опуская выкладки, строим для этого покрытия синдромную матрицу (рис. 4) и находим новую групповую резольвенту - г2 .
а1 а2 Г1 Г2 Вес Wi
¡1 1 4
¡2 1 3
¡3 3
¡4 2
¡5 1 1 1 5
¡6 1 5
¡7 3
¡8 1 7
Рис. 4. Новая синдромная матрица
Ведя процесс по аналогии, на следующей итерации будет найдено, что улучшить покрытие нельзя. Ясно, что серьезным минусом данного алгоритма является рост размеров матрицы в ходе итераций. Воспользуемся идеей работы [3] и покажем, как устранить этот дефект.
Эффективная модификация алгоритма для Змвп , ограничивающая число присоединяемых резольвент величиной, равной числу строк матрицы покрытия
Усовершенствование метода групповых резолюций заключается в том, что количество добавляемых к исходной матрице резольвент (дополнительных столбцов) ограничивается сверху значением числа строк матрицы. При этом новые столбцы-резольвенты накладываются на некоторые из ранее присоединенных столбцов-резольвент. Как и ранее, отыскиваются синдромные элементы покрытия и порождается групповая резольвента. Однако эта резольвента не присоединяется к матрице в общем случае, а накладывается на тот столбец из числа присоединенных столбцов-резольвент, который не стал в ходе данной итерации синдромным. Если таких столбцов несколько, то можно выбрать любой из них, например такой, для которого вес строки, его покрывающей, имеет минимальное значение. Обоснование правомерности такой операции полностью соответствует случаю п.г.р. для задачи о минимальном покрытии матрицы, изложенному в [3, стр. 40], поэтому здесь оно опущено. Обратимся за иллюстрацией к рассмотренному выше примеру. После присоединения к матрице нового столбца-резольвенты получим новую текущую матрицу, представленную на рис. 5. Находим для него покрытие к={12,¡5,¡6] с синдромными столбцами {а2,а6,г2} соответствнно. Мы видим, что столбец гг из числа присоединенных ранее не вошел в число синдромных. Это значит, что новый столбец-резольвенту можно писать поверх столбца г1. Однако в данном примере новый столбец-резольвента, построенный на столбцах {а2,а6,г2}, будет нулевым, поэтому алгоритм завершится.
а1 а2 а3 а4 а5 аб а7 Г1 Г2 Вес wi
11 1 1 1 4
12 1 1 3
13 1 1 3
14 1 1 2
15 1 1 1 1 1 5
16 1 1 1 1 5
17 1 1 3
18 1 7
Рис. 5. Матрица Впт с присоединенными резольвентами
Приложение к задаче вывода в противоречивом логическом исчислении Постановка задачи вывода в противоречивой системе
Дана система дизъюнктов (возможно противоречивая, хотя и не обязательно противоречивая). Дана формула, которую требуется вывести. Спрашивается, имеется ли такое непротиворечивое и непустое подмножество дизъюнктов исходной системы, из которого выводима доказываемая формула. Обозначим эту задачу ПРВЫП. Выводимость в такого рода постановке мы назовем пр-выводимостью, чтобы не отождествлять ее с классически понимаемой выводимостью.
Можно сформулировать модификацию данной задачи в следующей постановке.
Сохраняя предыдущую постановку, потребуем, чтобы непротиворечивое и непустое подмножество дизъюнктов, из которого выводима данная формула, было максимальным по включению, т.е. содержало бы максимальное число дизъюнктов. На эту задачу будем ссылаться как ПРВЫ1П-М.
Решение Првып-М
Пусть доказываемая формула есть ф, а исходное множество дизъюнктов - Ж. Согласно
теореме дедукции, для доказательства ф следует установить противоречивость множества [Ж, —ф}.
Назовем подмножество рс^ дизъюнктов максимальным по включению, если одновременно истинно: р непротиворечиво и добавление в р любой формулы из ^\р делает множество р противоречивым.
Прежде всего, сформулируем основную идею решения. Мы должны найти некоторое максимальное по включению множество ^сЖ столбцов исходной матрицы, которые соответствуют непротиворечивой системе дизъюнктов. Добавление в это множество любого другого дизъюнкта исходной задачи должно делать множество Z противоречивым. Отрицание доказываемой формулы ф не должно входить в ^ Поэтому [X, —ф} противоречиво и, следовательно, Z ^ ф.
Таким образом, нас интересует не всякое максимальное по включению множество дизъюнктов ^сЖ, а только такое, для которого любая выполняющая интерпретация выполняет одновременно ф.
В процессе решения множество столбцов 0,1-матрицы разбивается на два подмножества. В первое войдут те столбцы, которые должны быть покрыты обязательно. Во второе подмножество войдут те столбцы, которые могут оказаться непокрытыми. В исходном состоянии все столбцы относятся к подмножеству необязательно покрываемых столбцов, за исключением столбцов, соответствующих тавтологическим дизъюнктам вида х V — х . Особенную роль играет столбец, соответствующий доказываемой формуле ф.
Сначала мы остановимся на однолитерных формулах ф. Более сложные варианты формулы ф можно свести к однолитерному случаю. В систему добавляется столбец, соответствующий —ф. Столбец, соответствующий —ф, все время относится к множеству столбцов, покрытие которых не обязательно. Более того, этот столбец должен так и остаться не покрытым. Тем самым гарантируется, что максимальное по включению множество Z будет выполнять —ф.
Дальнейшее изложение алгоритма проведем на примере. Так, возьмем в качестве исходной следующую систему дизъюнктов:
В1= х1 V —х2 V х3
Б2= —х1 V —х2 ( 1 )
В3= х1 V —х3 Б4= —х1 V —х3 Б5= х2 V х3
Эта система противоречива. Пусть требуется вывести формулу ф= —х2. Для решения задачи введем дополнительные булевские переменные а1,а2,...,а5и запишем следующую систему логических формул:
а1 + а2 + а3 + а4 + а5 — тах а1— х1 V —х2 V х3
а2——х1 V —х2 ( 2 )
а3— х1 V —х3 а4—^—1х1 V —х3 а5— х2 V х3
х2 (отрицание доказываемой формулы).
Если эта система выполнима, то часть переменных а! окажется равной 0 (в противном случае делаем вывод, что формула ф = —х2 не доказуема, т.к. принятие ее отрицания не ведет
к противоречию). Решение системы (2) можно найти методом на основе принципа групповых резолюций, который мы определили выше.
Теперь обратимся к точному решению задачи (1) на основе сведения к задаче о минимальном взвешенном покрытии (ЗМВП). Для системы (1) строим матрицу покрытия (рис. 6).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Х1 1 1 1
Х2 1 1 1
Х3 1 1 1
—Х1 1 1 1
—Х2 1 1 1
—Х3 1 1 1
а1 1 1 1
а2 1 1 1
а3 1 1 1
а4 1 1
а5 1 1 1
—а1 1 1
—а2 1 1
—а3 1 1
—1 а4 1 1
—а5 1 1
Рис. 6. Матрица покрытия для системы (1)
Таблица на рис.6 использует кодировку формул столбцами обычным образом. Условие
ai + а2 + а3 + а4 + а5 ^ max мы преобразуем следующим образом
—а1 + —а2 + —а3 + —а4 + —а5 ^ min (3)
Итак, задача свелась к отысканию не просто минимального покрытия матрицы, а такого минимального покрытия, которое обеспечивает условие (3). Заметим, что минимальное покрытие для матрицы на рис (6) должно содержать ровно 8 строк (по числу переменных) при условии, что исходная система формул выполнима.
Условие (3) перепишем в иной форме:
x1 + x2 + x3 + —x1 + —x2 + —x3 +12—a1 +12—a2 +12—a3 +12—а 4 +12—a5 + а1 + а2 + а3 + а4 + а5 ^ min
Коэффициенты при переменных в условии (4) представляют вес строк в матрице на рис. (6). Нас теперь будет интересовать покрытие с минимальным суммарным весом образующих его строк. Принцип подбора коэффициентов в (4) следующий: т.к строки —а ,—а2 ,—а3 ,—а4 ,—а5 желательно исключить из покрытия, им приписывается наибольший вес. Веса остальных строк одинаковы и минимальны. Вес для строки —ai взят таким, чтобы включение в результирующее покрытие хотя бы одной такой строки было хуже в смысле (4), чем включение сразу всех "хороших" строк.
Нечеткая многомерная классификация
Формулировка задачи классификации для случая нечетких многомерных объектов выглядит следующим образом. Дано конечное множество векторов «-мерного пространства (n > 1) с координатами x1, x2, ..., xn. Для каждого вектора xk известна нечеткая мераpk принадлежности его к некоторому (единственному) классу C. Требуется построить линейную различающую функцию F(x) = a0 + a1 x1 + a2x2 +... + anxn из следующих соображений.
Для каждого вектора xk вводим булеву переменную qk е 0,1 и два неравенства:
к к к г\
як ^ ао + а1х + ах +... + ах >0, (5)
к к к г\
ао + ал + а2х2 +... + апхк > 0 ^ дк
Коэффициенты а, и величины дк должны определяться из следующего общего условия:
X (дк-Рк)2 — min, ао, ап ? (6)
к
Функционал (6) преобразуется к линейной целевой функции после возведения в квадрат выражения под знаком суммы:
Х( дкдк * Рк + рк — т,п = Х( дкк * Рк + рк — т!п =
к к (7)
= X (1-2Ркк* дкк — тт
к
Таким образом, нами получена исходная линейная дизъюнктная система неравенств с целевой линейной функцией и вещественными переменными. Эту задачу можно переформулировать в терминах ЗМВП следующим образом. Методом решения ЗМВП найдем какое-либо
решение задачи (7) без ограничений (5). Получим некоторые значения переменных дi, / = 1, к .
Подставим эти значения в (5). Получим линейную систему алгебраических неравенств. Если эта система выполнима, то ответ получен. Пусть, однако, система (5) для данных значений
д,, / = 1, к не выполнима. Используя метод отсечения невязок, описанный в [5], найдем такие неравенства в (8), отбрасывание которых делает систему выполнимой. Пусть это будут неравенства с номерами ¡1, /2,..., . Присоединим к условию (7) неравенство д, □ д^ □...□ д^. Получаем таким образом новую задачу ЗМВП. Решаем ее и получаем новые значения д,, / = 1, к . С этими новыми значениями д,, / = 1, к составляем систему неравенств (8) и решаем ее. Если система выполнима, то ответ получен. В противном случае поступаем как ранее: отбросим те неравенства, без которых система (5) станет выполнимой. Пусть это будут неравенства с номерами ]1, у2,..., . Присоединим к условию (7), а также тем условиям, которые к нему присоединены ранее, новое условие д□ д^ □ ... □ д^. Получаем очередной вариант задачи ЗМВП. Этот процесс требуется повторять до тех пор, пока решение не будет, наконец, получено. Рано или поздно, тем не менее, ответ будет получен. Его адекватность следует проверить с помощью статистического критерия Фишера (в качестве иллюстрации похожей задачи и подхода к ее решению см. [6]).
Заключение
Предложено усиление принципа групповых резолюций для решения задачи о минимальном взвешенном покрытии 0,1-матрицы. Это усиление состоит в том, что число присоединяемых к матрице новых столбцов-резольвент таково, что оно не ограничивает общее число столбцов матрицы В на любой итерации величиной п+т, где п - число столбцов, а т - число строк матрицы В. Апробация алгоритма на практике проводилась для невзвешенного случая, к которому эффективного сводится случай ЗМВП. Результаты этой апробации сообщены в [3].
EFFICIENT IN AVERAGE ALGORITHM FOR THE COVERING PROBLEM WITH APPLICATION TO FUZZY CLASSIFICATION AND FUZZY INFERENCE
Yu. O. GERMAN, A.R. SAMKO, O.V. GERMAN
Abstract
An original and efficient in average method of logical inference is described. The method is an improved version of the method of group resolutions and may be used in logical inference machine in fuzzy knowledge systems.
Литература
1. Герман О.В. Введение в теорию экспертных систем и обработку знаний. Минск, 1995.
2. Герман О.В., Найденко В.Г. // Экономика и математические методы. 1993. №4(29). C.662-667.
3. Герман О.В. Экспертные системы. Учебно-методическое пособие. Минск, 2008.
4. Герман О.В. // Кибернетика и системный анализ. 1996. №1. С.135-146.
5. Герман О.В., Дорожкина Н.Н. Теория информационных процессов и систем. Минск, 2007.
6. Герман О.В.. Смирнов А.А., Юранова Т.И. // Вестник института современных знаний (Минск). 2004. №1. С.56-63.