Programación linearA programación linear é o campo da optimización matemática dedicado a maximizar ou minimizar (optimizar) unha función linear, denominada función obxectivo, de tal xeito que as variables desa función estean suxeitas a unha serie de restricións expresadas mediante un sistema de inecuacións tamén lineares. Os métodos máis empregados para resolver problemas de programación linear son algoritmos de pivote, en particular os algoritmos simplex. Historia da programación linear
O problema da resolución dun sistema linear de inecuacións remóntase, polo menos, a Joseph Fourier, a partir do que nace o método de eliminación de Fourier-Motzkin. A programación linear formúlase como un modelo matemático desenvolvido durante a segunda guerra mundial para planificar os gastos e os retornos, coa finalidade de reducir os custos ao exército e aumentar as perdas do inimigo. Mantívose en segredo ata 1947. Na posguerra, moitas industrias o empregaron na súa planificación diaria. Os fundadores da técnica son George Dantzig, que publicou o algoritmo simplex, en 1947, John von Neumann, que desenvolveu a teoría da dualidade no mesmo ano, e Leonid Kantoróvich, un matemático de orixe rusa, que emprega técnicas similares na economía antes de Dantzig e gañou o Premio Nobel de Economía en 1975. En 1979, outro matemático ruso, Leonid Khachiyan, deseñou o chamado algoritmo do elipsoide, a través do que demostrou que o problema da programación linear é resoluble de xeito eficiente, é dicir, en tempo polinomial.[2] Máis tarde, en 1984, Narendra Karmarkar introduce un novo método do punto interior para resolver problemas de programación linear, o que constituiría un enorme avance nos principios teóricos e prácticos na área. O exemplo orixinal de Dantzig da busca da mellor asignación de 70 persoas a 70 postos de traballo é un exemplo da utilidade da programación linear. A potencia de computación necesaria para examinar todas as permutacións para seleccionar a mellor asignación é inmensa (factorial de 70, 70!) ; o número de posibles configuracións excede ao número de partículas no universo. Non obstante, leva só un momento atopar a solución óptima mediante a formulación do problema como unha programación linear e a aplicación do algoritmo simplex. A teoría da programación linear reduce drasticamente o número de posibles solucións factibles que deben ser revisadas. VariablesAs variables son números reais maiores ou iguais a cero. No caso de que se requira que o valor resultante das variables sexa un número enteiro, o procedemento de resolución denomínase programación enteira. RestriciónsAs restricións poden ser da forma: Tipo 1: Tipo 2: Tipo 3: Onde:
En xeral non hai restricións en canto aos valores de N e M. Pode ser N = M; N > M; ou N < M. Non obstante se as restricións do Tipo 1 son N, o problema pode ser determinado, e pode non ter sentido unha optimización. Os tres tipos de restricións poden darse simultaneamente no mesmo problema. Función ObxectivoA función obxectivo pode ser:
ou
Onde:
Programación enteiraNalgúns casos requírese que a solución óptima se compoña de valores enteiros para algunhas das variables. A resolución deste problema se obtense analizando as posibles alternativas de valores enteiros desas variables nunha veciñanza arredor da solución obtida considerando as variables reais. Moitas veces a solución do programa linear truncado esta lonxe de ser o óptimo enteiro, polo que se fai necesario empregar algún algoritmo para conseguir esta solución de forma exacta. O máis famoso é o método de ramificar e limitar (en inglés, Branch and Bound). Este método parte da adición de novas restricións para cada variable de decisión (limitar) que ao ser avaliada independentemente (ramificar) leva ao óptimo enteiro. AplicaciónsA programación linear constitúe un importante campo da optimización por varias razóns, moitos problemas prácticos da investigación de operacións poden formularse como problemas de programación linear. Algúns casos especiais de programación linear, tales como os problemas de fluxo de redes e problemas de fluxo de mercancías que se consideraron no desenvolvemento das matemáticas o suficientemente importantes como para xerar por eles mesmos moita investigación sobre algoritmos especializados na súa solución. Unha serie de algoritmos deseñados para resolver outros tipos de problemas de optimización constitúen casos particulares da máis ampla técnica da programación linear. Historicamente, as ideas de programación linear inspiraron moitos dos conceptos centrais da teoría de optimización como a dualidade, a descomposición e a importancia da convexidade e as súas xeneralizacións. Do mesmo xeito, a programación linear é moi empregada na microeconomía e na administración de empresas, para aumentar ao máximo os ingresos ou para reducir ao mínimo os custos dun sistema de produción. Algúns exemplos son a mestura de alimentos, a xestión de inventarios, a carteira e a xestión das finanzas, a asignación de recursos humanos e recursos de máquinas, a planificación de campañas de publicidade etc. Outros son:
ExemploEste é un caso curioso, con só 6 variables (un caso real de problema de transporte pode ter facilmente máis de 1000 variables) no que se aprecia a utilidade deste procedemento de cálculo. Existen tres minas de carbón coa seguinte produción diaria:
Na zona hai dúas centrais termoeléctricas que consomen:
Os custos de mercado de transporte por tonelada son:
Se se preguntase aos habitantes da zona como organizar o transporte, talvez a maioría opinaría que debe aproveitarse o prezo ofrecido polo transportista que vai de "a" a "d", porque é máis conveniente cós outros, debido a que é o de prezo máis baixo. Neste caso, o custo total do transporte é:
Non obstante, formulando o problema para ser resolto mediante a programación linear téñense as seguintes ecuacións:
A solución de custo mínimo de transporte diario resulta ser:
120 moedas menos que antes. Notas
Véxase taménOutros artigosBibliografía
|
Portal di Ensiklopedia Dunia