Автор работы: Пользователь скрыл имя, 17 Апреля 2013 в 18:15, реферат
Множества Bj называют контейнерами.
Требуется упаковать предметы в минимальное число контейнеров.
Задача NP-трудна и часто возникает в приложениях.
Алгоритм «Следующий подходящий» (NF)
В произвольном порядке упаковываем предметы по следующему правилу. Первый предмет помещаем в первый контейнер.
На k-м шаге пытаемся поместить k-й предмет в текущий контейнер.
Если предмет входит, то помещаем его и переходим к следующему шагу,
иначе помещаем предмет в новый контейнер.
Задача упаковки в контейнеры
Дано: множество предметов L = {1, … , n} и их веса wiÎ(0,1), iÎL.
Найти: разбиение множества L на минимальное число m подмножеств
B1, B2, … , Bm такое, что
Множества Bj называют контейнерами.
Требуется упаковать предметы в минимальное число контейнеров.
Задача NP-трудна и часто возникает в приложениях.
Алгоритм «Следующий подходящий» (NF)
В произвольном порядке упаковываем предметы по следующему правилу. Первый предмет помещаем в первый контейнер.
На k-м шаге пытаемся поместить k-й предмет в текущий контейнер.
Если предмет входит, то помещаем его и переходим к следующему шагу,
иначе помещаем предмет в новый контейнер.
Т = О(n), П = О(1).
Теорема. NF(L) £ 2OPT(L).
Доказательство. Пусть
Так как любые два последовательных
контейнера содержат предметы суммарным
весом не меньше единицы, то
NF(L) < 2éWù. Кроме того, OPT(L) ³ éWù, откуда и следует требуемое.
Пример
. Всего 4N предметов.
Замечание. NF(L) £ 2OPT(L) – 1 для всех L.
Пусть алгоритм A для множества L порождает A(L) контейнеров и
Для задачи на минимум гарантированная относительная точность RA для алгоритма A определяется как
RA º inf {r ³ 1 | RA (L) £ r для всех L}.
Определение. Асимптотическая гарантированная относительная точность для алгоритма A определяется как
Алгоритм «Первый подходящий» (FF)
В произвольном порядке упаковываем предметы по следующему правилу. Первый предмет помещаем в первый контейнер.
На k-м шаге находим контейнер с наименьшим номером, куда помещается k-й предмет, и помещаем его туда. Если такого контейнера нет, то берем новый пустой контейнер и помещаем предмет в него.
Т = О(n2), П = О(n).
Теорема. FF(L) £ é OPT(L) +1ù для всех L и существуют примеры со сколь угодно большими значениями OPT, для которых FF(L) ³ é OPT(L) – 1ù .
(Без доказательства)
Пример L = {1,…, 18 m} |
|
Алгоритм
«Наилучший подходящий» (BF)
В произвольном порядке упаковываем предметы по следующему правилу. Первый предмет помещаем в первый контейнер.
На k-м шаге размещаем k-й предмет. Находим частично заполненные контейнеры, где достаточно для него свободного места и выбираем среди них наиболее заполненный. Если таких нет, то берем новый пустой контейнер и помещаем k-й предмет в него.
Т = О(n2), П = О(n).
Теорема. RBF = RFF, и существуют примеры со сколь угодно большими значениями OPT(L), для которых BF(L) = 4/3 FF(L)
и FF(L) = 3/2 BF(L).
(Без доказательства)
Алгоритмы типа On-line
Предметы поступают в непредсказуемом порядке. Требуется упаковать их в минимальное число контейнеров. Упакованный предмет нельзя перемещать в другой контейнер. Место для предварительного хранения предметов отсутствует.
Алгоритмы NF, FF, BF являются On-line алгоритмами.
Теорема. Для любого On-line алгоритма A справедливо неравенство
(Без доказательства)
Алгоритмы с ограниченным доступом к контейнерам
On-line алгоритм называют алгоритмом с ограниченным доступом к контейнерам, если на каждом шаге алгоритм имеет возможность помещать предметы только в один из K контейнеров (K — const). Эти контейнеры называются открытыми. Если контейнер закрыли, то он уже не открывается (например, отправляется потребителю). Прежде чем добавить пустой открытый контейнер, нужно закрыть один из K открытых контейнеров.
Алгоритм NF — пример для K = 1.
Правила для выбора контейнера
Примеры алгоритмов с ограниченным доступом
FF1 — алгоритм FF с правилом 1.
FF2 — алгоритм FF с правилом 2.
BF1 — алгоритм BF с правилом 1.
BF2 — алгоритм BF с правилом 2.
Теорема. Для любого K ³ 2
1) .
2) .
3) .
4) Для любого алгоритма A с ограниченным доступом к контейнерам
Алгоритм «Первый подходящий с упорядочиванием» (FFD)
Теорема. FFD(L) £ OPT(L) + 4 для всех L и существуют примеры со сколь угодно большими значениями OPT(L), для которых
FFD(L) ³
Кроме того .
(Без доказательства)
Пример L = {1,…, 30 m} |
|
6m
3m
OPT(L) = 9m
Асимптотические гарантированные оценки точности
Алгоритм |
T*A |
||||
NF |
O(n) |
2.000 |
2.000 |
1.500 |
1.333 |
FF |
O(n log n) |
1.700 |
1.500 |
1.333 |
1.250 |
BF |
O(n log n) |
1.700 |
1.500 |
1.333 |
1.250 |
NFD |
O(n log n) |
1.691 |
1.424 |
1.302 |
1.234 |
FFD |
O(n log n) |
1.222 |
1.183 |
1.183 |
1.150 |
BFD |
O(n log n) |
1.222 |
1.183 |
1.183 |
1.150 |
— асимптотическая точность
для примеров с весами предметов
wi £ a, для всех i Î L.
Теорема. Для любого e Î (0,1] существует алгоритм Ae , который находит упаковку с числом контейнеров не более (1 + 2e) OPT + 1. Трудоемкость Ae полиномиально зависит от n .
(Без доказательства)
Алгоритм Ae
Негативный результат
Теорема. Для любого e > 0 существование приближенного полиномиального алгоритма A с гарантированной точностью RA = – e влечет P = NP.
Доказательство. Пусть такой алгоритм А существует. Покажем, как с его помощью можно решить точно одну из NP-полных задач, а именно задачу о разбиении. Дано n неотрицательных чисел a1,…, an. Можно ли разбить их на два подмножества так, чтобы сумма чисел в каждом подмножестве равнялась ? Рассмотрим задачу упаковки в контейнеры с весами предметов wi =ai/C, i = 1,…, n. Если их можно упаковать в два контейнера, ответ в задаче о разбиении — «ДА». Применим алгоритм А к задаче о контейнерах. Если OPT = 2, то алгоритм А тоже дает 2, иначе RA ³ , то есть алгоритм А точный.
Нижние оценки
Переменные задачи
Математическая модель
при ограничениях
yj, xij Î{0,1} i, j = 1,…, n.
Релаксация линейного программирования
Заменим условие Булевости переменных на условия:
0 £ yj £ 1, j = 1,…, n
0 £ xij £ 1, i, j = 1,…, n.
Тогда одно из оптимальных решений имеет вид
что дает нижнюю оценку
(предметы можно резать произвольным образом).
Оценки Martello & Toth
Для примера L = {1,…, n}, 0 £ wi < 1 и произвольного 0 £ a £ ½ положим
L1 = { iÎL | wi > 1 – a } — крупные предметы
L2 = { iÎL | 1– a ³ wi > ½ } — средние предметы
L3 = { iÎL | ½ ³ wi ³ a } — мелкие предметы
Теорема. Для любого 0 £ a £ ½ величина
является нижней оценкой для OPT(L).
Доказательство. Каждый предмет из множества L1 È L2 требует отдельный контейнер. Поэтому
в любом допустимом решении не менее | L1 | + | L2 | контейнеров. Предметы из множества L3 не лежат вместе с предметами из L1. Значит, они лежат либо вместе с предметами
из L2 , либо в отдельных контейнерах. В
контейнерах для L2 осталось
свободного места. Следовательно,
для предметов из множества L3 требуется как минимум
отдельных контейнеров.
Теорема. Для любого 0 £ a £ ½ величина
является нижней оценкой для OPT(L).
Доказательство. Заменим вес каждого предмета из множества L3 на a. Тогда в один контейнер войдет предметов, и для множества L3 потребовалось бы дополнительных контейнеров. Но часть предметов из L3 можно уложить в контейнеры для L2. Каждый из них имеет 1– wi, iÎL2 свободного места, где поместится предметов из L3.
Следствие 1. Величина
является нижней оценкой для OPT(L).
Следствие 2. .
Доказательство. При a = 0 получаем H ³ H1(0) = max{|L2|, H0}³ H0.
Следствие 3. Пусть V — множество всех различных значений wi £ 0,5.
Тогда
т. е. после сортировки предметов получаем
Дополнительная литература
Лекция 4. Задачи раскроя и упаковки --