Дискретные задачи размещения Библиотека тестовых задач
Задачи раскроя
|
Тестовые примеры: |
Гильотинная задача упаковки
прямоугольников в контейнеры с запрещенными областями
Математическая модель
Обозначим исходные данные задачи следующими параметрами:
n — количество предметов
l — количество контейнеров с запрещенными областями
I = {1, 2,…, n} — множество предметов
wi и hi, iÎI, — ширина и высота i-го предмета
M = M1 È M2 — множество контейнеров
M1 = {1, 2,…, l} — контейнеры с запрещенными областями
M2 = {1, 2,…, n} — дополнительные контейнеры одинакового размера без запрещенных областей
Wm и Hm, mÎM — ширина и высота m-го контейнера (ширина и высота дополнительных контейнеров берутся не меньше максимальной ширины и высоты предметов, поэтому достаточное количество дополнительных контейнеров равняется n)
I0 = {1, 2,…, K} – множество запрещенных областей
— координаты и размеры запрещенных областей (будем считать, что левый нижний угол каждого контейнера находится в начале координат)
Введем переменные задачи:
xi и yi — координаты левого нижнего угла i-го предмета
gijm =1, если при раскрое m-го контейнера i-м горизонтальным разрезом разрезается j-я область, = 0 в противном случае
vijm = 1, если при раскрое m-го контейнера i-м вертикальным разрезом разрезается j-я область, = 0 в противном случае
— дина отрезаемой i-м горизонтальным разрезом от j-й области m-го контейнера
— длина отрезаемой i-м вертикальным разрезом от j-й области m-го контейнера
— координаты и размеры областей гильотинного раскроя контейнеров на каждом этапе раскроя
С использованием введенных обозначений оптимизационная постановка задачи в терминах частично-целочисленного линейного программирования записывается следующим образом:
Зададим порядок использования контейнеров от первого к последнему:
Использование контейнеров определяется с помощью следующего неравенства:
Каждый предмет находится только в одной области гильотинного раскроя одного из контейнеров:
В каждой области гильотинного раскроя находится не более одного предмета:
Начальные условия гильотинного раскроя каждого контейнера:
На каждом этапе гильотинного раскроя совершается не более одного разреза:
После каждого разреза координаты и размеры областей гильотинного раскроя преобразуются следующим образом:
В результате разреза добавляется новая область:
Ограничения на размеры новых областей (длины отрезаемых частей). Здесь Wmax и Hmax – максимальные ширина и высота контейнеров:
Ограничения, определяющие значения переменных :
Предметы размещаются в областях гильотинного раскроя допустимых размеров:
Последняя группа неравенств исключает пересечения предметов и запрещенных областей, находящихся в одном контейнере в случаях, когда это недопустимо:
ЛИТЕРАТУРА
1. Руднев А.С. Алгоритм имитации отжига для решения задач двумерной прямоугольной упаковки в контейнеры с запрещенными областями // Дискретный анализ и исследование операций. 2010. – Т. 17, № 4. – С. 43 – 66.