0% encontró este documento útil (0 votos)
125 vistas7 páginas

Programación Lineal

Cargado por

Omar Javier
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
125 vistas7 páginas

Programación Lineal

Cargado por

Omar Javier
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd

Programación lineal

Ir a la navegaciónIr a la búsqueda
Commons-emblem-question book [Link]
Este artículo o sección tiene referencias, pero necesita más para complementar su
verificabilidad.
Este aviso fue puesto el 3 de febrero de 2014.
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.

Índice
1 Historia de la programación lineal
2 Variables
3 Restricciones
4 Función objetivo
5 Existencia de soluciones óptimas
6 Programación entera
7 Aplicaciones
8 Ejemplo
9 Véase también
10 Referencias
11 Enlaces externos
11.1 Bibliografía
Historia de la programación lineal
Cronología1
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. {\displaystyle X_{i}\geq
0}{\displaystyle X_{i}\geq 0}

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: {\displaystyle A_{j}=\sum _{i=1}^{N}a_{i,j}\times X_{i}}{\displaystyle


A_{j}=\sum _{i=1}^{N}a_{i,j}\times X_{i}}

Tipo 2: {\displaystyle B_{j}\leq \sum _{i=1}^{N}b_{i,j}\times X_{i}}{\displaystyle


B_{j}\leq \sum _{i=1}^{N}b_{i,j}\times X_{i}}

Tipo 3: {\displaystyle C_{j}\geq \sum _{i=1}^{N}c_{i,j}\times 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 = 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:

{\displaystyle Max!=\sum _{i=1}^{N}f_{i}\times X_{i}}{\displaystyle Max!=\sum


_{i=1}^{N}f_{i}\times X_{i}}

{\displaystyle Min!=\sum _{i=1}^{N}f_{i}\times X_{i}}{\displaystyle Min!=\sum


_{i=1}^{N}f_{i}\times X_{i}}
Donde:

{\displaystyle f_{i}}{\displaystyle f_{i}} = 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
Progr [Link]
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:
{\displaystyle X_{a\to d}+X_{a\to e}\leq 40}{\displaystyle X_{a\to d}+X_{a\to
e}\leq 40} {\displaystyle [{\mbox{T/dia}}]\,\!}{\displaystyle
[{\mbox{T/dia}}]\,\!}
{\displaystyle X_{b\to d}+X_{b\to e}\leq 40}{\displaystyle X_{b\to d}+X_{b\to
e}\leq 40} {\displaystyle [{\mbox{T/dia}}]\,\!}{\displaystyle
[{\mbox{T/dia}}]\,\!}
{\displaystyle X_{c\to d}+X_{c\to e}\leq 20}{\displaystyle X_{c\to d}+X_{c\to
e}\leq 20} {\displaystyle [{\mbox{T/dia}}]\,\!}{\displaystyle
[{\mbox{T/dia}}]\,\!}
Restricciones del consumo:
{\displaystyle X_{a\to d}+X_{b\to d}+X_{c\to d}\geq 40}{\displaystyle X_{a\to d}
+X_{b\to d}+X_{c\to d}\geq 40} {\displaystyle [{\mbox{T/dia}}]\,\!}
{\displaystyle [{\mbox{T/dia}}]\,\!}
{\displaystyle X_{a\to e}+X_{b\to e}+X_{c\to e}\geq 60}{\displaystyle X_{a\to e}
+X_{b\to e}+X_{c\to e}\geq 60} {\displaystyle [{\mbox{T/dia}}]\,\!}
{\displaystyle [{\mbox{T/dia}}]\,\!}
La función objetivo será:
{\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!}{\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 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
Poliedro convexo
Algoritmo de pivote
Algoritmo simplex
Conjetura de Hirsch
Leonid Kantoróvich
Referencias
Crilly, 2011.
Khachiyan, 1979, pp. 191-194.
Enlaces externos
Programación lineal con Google OR-Tools
Programación lineal entera con Google OR-Tools
Programación lineal mixta con Google OR-Tools
Programación lineal con Solver
Programación lineal con Tora
Programación lineal con 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.
Control de autoridades
Proyectos WikimediaWd Datos: Q202843Commonscat Multimedia: Linear programming
IdentificadoresBNF: 119415380 (data)GND: 4035816-1LCCN: sh85082127NDL:
00570683Microsoft Academic: 41045048Diccionarios y enciclopediasBritannica:
urlIdentificadores médicosMeSH: D011382
Categorías: OptimizaciónInvestigación operativa
Menú de navegación
No has accedido
Discusión
Contribuciones
Crear una cuenta
Acceder
ArtículoDiscusión
LeerEditarVer historial
Buscar
Buscar en Wikipedia
Portada
Portal de la comunidad
Actualidad
Cambios recientes
Páginas nuevas
Página aleatoria
Ayuda
Donaciones
Notificar un error
Herramientas
Lo que enlaza aquí
Cambios en enlazadas
Subir archivo
Páginas especiales
Enlace permanente
Información de la página
Citar esta página
Elemento de Wikidata
Imprimir/exportar
Crear un libro
Descargar como PDF
Versión para imprimir
En otros proyectos
Wikimedia Commons

En otros idiomas
‫العربية‬
English
Français
हिन्दी
Bahasa Indonesia
Português
Русский
‫اردو‬
中文
39 más
Editar enlaces
Esta página se editó por última vez el 31 ago 2021 a las 04:46.
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.
Política de privacidadAcerca de WikipediaLimitación de responsabilidadVersión para
móvilesDesarrolladoresEstadísticasDeclaración de cookiesWikimedia FoundationPowered
by MediaWiki

También podría gustarte