Алгоритмы с ограниченным доступом к контейнерам

Задача упаковки в контейнеры

Дано: множество предметов L = {1, …, n } и их веса wi Î(0,1), i Î L.

Найти: разбиение множества L на минимальное число m подмножеств

B 1, B 2, …, Bm такое, что

, для всех 1 £ j £ m.

Множества Bj называют контейнерами.

Требуется упаковать предметы в минимальное число контейнеров.

Задача NP-трудна и часто возникает в приложениях.


Алгоритм «Следующий подходящий» (NF)

В произвольном порядке упаковываем предметы по следующему правилу. Первый предмет помещаем в первый контейнер.

На k -м шаге пытаемся поместить k -й предмет в текущий контейнер.

Если предмет входит, то помещаем его и переходим к следующему шагу,

иначе помещаем предмет в новый контейнер.

Т = О (n), П = О (1).

Теорема. NF (L) £ 2 OPT (L).

Доказательство. Пусть Так как любые два последовательных контейнера содержат предметы суммарным весом не меньше единицы, то
NF (L) < 2é W ù. Кроме того, OPT (L) ³ é W ù, откуда и следует требуемое.
Пример

. Всего 4 N предметов.

                               
   
     
 
 
 
   
N
 
 
 
2 N
 
   
OPT (L) = N + 1
     
NF (L) = 2 N
 


Замечание. NF (L) £ 2 OPT (L) – 1 для всех L.


Пусть алгоритм A для множества L порождает A (L) контейнеров и

.

Для задачи на минимум гарантированная относительная точность RA для алгоритма A определяется как

RA º inf { r ³ 1 | RA (L) £ r для всех L }.

Определение. Асимптотическая гарантированная относительная точность для алгоритма A определяется как

º inf { r ³ 1 | $ N > 0 такое, что RA (L) £ r для всех L с OPT (L) ³ N }.


Алгоритм «Первый подходящий» (FF)

В произвольном порядке упаковываем предметы по следующему правилу. Первый предмет помещаем в первый контейнер.

На k -м шаге находим контейнер с наименьшим номером, куда помещается k -й предмет, и помещаем его туда. Если такого контейнера нет, то берем новый пустой контейнер и помещаем предмет в него.

Т = О (n 2), П = О (n).

Теорема. FF (L) £ é OPT (L) +1ù для всех L и существуют примеры со сколь угодно большими значениями OPT, для которых FF (L) ³ é OPT (L) – 1ù.

(Без доказательства)

Пример L = {1,…, 18 m }

 
 



Алгоритм «Наилучший подходящий» (BF)

В произвольном порядке упаковываем предметы по следующему правилу. Первый предмет помещаем в первый контейнер.

На k -м шаге размещаем k -й предмет. Находим частично заполненные контейнеры, где достаточно для него свободного места и выбираем среди них наиболее заполненный. Если таких нет, то берем новый пустой контейнер и помещаем k -й предмет в него.

Т = О (n 2), П = О (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.

Правила для выбора контейнера

1. Закрыть контейнер с наименьшим номером

2. Закрыть самый заполненный контейнер.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: