УДК 519.854
ИССЛЕДОВАНИЕ АЛГОРИТМОВ РЕШЕНИЯ ОБОБЩЕННОЙ ЗАДАЧИ О МИНИМАЛЬНОМ ПОКРЫТИИ
© 2014 Б.А.Есипов, В.В.Муравьев
Самарский государственный аэрокосмический университет имени академика С.П. Королёва (национальный исследовательский университет)
Поступила в редакцию 17.12.2013
В данной статье рассмотрена математическая модель обобщенной задачи о минимальном покрытии. Предложены методы её точного и приближенного решения, исследованы сложность, быстродействие и точность.
Ключевые слова: математическая модель, минимальное покрытие множества, аддитивный алгоритм, генетический алгоритм.
Научный анализ организационно-технических систем приводит к необходимости математического моделирования и решения сложных задач оптимизации. В частности, при постановке задач наиболее эффективного распределения ресурсов по отдельным объектам, а также в задачах управления организационно-техническими системами возникает так называемая задача об оптимальном покрытии. Например, мы хотим обеспечить всю совокупность функций при производстве на отдельных объектах: цехах, участках за счет установки оборудования с частично перекрывающимися функциями. Нужно, чтобы все заданные функции на каждом объекте были обеспечены и при этом затраты на оборудование были бы минимальны. Аналогичные задачи возникают при кадровом обеспечении удаленных воинских частей, комплектовании космических аппаратов, кораблей, больниц, выбора инструментов для ремонтов или при проектировании систем на основе стандартных наборов микропроцессоров и электронных схем. Известны практические постановки по оптимизации постов ГАИ, состава меню программных интерфейсов, минимизации булевых функций и т.п. Для понимания существа подобных задач приведем следующую постановку.
Имеется m туристических групп, в каждой из которых известен набор языков общения и n переводчиков, каждый из которых может обеспечить определенный набор языков общения из общего числа l языков. Необходимо распределить переводчиков по туристическим группам так, чтобы обеспечить общение во всех группах и при этом чтобы количество занятых переводчиков
Есипов Борис Алексеевич, кандидат технических наук, доцент кафедры информационных систем и технологий. E-mail: bobpereira@yandex.ru
Муравьев Вячеслав Вячеславович, студент факультета информатики.
было минимально. Можно ввести стоимости переводчиков су > 0 и минимизировать общие затраты на переводчиков. Такую задачу назовем обобщенной задачей о минимальном покрытии (ОЗМП). Легко заметить, что если в этой задаче только одна туристическая группа (т=1), то получим обычную задачу о минимальном покрытии (ЗМП). В [2] содержится обзор методов решения ЗМП и рассмотрены вопросы сложности ее решения. В [1] предложена математическая модель ОЗМП в виде задачи линейного булева программирования, решение которой приводит к сложным переборным алгоритмам.
В данной работе предложен подход к решению ОЗМП, запрограммировано несколько алгоритмов ее решения и сделан анализ их быстродействия для задач большой размерности.
Математическая постановка ОЗМП отличается от ЗМП наличием нескольких независимых покрываемых множеств и заключается в следующем.
Пусть дано множество К = (1,2,3,...А:,...,I) и два набора его подмножеств А1,...,Ап и
т п
В1,...,Вт , таких, что иВ< — и Ау. Совокупность ,=1 ]=1
подмножеств Ау, у Е Ji — {1,..., п} , называется покрытием множества Вi, если и Aj = В' ; Ji в
i jЕ Ji '
таком случае называется множеством покрывающих индексов. Каждой паре подмножеств (Bi, Aj ) приписан вес с у > 0. Весом покрытия
Ау. множества В{ является . Требуется най-
jЕJ,
ти покрытия для всех множеств из набора В1,..,Вп минимального суммарного веса такое, что множества покрывающих индексов данных покрытий Ji попарно не пересекаются. В терминах булева программирования эта задача формулируется следующим образом: найти
п т
/ *(с, А, В) = ш1п{ ££ с..,х..,, | Ах > В, х„ е {0,1}},
з =1 г =1
при условии
т
£ хл < 1, 3 = 1, п . (1)
г = 1
Здесь А = (а.) — матрица размера Iхп с элементами ак. = 1, если к е А., и ак. = 0 в противном случае; В = (Ъы ) — матрица размера I х тс элементами Ъы = 1, если к е В{, и Ъы = 0 в противном случае; с = (с.г ) - матрица весов; х = () - матрица переменных с компонентами х 1 = 1, если А. входит в покрытие В{, и х1 = 0 в противном случае.
В отличие от классической задачи о минимальном покрытии (ЗМП), где количество допустимых векторов с элементами х. равно 2п, то есть любой вектор является допустимым, в обобщенной задаче (ОЗМП) количество матриц с элементами хг., (количество возможных состоя-
У 4
ний), много меньше чем 2тп и равно (т + 1)п.
В самом деле, ограничение (1) означает, что в каждом столбце матрицы х может быть не более одной единицы, то есть каждый столбец представим одним из т +1 способов: все элементы столбца равны 0 - 1 способ, или один из элементов равен 1 - т способов. В матрице х п столбцов, значения в каждом столбце не зависят от значений в других столбцах, откуда матрица предста-вима (т + 1)п способами. Для любого целого т 2тп > (т +1)п, причем равенство достигается только при т = 1.
В данной работе предлагается переход от булевых к целочисленным переменным:
/ * (с, А, В) = ш1п{Гс(х.,3)|АИ > В, х е {0,...,т}п}
3=1
Здесь А = (акз) — матрица размера IXп с элементами а. = 1, если к е А., и а. = 0 в противном случае; В = (Ъы ) — матрица размера IX тс элементами Ъ, = 1, если к е В , и Ъ, = 0
кг ' г ' кг
\с , г ф 0
в противном случае; с(3, г) = | 0 . 0 - весовая функция, (с.г) - матрица весов; х = (х.) -вектор целочисленных переменных с компонентами хз = г, если Авходит в покрытие В{, и хз = 0, если А. не входит ни в одно покрытие; И = (И.г) - дополнительная матрица, И.г = 1, если хз = г, и Изi = 0 в противном случае.
Задача в такой формулировке не имеет недопустимых состояний, так как ограничение (1) выполняется в данном случае автоматически. Такая модификация позволяет не делать лишних проверок и переходов в процессе решения, что положительно сказывается на времени поиска.
Замечание 1. При проверке ограничения АИ > В в матрице произведения О = АИ имеет смысл вычислять элементы только с такими индексами (к,г) , что Ъы =1. Это означает, что в задаче присутствует не Iхт ограничений, а
только p = ZZЪы ,[1].
k =1 i=1
Замечание 2. Хотя задача проверки существования решения для данной задачи аналогична самой задаче минимального покрытия, существует ограничения на входные данные, невыполнение которых обозначает невозможность решения данной задачи. В данной работе применяется следующее ограничение:
l n l m
^^ ^^ akj — ^^ ^^ Ъki
k =1 j=1 k =1 i =1
- суммарное кол-во элементов множества K, входящих в набор множеств Д,...,An больше суммарного кол-ва элементов множества K, входящих в набор множеств Д,..., Bm ,[1].
Рассмотренная задача относится к классу NP-полных задач и в общем случае для нее существует лишь экспоненциальное переборное решение.
Для разработки алгоритма решения ОЗМП можно применить аддитивный метод, генетический алгоритм, алгоритм муравьиной колонии, методы "лагранжевой релаксации" и другие [2]. Для разработки алгоритмов решения ОЗМП мы выбрали аддитивный и генетический методы дискретной оптимизации. Первый дает точное решение и использует зондирование решений с оценкой подмножества частичных решений. [3]. Генетический алгоритм использует методы естественной эволюции, такие как наследование, мутации, отбор и кроссинговер. Отличительной особенностью генетического алгоритма является акцент на использование оператора "скрещивания", который производит операцию рекомбинации решений-кандидатов, роль которой аналогична роли скрещивания в живой природе [4]. При реализации этих алгоритмов использованы вышеописанные модификации выбора решений.
Для исследования аддитивного и генетического алгоритмов была написана программа на языке Java 7. В ней генерировались варианты исходных данных с заданными свойствами, каждый вариант задачи решался на отдельном алгоритме, затем результаты обобщались. Входными данными для программы являются величины: m , n , l, матрицы akj, Ъы и Cji. Выходными данными программы является итоговая сто-
имость покрытия Z c(Xj , j)
j=1
и множества по-
крывающих индексов J i, i = 1, m
Ниже приведены результаты тестирования, выполненные на компьютере Asus, Core i5-3210M 2.5 GHz, 4 GB RAM.
Для всех тестов величина l была постоянной и равнялось 10; матрицы весов заполнялись случайными числами в промежутке [0;1000], матрицы akj, bki заполнялись также случайно.
Для данного тестирования было выбрано несколько промежутков количества возможных состояний решения. Каждый порядок был в 10 раз больше предыдущего. Для каждого промежутка было сгенерировано множество входных данных, на которых запускались оба алгоритма, после чего сравнивалось время их работы. Для генетического алгоритма дополнительно подсчитывалось относительное отклонение ответа от точного, полученного аддитивным алгоритмом, а также процент неудачных попыток найти решение.
Как и следовало ожидать, аддитивный алгоритм находит ответ быстрее, чем генетический на тех же данных. С другой стороны, аддитивный
алгоритм более затратен в плане используемой памяти, что не позволяет использовать его при решении задач с большим количеством состояний. Недостатком генетического алгоритма является его рандомизированность. Из рис.2 и 3 видно, что с ростом количества состояний решения увеличиваются относительное отклонение результата от минимального и количество ложных "отсутствий решения" задачи.
Для сравнения времени работы генетического алгоритма на различных входных данных было выбрано несколько промежутков количества возможных состояний решения, каждый порядок был в 10 раз больше предыдущего и для каждого промежутка было сгенерировано множество входных данных, на которых запускался алгоритм. Здесь количество возможных состояний было на порядки больше, чем при тестировании аддитивного алгоритма.
Из рис. 4. видно, что, в среднем, при росте порядка количества возможных состояний решения время работы генетического алгоритма дос-
о 50 -,
1000 10000 100000 1000000
Кол-во возможных состояний
Рис. 1. Зависимость среднего времени работы алгоритмов от количества возможных состояний решения
Рис. 2-3. Зависимость среднего относительного отклонения ответа и количества ложного "отсутствия решения" генетического алгоритма от количества возможных состояний решения
тигает определенного диапазона, в пределах которого изменяется. Это можно объяснить тем, что при большом порядке количества состояний алгоритм или быстрее начинает сходиться к правильному ответу при п >> т, или быстрее определяет отсутствие решения при п ~ т .
Для анализа возможностей генетического алгоритма были выбраны несколько различных размеров популяции, начиная с 10 и заканчивая 1000. Во всех тестах количество возможных состояний находилось в промежутке [105;106], для каждого теста искалось контрольное решение с помощью аддитивного алгоритма и решения для каждого размера популяции.
На рис.5-7 показаны графики зависимости различных характеристик работы генетического алгоритма от размера популяции. Видно, что размер популяции порядка 100-250 является оп-
тимальным - меньшие размеры дают слишком неточные результаты, большие - требуют намного больше времени для нахождения результата.
ЗАКЛЮЧЕНИЕ
Предложенная модификация математической модели и алгоритмов решения обобщенной задачи о минимальном покрытии дает существенную экономию в размерности решаемой задачи как аддитивным методом, дающим точное решение, так и генетическим алгоритмом, гарантирующим лишь приближенное решение. Разработанный комплекс программ тестирования и исследование быстродействия и точности решения задачи показывают практическую эффективность применения модели ОЗМП и компьютерных программ.
Десятичный логарифм кол-ва возможных состояний
Рис. 4. Среднее время работы генетического алгоритма
Рис. 5-7. Характеристики генетического алгоритма
СПИСОК ЛИТЕРАТУРЫ
1. Есипов Б.А. Математическая модель и решение обобщенной задачи о покрытии // Избранные труды Международной конференции с элементами научной школы для молодежи "Перспективные информационные технологии для авиации и космоса" (ПИТ-2010). Самара, 2010. С.70-71.
2. Задача о покрытии множества: сложность, алгорит-
мы, экспериментальные исследования / А.В. Еремеев, Л.А. Заозерская, А.А. Колоколов // Дискретный анализ и исследование операций. Июль—декабрь 2000. Серия 2. Т. 7. № 2. С.22-46.
3. Ху Т. Целочисленное программирование и потоки в сетях. М.: Мир, 1974. 520 с.
4. Нгуен Минь Ханг. Применение генетического алгоритма для задачи нахождения покрытия множества // Труды института системного анализа РАН. 2008. Т. 33. С. 206-219.
STUDY OF ALGORITHMS FOR SOLVING THE GENERALIZED PROBLEM OF THE MINIMAL COVERING
© 2014 B.A.Yesipov, V.V. Muraviev
Samara State Aerospace University named after Academician S.P. Korolyov (National Research University)
In this article we described mathematic model of the generalized problem of the minimal covering. Given methods for solving this problem and made an analysis of its degree of sophistication, performance and presigion.
Key words: mathematic model, minimal covering , additive algorithm, genetic algorithm.
Boris Yesipov, Candidate of Technick Sciences, Associate Professor at the Information Systems and Technology Departmen. E-mail: bobpereira@yandex.ru Viacheslav Muraviev, Student of Informatic Department. E-mail: muravjevslava@gmail.com