fbpx
Wikipedia

Programación lineal

La programación lineal es el campo de la programación matemática dedicado a maximizar o minimizar (optimizar) una función lineal, denominada función objetivo, de tal forma que las variables de dicha función estén sujetas a una serie de restricciones expresadas mediante un sistema de ecuaciones o inecuaciones también lineales. El método tradicionalmente usado para resolver problemas de programación lineal es el Método Simplex.

Historia de la programación lineal

Cronología[1]
Año Acontecimiento
1826 Joseph Fourier anticipa la programación lineal. Carl Friedrich Gauss
resuelve ecuaciones lineales por eliminación "gaussiana".
1902 Gyula Farkas concibe un método para resolver sistemas de inecuaciones.
1947 George Dantzig publica el algoritmo simplex y
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.
1984 Narendra Karmarkar introduce el método del punto interior para resolver
problemas de programación lineal.

El problema de la resolución de un sistema lineal de inecuaciones se remonta, al menos, a Joseph Fourier, después de quien nace el método de eliminación de Fourier-Motzkin. La programación lineal se plantea como un modelo matemático desarrollado durante la Segunda Guerra Mundial para planificar los gastos y los retornos, a fin de reducir los costos al ejército y aumentar las pérdidas del enemigo. Se mantuvo en secreto hasta 1947. En la posguerra, muchas industrias lo usaron en su planificación diaria.

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.

El ejemplo original de Dantzig de la búsqueda de la mejor asignación de 70 personas a 70 puestos de trabajo es un ejemplo de la utilidad de la programación lineal. La potencia de computación necesaria para examinar todas las permutaciones a fin de seleccionar la mejor asignación es inmensa (factorial de 70, 70!) ; el número de posibles configuraciones excede al número de partículas en el universo. Sin embargo, toma sólo un momento encontrar la solución óptima mediante el planteamiento del problema como una programación lineal y la aplicación del algoritmo simplex. La teoría de la programación lineal reduce drásticamente el número de posibles soluciones factibles que deben ser revisadas.

Variables

Las variables son números reales mayores o iguales a cero.  

En caso que se requiera que el valor resultante de las variables sea un número entero, el procedimiento de resolución se denomina Programación entera.

Por otro lado cuando se requiera que el valor resultante de las variables solo tome 2 Valores (0 , 1) , el procedimiento de resolución se denomina Programación Binaria

Restricciones

Las restricciones pueden ser de la forma:

Tipo 1:  

Tipo 2:  

Tipo 3:  

Donde:

  • A = valor conocido a ser respetado estrictamente;
  • B = valor conocido que debe ser respetado o puede ser superado;
  • C = valor conocido que no debe ser superado;
  • j = número de la ecuación, variable de 1 a M (número total de restricciones);
  • a; b; y, c = coeficientes técnicos conocidos;
  • X = Incógnitas, de 1 a N;
  • i = número de la incógnita, variable de 1 a N.

En general no hay restricciones en cuanto a los valores numéricos de N y M. Puede ser N = M; N > M; o, N < M.

Sin embargo si las restricciones del Tipo 1 son N, el problema puede ser determinado, y puede no tener sentido una optimización.

Los tres tipos de restricciones pueden darse simultáneamente en el mismo problema.

Función objetivo

La función objetivo puede ser:


 

o

 

Donde:

  •   = coeficientes

Existencia de soluciones óptimas

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 inviable. 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:

  • Optimización de la combinación de cifras comerciales en una red lineal de distribución de agua.
  • 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;
  • Solución de problemas de transporte.

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.

Existen tres minas de carbón cuya producción diaria es:

  • La mina "a" produce 40 toneladas por día;
  • La mina "b" produce 40 t/día; y,
  • La mina "c" produce 20 t/día.

En la zona hay dos centrales termoeléctricas que consumen:

  • La central "d" consume 40 t/día de carbón; y,
  • La central "e" consume 60 t/día

Los costos de mercado, de transporte por tonelada son:

  • De "a" a "d" = 2 monedas
  • De "a" a "e" = 11 monedas
  • De "b" a "d" = 12 monedas
  • De "b" a "e" = 24 monedas
  • De "c" a "d" = 13 monedas
  • De "c" a "e" = 18 monedas

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.

En este caso, el costo total del transporte es:

  • Transporte de 40 t de "a" a "d" = 80 monedas
  • Transporte de 20 t de "c" a "e" = 360 monedas
  • Transporte de 40 t de "b" a "e" = 960 monedas
  • Total 1.400 monedas.

Sin embargo, formulando el problema para ser resuelto por la programación lineal se tienen las siguientes ecuaciones:

  • Restricciones de la producción:
   
   
   
  • Restricciones del consumo:
   
   
  • La función objetivo será:
 

La solución de costo mínimo de transporte diario resulta ser:

  • Xb-d = 40 resultando un costo de 12 x 40 = 480 monedas
  • Xa-e = 40 resultando un costo de 11 x 40 = 440 monedas
  • Xc-e = 20 resultando un costo de 18 x 20 = 360 monedas
  • Total 1.280 monedas.

120 monedas menos que antes.

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

Referencias

  1. Crilly, 2011.
  2. Khachiyan, 1979, pp. 191-194.

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.
  •   Datos: Q202843
  •   Multimedia: Linear programming

programación, lineal, este, artículo, sección, tiene, referencias, pero, necesita, más, para, complementar, verificabilidad, este, aviso, puesto, febrero, 2014, programación, lineal, campo, programación, matemática, dedicado, maximizar, minimizar, optimizar, f. Este articulo o seccion tiene referencias pero necesita mas para complementar su verificabilidad Este aviso fue puesto el 3 de febrero de 2014 La programacion lineal es el campo de la programacion matematica dedicado a maximizar o minimizar optimizar una funcion lineal denominada funcion objetivo de tal forma que las variables de dicha funcion esten sujetas a una serie de restricciones expresadas mediante un sistema de ecuaciones o inecuaciones tambien lineales El metodo tradicionalmente usado para resolver problemas de programacion lineal es el Metodo Simplex Indice 1 Historia de la programacion lineal 2 Variables 3 Restricciones 4 Funcion objetivo 5 Existencia de soluciones optimas 6 Programacion entera 7 Aplicaciones 8 Ejemplo 9 Vease tambien 10 Referencias 10 1 BibliografiaHistoria de la programacion lineal EditarCronologia 1 Ano Acontecimiento1826 Joseph Fourier anticipa la programacion lineal Carl Friedrich Gauss resuelve ecuaciones lineales por eliminacion gaussiana 1902 Gyula Farkas concibe un metodo para resolver sistemas de inecuaciones 1947 George Dantzig publica el algoritmo simplex y John von Neumann desarrollo la teoria de la dualidad Se sabe que Leonid Kantorovich tambien formulo la teoria en forma independiente 1984 Narendra Karmarkar introduce el metodo del punto interior para resolver problemas de programacion lineal El problema de la resolucion de un sistema lineal de inecuaciones se remonta al menos a Joseph Fourier despues de quien nace el metodo de eliminacion de Fourier Motzkin La programacion lineal se plantea como un modelo matematico desarrollado durante la Segunda Guerra Mundial para planificar los gastos y los retornos a fin de reducir los costos al ejercito y aumentar las perdidas del enemigo Se mantuvo en secreto hasta 1947 En la posguerra muchas industrias lo usaron en su planificacion diaria Los fundadores de la tecnica son George Dantzig quien publico el algoritmo simplex en 1947 John von Neumann que desarrollo la teoria de la dualidad en el mismo ano y Leonid Kantorovich un matematico de origen ruso que utiliza tecnicas similares en la economia antes de Dantzig y gano el premio Nobel en economia en 1975 En 1979 otro matematico ruso Leonid Khachiyan diseno el llamado Algoritmo del elipsoide a traves del cual demostro que el problema de la programacion lineal es resoluble de manera eficiente es decir en tiempo polinomial 2 Mas tarde en 1984 Narendra Karmarkar introduce un nuevo metodo del punto interior para resolver problemas de programacion lineal lo que constituiria un enorme avance en los principios teoricos y practicos en el area El ejemplo original de Dantzig de la busqueda de la mejor asignacion de 70 personas a 70 puestos de trabajo es un ejemplo de la utilidad de la programacion lineal La potencia de computacion necesaria para examinar todas las permutaciones a fin de seleccionar la mejor asignacion es inmensa factorial de 70 70 el numero de posibles configuraciones excede al numero de particulas en el universo Sin embargo toma solo un momento encontrar la solucion optima mediante el planteamiento del problema como una programacion lineal y la aplicacion del algoritmo simplex La teoria de la programacion lineal reduce drasticamente el numero de posibles soluciones factibles que deben ser revisadas Variables EditarLas variables son numeros reales mayores o iguales a cero X i 0 displaystyle X i geq 0 En caso que se requiera que el valor resultante de las variables sea un numero entero el procedimiento de resolucion se denomina Programacion entera Por otro lado cuando se requiera que el valor resultante de las variables solo tome 2 Valores 0 1 el procedimiento de resolucion se denomina Programacion BinariaRestricciones EditarLas restricciones pueden ser de la forma Tipo 1 A j i 1 N a i j X i displaystyle A j sum i 1 N a i j times X i Tipo 2 B j i 1 N b i j X i displaystyle B j leq sum i 1 N b i j times X i Tipo 3 C j i 1 N c i j X i displaystyle C j geq sum i 1 N c i j times X i Donde A valor conocido a ser respetado estrictamente B valor conocido que debe ser respetado o puede ser superado C valor conocido que no debe ser superado j numero de la ecuacion variable de 1 a M numero total de restricciones a b y c coeficientes tecnicos conocidos X Incognitas de 1 a N i numero de la incognita variable de 1 a N En general no hay restricciones en cuanto a los valores numericos de N y M Puede ser N M N gt M o N lt M Sin embargo si las restricciones del Tipo 1 son N el problema puede ser determinado y puede no tener sentido una optimizacion Los tres tipos de restricciones pueden darse simultaneamente en el mismo problema Funcion objetivo EditarLa funcion objetivo puede ser M a x i 1 N f i X i displaystyle Max sum i 1 N f i times X i oM i n i 1 N f i X i displaystyle Min sum i 1 N f i times X i Donde f i displaystyle f i coeficientesExistencia de soluciones optimas EditarGeometricamente las restricciones lineales definen la region factible que es un poliedro convexo Una funcion lineal es una funcion convexa por lo que un minimo local es un minimo global una funcion lineal es tambien una funcion concava asi que todo maximo local es tambien un maximo global Como las funciones lineales no son ni estrictamente convexas ni estrictamente concavas las soluciones optimas no son necesariamente unicas Si la region factible es acotada y no vacia entonces existira al menos una solucion optima puesto que una funcion lineal es continua y por lo tanto alcanza un maximo en cualquier region cerrada y acotada Sin embargo puede no existir una solucion optima en dos situaciones En primer lugar si la region factible es vacia es decir si ningun punto verifica todas las restricciones entonces el problema es inviable En segundo lugar si la region factible no esta acotada en la direccion del gradiente de la funcion 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 funcion objetivo Programacion entera EditarEn algunos casos se requiere que la solucion optima se componga de valores enteros para algunas de las variables La resolucion de este problema se obtiene analizando las posibles alternativas de valores enteros de esas variables en un entorno alrededor de la solucion obtenida considerando las variables reales Muchas veces la solucion del programa lineal truncado esta lejos de ser el optimo entero por lo que se hace necesario usar algun algoritmo para hallar esta solucion de forma exacta El mas famoso es el metodo de Ramificar y Acotar o Branch and Bound por su nombre en ingles El metodo de Ramificar y Acotar parte de la adicion de nuevas restricciones para cada variable de decision acotar que al ser evaluado independientemente ramificar lleva al optimo entero Aplicaciones EditarLa programacion lineal constituye un importante campo de la optimizacion por varias razones muchos problemas practicos de la investigacion de operaciones pueden plantearse como problemas de programacion lineal Algunos casos especiales de programacion lineal tales como los problemas de flujo de redes y problemas de flujo de mercancias se consideraron en el desarrollo de las matematicas lo suficientemente importantes como para generar por si mismos mucha investigacion sobre algoritmos especializados en su solucion Una serie de algoritmos disenados para resolver otros tipos de problemas de optimizacion constituyen casos particulares de la mas amplia tecnica de la programacion lineal Historicamente las ideas de programacion lineal han inspirado muchos de los conceptos centrales de la teoria de optimizacion tales como la dualidad la descomposicion y la importancia de la convexidad y sus generalizaciones Del mismo modo la programacion lineal es muy usada en la microeconomia la ingenieria y la administracion de empresas ya sea para aumentar al maximo los ingresos o reducir al minimo los costos de un sistema de produccion El aprendizaje de la metodologia programacion lineal es importante en la formacion del ingeniero industrial y el administrador porque le da herramientas para mejorar la toma de decisiones en las empresas lo que llevara a mejorar los procesos de las mismas Algunos ejemplos son la mezcla de alimentos la gestion de inventarios la cartera y la gestion de las finanzas la asignacion de recursos humanos y recursos de maquinas la planificacion de campanas de publicidad etc Otros son Optimizacion de la combinacion de cifras comerciales en una red lineal de distribucion de agua Aprovechamiento optimo de los recursos de una cuenca hidrografica para un ano con afluencias caracterizadas por corresponder a una determinada frecuencia Soporte para toma de decision en tiempo real para operacion de un sistema de obras hidraulicas Solucion de problemas de transporte Ejemplo Editar Este es un caso curioso con solo 6 variables un caso real de problema de transporte puede tener facilmente mas de 1000 variables en el cual se aprecia la utilidad de este procedimiento de calculo Existen tres minas de carbon cuya produccion diaria es La mina a produce 40 toneladas por dia La mina b produce 40 t dia y La mina c produce 20 t dia En la zona hay dos centrales termoelectricas que consumen La central d consume 40 t dia de carbon y La central e consume 60 t diaLos costos de mercado de transporte por tonelada son De a a d 2 monedas De a a e 11 monedas De b a d 12 monedas De b a e 24 monedas De c a d 13 monedas De c a e 18 monedasSi se preguntase a los pobladores de la zona como organizar el transporte tal vez la mayoria opinaria que debe aprovecharse el precio ofrecido por el transportista que va de a a d porque es mas conveniente que los otros debido a que es el de mas bajo precio En este caso el costo total del transporte es Transporte de 40 t de a a d 80 monedas Transporte de 20 t de c a e 360 monedas Transporte de 40 t de b a e 960 monedas Total 1 400 monedas Sin embargo formulando el problema para ser resuelto por la programacion lineal se tienen las siguientes ecuaciones Restricciones de la produccion X a d X a e 40 displaystyle X a to d X a to e leq 40 T dia displaystyle mbox T dia X b d X b e 40 displaystyle X b to d X b to e leq 40 T dia displaystyle mbox T dia X c d X c e 20 displaystyle X c to d X c to e leq 20 T dia displaystyle mbox T dia Restricciones del consumo X a d X b d X c d 40 displaystyle X a to d X b to d X c to d geq 40 T dia displaystyle mbox T dia X a e X b e X c e 60 displaystyle X a to e X b to e X c to e geq 60 T dia displaystyle mbox T dia La funcion objetivo sera 2 X a d 11 X a e 12 X b d 24 X b e 13 X c d 18 X c e M i n displaystyle 2X a to d 11X a to e 12X b to d 24X b to e 13X c to d 18X c to e Min La solucion de costo minimo de transporte diario resulta ser Xb d 40 resultando un costo de 12 x 40 480 monedas Xa e 40 resultando un costo de 11 x 40 440 monedas Xc e 20 resultando un costo de 18 x 20 360 monedas Total 1 280 monedas 120 monedas menos que antes Ahora bien las aplicaciones por ejemplo en productos de combinaciones convexas y desigualdades de Kantorovich pueden ser retratadas de la siguiente forma Sean li y mi i 1 2 N constantes reales y 8i i 1 2 N variables no negativas que satisfagan S8i 1 Se muestra que el problema del extremo N 1 dimensional de encontrar el maximo y minimo globales del producto S8ili S8imi se puede reducir a un problema unidimensional definido en el limite del poligono convexo atravesado por el pares ordenados li mi Para un conjunto dado de li s positivos l1 l2 lN gt 0 la desigualdad de Kantorovich establece que max S8ili S8imi l1 lN 24l1lN y min S8ili S8imi 1 si mi 1li i 1 2 N Se muestra que la nueva tecnica anterior se puede utilizar para identificar exactamente cuanto pueden variar los mi de los valores de Kantorovich mi 1 li sin invalidar los limites de Kantorovich Sea nmax sup x x 1 x Ax x Bx y nmin 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 nmaxnmin k A 1 24k A donde k A es el numero de condicion espectral de A Se muestra que en general nmaxnmin max k A 1 24k A k B 1 24k B Vease tambien EditarPoliedro convexo Algoritmo de pivote Algoritmo simplex Conjetura de Hirsch Leonid KantorovichReferencias Editar Crilly 2011 Khachiyan 1979 pp 191 194 Bibliografia Editar Crilly Tony 2011 50 cosas que hay que saber sobre matematicas 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 Union Biblioteca Central libro numero 0 001245 f12 Programacion lineal Datos Q202843 Multimedia Linear programmingObtenido de https es wikipedia org w index php title Programacion lineal amp oldid 137259472, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos