4501
правка
Irina (обсуждение | вклад) |
Irina (обсуждение | вклад) |
||
Строка 29: | Строка 29: | ||
''' | '''Теорема 1 [22]. <math>R^{\infty}_{FF} = 17/10.</math>''' | ||
Строка 35: | Строка 35: | ||
''' | '''Теорема 2 [12]. <math>R^{\infty}_{NF} = 2.</math>''' | ||
'''Теорема 3 [13]. <math>R^{\infty}_{BF} = 17/10.</math>''' | |||
''' | '''Теорема 4 [12, 13]. <math>R^{\infty}_{FFD} = R^{\infty}_{BFD} = 11/9 = 1,222...</math>''' | ||
Приведенные выше алгоритмы относительно просты и интуитивно понятны. Если мы готовы рассмотреть более сложные алгоритмы, мы сможем добиться значительно лучших результатов. Лучший на сегодняшний день полиномиальный алгоритм упаковки в контейнеры действительно очень хорош. Это алгоритм Кармаркара-Карпа 1982 года [15], который далее будет обозначаться как KK. Он использует метод эллипсоидов, аппроксимационные алгоритмы для задачи о рюкзаке и хитроумную схему округления для получения следующих гарантий: | |||
'''Теорема 5 [15]. <math>R^{\infty}_{KK} = 1</math> и существует константа c такая, что для всех списков L выполняется соотношение | |||
<math>KK(L) \le OPT(L) + c \; log^2 \; (OPT(L)).</math> | |||
KK(L) | |||
К сожалению, время работы KK оказывается больше O( | К сожалению, время работы KK оказывается больше <math>O(n^8)</math>, так что BFD и FFD остаются гораздо более практичными альтернативами. | ||
правка