Алгоритм Кармаркара
Алгоритм Кармаркара — это алгоритм, предложенный Нарендрой Кармаркаром в 1984 году для решения линейного программирования задач . Это был первый достаточно эффективный алгоритм, решающий эти проблемы за полиномиальное время . Метод эллипсоидов также является полиномиальным по времени, но на практике оказался неэффективным.
Обозначая количество переменных, m количество ограничений-неравенств и количество бит на входе в алгоритм, алгоритм Кармаркара требует операции по -значные числа по сравнению с такие операции для алгоритма эллипсоида. [1] В «квадратных» задачах, когда m находится в O( n ), алгоритм Кармаркара требует операции по -значные числа по сравнению с такие операции для алгоритма эллипсоида. Таким образом, время выполнения алгоритма Кармаркара равно
используя умножение на основе БПФ (см. обозначение Big O ).
Алгоритм Кармаркара относится к классу методов внутренней точки : текущее предположение решения не следует границе допустимого множества, как в симплексном методе , а перемещается внутрь допустимой области, улучшая аппроксимацию оптимального решения. на определенную долю на каждой итерации и сходящуюся к оптимальному решению с рациональными данными. [2]
Алгоритм
[ редактировать ]Рассмотрим задачу линейного программирования в матричной форме:
максимизировать c Т х | |
при условии | Ах ≤ б . |
Алгоритм Кармаркара определяет следующее возможное направление к оптимальности и уменьшает его в коэффициент 0 < γ ≤ 1 . Оно описано во многих источниках. [3] [4] [5] [6] [7] [8] Кармаркар также расширил метод [9] [10] [11] [12] решать задачи с целочисленными ограничениями и невыпуклые задачи. [13]
Algorithm Affine-Scaling
Поскольку реальный алгоритм довольно сложен, исследователи искали более интуитивную его версию и в 1985 году разработали аффинное масштабирование , версию алгоритма Кармаркара, которая использует аффинные преобразования там, где Кармаркар использовал проективные преобразования, только чтобы четыре года спустя осознать, что они заново открыли алгоритм, опубликованный советским математиком И.И. Дикиным в 1967 году. [14] Метод аффинного масштабирования можно кратко описать следующим образом. [15] Хотя этот алгоритм применим к задачам небольшого масштаба, он не является алгоритмом с полиномиальным временем. [ нужна ссылка ]
Input: A, b, c, , stopping criterion, γ.
do while stopping criterion not satisfied if then return unbounded end if end do
- « ←» означает присвоение . Например, « самый большой ← элемент » означает, что значение самого большого изменяется на значение элемента .
- « return » завершает алгоритм и выводит следующее значение.
Пример
[ редактировать ]Рассмотрим линейную программу
То есть есть 2 переменные и 11 ограничений, связанных с различными значениями . На этом рисунке каждая итерация алгоритма показана точками красного круга. Ограничения показаны синими линиями.
Патентные споры
[ редактировать ]В то время, когда Кармаркар изобрел алгоритм, он работал в IBM в качестве постдокторанта в исследовательской лаборатории IBM в Сан-Хосе в Калифорнии. 11 августа 1983 года он провел семинар в Стэнфордском университете, объясняя алгоритм, при этом его филиал по-прежнему значился как IBM. К осени 1983 года Кармаркар начал работать в AT&T и представил свою статью на симпозиуме ACM по теории вычислений 1984 года (STOC, состоявшийся 30 апреля - 2 мая 1984 года), указав, что AT&T Bell Laboratories является его филиалом. [16] После применения алгоритма для оптимизации телефонной сети AT&T, [17] они поняли, что его изобретение может иметь практическое значение. В апреле 1985 года AT&T незамедлительно подала заявку на патент на его алгоритм.
Этот патент стал еще одним поводом для продолжающихся споров по поводу патентов на программное обеспечение . [18] Это вызвало беспокойство у многих математиков, таких как Рональд Ривест (сам один из обладателей патента на алгоритм RSA ), который выразил мнение, что исследования проводятся на основе того, что алгоритмы должны быть свободными. Еще до того, как патент был фактически выдан, утверждалось, что, возможно, существовал предшествующий уровень техники , который был бы применим. [19] Математики, специализирующиеся на численном анализе , в том числе Филип Гилл и другие, утверждали, что алгоритм Кармаркара эквивалентен проектируемому барьерному методу Ньютона с логарифмической барьерной функцией , если параметры выбраны соответствующим образом. [20] Ученый-правовед Эндрю Чин полагает, что аргумент Гилла ошибочен, поскольку описываемый ими метод не представляет собой «алгоритм», поскольку он требует выбора параметров, которые не следуют из внутренней логики метода, а полагаются на внешнее руководство. по существу из алгоритма Кармаркара. [21] Более того, вклад Кармаркара считается далеко не очевидным в свете всех предыдущих работ, включая работы Фиакко-Маккормика, Гилла и других, на которые цитирует Зальцман. [21] [22] [23] Патент обсуждался в Сенате США. [ нужна ссылка ] и выдан в знак признания существенной оригинальности работы Кармаркара в виде патента США 4 744 028 : «Методы и устройства для эффективного распределения ресурсов» в мае 1988 года.
AT&T разработала векторную многопроцессорную компьютерную систему специально для запуска алгоритма Кармаркара, назвав полученную комбинацию аппаратного и программного обеспечения KORBX. [24] и продал эту систему по цене 8,9 миллиона долларов США. [25] [26] Его первым заказчиком стал Пентагон . [27] [28]
Противники патентов на программное обеспечение также утверждали, что патенты разрушили циклы позитивного взаимодействия, которые ранее характеризовали отношения между исследователями в области линейного программирования и промышленностью, и, в частности, изолировали самого Кармаркара от сети математических исследователей в его области. [29]
Срок действия патента истек в апреле 2006 года, и в настоящее время алгоритм находится в открытом доступе .
Верховный суд США постановил, что математика не может быть запатентована в деле Готшалк против Бенсона . [30] В этом деле Суд сначала рассмотрел вопрос о том, можно ли запатентовать компьютерные алгоритмы, но постановил, что это невозможно, поскольку патентная система не защищает идеи и подобные абстракции. В деле Даймонд против Дира , [31] Верховный суд заявил: «Математическая формула как таковая не пользуется защитой наших патентных законов, и этот принцип нельзя обойти, пытаясь ограничить использование формулы конкретной технологической средой. [32] В деле Mayo Collaborative Services против Prometheus Labs., Inc. , [33] Верховный суд далее пояснил, что «простая реализация математического принципа на физической машине, а именно на компьютере, [я] не является патентоспособным применением этого принципа». [34]
Приложения
[ редактировать ]Алгоритм Кармаркара использовался армией США для логистического планирования во время войны в Персидском заливе . [1]
Ссылки
[ редактировать ]- Адлер, Илан; Кармаркар, Нарендра; Ресенде, Маурисио Г.К .; Вейга, Джеральдо (1989). «Реализация алгоритма Кармаркара для линейного программирования». Математическое программирование . 44 (1–3): 297–335. дои : 10.1007/bf01587095 . S2CID 12851754 .
- Нарендра Кармаркар (1984). « Новый алгоритм полиномиального времени для линейного программирования », Combinatorica , Vol 4 , nr. 4, с. 373–395.
- ^ Jump up to: а б Аркадий Немировский (2004). Полиномиальные методы внутренней точки в выпуклом программировании .
- ^ Стрэнг, Гилберт (1 июня 1987 г.). «Алгоритм Кармаркара и его место в прикладной математике». Математический интеллект . 9 (2): 4–10. дои : 10.1007/BF03025891 . ISSN 0343-6993 . МР 0883185 . S2CID 123541868 .
- ^ Кармаркар, Н. (1984). «Новый алгоритм линейного программирования с полиномиальным временем» . Материалы шестнадцатого ежегодного симпозиума ACM по теории вычислений - STOC '84 . стр. 302–311. дои : 10.1145/800057.808695 . ISBN 0897911334 . S2CID 13101261 .
- ^ Кармаркар, Н. (1984). «Новый алгоритм линейного программирования с полиномиальным временем». Комбинаторика . 4 (4): 373–395. дои : 10.1007/BF02579150 . S2CID 7257867 .
- ^ Кармаркар, Нарендра К. (1989). «Варианты степенных рядов алгоритмов типа Кармаркара». Технический журнал AT&T . 68 (3): 20–36. дои : 10.1002/j.1538-7305.1989.tb00316.x . S2CID 42071587 .
- ^ Кармаркар, Нарендра (1990). «Внутренний подход к NP-полным задачам. I». Математические разработки, возникающие в результате линейного программирования (Брансуик, Мэн, 1988) . Современная математика. Том. 114. Провиденс, Род-Айленд: Американское математическое общество. стр. 297–308. дои : 10.1090/conm/114/1097880 . МР 1097880 .
- ^ Кармаркар, Нарендра (1990). «Риманова геометрия, лежащая в основе методов внутренних точек линейного программирования». Математические разработки, возникающие в результате линейного программирования (Брансуик, Мэн, 1988) . Современная математика. Том. 114. Провиденс, Род-Айленд: Американское математическое общество. стр. 51–75. дои : 10.1090/conm/114/1097865 . МР 1097865 .
- ^ Кармаркар Н.К., Лагариас Дж.К., Слуцман Л. и Ван П., Варианты степенных рядов алгоритма KarmarkarType, Технический журнал AT&T 68, № 3, май/июнь (1989).
- ^ Кармаркар, Н.К., Методы внутренней точки в оптимизации, Материалы Второй международной конференции по промышленной и прикладной математике, SIAM, стр. 160181 (1991).
- ^ Кармаркар, Н.К. и Камат, А.П., Непрерывный подход к получению верхних границ в задачах квадратичной максимизации с целочисленными ограничениями, Последние достижения в глобальной оптимизации, стр. 125140, Princeton University Press (1992).
- ^ 26. Кармаркар Н.К., Такур С.А., Подход к внутренней точке к задаче тензорной оптимизации с применением к верхним границам в задачах целочисленной квадратичной оптимизации, Материалы второй конференции по целочисленному программированию и комбинаторной оптимизации (май 1992 г.).
- ^ 27. Камат А., Кармаркар Н.К. Непрерывный метод вычисления границ в задачах целочисленно-квадратичной оптимизации, Журнал глобальной оптимизации (1992).
- ^ Кармаркар, Н.К., За пределами выпуклости: новые перспективы в вычислительной оптимизации. Конспекты лекций Springer по информатике LNCS 6457, декабрь 2010 г.
- ^ Вандербей, Р.Дж.; Лагариас, Дж. К. (1990). «Результат сходимости И.И. Дикина для алгоритма аффинного масштабирования». Математические разработки, возникающие в результате линейного программирования (Брансуик, Мэн, 1988) . Современная математика. Том. 114. Провиденс, Род-Айленд: Американское математическое общество. стр. 109–119. дои : 10.1090/conm/114/1097868 . МР 1097868 .
- ^ Роберт Дж. Вандербей ; Мекетон, Марк; Фридман, Барри (1986). «Модификация алгоритма линейного программирования Кармаркара» (PDF) . Алгоритмика . 1 (1–4): 395–407. дои : 10.1007/BF01840454 . S2CID 779577 .
- ^ Алгоритм Кармаркара , IBM Research , получено 1 июня 2016 г.
- ^ Синха Л.П., Фридман Б.А., Кармаркар Н.К., Путча А. и Рамакришнан К.Г., Планирование зарубежных сетей, Материалы Третьего международного симпозиума по сетевому планированию, NETWORKS '86, Тарпон-Спрингс, Флорида (июнь 1986 г.).
- ^ Колата, Джина (12 марта 1989 г.). «ИДЕИ И ТЕНДЕНЦИИ; Математики обеспокоены претензиями к их рецептам» . Нью-Йорк Таймс .
- ^ Различные сообщения Мэтью Зальцмана, Университет Клемсона.
- ^ Гилл, Филип Э.; Мюррей, Уолтер; Сондерс, Майкл А.; Томлин, Дж.А.; Райт, Маргарет Х. (1986). «О методах проецируемого барьера Ньютона для линейного программирования и эквивалентности проективному методу Кармаркара». Математическое программирование . 36 (2): 183–209. дои : 10.1007/BF02592025 . S2CID 18899771 .
- ^ Jump up to: а б Эндрю Чин (2009). «Об абстракции и эквивалентности в патентной доктрине программного обеспечения: ответ Бессену, Мейреру и Клеменсу» (PDF) . Журнал права интеллектуальной собственности . 16 : 214–223.
- ^ Марк А. Пейли (1995). «Патент Кармаркара: почему Конгресс должен «открыть дверь» алгоритмам как патентоспособному объекту». 22 Компьютер Л. Реп.7
- ^ Маргарет Х. Райт (2004). «Революция внутренних точек в оптимизации: история, последние события и долгосрочные последствия» (PDF) . Бюллетень Американского математического общества . 42 : 39–56. дои : 10.1090/S0273-0979-04-01040-7 .
- ^ Марк С. Мекетон; Ю. К. Ченг; диджей Хоук; Ж.М.Лю; Л. Слуцман; Роберт Дж. Вандербей ; П. Ван (1989). «Система AT&T KORBX». Технический журнал AT&T . 68 (3): 7–19. дои : 10.1002/j.1538-7305.1989.tb00315.x . S2CID 18548851 .
- ^ Ловенштейн, Роджер (15 августа 1988 г.). «AT&T продает решение задач, основанное на находке гения-математика, за 8,9 миллиона долларов» (PDF) . Уолл Стрит Джорнал . Архивировано из оригинала (PDF) 8 июня 2016 года . Проверено 30 января 2016 г.
- ^ Маркофф, Джон (13 августа 1988 г.). «Большая AT&T. Компьютер для сложностей» . Нью-Йорк Таймс .
- ^ «Военные — первый заявленный клиент программного обеспечения AT&T» . Ассошиэйтед Пресс . АП Новости . Проверено 11 июня 2019 г.
- ^ Кеннингтон, Дж. Л. (1989). «Использование KORBX для военных воздушных перевозок». Материалы 28-й конференции IEEE по принятию решений и управлению . стр. 1603–1605. дои : 10.1109/CDC.1989.70419 . S2CID 60450719 .
- ^ «Хироши Конно: Патент и программное обеспечение Камаркара - стала ли математика патентоспособной . FFII Архивировано из оригинала 27 июня 2008 г. Проверено 27 июня 2008 г. » .
- ^ 409 США 63 (1972). Дело касалось алгоритма преобразования десятичных чисел в двоичном коде в чисто двоичные.
- ^ 450 США 175 (1981).
- ^ 450 США, 191. См. также Паркер против Флука , 437 US 584, 585 (1978) («открытие новой и полезной математической формулы не может быть запатентовано»).
- ^ 566 США __, 132 S. Ct. 1289 (2012).
- ^ Accord Alice Corp. против CLS Bank Int'l , 573 США __, 134 S. Ct. 2347 (2014).