Кіріспе

Кармаркар алгоритмі – сызықтық бағдарламалау мәселелерін шешу үшін 1984 жылы Нарендра Кармаркар ұсынған алгоритм. Бұл мәселелерді полиномиалдық уақыт ішінде шешетін алғашқы тиімді алгоритм болды. Эллипсоидтық әдіс те полиномиалдық уақытта жұмыс істейді, бірақ тәжірибеде тиімсіз екені дәлелденді. Айнымалылардың санымен *n*, теңсіздік шектеулерінің санымен *m*, ал алгоритмге берілетін деректердің биттерінің санымен *L* белгіленсе, Кармаркар алгоритмі *n* таңбалы сандармен операцияларды қажет етеді, ал эллипсоидтық алгоритмге осындай операциялар қажет. «Төртбұрышты» мәселелерде, яғни *m* саны *O(n)*-ге тең болғанда, Кармаркар алгоритмі *n* таңбалы сандармен операцияларды қажет етеді, ал эллипсоидтық алгоритмге осындай операциялар қажет. Сондықтан Кармаркар алгоритмінің жұмыс істеу уақыты FFT-негізді көбейтуді пайдалана отырып (үлкен О белгісін қараңыз) анықталады. Кармаркар алгоритмі ішкі нүктелік әдістер класына жатады: шешімнің ағымдағы шамасы симплекс әдісіндегідей мүмкін болатын жиынның шекарасы бойынша емес, мүмкін болатын аймақтың ішінде жылжиды, әр итерацияда оңтайлы шешімге жақындауды нақты үлеспен жақсартады және рационалды деректермен оңтайлы шешімге жуықсады.

Патент даулары

Алгоритмді ойлап тапқан кезде Кармаркар Калифорниядағы IBM San Jose Research Laboratory-де IBM-нің докторантурадан кейінгі ғылыми қызметкері ретінде жұмыс істеді. 1983 жылдың 11 тамызында ол Стенфорд университетінде алгоритмді түсіндіретін семинар өткізді, онда оның қызмет орны әлі де IBM деп көрсетілген. 1983 жылдың күзінде Кармаркар AT&T компаниясында жұмыс істей бастады және 1984 жылғы ACM Компьютерлік теория бойынша симпозиумына (STOC, 30 сәуір – 2 мамыр, 1984) өзінің жұмысын тапсырды, онда AT&T Bell Laboratories-ті өзінің ұйымы ретінде көрсетті. Алгоритмді AT&T телефон желісін оңтайландыру үшін қолданғаннан кейін, олар оның өнертабысының практикалық маңызы болуы мүмкін екенін түсінді. 1985 жылдың сәуірінде AT&T компаниясы оның алгоритміне патент алуға дереу өтініш берді. Бұл патент бағдарламалық қамтамастың патенттелуіне қатысты дауды одан әрі қыздырды. Бұл көптеген математиктерді алаңдатты, мысалы, Рональд Ривест (RSA алгоритмінің патентінің иегерлерінің бірі), ол зерттеулер алгоритмдердің тегін болуы керек деген принципке негізделуі керек деп мәлімдеді. Патенттің берілуіне дейін, бұрынғы өнертабыстардың болуы мүмкін екені айтылды. Сандық талдау саласындағы мамандар, соның ішінде Филип Гилл және басқалар, Кармаркар алгоритмінің параметрлер дұрыс таңдалған жағдайда, логарифмдік кедергі функциясы бар Ньютонның проекциялық кедергі әдісіне тең екенін мәлімдеді. Заң ғалымы Эндрю Чин Гиллдің аргументінің дұрыс еместігін айтады, себебі олар сипаттаған әдіс "алгоритм" болып табылмайды, өйткені ол әдістің ішкі логикасынан туындамайтын параметрлерді таңдауды қажет етеді, бірақ сыртқы басшылыққа, негізінен Кармаркар алгоритміне сүйенеді. Сонымен қатар, Кармаркардың үлесі Saltzman сипаттаған Фиакко МакКормик, Гилл және басқалардың барлық бұрынғы жұмыстарына қарағанда айқын емес деп есептеледі. Патент АҚШ Сенатында талқыланды және 1988 жылдың мамырында Кармаркардың жұмысының ерекше түпнұсқалығын мойындау үшін "Қоралдарды тиімді бөлу әдістері мен құралдары" ретінде берілді. AT&T компаниясы Кармаркар алгоритмін орындау үшін арнайы векторлық көппроцессорлық компьютерлік жүйені жасады, нәтижесінде аппараттық және бағдарламалық қамтамастың комбинациясын KORBX деп атады және бұл жүйені 8,9 миллион АҚШ долларына сатты. Оның алғашқы тұтынушысы Пентагон болды. Бағдарламалық қамтамастың патенттелуіне қарсылар патенттер бұрын сызықтық бағдарламалау және өнеркәсіптегі зерттеушілер арасындағы оң өзара әрекеттесу циклдарын бұзды және Кармаркарды оның саласындағы математикалық зерттеушілер желісінен оқшаулады деп мәлімдеді. Патент 2006 жылдың сәуірінде қолданылу мерзімі бітті және алгоритм қазір жалпыға қолжетімді. АҚШ Жоғарғы Соты Gottschalk v. Benson ісінде математиканы патенттеуге болмайды деп шешті. Бұл істе, Сот компьютерлік алгоритмдерді патенттеуге бола ма деген мәселені алдымен қарастырды және олар патент жүйесі идеялар мен ұқсас абстракцияларды қорғамайтындықтан патенттеуге болмайды деп шешті. Diamond v. Diehr ісінде Жоғарғы Сот былай деді: "Математикалық формула өзінің қорғауын біздің патенттік заңдарымыздан алмайды, және бұл принципті формуланың қолданылуын белгілі бір технологиялық ортамен шектеу арқылы айналып өтуге болмайды." Mayo Collaborative Services v. Prometheus Labs, Inc. ісінде Жоғарғы Сот одан әрі түсіндірді: "Математикалық принцитті физикалық машинада, яғни компьютерде жүзеге асыру, бұл принципті патенттеуге жатпайды."

Қолданбалар

Кармаркар алгоритмі АҚШ армиясы Ғылыми-техникалық прогресс кезінде логистикалық жоспарлау үшін пайдаланылды.