МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ, ЧИСЛЕННЫЕ МЕТОДЫ И КОМПЛЕКСЫ ПРОГРАММ
УДК 004.421.023
В. Ю. КУЗНЕЦОВ
ЗАДАЧИ ПОКРЫТИЯ ОРТОГОНАЛЬНЫХ МНОГОУГОЛЬНИКОВ С ЗАПРЕТНЫМИ УЧАСТКАМИ
Рассматриваются две задачи покрытия многоугольных областей объектами произвольной формы и ее приложения. Обе задачи являются NP-трудными и для решения предложены эвристические алгоритмы. Проведены численные эксперименты, представлены выводы на основе результатов экспериментов. Методы оптимизации ; задача покрытия
ВВЕДЕНИЕ
Задачи покрытия представляют собой важный подраздел задач раскроя-упаковки. Они являются достаточно новыми. Впервые задача максимального покрытия была представлена в 2002 г. Е. Заком [1]. В 2004 г. А. С. Мухачева предложила некоторые эвристические подходы к решению задачи максимального покрытия [4]. В настоящей работе для решения этой задачи применяются эволюционные стратегии в сочетании с эвристиками, предложенными А. С. Мухачевой.
В [5] рассматривается задача редчайшего покрытия плоскости равными кругами. А дальше в той же книге [5] рассматривается задача покрытия выпуклой области минимальным числом равных кругов. В [2] обсуждаются вопросы, связанные с оценкой качества полученного решения. В настоящей статье рассматривается модификация задачи покрытия выпуклой области равными кругами с учетом обхода препятствий. В этой постановке в литературе она пока не была приведена. Кроме того, в этой статье рассматриваются различные практические применения. Рассматриваемая задача является NP-трудной, поэтому для ее решения предлагаются различные метаэвристики и приближенные методы. Один из таких методов рассматривается в данной статье.
1. ЗАДАЧА О МИНИМАЛЬНОМ ПОКРЫТИИ ПРЯМОУГОЛЬНОЙ ОБЛАСТИ С ЗАПРЕТНЫМИ УЧАСТКАМИ
Дана прямоугольная область А ширины
и длины . Введем прямоугольную систему координат так, чтобы оси и совпали соответственно с нижней и левой сторо-
нами этой области. На области А определено множество запретных зон. Зоны заданы прямоугольниками, стороны которых парал-
П
лельны граням области: Я = У ^, где Zi =
г=1
=< (ж*, у^), (г^, > — прямоугольник с но-
мером i, в котором (г, уО — координаты нижнего левого угла, («;*, 10 — ширина и длина прямоугольника. Задан радиус г. Требуется покрыть фигуру наименьшим числом кругов радиуса г. Центры кругов должны лежать в области .
Приведем некоторые интерпретации этой задачи.
Проектирование технологических установок. Производственные установки по сбору и переработке газа представляют собой совокупность несвязанного оборудования, размещенного на некоторой территории (полигоне). Для контроля возможной утечки используются газоанализаторы, их монтируют на территории установок. Они обладают круговой зоной действия. Требуется минимизировать количество газоанализаторов при условиях покрытия зонами их действия всего полигона и размещения в обход запрещенных участков.
Размещение базовых станций сотовой связи. Требуется обеспечить сотовой связью определенную область, например, город. Сотовая связь доступна внутри «зоны видимости» базовой станции, ее можно моделировать кругом заданного радиуса действия. Требуется разместить наименьшее число базовых станций в обход естественных преград (рек, дорог и т. д.).
Поиск пути для персонажей в компьютерных играх. Имеется трехмерный ландшафт
сложной формы. На ландшафте могут размещаться препятствия. По ландшафту перемещаются персонажи, управляемые компьютером (ИИ, искусственный интеллект). Нужно разработать структуру данных и построить алгоритм, которые позволят в реальном времени прокладывать характерный для человека маршрут между любыми двумя точками ландшафта. Есть общепринятый подход к решению задачи поиска пути, основанный на вейпоинтах (waypoint). Создание карты вей-поинтов сводится к задаче покрытия произвольной области кругами заданного радиуса: карту можно разбить на зоны так, чтобы произвольная вертикальная прямая пересекала ландшафт не более чем в одной точке; препятствия — запретные зоны, центры кругов — вейпоинты, а ребра графа строятся по принципу — если два круга пересекаются, то между вершинами, образованными этими кругами, строится ребро. Автоматическая генерация карт вейпоинтов значительно ускоряет разработку компьютерных игр.
Передача информации. Квантование данных, полученных от непрерывно изменяющегося источника, тесно связано с задачей о минимальном покрытии пространства перекрывающимися шарами. Например, чтобы выполнять квантование в двумерном пространстве, входные данные объединяют в пары и каждую пару рассматривают как координаты точки на плоскости. Затем каждую точку А, отвечающую паре данных, округляют до ближайшей отмеченной точки (Б), лежащей в той же заранее выбранной области плоскости, что и А. Проблема состоит в том, чтобы выбрать разбиение плоскости и отмеченные точки таким способом, при котором была бы минимальной средняя ошибка квантования. Если данные распределены равномерно, а отмеченные точки лежат в центрах квадратов, то средняя ошибка равна 1/12. При помощи минимального покрытия плоскости кругами можно получить лучший способ квантования (см. рис. 1). Такое покрытие порождается гексагональной упаковкой (т. е. упаковкой, когда каждого круга касается еще 6 кругов) при увеличении радиусов кругов настолько, чтобы каждая точка плоскости оказалась внутри или на границе хотя бы одного круга. Радиус R кругов покрытия равен расстоянию от центра до самой «глубокой ямы» в соответствующей упаковке. Если соединить эти «глубокие ямы» подходящими прямыми, то плоскость разобьется на правильные шестиугольники. Выбор отмеченных точек в центрах правильных шестиугольников при квантовании рав-
номерно распределенных данных дает среднюю ошибку т. е. около 0,0802, что немного меньше, чем
Т Ч: Т1 ЗП 7;
_____________t______________±_____________I____________ли.
Рис. 1. Задача покрытия в теории информации
В [1] показано, что эта задача NP-трудная.
Допустимое решение задачи может быть получено в результате замены кругов квадратами с центрами в А^. Это решение далее будет использовано в качестве верхней границы функции цели и для оценки некоторых характеристик. Покрытие осуществляется с использованием блок-структур (BS) [3]. Технология блочных структур была разработана А. С. Филипповой для решения задач раскроя-упаковки. В данной работе предлагается использовать модификацию блок-структур для решения задачи покрытия.
Пусть имеется схема частичного покрытия: запретные зоны и часть размещенных квадратов. Через вертикальные стороны фигур проводим прямые. Таким образом, область разбивается на вертикальные блоки.
Блок-структура BS — это последовательность блоков различной длины и одинаковой ширины. BS = (В\, 13%, ■ ■ • ,5„), где В{ — блок с номером i. Блок — совокупность объектов или их фрагментов заданной ширины.
= ((*1, *2, •••, Ь', •••, гт)Ц), где ^ —j-й элемент -го блока, — длина блока. В блоке могут размещаться элементы трех типов: запретные участки ( ), покрывающие прямоугольники (!)), и свободные участки (^). При этом /=й элемент задается парой (Т^ И^-), где — тип
элемента (Я, ^ или !)), — ширина ^-го эле-
мента.
По блок-структуре можно вычислить координаты любого элемента. Пусть требуемый элемент находится в *-м блоке в позиции ^', тог 3
гда х = ^2 к, У = и,к, где1к — длина Ьго к=1 к=1
блока, — ширина &-го элемента в *-м блоке.
При использовании блок-структур задача обхода запретных участков сводится к по-
иску первого попавшегося -элемента. Вся область будет покрыта тогда, когда в блок-структуре не окажется ни единого -элемента.
Рис. 2. Пример решения задачи покрытия при помощи блочного алгоритма
Алгоритм покрытия состоит в выполнении следующих шагов:
1. Инициализация. Блок-структура состоит из единственного блока ширины (ширина покрываемой области) и содержит единственный пустой ( ) элемент длины (длина покрываемой области);
2. Размещение запретных участков. В блок-структуру помещаются все запретные участки;
3. Радиус. Радиус покрывающих кругов равен К Сторона вписанного квадрата а = = Ку/2;
4. Если в блок-структуре нет ^-элементов, то перейти к (8);
5. Координаты. Получить координаты (Х^-, !)■) ^-элемента;
6. Вставка. Поместить квадрат 5 в позицию ( , );
7. Перейти к (4);
8. Построение кругов. Для каждого квадрата построить круг радиуса с координатами центра
где (Хз, У{) — координаты левого нижнего угла квадрата 5.
9. Конец алгоритма.
Для проведения численного эксперимента разработана программа, реализующая блочный алгоритм покрытия. На рис. 2 приведен пример решения задачи покрытия, найденного при помощи этой программы.
Алгоритм был испытан на различных случайных задачах. Каждая задача описывается набором параметров. Обозначим параметры задачи через Р,;, і = 1 , п, где п — количество параметров, — множество возможных значений г-гопараметра. Р = Р1ХР2Х ... х Р„-пространство задач. Вектор р Є Р — индивидуальная задача. Количество индивидуальных задач бесконечно, а число измерений пространства Р — велико, поэтому на практике точно определить качество работы алгоритма невозможно. Для идентификации эффективности алгоритма выполним следующие действия.
Выберем небольшое подмножество С Р существенных параметров задачи;
Каждый вектор будем рассматри-
вать как проекцию множества сходных задач из на пространство ;
Будем вычислять значения характеристик не во всех векторах РР, а только в узлах решетки, равномерно покрывающей .
Были выбраны следующие параметры: длина и ширина покрываемой области; минимальные длина и ширина запретных участков; максимальные длина и ширина запретных участков; радиус покрывающих кругов: измеряется в % от максимального из размеров покрываемой области; заполненность:
к
площадь фигуры ( ,
= ІІ,где^
Хі + У- +
где — количество запретных участков, — -й запретный участок), — площадь покрываемой фигуры A.
Для оценки качества работы алгоритма используется фактор аппроксимации = дГ7> гДе N — количество кругов в покрытии, — количество кругов в опти-
мальном покрытии. Фактор аппроксимации сложно вычислить, поскольку для вычисления требуется знать точное решение задачи. Однако нижнюю оценку FA легко получить, заменяя оценкой Л^р1; минимального числа кругов, , где 5,1 — площадь фигуры , — коэффициент,
учитывающий перекрытие кругов в гексаго-
Таблица 1
Результаты численного эксперимента
Покрываемая область Запретные участки, % Радиус кругов, % Заполненность, % Фактор аппрокси- мации
Минимум Максимум
Длина Ширина Длина Ширина Длина Ширина
50 50 1 1 50 50 10 10 1,72
50 50 1 1 50 50 50 10 2
50 50 1 1 50 50 10 70 2,84
50 50 1 1 50 50 50 70 3,29
50 1000 1 1 50 50 10 10 3,01
50 1000 1 1 50 50 50 10 2
50 1000 1 1 50 50 10 70 3
50 1000 1 1 50 50 50 70 2
1000 50 1 1 50 50 10 10 2,99
1000 50 1 1 50 50 50 10 2
1000 50 1 1 50 50 10 70 3
1000 50 1 1 50 50 50 70 2
1000 1000 1 1 50 50 10 10 1,7
1000 1000 1 1 50 50 50 10 2
1000 1000 1 1 50 50 10 70 2,75
1000 1000 1 1 50 50 50 70 2,79
нальном покрытии, — площадь круга. Количество тестов на каждый вектор р — 100.
Предложенная методика тестирования алгоритмов реализована в разработанной программе. На рис. 3 показана форма, в которой задаются параметры оценки качества алгоритмов.
Оценка качества алгоритма
Алгоритм:
На основе блок-структур
Размеры области
Минимальные 50
Максимальные 1000
Длина Ширина
50 50
Длина Ширина
1000 | 1000
Испытания
Количество в серии |1Г^ Количество серий 1
Запретные участки
Размеры прямоугольников (в X от размера области)
Максимальные
От Ширина Длина До Ширина Длина
і і | і і
Ширина Длина Ширина Длина
50 I 50 ] I50 |] 50
Процент заполнения области
Минимальный Максимальный
Радиус кругов (в % от размера областиі Минимальный Максимальный
Пуск
Рис. 3. Форма настройки параметров тестирования алгоритма
Результаты эксперимента приведены в табл. 1, они позволяют сформулировать следующие выводы:
1. Фактор аппроксимации адекватен качеству полученного покрытия;
2. С ростом заполненности возрастает фактор аппроксимации. Это может быть вызвано как неточностью оценки фактора аппроксимации, так и ограничениями блочной технологии;
3. Если радиус кругов намного меньше покрываемой области, то алгоритм находит решения с фактором аппроксимации, близким к 2. Потери в качестве решения вызваны переходом к покрытию квадратами.
2. ЗАДАЧА МАКСИМАЛЬНОГО ПОКРЫТИЯ ОДИНАКОВЫХ ЛИСТОВ ПРЯМОУГОЛЬНЫМИ ЗАГОТОВКАМИ
Задача максимального покрытия формулируется следующим образом: необходимо покрыть листы заданных размеров (ширина и длина) различными прямоугольными заготовками таким образом, чтобы количество полностью покрытых листов было максимально. Эта задача возникает, например, при покрытии полов в помещении линолеумом или паркетом. Форма полов задается покрываемой областью с запретами; листы линолеума — покрывающими объектами, то-
гда решением задачи покрытия будет схема покрытия пола.
Имеются листы заданной ширины IV и заданной длины Ь и набор из т прямоугольных предметов заданных размеров (ш,:; ?,;)>
* = 1 ,т, где ш,: — ширина стороны *-го
предмета, а — длина стороны -го предмета. Введем прямоугольную систему координат: оси Ох и Оу совпадают соответственно с нижней и левой боковой сторонами листа. Положение каждого прямоугольника зададим координатами ( , ) его левого нижнего
угла. Требуется найти максимальное количество полностью покрытых листов на множестве допустимых покрытий, при этом любая точка на листе принадлежит одному или нескольким покрывающим лист прямоугольникам. Для любой точки (ж, у) € (^>, где -покрываемая область, найдется прямоугольник /’(.г,. //,•).'!, = 1 ,т, для которого справедливы условия: и
. Допустимое покрытие оптимальное, если общее число покрытых листов достигает максимума.
В [1] показано, что данная задача относится к классу NP-трудных задач.
Для решения задачи выбран эволюционный алгоритм (1+1)-ЕА, рассмотренный в [3]. Особенность алгоритма в том, что популяция состоит из единственной особи, к которой на каждой итерации применяется оператор мутации.
Базовый алгоритм был адаптирован следующим образом:
• Особь — некоторое допустимое покрытие листов;
• Хромосома — приоритетный список прямоугольников;
Популяция состоит из единственной особи;
• Условие останова — заданное число итераций. Чем больше число итераций, тем лучше будет получаемый результат и тем дольше будет работать алгоритм.
• Оператор мутации. Приоритетный список меняется случайным образом;
• Оператор селекции.
— Выбирается покрытие с наибольшим числом полностью покрытых листов (алгоритм (1+1)-ЕА I);
— Выбирается покрытие с наименьшим остатком. Остаток — сумма площадей частей прямоугольников, выходящих за пределы листа или накрывающих другие прямоугольники (алгоритм (1+1)-ЕА II).
• Оператор репродукции — покрытие листов блочным алгоритмом (предложен А. С. Мухачевой и описан в [4]) на основе приоритетного списка. Блочный алгоритм использует эвристики NF (следующий подходящий) и BF (лучший подходящий) [4].
Для анализа эффективности разработанных алгоритмов был выполнен численный эксперимент.
При этом были заданы параметры:
• Ш = 100 — ширина и £ = 100 — длина листа (на результат решения не влияет, для всех задач одинакова);
• т = 50,100,150,200 — размерность (количество укладываемых заготовок);
• Wi.lt — размеры і-й заготовки, і = 1,т;
• щ — нижнее ограничение весов, т. е. /*,
;
— верхнее ограничение весов, т. е. , ;
Численный эксперимент проводился для трех групп задач:
группа задач, для которых ,
;
группа задач, для которых ,
;
группа задач, для которых ,
;
• при числе итераций, равном 1000.
Качество решения индивидуальной задачи
оценивалось при помощи коэффициента покрытия:
К = т^-, где К — коэффициент покрытия, £ — суммарная площадь покрываемых листов, — площадь -го прямоугольника.
Результаты эксперимента отражены на рис. 4-6.
50 100 150 200
Размерность задачи,т
□ (1 + 1 ) Е А I, N Р □ (1 +1 )-ЕА I, В Р □ (1 + 1 )-Е А I
Рис. 4. щ = 0,1, и-2 = 0,9
0.7
50 100 150 200
Размерность задачи,m
□ (1 + 1) ЕА I, NF □(! + 1) ЕА I, ВF □(! + 1) ЕА I
Рис. 5. ,
0.8
50 100 150 200
Размерность задачи,m
□ (1 + 1) ЕА I, NF ■ (1+1 )-ЕА I, ВF □ (1 +1 )-ЕА ■
Рис. 6. щ= 0,25, и2 = 0,4
Результаты эксперимента позволили сделать следующие выводы:
1) для разнородных заготовок лучшие результаты дает алгоритм (1+1)-ЕА I в сочетании с эвристикой BF, а для больших однородных заготовок лучше применять алгоритм (1+1)-ЕА II;
2) в целом, лучшие результаты показал алгоритм (1+1)-ЕА II, однако этот алгоритм работает дольше, чем (1+1)-ЕА I.
ЗАКЛЮЧЕНИЕ
Предложен и реализован метод покрытия области кругами с обходом препятствий, основанный на технологии блочных структур. Экспериментально показано, что полученные
решения оказываются хуже нижней границы не более чем в три раза. Учитывая, что нижняя граница является грубой, реальная оценка должна быть лучше. Намечены следующие пути повышения эффективности метода: разработать и включить в алгоритм процедуры сдвига фигур с ориентацией на их выталкивание из зоны покрытия; разработать блочную схему покрытия области кругами; распараллелить некоторые процедуры, например, вставки фигур в блок-структуру.
Эволюционные алгоритмы, применяемые для решения задачи покрытия одинаковых листов прямоугольными заготовками дают решения, близкие к оптимальному. Пользователь может изменять время работы эволюционных алгоритмов, получая более точное решение за счет увеличения времени обработки.
СПИСОК ЛИТЕРАТУРЫ
1. Zak, E. Relationship between skiving stock and cutting stock problem /E. Zak, C. Rennick // The 16th Triennial Conf. of the Int. Federation of Operational Research Societies. Edinburgh, UK, 2002. P. 27.
2. Lovasz, L. On the ratio of optimal integral and fractional covers / L. Lovasz // J. of Discrete Math. 1975. 13. P. 383-390.
3. Филиппова, А. С. Моделирование эволюционных алгоритмов решения задач прямоугольной упаковки на базе технологии блочных структур / А. С. Филиппова // Информационные технологии. 2006. Приложение. № 6. 31 с.
4. Мухачева, А. С. Простые эвристики для решения двумерной задачи максимального покрытия / А. С. Мухачева // Принятие решений в условиях неопределенности. Уфа, 2004.
С. 38-43.
5. Тот, Л. Ф. Расположения на плоскости, на сфере и в пространстве / Л. Ф. Тот. М.: Физ-матлит, 1958.
ОБ АВТОРЕ
Кузнецов Вячеслав Юрьевич, асп. каф. выч. мат. и киб. Дипл. мат.-прогр. (УГАТУ, 2005). Готовит дис. в обл. задач покрытия, раскроя-упаковки.