El algoritmo de Karmarkar , introducido por Narendra Karmarkar en 1984 para resolver problemas de programación lineal , fue el primer algoritmo razonablemente eficiente capaz de resolverlos en tiempo polinomial . El método del elipsoide también es polinomial, pero ha demostrado ser ineficiente en la práctica.
Denotando porel número de variables, m el número de restricciones de desigualdad yel número de bits de entrada al algoritmo, el algoritmo de Karmarkar requiereoperaciones ennúmeros de - dígitos, en comparación contales operaciones para el algoritmo del elipsoide. [ 1 ] En problemas "cuadrados", cuando m está en O( n ), el algoritmo de Karmarkar requiereoperaciones ennúmeros de - dígitos, en comparación contales operaciones para el algoritmo del elipsoide. El tiempo de ejecución del algoritmo de Karmarkar es, por lo tanto, utilizando la multiplicación basada en FFT (ver notación Big O ).
El algoritmo de Karmarkar pertenece a la clase de métodos de punto interior : la estimación actual de la solución no sigue el límite del conjunto factible como en el método simplex , sino que se mueve a través del interior de la región factible, mejorando la aproximación de la solución óptima en una fracción definida con cada iteración y convergiendo a una solución óptima con datos racionales. [ 2 ]
El algoritmo
Consideremos un problema de programación lineal en forma matricial:
El algoritmo de Karmarkar determina la siguiente dirección factible hacia la optimalidad y la reduce por un factor 0 < γ ≤ 1. Se describe en varias fuentes. [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] Karmarkar también ha extendido el método [ 9 ] [ 10 ] [ 11 ] [ 12 ] para resolver problemas con restricciones enteras y problemas no convexos. [ 13 ]
Algoritmo de escalado afín
Dado que el algoritmo real es bastante complicado, los investigadores buscaron una versión más intuitiva del mismo y, en 1985, desarrollaron el escalamiento afín , una versión del algoritmo de Karmarkar que utiliza transformaciones afines donde Karmarkar utilizaba transformaciones proyectivas , solo para darse cuenta cuatro años después de que habían redescubierto un algoritmo publicado por el matemático soviético II Dikin en 1967. [ 14 ] El método de escalamiento afín se puede describir sucintamente de la siguiente manera. [ 15 ] Si bien es aplicable a problemas de pequeña escala, no es un algoritmo de tiempo polinomial. [ 14 ]
Entrada: A, b, c,, criterio de parada , γ .
hacer mientras el criterio de parada no se cumplesientonces devolver un fin sin límites sifin hacer
- " ← " denota asignación . Por ejemplo, " largest ← item " significa que el valor de largest cambia al valor de item .
- " return " finaliza el algoritmo y genera el siguiente valor.
Ejemplo

Consideremos el programa lineal. Es decir, hay 2 variablesy 11 restricciones asociadas con valores variables deEsta figura muestra cada iteración del algoritmo como puntos circulares rojos. Las restricciones se muestran como líneas azules.
Controversia sobre patentes
Cuando inventó el algoritmo, Karmarkar trabajaba para IBM como becario postdoctoral en el Laboratorio de Investigación de IBM en San José , California. El 11 de agosto de 1983, impartió un seminario en la Universidad de Stanford explicando el algoritmo, con su afiliación aún registrada como IBM. En otoño de 1983, Karmarkar comenzó a trabajar en AT&T y presentó su artículo al Simposio ACM de 1984 sobre Teoría de la Computación (STOC, celebrado del 30 de abril al 2 de mayo de 1984), indicando AT&T Bell Laboratories como su afiliación. [ 16 ] Tras aplicar el algoritmo para optimizar la red telefónica de AT&T, [ 17 ] se percataron de que su invención podría tener importancia práctica. En abril de 1985, AT&T solicitó rápidamente una patente para su algoritmo.
La patente se convirtió en un nuevo combustible para la controversia en curso sobre el tema de las patentes de software . [ 18 ] Esto dejó a muchos matemáticos inquietos, como Ronald Rivest (uno de los titulares de la patente del algoritmo RSA ), quien expresó la opinión de que la investigación se basaba en el principio de que los algoritmos debían ser libres. Incluso antes de que se concediera la patente, se argumentó que podría haber habido un estado de la técnica anterior aplicable. [ 19 ] Los matemáticos que se especializaron en análisis numérico , incluidos Philip Gill y otros, afirmaron que el algoritmo de Karmarkar es equivalente a un método de barrera de Newton proyectado con una función de barrera logarítmica , si los parámetros se eligen adecuadamente. [ 20 ] El jurista Andrew Chin opina que el argumento de Gill era erróneo, en la medida en que el método que describen no constituye un "algoritmo", ya que requiere elecciones de parámetros que no se derivan de la lógica interna del método, sino que dependen de una guía externa, esencialmente del algoritmo de Karmarkar. [ 21 ] Además, las contribuciones de Karmarkar se consideran lejos de ser obvias a la luz de todos los trabajos anteriores, incluidos Fiacco-McCormick, Gill y otros citados por Saltzman. [ 21 ] [ 22 ] [ 23 ] La patente fue otorgada en reconocimiento de la originalidad esencial del trabajo de Karmarkar, como patente estadounidense 4,744,028 : "Métodos y aparatos para la asignación eficiente de recursos" en mayo de 1988.
AT&T diseñó un sistema informático multiprocesador vectorial específicamente para ejecutar el algoritmo de Karmarkar, llamando a la combinación resultante de hardware y software KORBX, [ 24 ] y comercializó este sistema a un precio de US$8,9 millones. [ 25 ] [ 26 ] Su primer cliente fue el Pentágono . [ 27 ] [ 28 ]
Los opositores a las patentes de software han argumentado además que las patentes arruinaron los ciclos de interacción positiva que caracterizaban la relación entre los investigadores en programación lineal y la industria, y específicamente aislaron al propio Karmarkar de la red de investigadores matemáticos en su campo. [ 29 ]
La patente expiró en abril de 2006 y el algoritmo actualmente es de dominio público .
La Corte Suprema de los Estados Unidos sostuvo que las matemáticas no pueden ser patentadas en Gottschalk v. Benson , [ 30 ] En ese caso, la Corte abordó primero si los algoritmos informáticos podían ser patentados y sostuvo que no podían porque el sistema de patentes no protege ideas y abstracciones similares. En Diamond v. Diehr , [ 31 ] la Corte Suprema declaró: "Una fórmula matemática como tal no recibe la protección de nuestras leyes de patentes, y este principio no puede ser eludido al intentar limitar el uso de la fórmula a un entorno tecnológico particular. [ 32 ] En Mayo Collaborative Services v. Prometheus Labs., Inc. , [ 33 ] la Corte Suprema explicó además que "simplemente implementar un principio matemático en una máquina física, a saber, una computadora, no es una aplicación patentable de ese principio". [ 34 ]
Aplicaciones
El algoritmo de Karmarkar fue utilizado por el Ejército de los Estados Unidos para la planificación logística durante la Guerra del Golfo . [ 1 ]
Referencias
- Adler, Ilan ; Karmarkar, Narendra; Resende, Mauricio GC ; Veiga, Geraldo (1989). "Una implementación del algoritmo de Karmarkar para programación lineal". Mathematical Programming . 44 ( 1–3 ): 297–335 . doi : 10.1007/bf01587095 . S2CID 12851754 .
- Narendra Karmarkar (1984). " Un nuevo algoritmo de tiempo polinomial para programación lineal " , Combinatorica , vol . 4 , n.º 4, págs. 373-395 .
- 1 2 Arkadi Nemirovsky (2004). Métodos de tiempo polinomial de punto interior en programación convexa .
- ↑ Strang, Gilbert (1 de junio de 1987). " El algoritmo de Karmarkar y su lugar en las matemáticas aplicadas". The Mathematical Intelligencer . 9 (2): 4– 10. doi : 10.1007/BF03025891 . ISSN 0343-6993 . MR 0883185. S2CID 123541868 .
- ↑ Karmarkar, N. (1984). "Un nuevo algoritmo de tiempo polinomial para programación lineal" . Actas del decimosexto simposio anual de la ACM sobre Teoría de la Computación - STOC '84 . págs. 302–311 . doi : 10.1145/800057.808695 . ISBN 0897911334. S2CID 13101261 .
- ↑ Karmarkar, N. (1984). "Un nuevo algoritmo de tiempo polinomial para programación lineal". Combinatorica . 4 (4): 373– 395. doi : 10.1007/BF02579150 . S2CID 7257867 .
- ↑ Karmarkar, Narendra K. (1989). "Variantes de series de potencias de algoritmos tipo Karmarkar". AT&T Technical Journal . 68 (3): 20– 36. doi : 10.1002/j.1538-7305.1989.tb00316.x . S2CID 42071587 .
- ↑ Karmarkar, Narendra (1990). "Un enfoque de punto interior para problemas NP-completos. I". Desarrollos matemáticos derivados de la programación lineal (Brunswick, ME, 1988) . Matemáticas Contemporáneas. Vol. 114. Providence, RI: American Mathematical Society. pp. 297–308 . doi : 10.1090/conm/114/1097880 . ISBN 978-0-8218-5121-0. MR 1097880 .
- ↑ Karmarkar, Narendra (1990). «Geometría riemanniana subyacente a los métodos de punto interior para la programación lineal». Desarrollos matemáticos derivados de la programación lineal (Brunswick, ME, 1988) . Matemáticas Contemporáneas. Vol. 114. Providence, RI: American Mathematical Society. pp. 51–75 . doi : 10.1090/conm/114/1097865 . ISBN 978-0-8218-5121-0. MR 1097865 .
- ↑ Karmarkar NK, Lagarias, JC, Slutsman, L., y Wang, P., Variantes de series de potencias del algoritmo de tipo Karmarkar, AT & T technical Journal 68, No. 3, mayo/junio (1989).
- ↑ Karmarkar, NK, Métodos de punto interior en optimización, Actas de la Segunda Conferencia Internacional sobre Matemáticas Industriales y Aplicadas, SIAM, págs. 160-181 (1991)
- ↑ Karmarkar, NK y Kamath, AP, Un enfoque continuo para derivar límites superiores en problemas de maximización cuadrática con restricciones enteras, Avances recientes en optimización global, págs. 125-140, Princeton University Press (1992).
- ↑ 26. Karmarkar, NK, Thakur, SA, Un enfoque de punto interior para un problema de optimización tensorial con aplicación a límites superiores en problemas de optimización cuadrática entera, Actas de la Segunda Conferencia sobre Programación Entera y Optimización Combinatoria, (mayo de 1992).
- ↑ 27. Kamath, A., Karmarkar, NK, Un método continuo para calcular límites en problemas de optimización cuadrática entera, Journal of Global Optimization (1992).
- ↑ Karmarkar, NK, Más allá de la convexidad: Nuevas perspectivas en optimización computacional. Springer Lecture Notes in Computer Science LNCS 6457, diciembre de 2010
- 1 2 Vanderbei, RJ; Lagarias, JC (1990). "II Resultado de convergencia de Dikin para el algoritmo de escalado afín". Desarrollos matemáticos derivados de la programación lineal (Brunswick, ME, 1988) (PDF) . Matemáticas contemporáneas. Vol. 114. Providence, RI: American Mathematical Society. pp. 109–119 . doi : 10.1090/conm/114/1097868 . ISBN 978-0-8218-5121-0. MR 1097868 .
- ↑ Robert J. Vanderbei ; Meketon, Marc; Freedman, Barry (1986). "Una modificación del algoritmo de programación lineal de Karmarkar" (PDF) . Algorithmica . 1 ( 1–4 ): 395–407 . doi : 10.1007/BF01840454 . S2CID 779577 .
- ↑ "Algoritmo de Karmarkar" . IBM Research. Archivado del original el 3 de agosto de 2016.
- ↑ Sinha LP, Freedman, BA, Karmarkar, NK, Putcha, A., y Ramakrishnan KG, Planificación de redes en el extranjero, Actas del Tercer Simposio Internacional de Planificación de Redes, NETWORKS' 86, Tarpon Springs, Florida (junio de 1986).
- ↑ Kolata, Gina (1989-03-12). "IDEAS Y TENDENCIAS; A los matemáticos les preocupan las afirmaciones sobre sus recetas" . The New York Times .
- ↑ Varias publicaciones de Matthew Saltzman, Universidad de Clemson
- ↑ Gill, Philip E.; Murray, Walter; Saunders, Michael A.; Tomlin, JA; Wright, Margaret H. (1986). "Sobre los métodos de barrera de Newton proyectados para la programación lineal y una equivalencia con el método proyectivo de Karmarkar". Mathematical Programming . 36 (2): 183– 209. doi : 10.1007/BF02592025 . S2CID 18899771 .
- 1 2 Andrew Chin (2009). "Sobre la abstracción y la equivalencia en la doctrina de patentes de software: una respuesta a Bessen, Meurer y Klemens" (PDF) . Revista de Derecho de la Propiedad Intelectual . 16 : 214–223 .
- ↑ Mark A. Paley (1995). "La patente de Karmarkar: por qué el Congreso debería "abrir la puerta" a los algoritmos como materia patentable". 22 Computer L. Rep. 7
- ↑ Margaret H. Wright (2004). "La revolución del punto interior en la optimización: historia, desarrollos recientes y consecuencias duraderas" (PDF) . Boletín de la Sociedad Matemática Americana . 42 : 39–56 . doi : 10.1090/S0273-0979-04-01040-7 .
- ↑ Marc S. Meketon; YC Cheng; DJ Houck; JMLiu; L. Slutsman; Robert J. Vanderbei ; P. Wang (1989). "El sistema AT&T KORBX". AT&T Technical Journal . 68 (3): 7– 19. doi : 10.1002/j.1538-7305.1989.tb00315.x . S2CID 18548851 .
- ↑ Lowenstein, Roger (15 de agosto de 1988). "AT&T comercializa una solución a problemas, basada en el descubrimiento de un genio matemático, por 8,9 millones de dólares" (PDF) . Wall Street Journal . Archivado del original (PDF) el 8 de junio de 2016. Consultado el 30 de enero de 2016 .
- ↑ Markoff, John (13 de agosto de 1988). "La gran AT&T. Computadora para complejidades" . The New York Times .
- ↑ "El ejército es el primer cliente anunciado del software de AT&T" . Associated Press . Noticias de AP . Consultado el 11 de junio de 2019 .
- ↑ Kennington, JL (1989). "Uso de KORBX para aplicaciones de transporte aéreo militar". Actas de la 28.ª Conferencia IEEE sobre Decisión y Control . págs. 1603–1605 . doi : 10.1109/CDC.1989.70419 . S2CID 60450719 .
- ^ "今野浩: カーマーカー特許とソフトウェア – 数学は 特許に なるか (Konno Hiroshi: La patente y el software de Kamarkar: las matemáticas se han convertido ¿Patentable?)" . FFII . Archivado desde el original el 27 de junio de 2008 . Consultado el 27 de junio de 2008 .
- ↑ 409 US 63 (1972). El caso se refería a un algoritmo para convertir números decimales codificados en binario a binario puro.
- ↑ 450 US 175 (1981).
- ↑ 450 US en 191. Véase también Parker v. Flook , 437 US 584, 585 (1978) ("el descubrimiento de una fórmula matemática novedosa y útil no puede ser patentado").
- ↑ 566 US __, 132 S. Ct. 1289 (2012).
- ↑ Véase también Alice Corp. v. CLS Bank Int'l , 573 US __, 134 S. Ct. 2347 (2014).
- Algoritmos y métodos de optimización
- Derecho de patentes de software
- Programación lineal