Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Programación Lineal
Programación Lineal
Los programas lineales son algorismos que pueden ser expresados en su forma canónica como
\begin{array}1}
\text{y} &
donde
s el vector de variables que se desea determinar, Error al representar (error de sintaxis): {\displaystyle
\bold{c}</m\bold{b}<computerson vectores dados (con <cpu>\bold{c}^T</computer> indicando que
los coeficientes de <sistemas>\bold{c}</sistemas> son usados como una matriz de un solo renglón
para que el producto matricial esté definido) y <sistemas>A</cpu> es una matriz dada. La función
cuyo valor se va a maximizar o minimizar (en este caso <sistemas>\login{x}\mapsto\login{c}^\login{x}
</sistems>) es llamada función objetivo. Las igualdades <sistemsp>A\login{x}\ltrue\login{b}</mat> y
<math>\bold{x}\geq\bold{0}}
son las restricciones y forman la región factible o también conocida como
región de factibilidad.
Índice
Historia
Forma estándar
Variables
Forma aumentada (variables de holgura)
Forma no estándar
Teoría
Existencia de soluciones óptimas
Programación entera
Aplicaciones
Ejemplo
Véase también
Referencias
Enlaces externos
Bibliografía
Historia
Cronología1
Año Acontecimiento
Joseph Fourier anticipa la programación lineal. Carl Friedrich Gauss
1826
resuelve ecuaciones lineales por eliminación "gaussiana".
1902 Gyula Farkas concibe un método para resolver sistemas de inecuaciones.
George Dantzig publica el algoritmo simplex y
1947 John von Neumann desarrolló la teoría de la dualidad.
Se sabe que Leonid Kantoróvich también formuló la teoría en forma independiente.
Narendra Karmarkar introduce el método del punto interior para resolver
1984
problemas de programación lineal.
Los fundadores de la técnica son George Dantzig, quien publicó el algoritmo simplex, en 1947, John von
Neumann, que desarrolló la teoría de la dualidad en el mismo año, y Leonid Kantoróvich, un matemático
de origen ruso, que utiliza técnicas similares en la economía antes de Dantzig y ganó el premio Nobel en
economía en 1975. En 1979, otro matemático ruso, Leonid Khachiyan, diseñó el llamado Algoritmo del
elipsoide, a través del cual demostró que el problema de la programación lineal es resoluble de manera
eficiente, es decir, en tiempo polinomial.2 Más tarde, en 1984, Narendra Karmarkar introduce un nuevo
método del punto interior para resolver problemas de programación lineal, lo que constituiría un enorme
avance en los principios teóricos y prácticos en el área.
Forma estándar
La forma más usual e intuitiva de describir un problema de programación lineal es en su forma estándar, el
cual consiste de tres partes:
o simplemente como
Otras formas, como problemas de minimización, problemas con restricciones de otra forma, así como
problemas que involucran variables negativas pueden se escritos mediante un problema equivalente en su
forma estándar.
Variables
El vector tiene como entradas a las variables ( ) y estas son llamadas variables
de decisión; para la forma estándar de un modelo de programación lineal, estas son números reales mayores
o iguales a cero, es decir, .
En caso de que se requiera que el valor resultante de las variables sea un número entero entonces se trata de
un problema de Programación Entera y cuando se requiera que el valor resultante de las variables solo
tome dos valores, por ejemplo, o , entonces se trata de un problema de Programación Binaria
Forma no estándar
La forma estándar de un modelo de programación lineal es cuando se tiene el modelo
Geométricamente, las restricciones lineales definen la región factible, que es un poliedro convexo. Una
función lineal es una función convexa, por lo que un mínimo local es un mínimo global; una función lineal
es también una función cóncava, así que todo máximo local es también un máximo global.
Como las funciones lineales no son ni estrictamente convexas ni estrictamente cóncavas, las soluciones
óptimas no son necesariamente únicas.
Si la región factible es acotada y no vacía, entonces existirá al menos una solución óptima, puesto que una
función lineal es continua y por lo tanto alcanza un máximo en cualquier región cerrada y acotada. Sin
embargo, puede no existir una solución óptima en dos situaciones. En primer lugar, si la región factible es
vacía, es decir, si ningún punto verifica todas las restricciones, entonces el problema es no factible. En
segundo lugar, si la región factible no está acotada en la dirección del gradiente de la función objetivo, el
problema es no acotado, y se pueden encontrar puntos que verifican todas las restricciones y con un valor
tan alto como queramos de la función objetivo.
Programación entera
En algunos casos se requiere que la solución óptima se componga de valores enteros para algunas de las
variables. La resolución de este problema se obtiene analizando las posibles alternativas de valores enteros
de esas variables en un entorno alrededor de la solución obtenida considerando las variables reales.
Muchas
veces la solución del programa lineal truncado está lejos de ser el óptimo entero, por lo que se hace
necesario usar algún algoritmo para hallar esta solución de forma exacta. El más famoso es el método de
'Ramificar y Acotar' o Branch and Bound por su nombre en inglés. El método de Ramificar y Acotar parte
de la adición de nuevas restricciones para cada variable de decisión (acotar) que al ser evaluado
independientemente (ramificar) lleva al óptimo entero.
Aplicaciones
La programación lineal constituye un importante campo de la optimización por varias razones, muchos
problemas prácticos de la investigación de operaciones pueden plantearse como problemas de
programación lineal. Algunos casos especiales de programación lineal, tales como los problemas de flujo de
redes y problemas de flujo de mercancías se consideraron en el desarrollo de las matemáticas lo
suficientemente importantes como para generar por sí mismos mucha investigación sobre algoritmos
especializados en su solución. Una serie de algoritmos diseñados para resolver otros tipos de problemas de
optimización constituyen casos particulares de la más amplia técnica de la programación lineal.
Históricamente, las ideas de programación lineal han inspirado muchos de los conceptos centrales de la
teoría de optimización tales como la dualidad, la descomposición y la importancia de la convexidad y sus
generalizaciones. Del mismo modo, la programación lineal es muy usada en la microeconomía, la
ingeniería y la administración de empresas, ya sea para aumentar al máximo los ingresos o reducir al
mínimo los costos de un sistema de producción. El aprendizaje de la metodología programación lineal es
importante en la formación del ingeniero industrial y el administrador porque le da herramientas para
mejorar la toma de decisiones en las empresas, lo que llevará a mejorar los procesos de las mismas.
Algunos
ejemplos son la mezcla de alimentos, la gestión de inventarios, la cartera y la gestión de las finanzas, la
asignación de recursos humanos y recursos de máquinas, la planificación de campañas de publicidad, etc.
Otros son:
Aprovechamiento óptimo de los recursos de una cuenca hidrográfica, para un año con
afluencias caracterizadas por corresponder a una determinada frecuencia.
Soporte para toma de decisión en tiempo real, para operación de un sistema de obras
hidráulicas;
Ejemplo
Este es un caso curioso, con solo 6
variables (un caso real de problema de
transporte puede tener fácilmente más
de 1000 variables) en el cual se aprecia
la utilidad de este procedimiento de
cálculo.
Si se preguntase a los pobladores de la zona cómo organizar el transporte, tal vez la mayoría opinaría que
debe aprovecharse el precio ofrecido por el transportista que va de "a" a "d", porque es más conveniente
que los otros, debido a que es el de más bajo precio.
Sin embargo, formulando el problema para ser resuelto por la programación lineal se tienen las siguientes
ecuaciones:
Restricciones de la producción:
Ahora bien, las aplicaciones,por ejemplo, en productos de combinaciones convexas y desigualdades (de
Kantorovich) pueden ser retratadas de la siguiente forma:
Sean λi y μi (i = 1,2,…, N) constantes reales y θi (i = 1,2,…, N) variables no negativas que satisfagan Σθi =
1. Se muestra que el problema del extremo (N - 1) -dimensional de encontrar el máximo y mínimo globales
del producto (Σθiλi) (Σθiμi) se puede reducir a un problema unidimensional definido en el límite del
polígono convexo atravesado por el pares ordenados (λi, μi). Para un conjunto dado de λi′s positivos
(λ1⩾λ2⩾ ⋯ ⩾λN> 0), la desigualdad de Kantorovich establece que max {(Σθiλi) (Σθiμi)} = (λ1 + λN)
24λ1λN y min {(Σθiλi) (Σθiμi )} = 1 si μi = 1λi, i = 1,2,…, N. Se muestra que la nueva técnica anterior se
puede utilizar para identificar exactamente cuánto pueden variar los μi de los valores de Kantorovich μi = 1
/ λi sin invalidar los límites de Kantorovich. Sea νmax = sup (x, x) = 1 {(x, Ax) (x, Bx)} y νmin = inf (x, x)
= 1 {(x, Ax) (x, Bx)}, donde x es un vector complejo N-dimensional, y A y B son dos matrices hermitianas
definidas positivas N × N. Para el caso especial en el que B = A-1, la desigualdad de Kantorovich implica
que νmaxνmin = [κ (A) +1] 24κ (A), donde κ (A) es el número de condición espectral de A. Se muestra
que, en general, νmaxνmin⩾max {[κ (A) +1] 24κ (A), [κ (B) +1] 24κ (B)}.
Véase también
Poliedro convexo
Algoritmo de pivote
Algoritmo simplex
Conjetura de Hirsch
Leonid Kantoróvich
Referencias
1. Crilly, 2011.
2. Khachiyan, 1979, pp. 191-194.
Enlaces externos
Programación lineal con Google OR-Tools (https://www.ingenieriaindustrialonline.com/inves
tigacion-de-operaciones/programacion-lineal-en-google-or-tools/)
Programación lineal entera con Google OR-Tools (https://www.ingenieriaindustrialonline.co
m/investigacion-de-operaciones/programacion-lineal-entera-con-google-or-tools/)
Programación lineal mixta con Google OR-Tools (https://www.ingenieriaindustrialonline.co
m/investigacion-de-operaciones/programacion-lineal-mixta-con-google-or-tools/)
Programación lineal con Solver (https://www.ingenieriaindustrialonline.com/investigacion-d
e-operaciones/programacion-lineal-en-solver/)
Programación lineal con Tora (https://www.ingenieriaindustrialonline.com/investigacion-de-o
peraciones/programacion-lineal-en-tora/)
Programación lineal con Lingo (https://www.ingenieriaindustrialonline.com/investigacion-de-
operaciones/programacion-lineal-en-lingo/)
Bibliografía
Crilly, Tony (2011). 50 cosas que hay que saber sobre matemáticas. Ed. Ariel. ISBN 978-987-
1496-09-9.
Khachiyan, L. (1979). A polynomial algorithm in linear programming 20. Soviet Math.
Doklady.
Loomba, N.P. Linear Programming: An introductory analysis. McGraw-Hill, New York, 1964
Universidad Peruana Unión - Biblioteca Central - libro número 0.001245/f12 Programación
lineal.
Obtenido de «https://es.wikipedia.org/w/index.php?title=Programación_lineal&oldid=145811598»
Esta página se editó por última vez el 6 sep 2022 a las 22:22.
El texto está disponible bajo la Licencia Creative Commons Atribución Compartir Igual 3.0;
pueden aplicarse
cláusulas adicionales. Al usar este sitio, usted acepta nuestros términos de uso y nuestra política de privacidad.
Wikipedia® es una marca registrada de la Fundación Wikimedia, Inc., una organización sin ánimo de lucro.