Наибольший метод различия
В информатике самый большой метод дифференцирования представляет собой алгоритм для решения проблемы разделения и многофункционального раздела . Он также называется алгоритмом кармар -карпа , после того, как его изобретатели Нарендра Кармаркар и Ричард М. Карп . [ 1 ] Это часто сокращено как LDM. [ 2 ] [ 3 ]
Алгоритм
[ редактировать ]Вход в алгоритм представляет собой набор чисел и параметр k . Требуемый вывод - это раздел S на k подмножества, так что суммы в подмножествах были как можно более равными. Основными этапами алгоритма являются:
- Закажите цифры от больших до маленьких.
- Замените самые большие и вторые по величине цифры на их разницу.
- Если остаются два или более чисел, вернитесь к шагу 1.
- Используя обратную пробку , вычислите раздел.
Двусторонняя перегородка
[ редактировать ]Для k = 2 основной шаг (2) работает следующим образом.
- Возьмите два самых больших числа в S , удалите их из S и вставьте их разницу (это представляет собой решение поместить каждое из этих чисел в другое подмножество).
- Продолжайте таким образом, пока не останется ни одного числа. Это единственное число является разницей в сумме между двумя подмножествами.
Например, если S = {8,7,6,5,4}, то полученные разницы в разнице {6,5,4,1} после получения самых больших чисел {8,7} и вставки разницы 8-7 = 1 назад; Повторите шаги, а затем у нас есть {4,1,1}, затем {3,1}, затем {2}.
Шаг 3 Создает подмножества в разделе путем возврата. Последний шаг соответствует {2}, {}. Затем 2 заменяется на 3 в одном наборе и 1 в другом наборе: {3}, {1}, затем {4}, {1,1}, затем {4,5}, {1,6}, затем { 4,7,5}, {8,6}, где дифференциация суммы действительно 2.
В сложности выполнения этого алгоритма преобладает шаг 1 (сортировка), который принимает O ( n log n ).
Обратите внимание, что этот раздел не является оптимальным: в разделе {8,7}, {6,5,4} Дифференциация суммы составляет 0. Однако есть доказательства того, что он предоставляет «хороший» раздел:
- Если цифры равномерно распределены в [0,1], то ожидаемая разница между двумя суммами составляет Полем Это также подразумевает, что ожидаемое соотношение между максимальной суммой и оптимальной максимальной суммой является . [ 3 ]
- Когда существует не более 4 пунктов, LDM возвращает оптимальное разделение.
- LDM всегда возвращает раздел, в котором самая большая сумма в 7/6 раз превышает оптимальную. [ 4 ] Это плотно, когда есть 5 или более предметов. [ 2 ]
- В случайных случаях этот приблизительный алгоритм работает намного лучше, чем жадное количество числа . Тем не менее, это все еще плохо для случаев, когда цифры экспоненциальны по размеру набора. [ 5 ]
Многопользовательская перегородка
[ редактировать ]Для любого k ≥ 2 алгоритм может быть обобщен следующим образом. [ 2 ]
- Первоначально, для каждого числа I в S , построить k -тип подмножества, в котором один подмножество составляет { i }, а другие подмножества k -1 пусты.
- В каждой итерации выберите два k -tuples a и b, суммой является наибольшей, и объедините их в обратном порядке размеров, т.е. которых в разница между максимальной и минимальной А со вторым по величине в B и т. Д.
- Продолжайте таким образом, пока не останется единый раздел.
Примеры:
- Если s = {8,7,6,5,4} и k = 2, то начальные разделы ({8}, {}), ({7}, {}), ({6}, {}) , ({5}, {}), ({4}, {}). После первого шага мы получили ({6}, {}), ({5}, {}), ({4}, {}), ({8}, {7}). Тогда ({4}, {}), ({8}, {7}), ({6}, {5}). Тогда ({4,7}, {8}), ({6}, {5}) и, наконец, ({4,7,5}, {8,6}), где распада в сумме составляет 2; Это тот же раздел, что и описано выше.
- Если s = {8,7,6,5,4} и k = 3, то начальные разделы ({8}, {}, {}), ({7}, {}, {}), ({{{{{{ 6}, {}, {}), ({5}, {}, {}), ({4}, {}, {}). После первого шага мы получили ({8}, {7}, {}), ({6}, {}, {}), ({5}, {}, {}), ({4}, {} , {}). Тогда ({5}, {}, {}), ({4}, {}, {}), ({8}, {7}, {6}). Тогда ({5}, {4}, {}), ({8}, {7}, {6}) и, наконец, ({5,6}, {4,7}, {8}), где Сумма дифференциация 3.
- Если s = {5,5,5,4,4,3,3,1} и k = 3, то после 7 итераций мы получаем раздел ({4,5}, {1,4,5}, {3 , 3,5}). [ 2 ] Это решение не является оптимальным; Лучшее разделение обеспечивается группировкой ({5,5}, {3,3,4}, {1,4,5}).
Есть доказательства хорошей производительности LDM: [ 2 ]
- Эксперименты по моделированию показывают, что, когда цифры равномерно случайны в [0,1], LDM всегда работает лучше (то есть создает раздел с меньшей наибольшей суммой), чем жадное количество раздела . Он работает лучше, чем мультифит -алгоритм , когда количество элементов n достаточно большое. Когда цифры равномерно случайные в [ O , O +1], из некоторых O > 0, производительность LDM остается стабильной, в то время как производительность мультифита становится хуже с O. увеличением Для o > 0,2 LDM работает лучше.
- Пусть f* будет оптимальной самой большой суммой. Если все числа больше F */3, то LDM возвращает оптимальное решение. В противном случае LDM возвращает решение, в котором разница между самой большой и наименьшей суммой является наибольшим количеством наибольшего числа, что является максимум f */3.
- Когда существует максимально большую часть предметов K +2, LDM оптимален.
- Когда количество элементов n составляет между K +2 и 2 K , самая большая сумма в разделе LDM больше всего содержит раз больше оптимального,
- Во всех случаях самая большая сумма в разделе LDM больше всего Время оптимального, и есть случаи, в которых это, по крайней мере, раз оптимально.
- Для двустороннего распределения, когда входные данные равномерно распределенные случайные величины, ожидаемая разница между самой большой и наименьшей суммой является . [ 3 ]
Сбалансированная двусторонняя перегородка
[ редактировать ]Несколько вариантов LDM были разработаны для проблемы сбалансированного разбиения чисел , в которой все подмножества должны иметь одинаковую кардинальность (до 1).
PDM (метод парного различия) работает следующим образом. [ 6 ]
- Закажите цифры от больших до маленьких.
- Заменить номера № 1 и #2 их разницей; #3 и #4 по их разнице; и т. д.
- Если остаются два или более чисел, вернитесь к шагу 1.
- Используя обратную пробку , вычислите раздел.
У PDM средние свойства хуже, чем LDM. Для двустороннего распределения, когда входные данные равномерно распределенные случайные величины, ожидаемая разница между самой большой и наименьшей суммой является .
RLDM (ограниченный самый большой метод различия) работает следующим образом. [ 7 ]
- Закажите цифры от больших до маленьких.
- Заменить номера № 1 и #2 их разницей; #3 и #4 по их разнице; и т. д.
- Сортируйте список различий N /2 от больших до маленьких.
- Назначьте каждую пару в свою очередь к разным наборам: самая большая в паре с набором с наименьшей суммой, и наименьшее в паре с набором с самой большой суммой.
Для двустороннего распределения, когда входные данные равномерно распределенные случайные величины, ожидаемая разница между самой большой и наименьшей суммой является .
BLDM (сбалансированный самый большой метод различия) работает следующим образом. [ 3 ]
- Закажите цифры от больших до маленьких.
- Заменить номера № 1 и #2 их разницей; #3 и #4 по их разнице; и т. д.
- Запустите LDM на наборе различий.
BLDM обладает средним свойствами, похожими на LDM. Для двустороннего распределения, когда входные данные равномерно распределенные случайные величины, ожидаемая разница между самой большой и наименьшей суммой является . [ 3 ]
Для многоуровневого распределения, когда C = потолок ( n / k ) и каждая из k подмножества должны содержать элементы потолка ( n / k ) или пола ( N / k ) ровно 4/3 для C = 3, 19/12 для C = 4, 103/60 для C = 5, 643/360 для C = 6 и 4603/2520 для C = 7. Соотношения были обнаружены путем решения смешанной целочисленной линейной программы . В целом (для любого c ) коэффициент приближения, по крайней мере, и больше всего Полем MILP Результаты для 3,4,5,6,7 соответствуют нижней границе. Когда параметром является количество подмножества ( k ), коэффициент приближения точно . [ 8 ]
Проблема последующей последовательности MIN-MAX
[ редактировать ]В задаче последующей последовательности MIN-MAX вход представляет собой многосетент n чисел и целочисленный параметр k , и цель состоит в том, чтобы упорядочить числа, так что наибольшая сумма каждого блока смежных чисел K была как можно меньше. Проблема возникает при разработке видео серверов. [ 9 ] Эта проблема может быть решена в полироме для k = 2, но она сильно является NP-Hard для K≥ 3. Диазиация метода дифференцирования может применять к этой проблеме. [ 10 ]
Точный алгоритм
[ редактировать ]Полный алгоритм карпар -карпа (CKK) находит оптимальное решение, построив дерево степени .
- В случае k = 2 каждый уровень соответствует паре чисел, и эти две ветви соответствуют их разнице (т. Е. Поместите их в разные наборы) или взяв их сумму (т.е. размещение их в одном и том же наборе).
- Для общего k каждый уровень соответствует паре k -tuples и каждому из Ветви соответствуют другому способу объединения подмножеств в этих кортежах.
Для K = 2 CKK работает значительно быстрее, чем полный жадный алгоритм (CGA) в случайных случаях. Это связано с двумя причинами: когда равного разделения не существует, CKK часто допускает больше, чем CGA; И когда равный раздел существует, CKK часто находит его намного быстрее и, таким образом, допускает более раннее прекращение. Корф сообщает, что CKK может оптимально разделить 40 15-значных двухзначных чисел за 3 часа, а CGA требует около 9 часов. На практике, с k = 2, проблемы произвольного размера могут быть решены с помощью CKK, если числа имеют не более 12 значимых цифр ; с k = 3, не более 6 значимых цифр. [ 11 ]
CKK также может работать как алгоритм в любое время : сначала он находит решение KK, а затем находит постепенно лучшие решения, как позволяет время (возможно, требует экспоненциального времени для достижения оптимальности, для наихудших случаев). [ 12 ]
Комбинирование CKK с алгоритмом сбалансированного LDM (BLDM) дает полный алгоритм в любое время для решения проблемы сбалансированного разделения . [ 13 ]
Предыдущие упоминания
[ редактировать ]Алгоритм, эквивалентный эвристике, дифференцирующей карпар-карпа, упоминается в древних еврейских юридических текстах Нахманида и Джозефа Ибн Хабиба . Алгоритм используется для объединения различных свидетельств примерно одного и того же кредита. [ 14 ]
Реализации
[ редактировать ]- Python : Библиотека PRTPY содержит реализации алгоритма карпар-карпа и полного алгоритма кармарпа .
Ссылки
[ редактировать ]- ^ Нарендра Кармаркар и Ричард М. Карп , «Дифференцирующий метод установленного разделения», Tech Report UCB/CSD 82/113, Отдел информатики, Калифорнийский университет, Беркли , 1982
- ^ Jump up to: а беременный в дюймовый и Михиэлс, Уил; Корст, Ян; Aarts, Emile (2003). «Коэффициенты производительности для метода дифференцировки карпар -карпов». Электронные примечания в дискретной математике . 13 : 71–75. Citeseerx 10.1.1.107.1332 . doi : 10.1016/s1571-0653 (04) 00442-1 .
- ^ Jump up to: а беременный в дюймовый и Якир, Бенджамин (1996-02-01). «Алгоритм дифференцирования LDM для разделения: доказательство гипотезы кармаркара и карпа». Математика операционных исследований . 21 (1): 85–99. doi : 10.1287/moor.21.1.85 . ISSN 0364-765X .
- ^ Фишетти, Маттео; Martello, Silvano (1987-02-01). «Анализ наихудшего случая метода дифференцирования для проблемы разделения» . Математическое программирование . 37 (1): 117–120. doi : 10.1007/bf02591687 . ISSN 1436-4646 . S2CID 30065792 .
- ^ Хейс, Брайан (март -апрель 2002), «Самая простая трудная проблема», Американский ученый , вып. 90, нет. 2, Sigma XI, Общество научных исследований, с. 113–117, JSTOR 27857621
- ^ Лукер, Джордж С. (1987-12-01). «Примечание о поведении среднего часа простого метода дифференцирования для разделения» . Операционные исследования . 6 (6): 285–287. doi : 10.1016/0167-6377 (87) 90044-7 . ISSN 0167-6377 .
- ^ Tsai, Li-Hui (1992-02-01). «Асимптотический анализ алгоритма для сбалансированного расписания параллельного процессора» . Siam Journal on Computing . 21 (1): 59–64. doi : 10.1137/0221007 . ISSN 0097-5397 .
- ^ Михиэлс, Уил; Корка, Ян; Аартс, Эмиль; Van Leeuwen, Jan (2003), Коэффициенты производительности для различного метода, применяемого к проблеме разбиения сбалансированного числа , лекционные заметки в компьютерных науках, вып. 2607, Берлин, Гейдельберг: Springer Berlin Heidelberg, стр. 583–595, doi : 10.1007/3-540-36494-3_51 , ISBN 978-3-540-00623-7 Получено 2021-10-15
- ^ Уил Михиэлс (2004). «Коэффициенты производительности для различных методов». Эйндховенский технологический университет, 2004. https://www.elibrary.ru/item.asp?id=8860464
- ^ Михиэлс, Уил; Корст, Ян (2001). «Проблемы подключения MIN-MAX в записи многозонового диска» . Журнал планирования . 4 (5): 271–283. doi : 10.1002/jos.80 . ISSN 1099-1425 .
- ^ Корф, Ричард Э. (1995-08-20). «От приблизительного до оптимальных решений: тематическое исследование номеров разбиения» . Материалы 14 -й Международной совместной конференции по искусственному интеллекту - том 1 . Ijcai'95. Монреаль, Квебек, Канада: Morgan Kaufmann Publishers Inc.: 266–272. ISBN 978-1-55860-363-9 .
- ^ Корф, Ричард Э. (1998-12-01). «Полный алгоритм в любое время для разбиения номеров» . Искусственный интеллект . 106 (2): 181–203. doi : 10.1016/s0004-3702 (98) 00086-1 . ISSN 0004-3702 .
- ^ Мертенс, Стефан (1999-03-11). «Полный алгоритм в любое время для сбалансированного разбиения номеров». Arxiv : CS/9903011 .
- ^ Рон Адин и Юваль Ройхман (2015). «Комбинирование свидетелей: математические аспекты» (PDF) . BDD (на иврите). 30 Бар-Иланский университет : 7–20.