Научная статья на тему 'Эффективные методы нахождения кратчайших решений систем линейных логических уравнений'

Эффективные методы нахождения кратчайших решений систем линейных логических уравнений Текст научной статьи по специальности «Математика»

CC BY
820
116
i Надоели баннеры? Вы всегда можете отключить рекламу.
Журнал
Проблемы управления
ВАК
Область наук

Аннотация научной статьи по математике, автор научной работы — Закревский А. Д.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

EFFECTIVE TECHNIQUES FOR FINDING THE SHORTEST SOLUTION OF LINEAR LOGIC EQUATIONS

The paper offers effective techniques that considerably reduce the amount of searching performed for finding the shortest solution of linear logic equations. It presents software implementation results, estimates the competitiveness of the programs developed and discusses their application areas.

Текст научной работы на тему «Эффективные методы нахождения кратчайших решений систем линейных логических уравнений»

£1—

УДК 519.987

ЭФФЕКТИВНЫЕ МЕТОДЫ НАХОЖДЕНИЯ КРАТЧАЙШИХ РЕШЕНИЙ СИСТЕМ ЛИНЕЙНЫХ ЛОГИЧЕСКИХ УРАВНЕНИЙ1

АД Закревский Объединенный институт проблем информатики, г. Минск

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

ВВЕДЕНИЕ

С задачей нахождения кратчайших решений систем линейных логических уравнений (СЛЛУ) автор встретился при разработке методов синтеза логических двухуровневых АКО/ЕХОК-схем, обладающих некоторыми преимуществами в сравнении с традиционными АКО/ОК-схемами [1—3 и др.]. Например, их легче тестировать [4—6], и они оказываются более компактными при реализации симметрических булевых функций, типичных для арифметики [7]. Для решения задач их проектирования оказалось возможным привлечь хорошо развитую теорию линейных векторных пространств [8, 9]. Не менее важные приложения данная задача имеет в такой бурно развивающейся области, как защита информации [10].

В абстрактном виде задача формулируется следующим образом.

Пусть задана система из т линейных логических уравнений с п переменными:

п м

Ах = у, ® а<х. = у1,

] = 1

где А — булева тхп матрица коэффициентов, х = = (х1, х2, ..., хп) — булев вектор неизвестных и У = (у1, у2, ..., ут) — булев вектор свободных членов. Решением СЛЛУ называется такой набор зна-

1 Работа доложена на конферен ции «Теория и практика логического управления», посвященной памяти М.А. Гаврилова (Москва, 10 ноября 2003 г.).

чений неизвестных, который обращает каждое уравнение в тождество. В таком случае покомпонентная сумма по модулю два (называемая ниже просто суммой) тех столбцов матрицы А, соответствующие которым переменные принимают в решении значение 1, будет равна столбцу У.

Положим, что СЛЛУ имеет несколько решений (тогда система называется неопределенной, при этом обычно п > т). Задача заключается в выборе из них кратчайшего решения, т. е. такого, которое представлено значением вектора х с минимал ьным числом единиц.

В принципе эту задачу можно решить тривиальным алгоритмом, который перебирает сочетания «из п по N» столбцов матрицы А, в порядке возрастания N и начиная с N = 1, подсчитывает их сумму и сравнивает с вектором У. Достаточно очевидно, что как только получаемая сумма оказывается равной У, рассматриваемая комбинация столбцов может быть принята за искомое решение. К сожалению, данный алгоритм слишком трудоемок, поскольку число анализируемых комбинаций столбцов очень быстро растет с ростом числа неизвестных п.

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

ЛЕСТНИЧНЫЙ АЛГОРИТМ

Оригинальный алгоритм поиска кратчайшего решения СЛЛУ был предложен при разработке ме-

тодов реализации частичных булевых функций полиномами Жегалкина, что оказалось полезным при синтезе логических схем в базисе элементов AND (логическое И) и EXOR (сумма по модулю два) [11, 12].

Этот алгоритм назван лестничным, и его суть заключается в следующем. Путем соответствующего переупорядочения строк и столбцов матрица коэффициентов $ приводится к ступенчатой форме, иллюстрируемой приводимым ниже примером, в котором [ = (а, Ь, с, d, е, f, g, h, i, j, к, 1). При этом каждая последующая строка матрицы $ не поглощается покомпонентной дизъюнкцией предыдущих (это оказывается возможным, когда конструируется компактный полином Жегалкина), а оставшиеся непоглощенными единичные элементы образуют в строке своеобразную ступеньку, ширина которой равна числу этих единиц:

$ =

abcdefghij к 1 111100000000 100011100000 110011111000 101001000110 111110010101

У

0

1

0

1

1

Матрица коэффициентов А с присоединенным к ней вектор-столбцом свободных членов у образует расширенную матрицу системы, или системную матрицу 6 = (А, у) — конкатенацию матрицы А и вектора У. Каждая ее строка представляет отдельное уравнение. Если у =0, оно будет удовлетворено при включении в решение четного числа столбцов из А, отмеченных в данной строке значением 1. Если же у = 1, в решение потребуется включить нечетное число таких столбцов. Учитывая это требование, мы организуем поиск по дереву [13], стремясь найти минимальную совокупность столбцов, сумма которых равна вектору у. Этот процесс можно интерпретировать как бег по лестнице, в котором спуски (вниз по матрице, с целью решения последующих уравнений) чередуются с подъемами (с целью возможного упрощения решения системы в целом путем испытания альтернативных комбинаций).

Для рассматриваемого примера процесс отображается следующим деревом поиска:

а Ь с d 00 00

е f g h i j к

1 0 0 ------ 1 0---------1 0

I— 0 1 --- *

0 1 0--------10 --- +

0 0 1 --- *

Прокомментируем его. Процесс начинается с анализа первой сверху строки и выбора комбинации значений неизвестных а, Ь, с, й, перечисленных в верхней ступеньке. Минимизируя число единиц, выбираем комбинацию 0000, удовлетворяющую первому уравнению. Рассматривая последующие строки и ступеньки, выбираем (н, /, g) = = 100, (Л, /) = 10, (у, к) = 10 и находим таким образом первое решение — тройку столбцов (н, Л, 7), сумма которых равна вектору у. Далее пытаемся найти лучшее решение, содержащее не более двух столбцов. С этой целью идем вверх по лестнице и испытываем комбинацию 01 значений переменных Л, / (с отрицательным результатом) и комбинацию 010 значений переменных н, /, g (что приводит затем к нахождению двухстолбцового решения (I, Л)). Это окончательное решение, поскольку найти лучшее решение не удается.

Более подробно лестничный алгоритм описан в работе [12], а в статье [14] предложен его ускоренный вариант, основанный на минимизации ширины верхних ступенек, что существенно сокращает объем перебора комбинаций, производимого при поиске оптимального решения.

МЕТ0Д ГАУССА

Более перспективным оказался метод Гаусса исключения переменных. Он позволяет ограничить поиск решения рассмотрением только таких значений вектора х, которые заведомо являются корнями системы, что сокращает число рассматриваемых подмножеств в 2т раз, в сравнении с тривиальным алгоритмом. Данный метод был предложен Гауссом для решения систем линейных уравнений с действительными переменными [15] и описывается ниже в модификации для нашего случая: переменные — булевы, сумма — по модулю два, произведение — логическое (конъюнкция).

Метод Гаусса основан на следующих положениях. Две системы (а также представляющие их системные матрицы 6 и 6М) называются эквивалентными, если множества их корней равны. Матрицы и 6 эквивалентны, если каждая строка одной из них (любой) равна сумме некоторых строк другой матрицы. Любую матрицу 6, эквивалентную данной матрице 6, можно получить из 6 некоторой последовательностью операций сложения строк. Эта операция заключается в замене произвольной строки рассматриваемой матрицы суммой этой строки с некоторой другой строкой этой же матрицы. Можно также дублировать некоторые строки и “приводить подобные”, т.е. устранять дубли. Минимальная по числу строк матрица 6, эквивалентная исходной матрице 6, состоит из ли-

нейно независимых строк — никакая из них не равна сумме некоторых других. Число этих независимых строк называется рангом матрицы 6 и обозначается через г (6).

Метод Гаусса приводит матрицу 6 к удобной для последующего анализа форме, называемой канонической. Делается это (для булевой матрицы) следующим образом.

• Вначале все строки и столбцы матрицы 6 считаются неотмеченными.

• На очередном шаге выбирается первый из столбцов (за исключением у), содержащих единицу в какой-либо из неотмеченных строк, а также первая из неотмеченных строк, содержащих единицу в этом столбце.

• Каждая строка (кроме выбранной), содержащая единицу в выбранном столбце, заменяется ее суммой с выбранной строкой. При получении строки 0 (все компоненты равны нулю) она удаляется (так устраняется избыточность в системе). Если же результат суммирования представляется строкой с единственной единицей в правой компоненте (такая строка задает уравнение

0 = 1, что свидетельствует о противоречивости системы), то алгоритм прекращает работу.

• Выбранные таким образом строка и столбец отмечаются (полужирной единицей на их пересечении), после чего выполняется следующий шаг. Алгоритм прекращает работу, когда все строки или все столбцы становятся отмеченными.

В результате получается каноническая матрица 6*, эквивалентная исходной матрице 6. Совокупность отмеченных столбцов (их число равно рангу матрицы и каждый из них содержит ровно по одной единице) назовем базисом, совокупность остальных — остатком. Матрица 6 * представляет в компактной форме множество всех корней рассматриваемой системы уравнений, соответствующих различным подмножествам столбцов из остатка.

Например,

аЬсdefgh у аЬсdefghу

100110010 1 00001101

6 = 00111010 1 0 6* = 00 1 001010 110011001 0 1 0000111

110100110 000 1 01100

011001101 0000 1 0011

Рассматриваемая в этом примере матрица 6 является неопределенной, п > т и т = г(6). Число корней такой матрицы равно 2п—т, в данном случае восьми. В ходе пошагового преобразования матрицы в базис попадают столбцы, соответствующие переменным а, Ь, с, й, е, а остаток представляется

множеством столбцов, соответствующих переменным /, g, Л. Каждое из восьми подмножеств этого множества определяет одно из решений, которое легко получить, складывая столбцы подмножества и дополняя их некоторыми столбцами из базиса так, чтобы получить в сумме столбец у. Например, включив в решение переменныеIи Л и сложив соответствующие им векторы 11010 и 01101 с вектором 10101, мы получим вектор 00010, откуда следует, что решение надо дополнить переменной й. Так находится одно из восьми решений системы, а именно у = й ® I ® Л.

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

Допустим, что рассматриваемая система линейных логических уравнений задана введенной выше системной булевой матрицей 6, причем п > т. Тогда кратчайший корень системы можно найти следующим образом [16].

• Приведем матрицу 6 к канонической форме 6 *, определив ее базис и остаток. Для этого используется описанный выше алгоритм, попутно проверяющий систему на совместность.

• Будем рассматривать подмножества столбцов из остатка в порядке возрастания их мощности N и взвешивать определяемые ими корни. Вес корня равен количеству выбранных столбцов плюс вес булева вектора (число единиц в нем), представляющего сумму (покомпонентную, по модулю два) этих столбцов и вектора у. По ходу будем запоминать решение с минимальным весом V. Прекратим перебор, как только N сравняется с V. В этом случае запомненное решение представит кратчайший корень системы. Полезно оценить ожидаемый вес у(т, п) кратчайшего корня системы уравнений с параметрами т и п еще до его нахождения — тогда можно будет предсказать и затраты времени на его поиск.

Начнем с нахождения математического ожидания а(т, п, К) числа корней с весом N. Положим, что рассматриваемая система случайна — каждый элемент булевой матрицы 6 принимает значение 1 с вероятностью 0,5. Тогда вероятность того, что случайно выбранное подмножество столбцов в матрице А окажется корнем, равна 2—т (будучи равна вероятности совпадения двух булевых векторов с т компонентами, один из которых случаен). Отсюда следует

Утверждение 1. а(т, п, к) = CN 2—т, где С% — число сочетаний из п по к.

Аналогично, обозначив через ß(rn, п, к) математическое ожидание числа корней, вес которых не превышает к, получим

к

Утверждение 2. ß(m, п, к) = ^ С1п 2 т.

i - О

Искомый вес кратчайшего корня оценим максимальным значением параметра к, при котором ß(m, п, к) < 1.

Утверждение 3. у(т, п) = к, где ß(m, п, к) < 1 < < ß(m, п, к +1).

Например, в табл. 1 показаны значения величин а и ß для системы из 40 уравнений с 7О-ю переменными, соответствующие значениям параметра к от 7 до 13. Достаточно очевидно, что вес кратчайшего решения, скорее всего, будет равен 1О.

Оценивая объем вычислений при поиске кратчайшего решения, положим, что он пропорционален числу N рассматриваемых подмножеств столбцов остатка. Очевидно, значение N определяется уровнем перебора, который мы обозначим 5(т, п).

5(т, п)

Утверждение 4. 1(т, п) = ^ С1п _ т.

i- О

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

Как показывают аналитические и экспериментальные (C++, PC СОМРАС Presario — процессор Intel Pentium III, 1000 МГц) оценки эффективности рассмотренного метода, область его практического

приложения ограничивается условием п — т < 30. При этом условии время поиска не превышает одного часа, в то время как с дальнейшим ростом разности п — т расходы времени резко возрастают. Например, при т = 625 и п = 700 данный алгоритм будет вынужден перебирать и испытывать в поисках кратчайшего решения все 275 комбинаций наборов столбцов из остатка, и расчеты показывают, что на это уйдет три миллиарда четыреста миллионов лет!

РАСПОЗНАВАНИЕ КОРОТКИХ РЕШЕНИЙ

Между тем, кратчайшее решение, вес которого у(т, п) можно заранее оценить по формуле утверждения 3, будет содержать в остатке в среднем у(т, п) • (п — т)/п элементов, откуда следует, что оно, скорее всего, будет найдено на уровне перебора 5(т, п) = Jy(rn, п) • (п — т)/пL — окаймляющие скобки означают «целое, ближнее снизу». В этом случае его можно распознать по весу и прекратить поиск, отказавшись от строгого доказательства оптимальности найденного решения и сэкономив тем самым время. При т = 625 и п = 700 ожидаемый вес у кратчайшего решения равен 220, следовательно, уровень перебора 5 = J220 • 75/700L = 23. На этом уровне решение будет найдено за

1 800 000 лет, примерно в 1900 раз быстрее, чем при полном переборе, однако недостаточно быстро с практической точки зрения. На более существенную экономию времени можно рассчитывать, удовлетворившись некоторым приближением к у сверху.

Практический интерес представляет случай существования короткого решения СЛЛУ со случайной матрицей $ и вектором \, равным сумме некоторых z столбцов этой матрицы (при этом z заметно меньше у). Например, при т = 625, п = 700 и z = 105 уровен ь перебора 5 будет в среднем равен 11, откуда следует, что затраты времени на нахождение данного решения методом распознавания составят 193 дня. Однако, если повезет, уровень перебора может оказаться и ниже, что приведет к большой экономии времени. Так, при проведении эксперимента на компьютере указанное короткое решение было обнаружено на уровне перебора 10, что соответствует затратам времени в 25 дней.

ДЕКОМПОЗИЦИОННЫЙ МЕТОД НЕПЕРЕСЕКАЮЩИХСЯ ОСТАТКОВ

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

Таблица 1 Значения а и ß при т = 40, л = 70 и N = 7...13

N а E

7 0,001 0,001

8 0,009 0,010

9 0,059 0,069

10 0,361 0,430

11 1,968 2,398

12 9,676 12,074

13 43,170 55,244

пересекающихся остатков, понижающий уровень перебора [17—19].

Предположим, что в матрице $ можно найти т таких максимальных совокупностей линейно независимых столбцов, которым соответствуют взаимно непересекающиеся остатки. Заметим, что при этом должно выполняться отношение п > т (п — т). Построим множество 4, составленное из т соответствующих канонических форм, базисы которых строятся на основе указанных совокупностей (очевидно, что это число ограничено отношением Т < п/(п — т)), и будем искать оптимальное решение в рамках этих форм, последовательно увеличивая уровень перебора.

Утверждение 5. В множестве 4 найдется каноническая форма, где решение с весом V можно найти на уровне перебора не выше - v/q V — натурального числа, ближнего снизу к частному v/q.

Утверждение 6. Кратчайшее решение системы можно найти путем последовательного рассмотрения остатков канонических форм из множества 4, ограничивая уровень перебора подмножеств в этих остатках величиной - (V — 1)/тV, где V — вес кратчайшего из решений, найденных к текущему моменту времени.

Эти утверждения образуют основу предлагаемого метода. Обратим внимание на существенное понижение уровня перебора подмножеств в этом методе, в котором реализуется перебор подмножеств во всех остатках сначала на уровне 0, затем на уровне 1, и т. д., пока этот уровень не превысит -I (V — 1)/т1_.

Утверждение 7. Число 1Дт, п) подмножеств столбцов, рассматриваемых при методе непересе-кающихся остатков, определяется следующей формулой:

р

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Щт, п) = Т £ С1п _ т, где р = -у/тV.

I - 0

Предложенный метод позволяет существенно сократить время гарантированного нахождения кратчайшего решения, в сравнении с описанным выше методом Гаусса. Для того же примера (т = 625, п = 700) уровень перебора понизится с 220 до 23, как и у метода распознавания, с соответствующим сокращением времени поиска. Однако, в отличие от последнего, при этом гарантируется оптимальность получаемого решения.

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

таток с минимальным числом к вошедших туда столбцов, заметно меньшим, чем -у/т V (обозначим через V номер этого остатка). Это позволяет, объединив методы декомпозиции и распознавания, найти кратчайшее решение на уровне перебора к.

Наибольший эффект такое объединение дает в случае существования короткого решения с весом w. Например, при т = 625 и п = 700 число канонических форм т равно 9. При анализе на компьютере примера с данными параметрами и w = 105 оказалось, что к = 7 и именно таким числом элементов короткого решения обладает остаток третьей формы (V = 3). Расчеты по методу, предложенному в работе [20], показывают, что в данном случае решение будет найдено за 7,5 ч.

ОБОБЩЕННЫЙ ДЕКОМПОЗИЦИОННЫЙ МЕТОД

Условие не пересечения остатков канонических форм существенно для метода, гарантирующего оптимальность находимых решений, но не для метода распознавания короткого решения, где более важно понизить уровень перебора. С учетом этого соображения декомпозиционный метод был обобщен следующим образом. На базе различных выборов из матрицы $ максимальных множеств линейно независимых столбцов строится несколько (обозначим их число через р) серий канонических форм, причем в каждой из этих серий данное условие не пересечения выполняется. Таким образом, число канонических форм увеличивается в два, три или более раз, что приводит к соответствующему росту времени на их анализ. Однако с большой вероятностью этот расход времени с лихвой компенсируется снижением значения параметра к, определяющего уровень производимого перебора.

В результате возникает выигрыш, хорошо иллюстрируемый на примере той же СЛЛУ с параметрами т = 625, п = 700, обладающей коротким решением ^ = 105). Так, в эксперименте на компьютере при р = 2 (две серии, т = 18) ре шение находится на уровне перебора к = 6 (V = 12) примерно за три часа. А при р = 3 (три серии, т = 27) ре шение находится на уровне перебора к = 4 (V = 12), всего за 78 с!

ЭКСПЕРИМЕНТЫ

Приведенный выше пример оказался весьма выигрышным для предлагаемых методов нахождения короткого решения СЛЛУ, демонстрируя снижение уровня перебора с 10 до 4, а времени решения — с 25 дней до 78 с.

ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ В УПРАВЛЕНИИ Результаты испытания методов нахождения короткого решения случайных СЛЛУ

—1£

Таблица 2

№ р = 0 р = 1 р = 2 р = 3

Т~$~к {0 Т~$~к {1 Т~$~к Т~$~к Ч

1 1-1-12 74 100 000 9-2-8 177 000 18-13-6 11 200 27-13-5 996

2 1-1-12 74 100 000 9-3-7 27 200 18-3-7 34 900 27-3-7 42 600

3 1-1-10 2 190 000 9-3-7 27 200 18-12-6 10 400 27-12-4 78

4 1-1-12 74 100 000 9-4-6 3 410 18-4-6 4 070 27-4-6 4 730

5 1-1-11 13 400 000 9-4-7 34 900 18-11-5 807 27-13-6 11 800

6 1-1-9 320 000 9-3-7 27 200 18-3-7 34 900 27-3-7 42 600

7 1-1-13 373 000 000 9-3-8 243 000 18-17-6 14 300 27-20-7 175 000

8 1-1-9 320 000 9-5-7 42 700 18-5-7 50 400 27-5-7 58 200

9 1-1-13 373 000 000 9-3-8 243 000 18-10-7 89 200 27-3-8 398 000

10 1-1-12 74 100 000 9-2-6 1 840 18-2-6 2 500 27-2-6 3 160

11 1-1-9 320 000 9-1-9 917000 18-1-9 1 590 000 27-27-7 229 000

12 1-1-8 41 600 9-1-8 111 000 18-18-6 15 100 27-27-6 22 800

13 1-1-11 13 400 000 9-6-7 50 400 18-6-7 58 200 27-23-5 1 670

14 1-1-10 2 190 000 9-7-8 507 000 18-15-7 128 000 27-7-8 662 000

15 1-1-8 41 600 9-3-6 2 620 18-3-6 3 280 27-3-6 3 940

16 1-1-9 320 000 9-5-8 375 000 18-11-6 9 580 27-16-6 14 200

17 1-1-10 2 190 000 9-2-6 1 840 18-2-6 2 500 27-2-6 3 160

18 1-1-15 7 270 000 000 9-2-8 177 000 18-15-7 128 000 27-11-5 10 200

19 1-1-14 1 720 000 000 9-4-9 2 390 000 18-13-6 11 200 27-13-6 11 800

20 1-1-15 7 270 000 000 9-8-6 6 560 18-8-6 7 220 27-8-6 7 880

21 1-1-10 2 190 000 9-7-6 5 780 18-7-6 6 430 27-7-6 7 090

22 1-1-9 320 000 9-3-7 27 200 18-3-7 34 900 27-22-6 18 900

23 1-1-12 74 100 000 9-9-7 73 700 18-9-7 81 500 27-20-5 1 470

24 1-1-4 3 9-1-4 8 18-1-4 15 27-1-4 25

25 1-1-12 74 100 000 9-4-5 284 18-4-5 335 27-4-5 388

26 1-1-7 4 740 9-1-7 11 600 18-1-7 19 400 27-1-7 27 100

27 1-1-13 373 000 000 9-8-5 554 18-8-5 605 27-8-5 658

28 1-1-11 13 400 000 9-4-6 3 410 18-4-6 4 070 27-4-6 4 730

29 1-1-11 13 400 000 9-5-9 2 880 000 18-18-6 15 100 27-18-7 159 000

30 1-1-13 373 000 000 9-4-7 34 900 18-4-7 42 700 27-4-7 50 400

Более объективно эффективность данных методов характеризуется табл. 2, где показаны прогнозируемые результаты решения тридцати случайных СЛЛУ с теми же параметрами (т = 625, п = 700, ц = 105) четырьмя методами. Значением р = 0 условно отмечен метод Гаусса, значением р = 1 — декомпозиционный метод на одной серии канонических форм с непересекающимися остатками, и значениями р = 2 и р = 3 — обобщенные декомпозиционные методы на двух и трех сериях. Результаты применения этих методов отображаются тройками значений параметров т — V — к и временем ? в секундах, затраченным на нахождение решения. Например, тройка 27-12-4 означает, что в процессе решения анализировалось 27 канонических форм и процесс успешно завершился при рассмотрении остатка формы 12 на уровне перебора 4. Полужирным шрифтом отмечены моменты, в которых рассматриваемый метод выигрывает по эф-

фективности у всех предшествующих (представленных столбцами слева).

Поскольку время приведено в секундах, заметим, что час содержит 3600 с, сутки — 86 400 с, год — 31 536 000 с. Так, пример 20 решается методом Гаусса (р = 0) за 230 лет, а методом декомпозиции (р = 1) — за два часа (в миллион раз быстрее).

ЗАКЛЮЧЕНИЕ

Нахождение кратчайшего решения неопределенной системы линейных логических уравнений является ярким примером трудных комбинаторных задач. Для их успешного решения необходимо не только привлекать компьютеры, но и разрабатывать эффективные комбинаторные методы, учитывающие особенности рассматриваемых задач. Такие методы, предложенные в настоящей статье, на порядки (в тысячи раз и более) могут сокращать время, затрачиваемое на поиск кратчайших решений.

ЛИТЕРАТУРА

1. Besslich P.W. Efficient computer method for XOR logic design // IEE Proc. on Computers & Digital Techniques. — 1983. — Vol. 130. — P. 203—206.

2. Sasao T. AND-EXOR expressions and their optimization // Logic Synthesis and Optimization / Kluwer Academic Publishers. — 1993. — P. 287—312.

3. Miller J.F., Thomson P. Highly efficient exhaustive search algorithm for optimizing canonical Reed-Muller expansions of boolean functions // Int. J. Electronics. — 1994. — Vol. 76. — P. 37—56.

4. Reddy S. M. Easily testable realizations for logic functions // IEEE Trans. — 1972. — C-21. — P. 1183—1188.

5. Debany W.H., Hartmann C.R.P., Snethen T. J. Algorithm for generating optimal tests for exclusive-OR nets // IEE Proc. — 1991. — Vol. 138. — No 2. — P. 93—96.

6. Закревский А.Д., Закревский Л.А. Диагностирование схем, построенных из элементов "сумма по модулю 2" // Докл. АН Беларуси. — 1996. — T. 10. — № 6. — C. 7—11.

7. Suprun V.P. Fixed polarity Reed-Muller expressions of symmetric Boolean functions // Proc. IFIP WG 10.5 Workshop on Applications of the Reed-Muller Expansion in Circuit Design. — Makuhari, Chiba, Japan, — 1995. — P. 246—249.

8. Кострикин А. И., Манин Ю. И. Линейная алгебра и геометрия. — М.: Наука, 1986.

9. Ланкастер П. Теория матриц. — М.: Наука, 1978.

10. Закревский А. Д. К решению систем линейных логических уравнений с искаженными правыми частями — условия корректной постановки задачи // Информ. системы и технологии (IST’2002): Матер. I Междунар. конф., Минск, 5—8 ноября 2002 г. — Минск 2002. — Ч. 2. С. 45—50.

11. Zakrevskij A.D. Looking for shortest solutions of linear logical equations: theory and applications in logic design // 2. Work-

shop «Boolesche Problème», 19/20 Sept., 1996. - Freiberg / Sachsen. P. 63-69.

12. Закревский А.Д., Торопов H.P. Полиномиальная реализация частичных булевых функций и систем. — Минск: Ин-т техн. кибернетики НАН Беларуси, 2001.

13. Нильсон Н. Искусственный интеллект. Методы поиска решений. — М.: Мир, 1971.

14. Торопов Н.Р. Ускорение лестничного алгоритма решения системы линейных логических уравнений // Методы логи-ч еского проектирования / ОИПИ НАН Беларуси. — Минск, 2003. — Вып. 2 — С. 103—114.

15. Gauss C.F. Beitrage zur Theorie der algebraischen Gleichungen. — Gott, 1849.

16. Закревский АД., Василькова И.В. Быстрый алгоритм нахождения кратчайшего решения системы линейных логических уравнений // Методы логического проектирования / ОИПИ НАН Беларуси. — Минск, 2002. — Вып. 1. — С. 5—12.

17. Закревский АД. Декомпозиционные методы нахождения кратчайшего решения системы линейных логических уравнений // Докл. НАН Беларуси. — 2003. — Т. 47. — № 2. — С. 58—60.

18. Закревский АД. Оптимизация решений в линейном булевом пространстве — методы декомпозиции // Автоматика и вычислительная техника. — 2003. — № 5. — С. 28—36.

19. Zakrevskij A.D., Zakrevski L.A. Optimizing solutions in a linear Boolean space — a decomposition method // Proc. of STI '2003, Orlando, Florida, USA, July 2003. P. 276—280.

20. Закревский АД., Василькова И.В. Прогнозирование затрат времени на выполнение комбинаторных алгоритмов // Методы логического проектирования / ОИПИ НАН Беларуси. — Минск, 2003. — Вып. 2.

E-mail: zakr@newman.bas-net.by

S (10-375-17) 288-65-99 □

ПРАВИЛА ОФОРМЛЕНИЯ СТАТЕЙ ДЛЯ ПУБЛИКАЦИИ В ЖУРНАЛЕ «ПРОБЛЕМЫ УПРАВЛЕНИЯ»

Статья представляется в редакцию на бумаге в 2-х экземплярах, с аннотацией и направлением организации, а также обязательно в электронном виде на дискете 3,5 дюйма или по электронной почте (не более 2 МБ). Аннотация, название статьи и фамилии авторов должны быть представлены также на английском языке. Примерный объем оригинальной статьи 12, обзорной — 18 страниц текста. Текст печатается через 2 интервала с одной стороны бумаги формата A4, страницы нумеруются. В электронной форме текст должен быть в редакторе не ниже Word 97 шрифтом № 12 Times New Roman; текст не форматируется, т.е. не имеет табуляции, колонок и т.д. Рисунки должны иметь расширение, совместимое с Word 97, или в формате CorelDraw: фотографии должны быть предельно четкими, черно-белыми, на глянцевой бумаге или в электронном виде TIFF с разрешением 300 dpi. Толщина линий рисунков, представляемых в электронной форме — не менее 3 пикселей.

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

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

i Надоели баннеры? Вы всегда можете отключить рекламу.