ЛИТЕРАТУРА
1. Закревский А.Д., БаяакяейЛ.И., Елисеева НА. и ф. Синтез асинхронных автоматов на ЭВМ. Минск: Наука и техника, 1975. 181 с.
2. S. Baranov. Logic synthesis for control automata // Dordrecht; Boston; London: Kluwer academic publishers, 1994.
3. K. Brayton, R. Rudell, A., Sangiovanni-Vincentelli and A.R. Wong. MIS: A multi-level logic optimization program // IEEE Trans. On com-
puter-aided design. Nov. 1987. Vol. 7. P 1062-1081.. 4.1. Levin, M. Karpovsh. On-line self-checking of microprogram control unit // 4* IEEE Intl. On-line testing workshop. Capry, Italy, July 1998. P152-156.
5. A. Yu. Matrosova, SA. Oslanin Self-checking synchronous FSM network design // 4"1 IEEE Intl. On-line testing workshop. Capry, Italy, July 1998. P. 162-166.
6. Астафьев M.B., Левин И., Матросова А.Ю., Синельников В. Синтез самопроверяемых автоматных сетей в базисе ПЛМ // Автомати-
ка и телемеханика (в печати).
7. Агибаяов Г.П., Оранов A.M. Лекции по теории конечных автоматов. Томск: Изд-во ТГУ, 1984. 185 с.
8. £ Randal. Bryant graph-based algorithms for boolean function manipulation // IEEE transactions on computers. August 1986. Vol. C-35, № 8.
9. A. Yu. Matrosova, S. A. Oslanin Self-checking FSM design with observing only FSM outputs // 4lh IEEE Intl. On-line testing workshop. Capry,
Italy, July 1998.
Статья представлена кафедрой программирования факультета прикладной математики и кибернетики Томского государственного университета, поступила в научную редакцию 24 февраля 2000 г.
УДК 519.714
В.А. Беляев
НЕКОТОРЫЕ АЛГОРИТМЫ СТРУКТУРНОЙ ДЕКОМПОЗИЦИИ УПРАВЛЯЮЩИХ СИСТЕМ
Работа выполнена при финансовой поддержке РФФИ, грант К» 98-01-00288
Рассматривается широкий класс задач структурной декомпозиции, возникающих при исследовании управляющих систем. Предлагаются общая математическая модель, метод и эффективная технология решения рассматриваемых задач. При помощи этой технологии разрабатываются практические алгоритмы решения конкретных задач структурной декомпозиции, возникающих при рассмотрении задач анализа и синтеза управляющих систем.
Управляющие системы представляют собой объекты дискретной природы и характеризуются функцией и структурой. Способы задания функциональных харак-.теристик очень многообразны и включают в себя системы уравнений, формулы, микропрограммы и пр. Структура управляющей системы задаётся схемой. Под структурной декомпозицией управляющих систем в данной работе понимается задача декомпозиции соответствующих схем. Задачи структурной декомпозиции возникают при исследовании управляющих систем на стыке логического и конструкторского этапов проектирования, когда требуется распределить заданную схему устройства по конструктивным блокам - интегральным микросхемам, базовым ячейкам или стандартным элементам БИС, а те, в свою очередь, - по печатным платам, базовым кристаллам или матричным БИС в заданном монтажном пространстве с обеспечением конструкторских и технологических ограничений.
Схема [ 1 ] задается тройкой объектов ОС, 2 2о), где X-множество элементов схемы, 2 - множество её цепей и 2ос2- множество её внешних цепей или полюсов. Элемент схемы определяется множеством своих полюсов и весом - некоторой количественной характеристикой сложности элемента. По определению, множества полюсов различных элементов в схеме не пересекаются. Цепь схемы - это подмножество множества полюсов элементов в схеме. Она может дополнительно характеризоваться весом - значением некоторого параметра её физического исполнения (толщины, кратности и т.п.). По определению, различные цепи схемы (элементы множества 7) не пересекаются, и их объединение есть множество всех полюсов элементов схемы. Схема 5={У, Ц и0) называется подсхемой схемы (X, 2 2о), если УсХ, ие I/ тогда и только тогда, когда исг для некоторого и в к входят все полюсы из 2 принадлежащие элементам в У, и ще и0 тогда и только тогда, когда щ£2 или в этом случае говорят, что подсхема 5 порождена подмножест-92
вом элементов К. По определению, вес цепи и подсхемы совпадает с весом цепи 1 з и схемы.
Поскольку порождающее подмножество определяет подсхему однозначно, имеется _ возможность там, где это не вызывает двусмысленности, рассматриваемые подсхемы отождествлять с их порождающими подмножествами, говоря, например, «подсхема У» вместо «подсхема (К, Ц Щ». В дальнейшем для упрощения изложения мы будем пользоваться этой возможностью без дополнительных оговорок. Соответственно этому к подсхемам будем применять любые теоретико-множественные операции и отношения.
Задачи декомпозиции схем рассматриваются в следующей постановке. Заданы схема Б={Х, 2, 2о), отношение несовместимости V на множестве X её элементов, тройка положительных чисел >с, <7 и р и система подмножеств А,,...,Ат из X; требуется разбить 5 на минимальное число подсхем так, что:
a) любые два элемента в каждой подсхеме совместимы;
b) сумма весов элементов каждой подсхемы не превосходит числа н>;
c) сумма весов цепей каждой подсхемы не превосходит числа д;
с1) сумма весов полюсов каждой подсхемы не превосходит числа р;
е) элементный состав каждой подсхемы является подмножеством, содержащимся хотя бы в одном из заданных подмножеств А..,ЛтсЛг.
Здесь и далее элементы схемы называются совместимыми, если они не находятся в заданном отношении V, и подмножество элементов называется множеством совместимости, если все они попарно совместимы. В известном смысле числа и», ц и р ограничивают сложность компоненты искомого разбиения, а ограничение а) означает, что множество элементов каждой такой компоненты должно бьггь множеством совместимости.
Различные подмножества множества ограничений {а, Ь, с, <1, е} в постановке задачи определяют частные задачи. Некоторые из них являются хорошо известными комбинаторными задачами. Так, ограничение а) определяют задачу раскраски графа [2] - в нашем случае графа С={Х, V), а ограничение Ь) - задачу разбиения множества чисел на классы с ограниченной суммой [3], известную как вариант задачи загрузки [4]. Ограничение е) определяет задачу покрытия булевой (с элементами 0 и 1) матрицы М=11 /Я{| | задающей подмножества Ьь содержащиеся в некоторых заданных множествах Ль..., А^оХ по правилу
V/ е {1...../}у/ е X = {1,..., п\ту = 1 ] е I,).
В каждой частной задаче, определяемой подмножеством Д ограничений из {а,Ь,сДе}, подсхемы, удовлетворяющие выбранному подмножеству Д, будем называть допустимыми. Ясно, что понятие допустимости в каждой такой задаче зависит от выбранного подмножества Д и распространяется только на рассматриваемую подзадачу.
Понятие допустимости подсхемы (схемы) распространю* на множество порождающих её, элементов. Подсхемы или порождающие подмножества элементов в разбиении будем называть блоками разбиения, а блоки, удовлетворяющие заданному набору ограничений, - допустимыми блоками разбиения. Разбиение с минимальным числом классов в дальнейшем будем называть кратчайшим, а кратчайшее разбиение на допустимые блоки -кратчайшим допустимым разбиением. Тогда сформулированную выше задачу разбиения схемы 5 на минимальное число допустимых подсхем можно рассматривать как задачу кратчайшего разбиения множества элементов схемы на допустимые блоки.
Наряду с рассмотренными задачами кратчайшей декомпозиции при исследовании управляющих систем возникает ещё одна разновидность декомпозиционных задач - задачи упорядоченной декомпозиции. Для их формулировки введём некоторые определения.
Последовательность подмножествХь...,Хк множества X, в которой все непустые подмножества различны и образуют разбиение множества X, называется упорядоченным разбиением данного множества и обозначается (Х\,..., Л*); подмножества Х\,..., Л* суть классы этого разбиения.
Обратим внимание на основные отличия упорядоченного разбиения от неупорядоченного:
1) классами упорядоченного разбиения может быть и пустое множество;
2) порядок перечисления классов в упорядоченном разбиении существен, любое его изменение порождает, вообще говоря, новое упорядоченное разбиение.
Для формулировки задачи упорядоченного разбиения в условия предыдущей задачи добавим еще некоторое заданное натуральное число Л>1 и числовую неотрицательную функцию определённую на любых упорядоченных разбиениях (Уь --. любого подмножества элементов ¥^Х схемы 5. Тогда задача заключается в нахождении такого упорядоченного разбиения К=(Хь..., Л*) множества X элементов схемы 5 на к блоков, для которого каждый непустой блок является допустимым в смысле ограничений {а,Ь,сДе} и числовая функция Р(К) принимает на этом разбиении минимальное значение.
Такое разбиение в дальнейшем называется минимальным допустимым разбиением.
Сформулированную выше задачу о кратчайшей декомпозиции в дальнейшем для краткости будем называть задачей декомпозиции типа I, а задачу о минимальном упорядоченном разбиении - задачей декомпозиции типа П. Если в последней задаче значение функции Т7 положить равным числу непустых блоков в разбиении (А'ь..., Х/Х то любая задача типа I сводится к задаче о минимальном упорядоченном разбиении.
В принципе, любую задачу декомпозиции можно решить тривиальным перебором всех возможных разбиений множества X, выбором среди них допустимых, а среди последних - минимальных или кратчайших. Объём перебора при таком подходе оценивается числом всех возможных разбиений л-элементного множества, которое вычисляется по следующей рекуррентной формуле
м
[1]: /?я = £ С'~_\ Ли_у, где Ло=1. Число таких разбиений с
1=1
ростом п растбт значительно быстрее, чем 2я, поэтому тривиальный подход осуществим лишь для задач с чис-лрм, э/тементоч 9 разбиваемом множестве порядка нескольких десятков. Для практических же целей требуется находить декомпозиции множеств, содержащих сотни и даже тысячи элементов.
Известны подходы к решению некоторых из рассматриваемых задач, основанные на использовании математического (часто нелинейного) программирования с булевыми переменными [5,6]. В этом случае любое разбиение представляется набором булевых переменных х,у, принимающих значение 1 если элемент ¡еХ помешается в блок с номером]е {1,..., />}, и значение 0 в противном случае, и строится путём последовательного определения компонент в наборе. Решение сформулированной задачи сводится к поиску таких значений переменных хф которые представляют допустимые минимальные или кратчайшие разбиения. Однако «потолок» методов, использующих эти подходы, также не превышает нескольких десятков элементов в разбиваемом множестве.
Среди комбинаторных подходов, получивших широкое развитие, известны [7,8] два альтернативных по способу построения разбиений подхода, использующих дерево поиска и некоторые приёмы сокращения числа перебираемых вариантов на нём. Подходы отличаются способом построения дерева поиска.
В первом подходе на каждом шаге ветвления выбирается (формируется) очередной допустимый блок разбиения; число ярусов в дереве при этом не превышает числа блоков в искомых разбиениях, а коэффициент ветвления в каждой вершине равен числу вариантов выбора очередного допустимого блока.
При втором подходе формирование блоков разбиения ведётся параллельно: на каждом шаге ветвления рассматривается очередной элемент множества X и для него подбирается подходящий блок, в который он может быть включён без нарушения условий допустимости. Количество ярусов в таком дереве равно и коэффициент ветвления в
каждой вершине не превышает к, где к - наибольшее число блоков в строящихся разбиениях.
Подход, развиваемый в данной работе, относится к первому способу организации дерева поиска. В
его основе лежит метод сокращённого обхода дерева поиска [9]. В работе метод применяется для решения задач декомпозиции типа I и II. Для этого вводится общая математическая модель задач декомпозиции - так называемая Г-задача, формулируется параметрический метод и алгоритм сокращённого обхода дерева поиска и предлагается технология решения широкого класса задач декомпозиции.
Г-задача
Вводимая Г-задача ставится следующим образом. Пусть имеется тройка определённых каким-либо эффективным способом объектов Т=<Х, Р, Е>, где X есть конечное множество, Р - множество некоторых подмножеств в X и - функция, сопоставляющая каждому (возможно, упорядоченному) разбиению любого подмножества УсА'на классы из Р некоторое неотрицательное число /-УК*), называемое сложностью разбиения Требуется найти, если возможно, такое (упорядоченное) разбиение Л множества X на классы из Р, которое доставляет минимум функции Р.
Под интерпретацией Г-задачи понимается всякая конкретная задача декомпозиции, которая может быть сформулирована как Г-задача для некоторой тройки Т=<Х, Р, Р>. Иначе говоря, некая задача А считается интерпретацией Г-задачи (сокращённо -Г-интерпретацией), если для неё возможно определить подходящую тройку объектов <Х, Р, и указать какое-либо соответствие, относящее каждому ' решению Г-з'адачи' для этой'тро'йки'некоторые'ре-* шения задачи А и наоборот, каждому решению задачи А - некоторое решение Г-задачи.
Многие классические комбинаторные задачи являются в действительности некоторыми Г-интер-претациями. Мы продемонстрируем это на примере лишь одной задачи - о покрытии булевой матрицы.
Задача состоит в нахождении для заданной булевой (с элементами 0 и 1) матрицы А/такого наименьшего по мощности подмножества её строк, называемого кратчайшим покрытием матрицы, в котором для каждого столбца М имеется покрывающая его строка, т. е. строка, содержащая единицу в этом столбце. Пусть матрица М имеет п столбцов, обозначенных 1,..., п соответственно. Положим Х={ 1,..., и}. Будем говорить, что булев вектор а{...а„ представляет собой множество УсЛ", если У/'еДа/=1<-> /еУ). Пусть множество Р содержит в себе каждое такое и только такое подмножество УЬХ, для которого в матрице М существует строка, представляющая некоторое множество 2эУ Пусть также Я(Л>)=/Л7. Тогда разбиению Ло=Рч,..., Х^, являющемуся решением Г-задачи для указанной тройки Т=<Х, Р, Р>, соответствует кратчайшее покрытие матрицы М, состоящее из некоторых её строк Ьь..., ¿»ь представляемые которыми подмножества в X содержат классы Х\,...,Хк соответственно.
Метод сокращённого обхода дерева поиска
Сформулируем теперь метод сокращённого обхода дерева поиска. Для заданной тройки Т=<Х, Р, Г> рассмотрим некоторый алгоритм ф, перечисляющий в любом множестве УсХ (возможно, в зависимости от некоторого условия а) некоторые подмножества, принад-
лежащие Р и (только в случае, когда упорядоченность искомого разбиения не существенна!) содержащие некоторый фиксированный элемент в У. Совокупность всех подмножеств в У, перечисляемых алгоритмом <р для заданного а, обозначается фа(У) или ф(У), если эта совокупность не зависит от а, т. е. безусловна. В частности, когда ф(У) состоит из всех указанных подмножеств в У, алгоритм ф обозначается <р . Пусть также у есть операция, сопоставляющая (возможно, тоже в зависимости от некоторого условия Р) множеству 2=фа(У) некоторое подмножество v|/p(ZjçZ. Результат операции vy, не зависящей от какого-либо условия (3, обозначается через v|/(Z). Если, кроме того, у есть тождественная операция, т. е. \\i(Z)=Z, то сама она обозначается буквой I. В дальнейшем ф называется алгоритмом перечисления (условным или безусловным), a vy - операцией сокращения (также условной или безусловной).
Построим для рассматриваемых алгоритма ф и операции V)/ дерево с корнем (дерево поиска) следующим образом. Вершины и рёбра дерева сопоставляются подмножествам множества X. Вершины, соответствующие пустому множеству, называются листьями дерева Корень (вершина 1-го яруса) ставится в соответствие множеству X. Пусть таким образом уже построены вершины £1 ярусов и рёбра (Ы) ярусов дерева . Рассмотрим произвольную вершину v /-го яруса и сопоставленное ей-множестве УоК-Вершина v называется концевой, если ^(ф^У^НЭ. Для каждой не концевой вершины v /'-го яруса вычисляется множество (Zl,...,Z/}=v|/p^a(y)). Множествам (У-ZO,..., (Y-Zj) сопоставляются вершины (/+1 )-го яруса, смежные вершине v, а ориентированным рёбрам, соединяющим v с ними, подмножества Z\,..., Zt соответственно. Построение дерева D* заканчивается,
когда на некотором его ярусе каждая вершина оказывается концевой.
Для любого пути s в дереве D* через R(s) обозначается множество всех подмножеств, сопоставленных рёбрам пути s и указанных в порядке вхождения соответствующих рёбер в путь s. По построению дерева это есть упорядоченное разбиение разности множеств, сопоставленных началу и концу пути s, на классы из Р, которое называется разбиением, соответствующим пути s. Пусть
S* обозначает множество всех путей в D* , соединяющих корень с листьями дерева, a обозначает подмножество всех тех путей из S ¥, соответствующие которым разбиения доставляют минимум функции F. Пусть также R* ={R(s):seS J } и к* ={R(s).seS\}. Тогда из построения дерева D- и определения алгоритма <р следует, что множество R- содержит всевозможные упорядоченные
разбиения множества X на классы из Р и А ' и образует
множество всех решений Г-задачи.
Таким образом, решение Г-задачи, если оно существует, можно найти, выбрав некоторый путь , пере-
числяя все пути в S~ и выписав соответствующее ему разбиение R(s). Однако в практических ситуациях перебор всех путей в S~ оказывается фактически невыполнимым даже с помощью ЭВМ, в связи с чем возникает необходимость в его сокращении, т.е. в замене перебо-
1 А1
ром части множества S ~, содержащей пути ю .
Одна из возможностей сокращения указанного перебора связана с использованием алгоритма <р и операции vy. Алгоритм ф и операция v|/ называются допустимыми для Г-задачи, если в S* имеется хотя бы один
путь из . Решение Г-задачи для допустимых <р и у
может быть найдено перебором только множества S*.
Другая возможность для сокращения перебора вытекает из некоторых свойств функции F в тройке Р, F>. В широком классе ингергретаций Г-задачи функция F обладает свойством монотонности, которое позволяет ввести числовую неотрицательную функцию Fo, определенную на подмножествах в X так, что дяя любою YcX н для любых разбиений и F?~r соответственно множеств Y и X-Y справедливо: F^^ytF^YF^Y).
Смысл функции Fo, называемой граничной или функцией нижней оценки, состоит в том, что значение F0(Y) есть нижняя граница величины, которая при вычислении сложности F{Rx'ruRy) разбиения множества X добавляется к сложности имеющегося разбиения множества X-Y за счет возможного разбиения остатка Y.
Метод сокращенного обхода дерева поиска основан на выполнении специальной процедуры обхода некоторой части дерева D* для допустимых
алгоритма перечисления <р и операции сокращения у. Эта процедура представляет собой последовательность операций двух типов - спуск и подъем
(по дереву D* ), осуществляемых при определённых условиях. Спуск есть переход из вершины v /-го яруса в смежную вершину (/-1)-го яруса (/>1), а подъём есть переход из вершины v /-го яруса в вершину z (/+1)-го яруса, соединённую с v не пройденным ребром. После выполнения операции подъёма ребро vz объявляется пройденным. Подъём осуществляется всегда, когда не выполнены условия для спуска и существует не пройденное ребро, инцидентное с вершиной v. Спуск выполняется, если вершина v концевая или (в случае монотонной функции F) F0(Y)>F(R)-F(R(sv)), где Y -подмножество в X, сопоставленное вершине v; sv -путь из корня bv;ä- известное в момент выполнения данной операции разбиение множества X на классы из Р. Перед началом обхода в качестве R может быть принято любое разбиение Ro, представляющее собой приближённое (эвристическое) решение Г-задачи, отыскиваемое с помощью некоторого быстродействующего алгоритма. В случае, если такое разбиение неизвестно, то условно считается Ro=0 и F(Ä0)=°o. Всякий раз, когда в процессе обхода достигается вершина v, являющаяся
листом дерева, за R принимается разбиение R(Sy). Обход начинается в корне дерева В* и заканчивается в вершине V, в которой либо F(/?(ív))=Fo(Л) (тогда V есть лист дерева), либо ни одна из указанных операций неприменима (тогда V есть корень). По окончании обхода разбиение R является решением Г-задачи, если
Предлагается конкретный алгоритм, реализующий описанную процедуру обхода дерева поиска применительно к Г-задаче с монотонной функцией F.
Алгоритм обхода
\.Х(>):=Х, /?:=/?о,Я':=0, /=1.
2. Вычисляется множество
{г/0,..., З/'^нЫФЛУ)); *,:=<).
3. к,:=к,+1; если £/>/,, то п. 4; в противном случае
Д'НГи^®}, Если ХЧд, то а 5; иначе при условии Fo(Aвыполняется п. 4, в противном случае - п. 2.
4. Если £1,топ6; иначе г=/-1, .., 2^,<м>} и а 3.
$. Ёсли НК^М, то и, если /(Д^оС*),
то п. 6, в остальных случаях - п. 4.
6. Конец; если то R есть решение Г-задачи, в противном случае решения не существует.
Для применения данного алгоритма к Г-задаче с немонотонной функцией F достаточно в п. 3 и 5 алгоритма включить блокировку сравнений с граничной функцией Fo. В тех случаях, когда можно удовлетвориться приближённым решением Г-задачи, но желательно, чтобы это решение было по возможности более точным (т.е. с меньшим значением функции F)) в этих случаях в п. 4 алгоритма перед операцией /'. =/-1 следует поставить переключатель по времени - операцию, существую- . щую обычно в развитых языках программирования, которая по исчерпании ресурса времени, отпущенного вычислителю (ЭВМ) на реализацию алгоритма, выводит алгоритм на точку (п. 6), а до того не меняет порядка работы алгоритма. В отсутствие переключателя по времени или при нежелании воспользоваться им допустимый объём вычислений может быть задан ограничением области поиска решения. Так, если в п. 4 алгоритма условие /¿1 заменить условием 1<г, то поиск будет ограничен лишь теми путями в дереве, которые проходят через некоторую одну и ту же вершину г-го яруса. Результат R=0 в таких случаях должен рассматриваться как свидетельство невозможности получения данным алгоритмом какого-либо решения Г-задачи в указанное время или в указанной области поиска. Наконец, если начальное разбиение неизвестно и требуется найти хотя бы одно приближённое решение Г-задачи, то в п. 5 алгоритма после операции Я: =Я'достаточно поставить безусловный переход на точку - п. 6.
Технология решения задач структурной декомпозиции
Технология решения задач структурной декомпозиции данным методом заключается в следующем:
1. Определяется тройка объектов T=<X,P,F>, подходящая решаемой задаче.
2. Подбираются для Т допустимые алгоритм перечисления ф и операция сокращения Т.
3. В случае монотонной функции F задается функция нижней оценки F0.
4. Указывается некоторый алгоритм р построения начального разбиения
5. С помощью алгоритма сокращённого обхода
дерева отыскивается решение Г-задачи, если
оно существует.
Эффективность алгоритма обхода и всей технологии в целом зависит от «сокращающих способностей» алгоритма перечисления и операции сокращения и от степени точности функции нижней оценки и алгоритма начального разбиения. Названные объекты являются параметрами метода поиска и выбираются эвристически для каждой конкретной задачи декомпозиции.
Например, для задачи покрыли булевой матрицы предлагаются следующие параметры метода. Пусть матрица М имеет т строк с номерами 1,..., т и А, есть подмножество (столбцов) в X, представленное строкой с номером i. Алгоритм ф в данном случае перечисляет в любом множестве YqX непустые подмножества Л, г>У для /е{1,..., /и}, которые содержат некоторый фиксированный (например, с наименьшим номером) столбецу0 в У; операция у отбирает среди этих подмножеств максимальные (не входящие в другие) подмножества; F£Y) -любая эффективно вычисляемая оценка снизу для числа строк в кратчайшем покрытии множества Y подмножествами А/Г\У, ¿=1,..-ж например, F^Y)=j Я /maxi ЛоЯ [; за начальное разбиение Ro может быть принято любое разбиение {ХЬ...,ХГ} множества Л", классы которого суть
части множеств Ап..... А,„ представляемые строками
матрицы, образующими некоторое её приближённо кратчайшее покрытие, найденное каким-либо ю эвристических алгоришов: Xi=AlhXJ=A) -(j Atk, j=2,..., г.
ы
Разбиение множества чисел
Задача заключается в нахождении для заданных множества W положительных чисел и числа w, не меньшего любого числа в W, такого разбиения к множества W на классы, в котором сумма чисел в каждом классе разбиения не превосходит w и число классов минимально. Всякое такое разбиение к множества ^называется ^минимальным.
Данная задача является формальным эквивалентом задачи распределения конструктивно-функциональных узлов по блокам ограниченной вместимости w, если объёмы распределяемых узлов выражены числами, образующими множество W. Её можно рассматривать также как задачу размещения заданных массивов данных или программ по страницам памяти; в этом случае w есть размер страницы, а числа в W суть размеры размещаемых массивов.
Г-интерпретация
Подмножество чисел из W, сумма которых не превосходит w, называется w-совместимым. Пусть Х= W, F(Är)H Ry | и множество Р состоит из всех w-совместимых подмножеств в X. Тогда ^минима-
льное разбиение множества IV совпадает непосредственно с решением Г-задачи для <Х, Р, Р>. Вводятся следующие параметры метода сокращённого обхода дерева поиска для данной задачи.
Пусть У=у1......Уг}оХух >...^уг и для любых натуральных р ид для 1<р<ц<г величина арч определяется формулой: Алгоритм ф перечисляет
Ыр
некоторые максимальные несовместимые подмножества в У, отбираемые по следующим правилам, применяемым в указанном порядке.
Алгоритм ф
1. Если для некоторых /' и у(/?у) справедливо У&УГм, то ф()0={{у>,^}} Л"* наименьшего такого /.
2. Если для некоторых / и у (¡</<г) имеет место
где ож>г=0, то ф{Уу={{уиур......уг}}
для наименьшего такого /.
3. Если для некоторых и к (¡</<к<г) справедливы неравенства у^у^м, У,+Ук+Уг>^, то ф({{>"/. >*;}} для наименьших / и у с указанными свойствами.
4. Во всех остальных случаях алгоритм ф перечисляет все максимальные несовместимые подмножества в У, содержащие наибольшее число у\. Приводится конкретная реализация этого пункта алгоритма.
Результат применения операции к множеству 2£ф(У) вычисляется как"нижняя грань множества упорядоченного отношением < предшествования, определяемого для любых двух подмножеств А={уп,..ур) и В={У]ъ-,Уп} из У следующим образом:
{1...../?}(/,2/,
=2лАГ&*0ЛО(А)>О(В)], где ¡1<...<{р, у,<...<у,и о(С)=]Г;у.
Граничная функция определяется формулой: Р<£У)=тах(к, Г), где /=]ст(У)/н-[ и к есть наименьшее целое такое, что в ряду для {у,,..., уг}=У
имеет место ук+у^|<н».
Разбиение графа на подграфы
Пусть имеется граф (?={К,1/) и его подграф Со=(Уо,^оХ порождённый некоторым подмножеством вершин ГосКтаким, что никакие две вершины из У-У0 не смежны. Пусть всем вершинам и рёбрам графа бо приписаны некоторые натуральные числа, называемые их весами. Вес ребра ибС/0 обозначается через р(и\ а вес вершины /е У0- через Каждое множество УсК0 характеризуется величинами и<У) и д(У% определяемыми следующим образом: ^(У^Х^" <700 = 1^1 + иг
где Уу - множество вершин из У-Уо, смежных одновременно вершинам в У и вершинам в Уд-У; и у- множество рёбер из С/а, инцидентных одновременно вершинам в У и вершинам в Уц-У Пусть, кроме того, заданы два натуральных числа ^ и м>, причём и^, для каждого /е У^. Требуется найти (если возможно) разбиение к множества У0 с минимальным числом классов Уи...,У\ц так, чтобы и<Р;)£и> и для каждого 1=1,..., I к I. Всякое
такое разбиение Й множества У0 называется (<у, неминимальным разбиением в графе й.
Данная задача является одной из разновидностей задачи компоновки схемы управляющей системы в конструктивные блоки. Граф (7 в этом случае выступает в качестве модели компонуемой схемы: вершины в Уо сопоставляются элементам схемы, а рёбра в С/о - множествам электрических цепей в схеме, объединяющих пары полюсов соответствующих элементов. Вес такого ребра равен мощности сопоставленного ему множества цепей. Вершинами в У-Уо представляются электрические цепи схемы, объединяющие более двух полюсов (промежуточные узлы связи). Ребро, соединяющее вершину в и вершину в У-Уо, указывает на инцидентность в схеме соответствующих элемента и электрической цепи. Поскольку объём н> конструктивного блока ограничен, а размеры реальных физических элементов ту конечны, то в каждом блоке / при компоновке схемы может быть размещено лишь множество таких элементов, общий объём которых не превышает и>. Отсюда оледует ограничение на в постановке задачи. Кроме того, конструктивные блоки соединяются между собой посредством разъёмов с ограниченным числом ц контактов. Тем самым накладывается ограничение на число я{У) внешних связей блока /, т.е. связей элементов в блоке » с элементами других блоков. При подсчёте этого числа все проводники, принадлежащие одной и той же электрической цепи, отождествляются с одним проводником, вследствие чего величина д(К/) вычисляется по приведённой выше формуле при У=у. Общее количество конструктивных блоков, по которым распределяются элементы схемы, должно быть наименьшим; отсюда - тре-
бование минимальности числа классов в разбиении к.
Г-интерпретация
Множество УЬУо называется д-совместимым (мнюв-местимым), если 4?^, а, соответственно, м{У)<ж Множество У, являющееся одновременно ^-совместимым и и»-совместимым, называется (д,м>)-совместимым. Пусть Х=УьР-множество всех (д, несовместимых подмножеств в А" и Я^Н ДЧ • Тогда решение Г-задачи для яв-
ляется ^^-минимальным разбиением в графе С
Параметры метода
Каждое (ц, и^-совмесгимое подмножество в УсА' является ^-совместимым подмножеством некоторого и»-совместимого подмножества ОсУ. В связи с этим алгоритм перечисления <р для рассматриваемой задачи предложено представлять как композицию (последовательное выполнение) двух алгоритмов - <р2 и <рЗ. Алгоритм ф2 в любом У^Х перечисляет все максимальные \v-co-вместимые подмножества Q, содержащие вершину у0 наибольшего веса, а алгоритм фЗ для каждого 2 (У) перечисляет все такие его ^-совместимые подмножества, содержащие вершину уо^У, которые являются объединениями некоторых максимальных плотных подмножеств из Q. Множество АсХ называется плотным, если для любого непустого подмножества СсА имеет место д(С)>д(А). Приводится конкретная реализация алгоритма перечисления. Операция V)/ исключает из 2=ц>(К) всякое такое множество А&2 для которого в 2найдётся множество В^А со свойством д(А)£д(В). Допустимость этой операции доказывается соответствующей теоремой. Граничная функция определяется так же, как в задаче о разбиении множества чисел.
ЛИТЕРАТУРА.
1. Агибалов Г.П. Дискретные автоматы на полуреш&гках. Томск: Изд-во Том. ун-та, 1993.227 с.
2. БержК. Теория графов и ее применения. М.: ИЛ, 1962.319 с.
3. Агибалов Г.П., Беляев В.А. Метод сокращенного обхода дерева поиска и его применение в синтезе интегральных схем // Управляю-
щие системы и машины. 1977. № 6. С. 99-103.
4. Агибалов Г.П., Беляев В.А. Технология решения комбинаторно-логических задач методом сокращенного обхода дерева поиска. Томск: Изд-во Том. ун-та, 1981.125 с.
5. Кристофидес Н. Теория графов. Алгоритмический подход. М.: Мир, 1978. 432 с.
6. A.M. Geoffrion, R.E. Marsten. Integer programming: a framework and state-of-the-art survey // Management Science. 1972. Vol. 18. № 9.
7. Рейнгольд Э., Нивергелът Ю., Део Н. Комбинаторные алгоритмы. Теория и практика. М.: Мир, 1980. 476 с.
8. Ершов А.П. Введение в теоретическое программирование. М.: Наука, 1977. 288 с.
9. Закревский А.Д. Алгоритмы синтеза дискретных автоматов. М.: Наука, 1971. 512 с.
Статья представлена кафедрой защиты информации и криптографии факультета прикладной математики и кибернетики Томского государственного университета, поступила в научную редакцию 1 марта 2000 г.
УДК 519.7
В.А. Бузанов
ЗАДАЧИ ДИАГНОСТИКИ ДЛЯ СЛОЖНЫХ ФУНКЦИЙ
Работа выполнена при финансовой поддержке РФФИ, грант № 98-01-00288
Предлагается способ применения специальных интервальных операций при вычислениях в задачах диагностики, если объект диагностики задан простейшей композицией произвольных функций - сложной функцией. Предполагается, что функции-компоненты композиции заданы их интервальными формами.
Для упрощения вычислений ранее [1] были ПустьX = Xt х...хX, х...хХ№ - декартово про-
предложены специальные интервальные операции roBefleHHe произвольных множеств*,. Элементы
для решения основных задач диагностики. При этом ,, _
„„„„ „„ м множества X называются векторами или наборами,
имелось в виду следующее. r г