Аноним

Задача об упаковке в контейнеры: различия между версиями

Материал из WEGA
м
Метка: visualeditor-switched
 
(не показано 17 промежуточных версий этого же участника)
Строка 16: Строка 16:
'''Поведение в наихудшем случае'''
'''Поведение в наихудшем случае'''


'''Асимптотические отношения в наихудшем случае'''


'''Асимптотические отношения в наихудшем случае'''
Для большинства задач минимизации стандартной метрикой наихудшего случая для аппроксимационного алгоритма A является максимальное для всех экземпляров I отношение A(I)/OPT(I), где A(I) – величина решения, генерируемого A, а OPT(I) – величина оптимального решения. Однако в случае упаковки контейнеров имеются ограничения на эту метрику «абсолютно наихудшего отношения». Задача определения того, верно ли соотношение(I) = 2, уже является NP-трудной – и, следовательно, ни один аппроксимационный алгоритм с полиномиальным временем выполнения не может иметь абсолютное наихудшее отношение лучше 1,5, если не выполняется P = NP. Чтобы лучше понимать поведение алгоритмов упаковки в контейнеры в типичной ситуации, когда заданный список L требует большого количества контейнеров, исследователи используют более тонкую метрику упаковки – ''асимптотическое отношение в наихудшем случае'', <math>R_A^{\infty}</math>. Оно определяется в два этапа следующим образом.




Для большинства задач минимизации стандартной метрикой наихудшего случая для аппроксимационного алгоритма A является максимальное для всех экземпляров I отношение A(I)/OPT(I), где A(I) – величина решения, генерируемого A, а OPT(I) – величина оптимального решения. Однако в случае упаковки контейнеров имеются ограничения на эту метрику «абсолютно наихудшего отношения». Задача определения того, является ли OPT(I) = 2, уже является NP-трудной – и, следовательно, ни один аппроксимационный алгоритм с полиномиальным временем выполнения не может иметь абсолютное наихудшее отношение лучше 1,5, если не выполняется P = NP. Чтобы лучше понимать поведение алгоритмов упаковки в контейнеры в типичной ситуации, когда заданный список L требует большого количества контейнеров, исследователи используют более тонкую метрику упаковки – асимптотическое отношение в наихудшем случае, R1A. Оно определяется в два этапа следующим образом.
<math>R^n_A = max \{ A(L)/OPT(L): L</math> список с <math>OPT(L) = n\}</math>


<math>R_A^{\infty} = lim_{n \to \infty} sup \; R^n_A</math>


RnA = max fA(L)/OPT(L): L – список с OPT(L) = ng R1A = lim sup RA


Первым алгоритмом, поведение которого было проанализировано в этих терминах, был ''First Fit'' (FF). Этот алгоритм представляет себе бесконечную последовательность пустых контейнеров <math>B_1, B_2, ...</math> и, начиная с первого элемента входного списка L, помещает каждый предмет по очереди в первый контейнер, в котором для него еще есть место. В техническом отчете 1971 года, ставшем одной из первых работ, в которой изучались коэффициенты эффективности в наихудшем случае, Уллман [22] доказал следующее:


Первым алгоритмом, поведение которого было проанализировано в этих терминах, был First Fit (FF). Этот алгоритм представляет себе бесконечную последовательность пустых контейнеров B1;B2; и, начиная с первого элемента входного списка L, помещает каждый предмет по очереди в первый контейнер, в котором для него еще есть место. В техническом отчете 1971 года, ставшем одной из первых работ, в которой изучались коэффициенты эффективности в наихудшем случае, Уллман [22] доказал следующее:


'''Теорема 1 [22]. <math>R^{\infty}_{FF} = 17/10.</math>'''


Теорема 1 [22]. R1FF = 17/10.


В дополнение к FF, еще пять простых эвристик были изучены в самом начале и послужили вдохновением для более поздних исследований. ''Best Fit'' (BF) – это вариант задачи FF, в котором каждый предмет упаковывается в контейнер, в который он может поместиться с наименьшим остатком свободного места; при наличии нескольких подходящих вариантов выбирается самый ранний из таких контейнеров. И FF, и BF могут быть реализованы за время O(n log n) [12]. ''Next Fit'' (NF) – еще более простой алгоритм с линейным временем выполнения, в котором первый предмет помещается в первый контейнер, а каждый следующий предмет упаковывается в последний непустой контейнер, если он в него помещается, в противном случае открывается новый контейнер. ''First Fit Decreasing'' (FFD) и ''Best Fit Decreasing'' (BFD) – варианты этих алгоритмов, в которых входной список сначала сортируется по размеру в порядке невозрастания, а затем применяется соответствующее правило упаковки. Для этих алгоритмов получены следующие результаты.


В дополнение к FF, еще пять простых эвристик были изучены в самом начале и послужили вдохновением для более поздних исследований. Best Fit (BF) – это вариант задачи FF, в котором каждый предмет помещается в контейнер, в который он может поместиться с наименьшим остатком свободного места; при наличии нескольких подходящих вариантов выбирается самый ранний из таких контейнеров. И FF, и BF могут быть реализованы за время O(n log n) [ ]. Next Fit (NF) – еще более простой алгоритм с линейным временем выполнения, в котором первый предмет помещается в первый контейнер, а каждый следующий предмет помещается в последний непустой контейнер, если он в него помещается, в противном случае открывается новый контейнер. First Fit Decreasing (FFD) и Best Fit Decreasing (BFD) – варианты этих алгоритмов, в которых входной список сначала сортируется по размеру в порядке неубывания, а затем применяется соответствующее правило упаковки. Для этих алгоритмов получены следующие результаты.


'''Теорема 2 [12]. <math>R^{\infty}_{NF} = 2.</math>'''


Theorem 2 [12]. R1NF = 2.
'''Теорема 3 [13]. <math>R^{\infty}_{BF} = 17/10.</math>'''


Теорема 3 [13].
'''Теорема 4 [12, 13]. <math>R^{\infty}_{FFD} = R^{\infty}_{BFD} = 11/9 = 1,222...</math>'''


Теорема 4 [12, 13].


Приведенные выше алгоритмы относительно просты и интуитивно понятны. Если мы готовы рассмотреть более сложные алгоритмы, мы сможем добиться значительно лучших результатов. Лучший на сегодняшний день полиномиальный алгоритм упаковки в контейнеры работает весьма эффективно. Это алгоритм Кармаркара-Карпа 1982 года [15], который далее будет обозначаться как KK. Он использует метод эллипсоидов, аппроксимационные алгоритмы для задачи о рюкзаке и хитроумную схему округления для получения следующих гарантий:


Приведенные выше алгоритмы относительно просты и интуитивно понятны. Если мы готовы рассмотреть более сложные алгоритмы, мы сможем добиться значительно лучших результатов. Лучший на сегодняшний день полиномиальный алгоритм упаковки в контейнеры действительно очень хорош. Это алгоритм Кармаркара-Карпа 1982 года [15], который далее будет обозначаться как KK. Он использует метод эллипсоидов, аппроксимационные алгоритмы для задачи о рюкзаке и хитроумную схему округления для получения следующих гарантий:


'''Теорема 5 [15]. <math>R^{\infty}_{KK} = 1</math> и существует константа <math>c</math> такая, что для всех списков L выполняется соотношение'''


Теорема 5 [15]. R1KK = 1 и существует константа c такая, что для всех списков L,
<math>KK(L) \le OPT(L) + c \; log^2 \; (OPT(L)).</math>
KK(L) < OPT(L) + c log2 (OPT(L)) :




К сожалению, время работы KK оказывается больше O(n8), и BFD и FFD остаются гораздо более практичными альтернативами.
К сожалению, время работы KK оказывается больше <math>O(n^8)</math>, так что BFD и FFD остаются гораздо более практичными альтернативами.




'''Онлайновые алгоритмы'''
'''Онлайновые алгоритмы'''


Три из вышеупомянутых алгоритмов (FF, BF и NF) являются ''онлайновыми'', поскольку они упаковывают предметы в заданном порядке, не принимая во внимание размеры или количество последующих предметов. Как было замечено впоследствии во многих контекстах, ограничение онлайновыми ситуациями способно серьезно повлиять на способность алгоритма производить хорошие решения. Возможно, первым доказанным ограничением такого типа была теорема Яо [24], которая гласит, что ни один онлайновый алгоритм A для упаковки в контейнеры не может иметь <math>R^{\infty}_{A} < 1,5</math>. С тех пор это ограничение было улучшено до следующего:


Три из вышеупомянутых алгоритмов (FF, BF и NF) являются онлайновыми, поскольку они упаковывают предметы в заданном порядке, не принимая во внимание размеры или количество последующих предметов. Как было замечено впоследствии во многих контекстах, ограничение онлайновыми ситуациями может серьезно ограничить способность алгоритма производить хорошие решения. Возможно, первым доказанным ограничением такого типа была теорема Яо [ ] о том, что ни один онлайновый алгоритм A для упаковки в контейнеры не может иметь R1A < 1:5. С тех пор это ограничение было улучшено до следующего:


'''Теорема 6 [23]. Если A – онлайновый алгоритм для упаковки контейнеров, то <math>R^{\infty}_{A} \ge 1,540...</math>'''


Теорема 6 [23]. Если A – онлайновый алгоритм для упаковки контейнеров, тоRf > 1:540:::


В данном случае точное значение нижней границы является решением сложной линейной программы.


В данном случае точное значение нижней границы является решением сложной линейной программы.


В работе Яо также был представлен онлайн-алгоритм ''Revised First Fit'' (RFF), который имел <math>R^{\infty}_{RFF} = 5/3 = 1,666...</math>  и, следовательно, был ближе к этой нижней границе, чем FF и BF. Этот алгоритм работал путем разделения предметов на четыре класса по критериям размера и индекса, а затем использования различных правил упаковки (и самих упаковок) для каждого класса. Последующие алгоритмы улучшали его за счет введения все большего количества классов. В настоящее время самым эффективным является онлайновый алгоритм ''Harmonic++'' (H++) из работы [21]:


В работе Яо также был представлен онлайн-алгоритм Revised First Fit (RFF), который имел RRFF1 = 5/3 = 1:666  и, следовательно, был ближе к этой нижней границе, чем FF и BF. Этот алгоритм работал путем разделения предметов на четыре класса по критерию размера и индекса, а затем использования различных правил упаковки (и самих упаковок) для каждого класса. Последующие алгоритмы улучшали его за счет введения все большего количества классов. В настоящее время самым эффективным является онлайновый алгоритм Harmonic++ (H++) из работы [21]:


Теорема 7 [21].
'''Теорема 7 [21]. <math>R^{\infty}_{H++} \le 1,58889.</math>'''




'''Алгоритмы с ограниченным количеством контейнеров'''
'''Алгоритмы с ограниченным количеством контейнеров'''
Алгоритм NF, помимо того, что он работает в режиме онлайн, обладает еще одним свойством, которое стоит отметить: в любой момент времени для приема дополнительных предметов остается открытым не более чем постоянное число частично заполненных контейнеров. В случае NF эта константа равна 1 – поместить дополнительные предметы можно только в последний частично заполненный контейнер. Ограничение количества открытых контейнеров может быть необходимо в некоторых приложениях, например, при загрузке грузовиков на погрузочных платформах. Однако это обстоятельство накладывает дополнительные ограничения на поведение алгоритма.




Алгоритм NF, помимо того, что он работает в режиме онлайн, обладает еще одним свойством, которое стоит отметить: в любой момент времени для приема дополнительных предметов остается открытым не более чем постоянное число частично заполненных контейнеров. В случае NF эта константа равна 1 – поместить дополнительные предметы можно только в последний частично заполненный контейнер. Ограничение количества открытых контейнеров может быть необходимо в некоторых приложениях, например, при загрузке грузовиков на погрузочных платформах. Однако это обстоятельство накладывает дополнительные ограничения на поведение алгоритма.
'''Теорема 8 [17]. Для любого онлайнового алгоритма с ограниченным количеством контейнеров <math>R^{\infty}_{A} \ge 1,691...</math>'''


Теорема 8 [17]. Для любого онлайнового алгоритма с ограниченным количеством контейнеров


Константа 1,691 возникает и во многих других контекстах упаковки в контейнеры. Обычно она обозначается h1 и равна P1i=1(1/ti), где t1 = 1 и, для i > 1, ti = f,_i(f,-i + 1). Нижняя граница в Теореме 8 является строгой благодаря существованию алгоритмов Н.. (Hk) из [17]. Hk – это алгоритм, основанный на классах, в котором предметы делятся на классы Ch, 1 < h < k, причем Q состоит из всех предметов размером 1/k или меньше, а Ch, 1 < h < k, состоит из всех ai с 1/(h + 1) < s(ai) < 1/h. Затем предметы каждого класса упаковываются NF в отдельную упаковку, предназначенную только для этого класса. Таким образом, в любой момент времени открыто не более k контейнеров. В [17] было показано, что limk!1 R1H = h1 = 1,691. Это даже лучше, чем асимптотическое наихудшее соотношение 1.7 для алгоритмов FF и BF, работающих с неограниченным количеством контейнеров, хотя следует отметить, что вариант BF с ограниченным их количеством, в котором все контейнеры, кроме двух наиболее полных, закрыты, также имеет
Константа 1,691 возникает и во многих других контекстах упаковки в контейнеры. Обычно она обозначается <math>h_{\infty}</math> и равна <math>\sum_{i = 1}^{\infty} (1/t_i)</math>, где <math>t_1 = 1</math>, а для i > 1 <math>t_i = t_{i - 1}(t_{i - 1} + 1)</math>. Нижняя граница в Теореме 8 является строгой благодаря существованию алгоритмов ''Нarmonic''<math>_k</math> (<math>H_k</math>) из работы [17]. <math>H_k</math> – это алгоритм, основанный на классах, в котором предметы делятся на классы <math>C_h, 1 \le h \le k</math>, причем <math>C_k</math> состоит из всех предметов размером 1/k или меньше, а <math>C_h, 1 \le h < k</math>, состоит из всех <math>a_i</math>, таких, что <math>1/(h + 1) < s(a_i) \le 1/h</math>. Затем алгоритм NF помещает предметы каждого класса в отдельную упаковку, предназначенную только для этого класса. Таким образом, в любой момент времени открыто не более k контейнеров. В [17] было показано, что <math>lim_{k \to \infty} R^{\infty}_{H_k} = h_{\infty} = 1,691...</math> Это даже лучше, чем асимптотическое наихудшее отношение 1,7 для алгоритмов FF и BF, работающих с неограниченным количеством контейнеров, хотя следует отметить, что вариант BF с ограниченным их количеством, в котором все контейнеры, кроме двух наиболее полных, закрыты, также имеет <math>R^{\infty}_A = 1,7</math>.




'''Поведение в среднем случае'''
'''Поведение в среднем случае'''


'''Непрерывные распределения'''
Задача об упаковке в контейнеры также послужила ранним испытательным полигоном для изучения поведения аппроксимационных алгоритмов в среднем случае. Пусть F – распределение на интервале (0, 1], а <math>L_n</math> – список из n элементов с размерами элементов, выбранными независимо в соответствии с распределением F. Для любого списка L обозначим за s(L) нижнюю границу OPT(L), полученную суммированием размеров всех элементов в L. Далее определим
<math>ER^n_A(F) = E [ A(L_n) / OPT(L_n)],</math>
<math>ER^{\infty}_A(F) = lim_{n \to \infty} sup \; ER^n_A,</math>
<math>EW^n_A(F) = E [ A(L_n) - s(L_n)].</math>
Последнее определение включено, поскольку <math>ER^{\infty}_A(F) = 1</math> встречается достаточно часто, чтобы более тонкие различия имели смысл. Например, в начале 1980-х годов было замечено, что для распределения F = U(0, 1], в котором размеры элементов равномерно распределены на интервале (0, 1], <math>ER^{\infty}_{FFD}(F) = ER^{\infty}_{BFD}(F) = 1</math>, как следствие последующих более детальных результатов.
'''Теорема 9 [16, 20]. Для <math>A \in \{ FFD, BFD, OPT \}</math> имеет место соотношение <math>EW^n_A(U(0, 1]) = \Theta(\sqrt{n}).</math>
К некоторому удивлению, позже было обнаружено, что онлайновые алгоритмы FF и BF также имеют сублинейные ожидаемые потери и, следовательно, <math>ER^{\infty}_A(U(0, 1]) = 1.</math>
'''Теорема 10 [5, 19].'''
<math>EW^n_{FF}(U(0, 1]) = \Theta(n^{2/3})</math>
<math>EW^n_{BF}(U(0, 1]) = \Theta(n^{1/2} \; log^{3/4} \; n)</math>
Однако это хорошее поведение не распространяется на алгоритмы с ограниченным количеством контейнеров NF и <math>H_k</math>:


'''Непрерывные распределения'''


'''Теорема 11 [6, 18].'''


Задача об упаковке в контейнеры также послужила ранним испытательным полигоном для изучения поведения аппроксимационных алгоритмов в среднем случае. Пусть F – распределение на интервале (0, 1], а Ln – список из n элементов с размерами элементов, выбранными независимо в соответствии с распределением F. Для любого списка L обозначим за s(L) нижнюю границу OPT(L), полученную суммированием размеров всех элементов в L. Тогда определим
<math>ER^{\infty}_{NF}(U(0, 1]) = 4/3 = 1,333...</math>


Последнее определение включено, поскольку ER1A(F) = 1 встречается достаточно часто, чтобы более тонкие различия имели смысл. Например, в начале 1980-х годов было замечено, что для распределения F = U(0, 1], в котором размеры элементов равномерно распределены на интервале (0, 1], ER1FFD(F) = ERBFD1(F) = 1, как следствие последующих более детальных результатов.
<math>lim_{k \to \infty} ER_{H_k}(U(0, 1]) = \pi^2/3 - 2 = 1,2899...</math>


Theorem 9 [16, 20]. Для A 2 fFFD; BFD; OPTg,   


К некоторому удивлению, позже было обнаружено, что онлайновые алгоритмы FF и BF также имеют сублинейные ожидаемые потери и, следовательно, ER1A(U(0;1]) = 1.
Все приведенные выше результаты, кроме двух последних, используют тот факт, что распределение U(0, 1] симметрично относительно 1/2; и, следовательно, оптимальная упаковка состоит в основном из двухэлементных контейнеров, причем элементы размера s > 1/2 сопоставляются с элементами меньшего размера, очень близкого к 1 – s. Доказательства, по сути, показывают, что рассматриваемые алгоритмы хорошо справляются с построением таких паросочетаний. Однако на практике, очевидно, будут возникать ситуации, когда требуется нечто большее, чем простое соответствие. Для моделирования таких ситуаций исследователи сначала обратились к распределениям U(0, b], 0 < b < 1, где размеры элементов выбираются равномерно из интервала (0, b]. Моделирование показало, что такие распределения ухудшают работу онлайновых алгоритмов FF и BF, у которых <math>ER^{\infty}_A(U(0, b]) > 1</math> для всех <math>b \in (0, 1)</math>. Как ни удивительно, они улучшают ситуацию для FFD и BFD (и оптимальной упаковки).


Теорема 10 [5, 19].


Однако это хорошее поведение не распространяется на алгоритмы с ограниченным количеством контейнеров NF и Hk:
'''Теорема 12 [2, 14].'''


Теорема 11 [6, 18].
'''1. Для <math>0 < b \le 1/2</math> '''и''' <math>A \in \{FFD, BFD\}</math> выполняется <math>EW^n_A(U(0, b]) = O(1).</math>'''


Все приведенные выше результаты, кроме двух последних, используют тот факт, что распределение U(0, 1] симметрично относительно 1/2; и, следовательно, оптимальная упаковка состоит в основном из двухэлементных контейнеров, причем элементы размера s > 1/2 сопоставляются с элементами меньшего размера, очень близкого к 1 – s. Доказательства, по сути, показывают, что рассматриваемые алгоритмы хорошо справляются с построением таких паросочетаний. Однако на практике, очевидно, будут возникать ситуации, когда требуется нечто большее, чем простое соответствие. Для моделирования таких ситуаций исследователи сначала обратились к распределениям U(0, b], 0 < b < 1, где размеры элементов выбираются равномерно из интервала (0, b]. Моделирование показало, что такие распределения ухудшают работу онлайновых алгоритмов FF и BF, у которых ER1A(U(0, b]) > 1 для всех b 2 (0, 1). Как ни удивительно, они улучшают ситуацию для FFD и BFD (и оптимальной упаковки).
'''2. Для <math>1/2 < b < 1</math> '''и''' <math>A \in \{FFD, BFD\}</math> выполняется <math>EW^n_A(U(0, b]) = \Theta(n^{1/3}).</math>'''


Теорема 12 [2, 14].
'''3. Для <math>0 < b < 1</math> выполняется <math>EW^n_{OPT}(U(0, b]) = O(1).</math>'''




'''Дискретные распределения'''
'''Дискретные распределения'''
Во многих приложениях размеры предметов берутся из конечного множества, а не из непрерывного распределения, рассмотренного выше. Поэтому в последнее время при изучении поведения алгоритмов упаковки контейнеров в среднем случае обращаются к дискретным распределениям. Такое распределение задается конечным списком s1, s2, ..., sd рациональных размеров и соответствующей рациональной вероятностью pi для каждого si. Замечательный результат Куркубетиса и Вебера [ ] гласит:


Теорема 13 [ ]. Для любого дискретного распределения F, EWnopT{F) является либо &(n), &{jn), либо O(l).
Во многих приложениях размеры предметов берутся из конечного множества, а не из непрерывного распределения, рассмотренного выше. Поэтому в последнее время при изучении поведения алгоритмов упаковки контейнеров в среднем случае обращаются к ''дискретным распределениям''. Такое распределение задается конечным списком <math>s_1, s_2, ..., s_d</math> рациональных размеров и соответствующей рациональной вероятностью <math>p_i</math> для каждого <math>s_i</math>. Замечательный результат Куркубетиса и Вебера [7] гласит:
 
 
'''Теорема 13 [7]. Для любого дискретного распределения F значение <math>EW^n_{OPT}(F)</math> равно <math>\Theta(n)</math>, <math>\Theta(\sqrt{n})</math> либо <math>O(1)</math>.'''
 
 
Дискретным аналогом непрерывного распределения U(0, b] является распределение U{j, k}, где размеры равны 1/k, 2/k, ... j/k, а все вероятности равны 1/j. Моделирование показывает, что поведение FF и BF в дискретном случае качественно схоже с поведением в непрерывном случае, в то время как поведение FFD и BFD значительно более причудливо [3]. Особо следует отметить распределение F = U{6, 13}, для которого <math>ER^{\infty}_{FFD}(F)</math> строго больше <math>ER^{\infty}_{FF}(F)</math>, что противоречит всем ранее проведенным сравнениям между двумя алгоритмами.
 
 
Однако в случае дискретных распределений все стандартные алгоритмы уступают новому онлайновому алгоритму, которые называется ''алгоритмом суммы квадратов'' (SS). Обратите внимание, что поскольку все размеры предметов рациональны, их можно масштабировать так, чтобы они (также как размер контейнера B) были целочисленными. Тогда в любой момент работы онлайнового алгоритма текущую схему упаковки можно обобщить, указав для каждого <math>h, 1 \le h \le B</math>, количество <math>n_h</math> контейнеров, содержащих предметы общей величиной h. В алгоритме SS каждый предмет упаковывается таким образом, чтобы минимизировать <math>\sum_{h = 1}^{B - 1} \; n^2_h</math>.
 


Дискретным аналогом непрерывного распределения U(0, b] является распределение U{j, k}, где размеры равны 1/k; 2/k... ; j/k, а все вероятности равны 1/j. Моделирование показывает, что поведение FF и BF в дискретном случае качественно схоже с поведением в непрерывном случае, в то время как поведение FFD и BFD значительно более причудливо [ ]. Особо следует отметить распределение F = U{6, 13}, для которого ER1FFD(F) строго больше ER1FF(F), что противоречит всем ранее проведенным сравнениям между двумя алгоритмами.
'''Теорема 14 [9]. Для любого дискретного распределения F справедливы следующие утверждения:'''


Однако в случае дискретных распределений все стандартные алгоритмы уступают новому онлайновому алгоритму, которые называется алгоритмом суммы квадратов (SS). Обратите внимание, что поскольку все размеры предметов рациональны, их можно масштабировать так, чтобы они (также как размер контейнера B) были целочисленными. Тогда в любой момент работы онлайнового алгоритма текущую схему упаковки можно обобщить, указав для каждого h, 1 < h < B, количество щ контейнеров, содержащих предметы общей величиной h. В алгоритме SS каждый предмет упаковывается таким образом, чтобы минимизировать Y^h=i n\-.
'''1. Если <math>EW^n_{OPT}(F) = \Theta(\sqrt{n})</math>, то <math>EW^n_{SS}(F) = \Theta(\sqrt{n});</math>'''


Теорема 14 ([9]) Для любого дискретного распределения F справедливы следующие утверждения. 1. Если EWOPTn(F) =
'''2. Если <math>EW^n_{OPT}(F) = O(1)</math>, то <math>EW^n_{SS}(F) \in \{ O(1), \Theta(log \; n) \}.</math>'''


Кроме того, простая модификация SS позволяет устранить случай ©(log n) условия 2.
'''Кроме того, простая модификация SS позволяет исключить член <math>\Theta(log \; n)</math> в условии 2.


== Применение ==
== Применение ==
Строка 121: Строка 158:


== Открытые вопросы ==
== Открытые вопросы ==
Возможно, наиболее фундаментальной нерешенной проблемой, связанной с упаковкой контейнеров, является следующая. Как было отмечено выше, существует алгоритм с полиномиальным временем выполнения (KK), упаковка которого находится в пределах O(log (OPT)) контейнеров от оптимальной. Возможно ли улучшить этот коэффициент? Насколько известно на данный момент, может существовать алгоритм с полиномиальным временем выполнения, который всегда отличается на один контейнер от оптимального, даже если P = NP.
Возможно, наиболее фундаментальной нерешенной проблемой, связанной с упаковкой контейнеров, является следующая. Как было отмечено выше, существует алгоритм с полиномиальным временем выполнения (KK), упаковка которого находится в пределах <math>O(log^2 \; (OPT))</math> контейнеров от оптимальной. Возможно ли улучшить этот коэффициент? Насколько известно на данный момент, может существовать алгоритм с полиномиальным временем выполнения, который всегда отличается на один контейнер от оптимального, даже если <math>P \ne NP</math>.


== Экспериментальные результаты ==
== Экспериментальные результаты ==
Данная задача является благодатной почвой для экспериментального анализа, и многие из приведенных выше теорем были впервые предположены на основе экспериментальных результатов. Например, эксперименты, описанные в [ ], послужили основой для теорем 10 и 12, а исследования в [ ] – для теоремы 14.
Данная задача является благодатной почвой для экспериментального анализа, и многие из приведенных выше теорем были впервые предположены на основе экспериментальных результатов. Например, эксперименты, описанные в работе [1], послужили основой для теорем 10 и 12, а исследования в [10] – для теоремы 14.


== См. также ==
== См. также ==
*  [[Схемы аппроксимации для задачи об упаковке в контейнеры]]
*  [[Аппроксимационные схемы для задачи об упаковке в контейнеры]]


== Литература ==
== Литература ==
4430

правок