Math-Net.Ru
Общероссийский математический портал
Ю. А. Зуев, Задача о покрытии: локальный подход и метод типа ветвей и границ, Ж. вычисл. матем. и матем. физ., 1979, том 19, номер 6, 1566–1576
Использование Общероссийского математического портала Math-Net.Ru подра- зумевает, что вы прочитали и согласны с пользовательским соглашением http://www.mathnet.ru/rus/agreement
Параметры загрузки:
IP: 118.70.116.132
6 ноября 2022 г., 06:45:53
ЖУРНАЛ
ВЫЧИСЛИТЕЛЬНОЙ МАТЕМАТИКИ И МАТЕМАТИЧЕСКОЙ ФИЗИКИ
Том 19 Ноябрь 1979 Декабрь
У Д К 519.147+519.&
З А Д А Ч А О ПОКРЫТИИ: ЛОКАЛЬНЫЙ ПОДХОД И МЕТОД ТИПА В Е Т В Е Й И ГРАНИЦ
10. А. ЗУЕВ (Москва)
•ч Р а с с м а т р и в а е т с я з а д а ч а о п о к р ы т и и . П р е д л а г а е т с я алгоритм, я в л я ю щ и й с я синтезом комбинаторно-локального подхода с методом ветвей и г р а н и ц . Эксперименты на ЭВМ со с л у ч а й н ы м и м а т р и ц а м и свидетельст
вуют о том, что э ф ф е к т и в н о с т ь метода ветвей и г р а н и ц в п р и м е н е н и и к задаче о п о к р ы т и и м о ж е т быть з н а ч и т е л ь н о у л у ч ш е н а п у т е м исполь
з о в а н и я ' р а з в и т ы х методов.
§ 1. Постановка задачи и некоторые подходы к ее решению
Пусть, задано, конечное т4лёйентное множество S={su . . ., sm} и си
стема его подмножеств F = { Ft, . . . , Fn} . Каждому Fj приписан вес p(Fj)>0. Система подмножеств GC-=F называется покрытием S, если S= U Fj . Вес покрытия
Задача нахождения покрытия минимального веса называется задачей о покрытии. В частном случае, когда p(Fj) = 1 , / = 1 , 2 , . . . , п, требуется найти минимальное по мощности (покрытие. Задача полностью определя
ется заданием (0, 1)-матрицы инцидентности1 А (тХп) элементов мно
жества S (строки) подмножествам Fj (столбцы), ^4 = ||at j||, {а^=0 или 1Г итг-мерного вектора р=(ри . .., рп) и может быть сформулирована как задача покрытия строк столбцами. Она может рассматриваться как за
дача линейного программирования с булевыми переменными, если каждо
му подмножеству столбцов матрицы А поставить в соответствие га-мерный булев вектор-столбец хг= (хи ..., хп):
где 1т есть ттг-мерный единичный вектор-столбец.
Сформулированная в такой форме задача о покрытии может решаться общими методами целочисленного линейного программирования I1] . Од
нако размерности задач, возникающих на практике, побуждают искать более эффективные алгоритмы, учитывающие комбинаторную специфику задачи. Следует, однако, заметить, что верхняя оценка трудоемкости для любого алгоритма, решающего задачу о покрытии, будет, по-видимому, достаточно пессимистической [2] . Существование трудных задач о покры-
Fj<=G
(1) минимизировать (Р, х) при условии Ах>1 Xj=0 или 1, / = 1 , 2 , . . . , п,
Задача о Покрытии 1Й67
тип было обнаружено и экспериментально [3Д. Поэтому для задач боль
шой размерности придется ограничиваться приближенным решением [4] . Как показывают приводимые ниже результаты экспериментов на Э В М , покрытие,, полученное: по методу наискорейшего спуска [5] , по весу ока
зывается близким к минимальному и может1 быть использовано в каче
стве приближенного решения. Метод получения лучших приближенных решений рассмотрен в [6] . Однако для задач, возникающих на практике, размерностью в несколько сот строк и столбцов может быть, по-видимому, в приемлемое время найдено и точное решение.
К задаче о покрытии сводится целый ряд задач дискретной матема
тики: задача нахождения простейшей дизъюнктивной нормальной формы (д.н.ф.) для булевой функции и связанная с ней задача синтеза переклю
чательных схем [7 - 1 1 ] , задача построения минимального теста [5] , задача составления расписаний [1 2],- ряд задач, возникающих в теории графов, и т.д. [1 3 , 1 4] . В задаче минимизации булевой функции множество S — это множество вершин единичного тг-мерного куба, на которых значение функции равно 1, а система подмножеств F — интервалы, соответствую
щие кбнъюнкциям из сокращенной д.н.ф. Причем в задаче построения кратчайшей д.н.ф. веса всех подмножеств положены равными 1, а в за
даче построения минимальной д.н.ф. вес подмножества-—это ранг'соот
ветствующей конъюнкции. Задача построения минимального теста — это задача о различении функций, заданных на конечной области определе
ния. Задача состоит в максимальном сужении области определения, по
зволяющем, однако, различать функции. Здесь множество S — это множе
ство неупорядоченных пар функций, Fj — точки из области определения функций/Причем Fj покрывает данную пару функций, если эти функции имеют различные значения в точке Fj.
Задача о покрытии может быть в принципе решена тривиальным пе
ребором всех 2п—1 непустых подмножеств множества F. При этом для каждого подмножества проверяется, является ли оно покрытием, й если является, то рто вес сравнивается с минимальным из уже полученных покрытий. Однако уже при п>20 такой перебор практически неосущест
вим даже на ЭВМ. Число проверяемых подмножеств может быть умень
шено, если использовать то очевидное соображение, что если G — покры
тие и то и Н — покрытие, и притом большего веса. Если сопоста
вить каждому подмножеству G^F двоичный набор длины п, то задача сводится к расшифровке монотонной булевой функции, определенной на этих наборах и равной 1, если соответствующее подмножество является покрытием, и 0 — в противном случае [1 5] . При этом нижние единицы этой монотонной функции будут соответствовать неприводимым (нейзбыточ- ным) покрытиям — таким множествам G<=F, которые сами являются по
крытиями, но никакие собственные подмножества которых покрытиями не являются. Ясно, что все минимальные покрытия содержатся среди неприводимых. Для нахождения всех нижних единиц монотонной функ
ции п переменных требуется не более С1"'2] + С п 1 ] f проверок [1 6] . Для
тттщрщщя же одной «минимальной» нижней единицы, соответствую
щей минимальному покрытию, требуется не более C^^+i испытаний [1 1 ] , Хотя для задачи о покрытии этот максимум, по-видимому, не дости
гается, ясно, однако, что такой общий метод, как расшифровка монотон
ной фуцкпии, не учитывающий внутреннюю структуру задачи, не даст хороших результатов.
В [7] описан другой алгоритм для построения всех неприводи
мых покрытий. Рассмотрим йю строку матрицы Д . Для ее покрытия дол
жен быть взят хотя бы один из столбцов / таких, что аг;=1, что на языке алгебры логики записывается как \/ j . Так как должны быть покрыты все строки, то все неприводимые покрытия можно получить, преобразовав к.н.ф. & V 7 к Д-н.ф, При этом используется свойство дистрибутивно- сти операций &, V - По ходу преобразования удаляются поглощаемые конъюнкции. Тогда каждой элементарной конъюнкции в д.н.ф. будет со
ответствовать неприводимое покрытие.
Но число неприводимых покрытий (тупиковых д.н.ф.) может быть очень велико: для булевой функции п переменных оно может превышать 22 Л (см. [1 0>1 7] ) . Это говорит о том, что алгоритм, основанный на переборе
всех неприводимых покрытий, чрезвычайно трудоемок. 1 Однако веса подавляющего числа неприводимых покрытий значительно
(примерно в \og2n раз) превышают вес минимального покрытия [1 0] . Это подсказывает, как построить алгоритм более эффективный, чем перебор всех неприводимых покрытий. На каждом шаге такого алгоритма имеется ряд частичных покрытий (подмножество столбцов, не покрывающее всех строк). В процессе вычисления выясняется, что многие из них не имеет смысла достраивать до покрытия, так как это не даст минимального по
крытия. Т. е. этот алгоритм реализует идею метода ветвей и границ [1 8],, основанного на том факте, что лишь незначительная часть возможных решений действительно нуждается в рассмотрении, подавляющее же чис
ло их исключается с помощью нижних границ, устанавливающих, что эти решения не могут быть оптимальными.
Эффективность такого алгоритма может быть увеличена, если его со
единить с локальным подходом к задаче о покрытии [8*9]. Как известно/
локальный алгоритм (л.а.). ценой небольших вычислительных усилий ус
танавливает, что некоторые столбцы входят во все минимальные покры
тия, некоторые не входят ни.в одно минимальное покрытие, относительна третьей группы столбцов ему не удается установить аналогичных свойств.
Связав а каждым столбцом / переменную х,, получаем, что в результате работы л.а. некоторые переменные приобрели значение if некоторые О,, остальные по-прежнему свободны. Выберем теперь одну из свободных пе
ременных Xj и произведем относительно нее ветвление, т. е. сделаем два предположения: 1) существует минимальное покрытие с # j = l ; 2) суще
ствует минимальное покрытие с ^ = 0 . После того как значение перемен
ной Xj зафиксировано, в обоих вариантах разветвления снова работает
Задача о покрытии 1569
л.а, на оставшемся множестве свободных переменных.. При этом некото
рые из свободных переменных снова получают определенные значения:
либо устанавливается бесперспективность продолжения варианта. Затем в каждом • перспективном случае опять выбирается одна из переменных, оставшихся свободными, и производится ветвление, и т. д. Т. е. алгоритм порождает дерево вариантов. Некоторые из ветвей доводятся до покры
тия, другие обрываются, когда устанавливается, что они не могут привести к минимальному покрытию. Таким образом, соединение метода ветвей и границ с локальным подходом используется для уменьшения числа вет
влений и, следовательно, для сокращения дерева вариантов и повышения, эффективности алгоритма.
§ 2. Общая схема решения задачи
На каждом шаге работы алгоритма имеется ряд висячих вершин де
рева вариантов — частичных покрытий, полученных в результате ветвле
ния и последующей обработки вариантов разветвления л.а. Для каждой висячей вершины есть нижняя оценка ^ = Р + П веса получаемых из нее покрытий, где Р = ^jp pi — вес частичного покрытия, а П — нижняя оцен- ка веса, необходимого для покрытия строк, не покрытых частичным по
крытием.
Известны две основные стратегии ветвления — способа выбора висячей вершины для ветвления: ветвление широким фронтом и односторонний обход дерева вариантов [1 8\1 9] . . При первом способе для ветвления выби
рается вершина с наименьшей нижней оценкой $Р. Такой способ обеспе
чивает минимальное число ветвлений и, следовательно, максимальное быстродействие алгоритма. Однако при этом в памяти Э В М нужно одно
временно держать все висячие вершины, число которых может быть ве
лико и заранее не известно. По этой причине предпочтение обычно отда
ется второму способу, который используется и в настоящей работе.
При одностороннем обходе для ветвления выбирается висячая вер
шина, образовавшаяся последней, т. е. используется принцип магазин
ной памяти. Здесь число вершин, одновременно находящихся в магазина (stack), заведомо не может превысить п — числа столбцов матрицы А . Отсечение ветвей осуществляется путем сравнения оценки 3* с В Е С — весом наилучшего из уже полученных покрытий. Поэтому здесь важно с самого начала получить значение В Е С близким к весу минимального, покрытия.
Удобный способ реализации этой стратегии в применении к задаче с булевыми переменными был предложен в [2 0] (см. также [1 9] ) . В приме
нении к схеме с л.а. он выглядит следующим образом. В памяти Э В М всегда хранится одно единственное частичное покрытие. Если оно не от
брасывается с помощью л.а. или оценки ^ , то производится гветвление и в частичное покрытие включается один из столбцов, бывших свобод
ными, т. е. применяется
1570 Ю. А. Зуев
П р а в и л о 1. Выбирается свободная переменная х$ и полагается Затем л.а. работает на множестве! свободных переменных и вычисля
ется . .
.Если частичное покрытие отбрасывается с помощью л.а. или оценки 9>
или, получается покрытие с весом P ^ R E C , то применяются следующие правила.
П р а в и л о 2. Переменная xh получившая значение 1 по правилу 1 последней, полагается равной нулю.
П р а в и л о 3. Все. переменные, получившие значения 0 или 1 после того ветвления, когда было положено #,=1, делаются свободными.
Л.а. работает на множестве свободных переменных и вычисляется 0>, Если частичное покрытие оказалось достроенным до покрытия с весом P < R E C , то записывается новое значение REG==P, полученное покрытие запоминается и применяются правила 2 и 3.
Алгоритм заканчивает работу при попытке применить правило 2 к частичному покрытию, не имеющему ни одной единицы, полученной по правилу 1. При этом минимальное покрытие с весом P = R E C хранится в памяти Э В М .
Широко распространенным методом для получения оценки П является использование решения задачи (1) без требования целочисленностй
[1,12,21] g настоящей работе предпринята попытка для задачи о покры
тии использовать в качестве П комбинаторную оценку Q. Рассмотрим под
матрицу матрицы А , образованную свободными столбцами и непокрыты
ми строками, для которой сохраним обозначение А(тХп). Пусть
i = i i\aif= 1 г = 1
Пусть x* и L=(p, x*) — решение непрерывной задачи линейного програм
мирования (1).
Т е о р е м а 1. Верна оценка Q^L.
Д о к а з а т е л ь с т в о следует из следующей цепочки неравенств:
п п тп п то
г = 1 j = l г = 1
Теорема 1 показывает, что Q является оценкой снизу для веса мини
мального покрытия, менее точной, чем L . Однако получение оценки Q\
требующее порядка тп операций, занимает значительно меньше времени, чем получение оценки L. Оценки Q и L могут совпадать. Пусть матрица А(тХп) имеет в каждой строке s единиц и в каждом столбце t единиц
\sm=tn)r /?;=1, /==1, 2 , . . . , п. Тогда x*={l/s,t..., 1/s) и L=n/s; &=1/£, Гг=1/£ и Q==m/t=n/s=L. При этом величина Q=L может, как покаэыва-
Задача о покрытии
гот примеры (см. [3] ) , значительно отличаться от веса минимального по
крытия.
Если веса всех столбцов— целые числа, то в качестве II может быть использовано ближайшее к Q целое число справа.
Практически оценка Q оказывается значительно менее точной, чем оценка L , но, как показывают результаты экспериментов на Э В М , Q в со
четании с л.а. позволяет в приемлемое время решать задачи размерностью вплоть до 100X100. При этом происходит значительно больший перебор, чем при использовании оценки L , но при ограниченных размерностях задач и небольшой плотности заполнения матрицы А единицами наблю
дается заметный выигрыш во времени.
При ветвлении в правиле 1 может быть выбран любой свободный стол
бец / и положено Xj=l. Однако разумные эвристические соображения, используемые при выборе столбца, могут существенно уменьшить время работы алгоритма. Выбор столбца осуществлялся следующим образом.
Рассматривалось множество всех непокрытых строк, покрываемых мини
мальным числом свободных столбцов. Бралось множество свободных столбцов, покрывающих эти строки, и из него выбирался для ветвления столбец /' с минимальным рг-. Такой выбор позволяет эффективно умень
шить число столбцов, фактически принимаемых в рассмотрение, и сразу же получить покрытие, близкое к минимальному, так как это—-метод;
наискорейшего спуска [5*9] в случае, когда все:.р3~\.
§ 3. Локальный алгоритм
Л.а. состоит из правил, по которым некоторые из свободных перемен
ных получают значение 0 или 1, а некоторые строки матрицы А выбра
сываются из дальнейшего рассмотрения (сокращается размерность зада
чи) , и из проверок определенных условий, невыполнение которых приводит к отбрасыванию частичного покрытия. П.п. 3), 6) и 7) рассматрива
лись ранее как способ уменьшения размерности задачи до начала пере
бора [6'8'9'1 3'1 4] , остальные введены в настоящей работе в связи с приме
нением метода ветвей и границ и существенно используют идею непри
водимости:
1) частичное покрытие должно быть , неприводимым покрытием для покрываемого им множества строк;
2) каждая не покрытая частичным покрытием строка должна покры
ваться хотя бы одним свободным столбцом;
3) если непокрытая строка покрывается единственным свободным столбцом /, то этот столбец включается в покрытие, т. е. полагается х3=1;
4) если свободный столбец / полностью накрывается частичным по
крытием, то полагается #,-=0;
5) если включение свободного столбца / в покрытие приводит к по
явлению в частичном покрытии избыточного столбца то полагается
х3=&; • •
6) если для свободного столбца f существует другой свободный стол
бец /, покрывающий все строки, которые покрывает и p(])^p(j') г- то полагается #j»=0;
1572 Ю. А. Зуев
7) если для непокрытой строки i' существует строка ц содержащая i во всех столбцах, в которых содержит 1 строка V, то строка i удаляется и в дальнейшем не рассматривается (покрытие строки V автоматически приведет к покрытию строки г).
Непосредственно из рассмотрения правил и условий, на которых осно
ван л.а., видно, что если на вход л.а. поступает частичное покрытие, ко
торое может быть достроено до минимального, то после его обработки л.а.
оно также может быть достроено до минимального. При необходимости получать все минимальные покрытия нужно в л.а. в п. 6) изменить
р(П<Р(П н а р ( / ' ) < / > ( / ) .
В процессе работы л.а. возможны ситуации, когда п.п. 1)— 7) всту
пают в противоречие между собой. Например, может случиться, что для столбца ; должно быть положено х3~1 согласно п. 3 ) , но х3=0 согласно
п. 5 ) . .Возникновение подобной ситуации указывает на то, что данное час
тичное покрытие не может быть достроено до неприводимого покрытия и, следовательно, не может дать минимального покрытия, поэтому оно от
брасывается.
Теоретический интерес представляет нахождение критерия того, что данное частичное покрытие может быть достроено до неприводимого по
крытия. Пусть .£=•{/•!,..., jr}— множество столбцов, Cjk (j^G) — множе
ство строк, покрываемых столбцом /Л, но не покрываемых ни одним дру
гим столбцом из G.
Т е о р е м а 2. Для того чтобы множество столбцов G входило хотя бы в одно неприводимое покрытие, необходимо и достаточно, чтобы множе
ства Cj„ . . . , Cjr были не пусты и существовала выборка аг по одной строке из множеств Cin . .., Cjr такая, чтобы для любой строки, не покры
той множеством столбцов G, существовал покрывающий эту строку стол
бец, не покрывающий ни одну строку из аг.
Н е о б х о д и м о с т ь . Пусть существует неприводимое покрытие G'-^G.
Тогда для каждого столбца jh^G существует непустое множество строк
CJ
ASCJ
a,
' покрываемое им, но не покрываемое ни одним другим столбцом из G'. Выбрав из каждого С'ь., /с—1, 2 , . . . , г, по одной строке, получим искомую выборку аг.Д о с т а т о ч н о с т ь . Пусть выборка ат существует. Достроим частич
ное покрытие G до покрытия, покрыв каждую непокрытую строку столб
цом, не покрывающим ни одной строки из осг. Удалив, если необходимо, избыточные столбцы, получим неприводимое покрытие С=>6г.
В информацию о частичном покрытии для удобства применения л.а.
входило следующее:
а) для каждого свободного столбца — число покрываемых им непокры
тых частичным покрытием строк;
б) для каждого столбца /, взятого в покрытие,—число строк, покры
ваемых им, но не покрываемых ни одним другим столбцом из покры
тия \С,\;
Задача о покрытии 1573
в) для каждой непокрытой строки — число покрывающих ее свобод
ных столбцов. ^ В экспериментах на Э В М л.а. доказал свою эффективность. Эти экс
перименты показали, однако, что полная проверка п.п. 5)—7) на каждом шаге, требующая для квадратной матрицы А (пХп) порядка п3 операций, слишком трудоемка. (Напомним, что трудоемкость вычисления оценки Q
Т а б л и ц а !
тХп i 2 3 ' 4 5
30X30 10 0.20 (0.16-0.24) 0 (0--1) 1 (1--1) 0.83 (0.67--0.91) , 30X40 10 0.24 (0.20-0.28) 1 (0--2) 1 (1--1) 0.84 (0.64--1.00) 30X50 10 0.7 (0.24-1.7) 5 ( 0 - 13) 1.02 ( 1 --1.10) 0.52 (0.25--0.93) 30X60 10 0.9 (0.3-2.3) 6 ( 1 - 16) 1.02 ( 1 --1.08) 0.48 (0.23--0.94) 30X70 . 10 1.9 (1.0-3.6) 13 ( 3 --23) 1.04 ( 1 --1.11) 0.33 (0.09--0.62) 30X80 10 2.1 (1.0-4.8) 14 (4--31) 1.02 ( 1 --1.10) 0.28 (0.08--0.47) 30X90 10 4.7 (1.0-8.0) 32 (5 - 5 4 ) 1.04 ( 1 --1.10) 0.12 (0.06--0.26) Т а б л и ц а 2
тХп
60X60 70X70;
80X80 90X90 100X100
60X60 70X70 80X80
10 10 10 3 3 10
4 3
0.8 (0.5^1.5) 3.0 (1.0-7.0) 20 (2.0-106) 70 (34-141) 510 (92-1315)
9.5 (1.9-47) 60 (25-165) 330 (12-896)
3 ( 0 - 7 ) 10 ( 2 - 3 2 ) 80 (3-462) 240 (114-469) 1600 (261-5210)
80 (5-381) 41Q (173-925) 2200 (85-5475)
1 ( 1 - 1 ) л
1.01 (1-1.05) (1-1.05) (1-1.05) (1-1.05) (1-1.16) 1.12).
1.06) .1.02
im
1.03 1107 1.08 (1.06 1.05 (1.04-
0 J 4 (0.39-0.93) 0.67 (0.10-0.91) 0.27 (0.013-0.66) 0.24 (0.028-0.35) 0.21 (0.011-0.31) 0.66 (0.37-0.72) 0.93 (0.72-0.97) 0.71 (0.58-0.73)
есть п2 операций.) Поэтому 5) проверялось только для таких столбцов / ' из покрытия, что \Су \^ки 6) — для свободных столбцов имеющих не более kt единиц, а 7) — для непокрытых строк i\ имеющих не более к2 единиц. Для определения чисел &4 и к2 использовалось следующее эври
стическое правило: к± — такое натуральное число, ч т о ph ir i > l , а phi+in^l;
к2 — такое натуральное число, что ph2m>l, а рк2+1т^1.
Здесь р — вероятность единицы в матрице А , которая определялась программой эмпирически как отношение числа единиц к тп перед нача
лом работы алгоритма. В реальных задачах к\ и к2 были невелики и рав
ны 1, 2 или 3.
§ 4 Результаты экспериментов на ЭВМ
Алгоритм был запрограммирован на языке Ф О Р Т Р А Н I V для Э В М БЭСМ-6, причем использовался транслятор Ф О Р Т Р А Н Г Д Р . В проведен
ных экспериментах матрица А (тХп) сформировалась с помощью ттш-крат- ного обращения к датчику случайных, равномерно распределенных на отрезке [0, 1] чисел. В случае попадания случайного числа в интервал [0» P]i i? <l ? элемент матрицы полагался равным 1, в противном случае 0:
Таким образом, параметр р определял плотность заполнения матрицы А
1 5 7 4 Ю. А. Зуе
единицами. Результаты экспериментов приведены в табл. 1 и 2, причем /?=0.07 в табл. 1 и р=0.05 для табл. 2. В первом столбце таблиц указано число решенных задач данной размерности (длина серии). Далее идут:
| I J L : — I — L— _ i _
10 30 50 70 90 110 130 t, сек
усредненные по серии величины: во втором столбце — полное время ре
шения в секундах, в третьем — число произведенных за время решения ветвлений, в четвертом — отношение первого R E G к весу минимального покрытия (величина, характеризующая качество метода наискорейшего спуска) и в пятом — отношение времени получения минимального покры
тия к полному времени решения задачи. В скобках для каждой величины указаны ее минимальное и максимальное значения в данной серии задач.
Веса столбцов матрицы А во всех сериях задач табл. 1 и первых пяти се
риях в табл. 2 полагались равными 1. В трех последних сериях задач табл. 2 веса столбцов полагались равными числу единиц в столбце — из
вестный трудный случай в задачах о покрытии [1 3 ] .
Задачи в табл. 1 повторяют задачи из [*] и [1 2] и обнаруживают вре
мя решения на порядок меньше, чем в указанных работах. Однако в [*]<
и I1 2] , где в качестве П использовалась оценка L , не наблюдалось такого стремительного роста времени решения с увеличением размерности задач.
На фигуре показано изменение во времени значения R E C и минималь
ной по множеству вершин дерева вариантов оценки @ на примере задачи из табл. 2 с размерностью 90X9Q. Из фигуры видно, что оценка Q явля
ется достаточно грубой, а задачи решены успешно благодаря л.а.
J Помимо задач со случайными матрицами был решен ряд задач с ком
бинаторными матрицами Л . Задача 117X27 из [3] была решена за 6 мин (3444 ветвлений), причем минимальное покрытие было получено через 15 сек (209 ветвлений). Эти результаты лучше сообщавшихся в [3] , од
нако, по-видимому, недостаточны, чтобы в приемлемое время решить вто
рую предложенную в [3] задачу, которую, по сообщению авторов, вообще не удалось решить ни одной программе. Помимо симметрии, трудность приведенных в [3] задач состоит, по-видимому, в относительно большом числе столбцов, образующих минимальное покрытие (более половины от общего числа столбцов). Использованная здесь (как и в [3]) методика перебора, суть которой во взятии частичного покрытия, состоящего из- пустого множества столбцов, и в постепенном наращивании его до покры
тия, оправдывает себя в случае, когда число столбцов минимального по
крытия составляет незначительную часть от общего числа столбцов, что,, по-видимому, и является наиболее распространенным случаем. Однако для приведенных в [3] матриц троек Штейнера в лучшем положении
Задача о покрытии 1575
оказывается алгоритм, начинающий перебор с множества всех столбцов и постепенно удаляющий избыточные столбцы.
В заключение сформулируем основные выводы, сделанные на основе проведенных с алгоритмом экспериментов.
1. Использование комбинаторно-локального подхода при решении за
дачи о покрытии методом ветвей и границ позволяет существенно сокра
тить время нахождения точного решения.
2. Примененная оценка Q в сочетании с л.а. позволяет в приемлемое время получать точное решение задач размерностью вплоть до 100X100.
При больших размерностях задач необходимо использование более точ
ной, чем Q, оценки П . При этом предложенные комбинаторно-локальные методы сохраняют свое значение: л.а. по-прежнему остается мощным средством сокращения перебора, а оценка Q, используемая как эффек
тивный тест, предшествующий более точной (и трудоемкой) оценке П , позволяет реже прибегать к использованию оценки П , давая, таким обра
зом, выигрыш во времени.
3. Предложенный алгоритм был ориентирован на нахождение точного решения задачи о покрытии, что, как уже указывалось, в принципе воз
можно лишь при ограниченных размерностях задач. Приводимые экспе
риментальные результаты свидетельствует о том, что покрытие, получен
ное по методу наискорейшего спуска, оказывается по весу близким к ми
нимальному (а нередко и сразу минимальным).
Статистическое обоснование этому дано в [2 2] . Однако существование задач, для которых покрытие, полученное по методу наискорейшего спус
ка, значительно хуже оптимального (см. [2 2] ) , не позволяет быть, всегда
уверенным в подобной точности. >
На практике же большая часть машинного времени тратится на дока
зательство оптимальности уже полученного точного решения. Метод вет
вей и границ позволяет находить приближенное решение с гарантирован
ным отклонением от оптимума. Когда резерв машинного времени оказы
вается исчерпанным, а решение задачи не закончено, то текущее значение В Е С является верхней оценкой для веса минимального покрытия (воз
можно, совпадающей с ним), а минимальная из оценок по множеству оставшихся висячих вершин дерева вариантов— нижней оценкой. Одна
ко стратегия одностороннего ветвления, при' которой оценка 9* для вися
чих вершин вблизи корня дерева может оказаться слишком мала (см. фи
гуру), плохо приспособлена для этого: Более перспективной в этом случае является гибкая стратегия ветвления, использующая преимущества вет
вления широким фронтом для увеличения минимальной из оценцк 9*.
В заключение автор выражает искреннюю признательность Ю . И . Журавлёву за постоянную поддержку в работе, а также благода
рит И. X . Сигала за критические замечания, способствовавшие улучше
нию качества работы, и К. П . Голикова за ценные советы в области прак
тического программирования.
, Поступила в редакцию 12.07:1978 Переработанный вариант 6.02.1979
1576 Ю. А. Зуев
Цитированная литература
1. А. М. Geoffrion, R. Е. Marsten. I n t e g e r p r o g r a m m i n g a l g o r i t h m s : a f r a m e w o r k a n d state-of-the a r t survey. M a n a g . Sci., 1972, 18, № 9, 4 6 5 - 4 9 1 .
2. P. M. Карп. Сводимость к о м б и н а т о р н ы х проблем. В «Кибернетич. сб.» Н о в а я с е р - Вып. 12. М., «Мир», 1975, 1 6 - 3 8 .
3. D. R. Fulkerson, G. L. Nemhauser, L. Е. Trotter, Jr. Two c o m p u t a t i o n a l l y difficult set covering p r o b l e m s t h a t arise in c o m p u t i n g t h e 1-width of incidence m a t r i c e s of Steine triple s y s t e m s . I n «]^ath. P r o g r a m i n i n g S t u d y 2». New York, Amer. E l s e v i e r , 1974, 7 2 - 8 1 . i
А. Ю. Ю. Финкелъштейн. П р и б л и ж е н н ы е методы и п р и к л а д н ы е з а д а ч и д и с к р е т н о й . м а т е м а т и к и . М., «Наука», 1976.
5. И. А. Чегис, С. Р. ЯблонскиЦ. Логические способы к о н т р о л я э л е к т р и ч е с к и х с х е м . Тр. Матем. ин-та АН СССР, 1^58, 51, 2 7 0 - 3 6 0 .
6. R. Roth. C o m p u t e r solution to m i n i m u m - c o v e r p r o b l e m s . Operat. Res., 1969, 17, № 3, 4 5 5 - 4 6 5 .
7. E. J, McCluskey, Jr. Minimizatipn of boolean function. Bell System T e c h n . J., 1956, 35, 1417-1444.
8. Ю. И. Журавлёв. Теоретико-множественные методы в алгебре логики. В сб. «Пробл.
к и б е р н е т и к и » . Вып. 8. М., Ф и з м а т г и з , 1962, 5 - 4 4 .
9. Ю. И. Журавлёв. Алгоритмы п о с т р о е н и я м и н и м а л ь н ы х д и з ъ ю н к т и в н ы х н о р м а л ь н ы х ф о р м д л я ф у н к ц и й алгебры логики, В сб. « Д и с к р е т н а я матем. и м а т е м . вопр. кибернетики». М., «Наука», 1974, 6 7 - 9 8 .
10. Ю. Л. Васильев, В. В. Глаголев. Метрические свойства д и з ъ ю н к т и в н ы х н о р м а л ь н ы х форм, В сб. « Д и с к р е т н а я матем. и матем. вопр. к и б е р н е т и к и » . М., « Н а у к а »г 1974, 9 9 - 1 4 8 .
И . А. Фридман, П. Менон. Т е о р и я и п р о е к т и р о в а н и е п е р е к л ю ч а т е л ь н ы х схем. М.,.
«Мир»,' 1978.
12. С. Е. Lemke, Н. М. Salkin, К. Spielberg. Set covering by s i n g l e - b r a n c h e n u m e r a t i o n w i t h l i n e a r - p r o g r a m m i n g s u b p r o b l e m s . Operat. Res., 1971, 19, № 4, 998-1025.
13. M. L. Balinski. I n t e g e r p r o g r a m m i n g : m e t h o d s , users, c o m p u t a t i o n s . M a n a g . Sci.r,
1965, 12, № 3, 2 5 3 - 3 1 3 . / 14. H. Кристофидес. Т е о р и я г р а ф о в . Алгоритмический подход. М., «Мир», 1978.
15. Ж. Анселъ. О числе монотонных б у л е в ы х ф у н к ц и й п п е р е м е н н ы х . В « К и б е р н е тич. сб.» Н о в а я сер. Вып. 5. М., «Мир», 1968, 5 3 - 5 7 .
16. Я . Н. Катериночкина. Поиск максимального верхнего н у л я монотонной ф у н к ц и и а л г е б р ы л о г и к и . Докл. АН СССР, 1975, 224, № 3, 557-560.
17. Ю. И. Журавлёв. Оценка д л я ч и с л а т у п и к о в ы х д.н.ф. ф у н к ц и й а л г е б р ы логики.
Сибирский матем. ж., 1962, 3, № 5, 8 0 2 - 8 0 4 .
18. Е. Lawler, D. Е. Wood. B r a n c h a n d b o u n d m e t h o d s : A survey. Operat. Res., 1966,.
14, № 4, 699-719.
19. И. В. Романовский. Алгоритмы р е ш е н и я э к с т р е м а л ь н ы х задач. М., «Наука», 1977.
20. Е. В alas. A n additive a l g o r i t h m for solving l i n e a r p r o g r a m s w i t h zero-one-variables..
Operat. Res., 1965, 14, № 4, 517-546.
21. A. M. Geoffrion. An improved implicit e n u m e r a t i o n a p p r o a c h for i n t e g e r p r o g r a m m i n g . Operat. Res., 1969, 17, № 3, 437-454.
22. Ю. А. Маматов. Д о к а з а т е л ь с т в о статистической оптимальности а л г о р и т м а Я б л о н ского - К в а й н а - Мак-Класки в з а д а ч е о поиске к р а т ч а й ш е г о п о к р ы т и я . Докл..
А Н СССР, 1976, 229, № 5, 1048-1050.