Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Formulacion de Problemas

Descargar como doc, pdf o txt
Descargar como doc, pdf o txt
Está en la página 1de 7

FORMULACIÓN DE LOS PROBLEMAS DE PROGRAMACIÓN LINEAL

El objeto de la programación lineal es optimizar (minimizar o maximizar) una


función lineal de n variables sujeto a restricciones lineales de igualdad o desigualdad.
Más formalmente, se dice que un problema de programación lineal consiste en
encontrar el óptimo (máximo o mínimo) de una función lineal en un conjunto que
puede expresarse como la intersección de un número finito de hiperplanos y
semiespacios en R n .

Considérense las siguientes definiciones.

Definición 1 (Problema de Programación Lineal). La forma más general de


un problema de programación lineal (PPL) consiste en minimizar o maximizar
n
Z  f ( x)  c j x j (1)
j 1
sujeto a
n
 aij x j  bi , i  1, 2, ..., p  1,
j 1
n
 aij x j  bi , i  p, ..., q  1, (2)
j 1
n
 aij x j  bi , i  q, ..., m,
j 1
donde p, q, y m son enteros positivos tales que 1  p  q  m .

Lo que distingue un problema de programación lineal de cualquier otro


problema de optimización es que todas las funciones que en él intervienen son
lineales. Una única función no lineal hace que el problema no pueda clasificarse como
problema de programación lineal. Téngase en cuenta además que se considerará que
los problemas tienen siempre un número finito de restricciones. La función (lineal) en
(1) se denomina función objetivo o función de costo, y es la función que debe
optimizarse. Obsérvese que en (2) se presentan todas las posibles alternativas en lo
que se refiere a los operadores que relacionan los dos términos de las restricciones
(lineales), dependiendo de los valores p y q. Como casos especiales, el problema
puede tener exclusivamente restricciones de igualdad, de desigualdad de un tipo, de
desigualdad del otro tipo, desigualdades de ambos tipos, igualdades y desigualdades,
etc. Salvo que se indique lo contrario, consideraremos problemas de minimización.

Definición 2 (solución factible). Un punto x  ( x1 , x2 , , xn ) que satisface


todas las restricciones (2) se denomina solución factible. El conjunto de todas esas
soluciones es la región de factibilidad.
Definición 3 (solución óptima). Un punto factible y tal que f (x)  f (y ) para
cualquier otro punto factible x se denomina una solución óptima del problema.

El objetivo de los problemas de optimización es encontrar un óptimo global. Sin


embargo, las condiciones de optimalidad sólo garantizan, en general, óptimos locales,
si éstos existen. No obstante, los problemas lineales presentan propiedades que
hacen posible garantizar el óptimo global:
1. Si la región factible está acotada, el problema siempre tiene una solución (ésta
es una condición suficiente pero no necesaria para que exista una solución).
2. El óptimo de un problema de programación lineal es siempre un óptimo global.
3. Si x y y son soluciones óptimas de un problema de programación lineal,
entonces cualquier combinación (lineal) convexa de lo mismos también es una
solución óptima. Obsérvese que las combinaciones convexas de puntos con el
mismo valor de la función de costo presentan el mismo valor de la función de
costo.
4. La solución óptima se alcanza siempre, al menos, en un punto extremo de la
región factible.

Forma estándar

Dado que un PPL puede plantearse de diversas formas, para unificar su


análisis, es conveniente transformarlo en lo que normalmente se llama forma
estándar. A veces, esta transformación ha de realizarse antes de resolver el PPL y
determinar el óptimo. Para describir un PPL en forma estándar son necesarios los tres
elementos siguientes:
1. Un vector c  R n .
2. Un vector no negativo b  R m .
3. Una matriz A  R m n .

Con estos elementos, el problema lineal asociado y en forma estándar tiene la


siguiente forma.
Minimizar Z  cT x , (3)
sujeto a
A x  b, x  0 , (4)
donde c x indica producto escalar de los vectores
T c y x, A x es el producto de la
matriz A y el vector x , y x  0 hace que todas la componentes de los vectores
factibles sean no negativas. Los problemas de programación lineal se estudian
normalmente en esta forma. Típicamente, n es mucho mayor que m .

En resumen, un problema de programación lineal se dice que está en forma


estándar si y sólo si
1. Es de minimización.
2. Sólo incluye restricciones de igualdad.
3. El vector b es no negativo.
4. Las variables x son no negativas.

Antes de analizar el PPL en forma estándar, es conveniente mostrar que


cualquier problema expresado en la forma (1)–(2) también puede expresarse en forma
estándar.

Un problema de programación lineal puede ser escrito en forma estándar


mediante la realización de una serie de manipulaciones algebraicas:
1. Las variables no restringidas en signo se pueden expresar como diferencias de
variables que sí están restringidas en signo, es decir, variables no negativas. Si
algunas (o todas) de las variables no están restringidas en signo, éstas se
pueden expresar mediante sus partes positiva y negativa. Si el número de
variables no restringidas en signo es r , el empleo de la regla anterior supone
la necesidad de utilizar r variables adicionales.
2. Las restricciones de desigualdad pueden convertirse en restricciones
equivalentes de igualdad introduciendo nuevas variables que se denominan
variables de holgura:
a. Si ai1 x1  ai 2 x2    ain xn  bi , entonces, existe una variable xn 1  0 tal
que ai1 x1  ai 2 x2    ain xn  xn 1  bi .
b. Si ai1 x1  ai 2 x2    ain xn  bi , entonces, existe una variable xn 1  0 tal
que ai1 x1  ai 2 x2    ain xn  xn 1  bi .
3. Un problema de maximización es equivalente a uno de minimización sin más
que cambiar el signo de la función objetivo. En particular, maximizar Z max  cT x
es equivalente a minimizar Z min  cT x si ambos problemas han de cumplir las
mismas restricciones. Obsérvese que ambos problemas alcanzan el óptimo en
los mismos puntos, pero Z max   Z min .
4. Una restricción con término independiente b no positivo puede reemplazarse
por otra equivalente cuyo término independiente es no negativo.

Dualidad

Esta sección trata la dualidad en programación lineal, su concepto y significado.


Tras formular el problema dual de un problema de programación lineal, se establece la
relación matemática entre ambos. Se emplean diversos ejemplos para ilustrar el
importante concepto de la dualidad.

Dado un problema de programación lineal, denominado problema primal,


existe otro problema de programación lineal, denominado problema dual,
íntimamente relacionado con él. Se dice que ambos problemas son mutuamente
duales. Bajo ciertas hipótesis, los problemas primal y dual dan lugar al mismo valor
óptimo de la función objetivo, y por tanto se puede resolver indirectamente el problema
primal resolviendo el problema dual. Esto puede suponer una ventaja computacional
relevante.

Definición 4 (Problema dual). Dado el problema de programación lineal


Minimizar Z  cT x ,
sujeto a
A x  b, x  0 ,
su problema dual es:
Maximizar Z  bT y , (5)
sujeto a
AT y  c, y  0 , (6)
T
donde y  ( y1 , y 2 ,  , y m ) se denominan variables duales.

Se denomina al primer problema: problema primal, y al segundo, su dual.


Obsérvese que los mismos elementos (la matriz A , y los vectores b y c ) configuran
ambos problemas. El problema primal no se ha escrito en forma estándar, sino en una
forma que nos permite apreciar la simetría entre ambos problemas, y mostrar así que
el dual del dual es el primal.
Lema 1 (Lema de dualidad débil) Sea P un PPL, y D su dual. Sea x una
solución factible de P e y una solución factible de D. Entonces bT y  cT x .

Ejemplo (Problemas primal y dual del carpintero). Un carpintero modesto


fabrica dos tipos de mesas de madera. Cada mesa del tipo 1 necesita 4 horas de
mecanizado primario (preparación de piezas) y 4 horas de mecanizado secundario
(ensamblado y barnizado). Análogamente, cada mesa del tipo 2 necesita 3 horas de
mecanizado primario y 7 horas de mecanizado secundario. Las disponibilidades
diarias de mecanizados primario y secundario son respectivamente de 40 y 56 horas-
máquina. La venta de una mesa del tipo 1 reporta un beneficio de 70 dólares, mientras
que la venta de una mesa del tipo 2 de 90 dólares. El objeto de este problema es
determinar el número de mesas de cada tipo que han de producirse diariamente para
maximizar el beneficio obtenido.

Este problema puede formularse como un problema de programación lineal:


max Z  70 x1  90 x2
(7)
sujeto a

 4 x1  3 x2  40,

 4 x1  7 x2  56, x1, x2  0,
donde x1 y x2 son las cantidades diarias de mesas a fabricar de los tipos 1 y 2,
respectivamente.

La solución óptima de este problema, establece que han de producirse


diariamente 7 y 4 sillas de los tipos 1 y 2, respectivamente, lo que da lugar a un
beneficio de 850 dólares. Este resultado indica que ambos recursos de mecanizado
(primario y secundario) están plenamente utilizados porque las restricciones
relacionadas con ellos están ambas activas. Por otra parte, considérese que quiere
aumentarse el beneficio diario. Para ello es necesario aumentar la capacidad
productiva. Considérese que la capacidad de mecanizado secundario puede
aumentarse cada día de 56 a 72 horas de máquina. ¿Cómo afecta esta ampliación de
capacidad a los beneficios diarios? La solución puede obtenerse resolviendo el
siguiente problema:
max Z  70 x1  90 x2
(8)
sujeto a

 4 x1  3 x2  40,

 4 x1  7 x2  72, x1, x2  0.
En este caso la solución óptima es x1  4 y x2  8 con un beneficio máximo
diario de 1000 dólares. Esta solución indica que el beneficio diario crece en 150
dólares y la capacidad de mecanizado secundario crece en 72  56  16 horas
máquina. La proporción 1000  850 16  150 16  75 8 dólares, en la cual la función
objetivo crece al crecer la capacidad de mecanizado secundario 1 hora, se denomina
sensibilidad o precio sombra (también precio dual) de la capacidad de mecanizado
secundario. En general el precio sombra de una restricción proporciona el cambio en
el valor de la función objetivo como resultado de un cambio unitario en el término
independiente de la restricción, suponiendo que el resto de parámetros del problema
permanece inalterado. En muchos problemas de programación lineal los precios
sombra son tan importantes como la solución del problema, ya que proporcionan
información sobre el efecto en la función objetivo de cambios en los recursos
disponibles. Los precios sombra pueden obtenerse resolviendo el problema dual.

El problema dual del problema del carpintero se formula a continuación:


min Z  40 y1  56 y2 (9)
sujeto a

 4 y1  4 y2  70,

 3 y1  7 y2  90, y1, y2  0.
La solución óptima de este problema es y1  65 / 8 y y 2  75 / 8 , y el valor óptimo
de la función objetivo es 850. Obsérvese que y1 y y 2 son los precios sombra de las
capacidades de mecanizado primario y secundario, respectivamente, y que los valores
óptimos de la función objetivo de (7) y (9) coinciden. El problema dual (9) puede
interpretarse de la siguiente manera. Considérese que el objetivo es vender tiempo de
mecanizado primario y secundario y supóngase que de esta forma se obtienen al
menos el mismo nivel de beneficios que haciendo mesas. En esta situación vender
tiempo de mecanizado y hacer mesas han de ser actividades igualmente lucrativas.
Las variables y1 y y2 representan los precios de venta de una hora de mecanizados
primario y secundario, respectivamente. Para preservar la competitividad del negocio,
el beneficio diario ha de minimizarse, esto es minimizar la función 40 y1  56 y 2 , donde
40 y 56 representan la disponibilidad diaria en horas de mecanizado primario y
secundario, respectivamente. Las restricciones en (9) establecen que el costo de las
horas de mecanizado primario y secundario para producir una mesa de cada tipo no
debe superar el beneficio que se obtiene por venta de la misma; y que los precios son
cantidades no negativas.

Restricciones

Un PPL se dice que está bien formulado si tiene una solución acotada. Si no
tiene solución es porque está restringido en exceso. Por tanto, para que el problema
esté bien formulado es crucial que las restricciones se elijan adecuadamente. Las
restricciones son el conjunto de condiciones que toda solución candidata a óptima
debe cumplir. Estas condiciones están asociadas a la realidad física, económica o de
ingeniería en la que surge el problema. Este conjunto de restricciones define el
conjunto factible, esto es, el conjunto de soluciones que satisfacen las restricciones.
Este conjunto tiene interés en sí mismo ya que engloba todas las soluciones que son
de interés real y entre las que están las soluciones óptimas.

Hasta el momento la atención se ha centrado en determinar la solución óptima


de una función objetivo cumpliendo un conjunto de restricciones. Esto implica
seleccionar de entre todos los vectores que cumplen las restricciones, aquél que
maximiza la función objetivo. Por tanto, los métodos previamente estudiados sólo
permiten determinar una única solución del problema, según el criterio (de
maximización o minimización) que se establece a partir de la función objetivo. Puesto
que la función objetivo es independiente del conjunto de restricciones, en este capítulo
se trata exclusivamente este conjunto de restricciones. Un conocimiento detallado de
los problemas de programación matemática requiere un conocimiento preciso de las
estructuras de las posibles regiones de factibilidad. Las restricciones a que da lugar un
conjunto de igualdades y desigualdades lineales originan soluciones factibles que
tienen la estructura de espacios vectoriales, conos, politopos y poliedros.

MÉTODOS DE SOLUCIÓN

Los economistas de la antigua Unión Soviética fueron los primeros en aplicar


las técnicas de la programación lineal en la organización y planificación de la
producción. Sin embargo, fue durante la Segunda Guerra Mundial cuando la
programación lineal adquirió importancia. La Fuerza Aérea de los Estados Unidos creó
el proyecto SCOOP (Scientific Computation of Optima Programs) dirigido por G. B.
Dantzig. El método más conocido para resolver problemas de programación lineal, el
método simplex, es debido a Dantzig, quien lo introdujo en 1947. Afortunadamente, el
crecimiento de la capacidad de cálculo de los computadores ha permitido el uso de las
técnicas desarrolladas en problemas de gran dimensión. Durante las últimas décadas
se ha dedicado mucho trabajo e investigación a los problemas de programación lineal
(PPL). Mientras que la implementación del método simplex ha sufrido modificaciones
importantes, los conceptos fundamentales no han variado. Una descripción de la
implementación para computador de este método puede verse, por ejemplo, en la IBM
Optimization Subroutine Library (OSL) [56] o en Kuenzi et al. Para muchos problemas
de programación lineal, el método simplex sigue siendo el mejor. Sin embargo, se han
introducido mejoras diversas, como el método simplex revisado, el dual, o los métodos
primal–dual. Este último trabaja simultáneamente con el primal y el dual. Esto puede
presentar ventajas pues se puede explotar la bien conocida relación entre las
formulaciones primal y dual de un determinado problema (véase, por ejemplo, Forrest
y Tomlin [40]). Aún así, según se indica, por ejemplo, en Press et al.: “There seems to
be no clear-cut evidence that these methods are superior to the usual method by any
factor substantially larger than the ‘tender-loving-care factor’ which reflects the
programming effort of the proponents”. Para la mayoría de los casos el primal es el
método preferido; aunque, en algunos casos especiales, otros métodos pueden dar
mejores resultados.

El método del punto interior (MPI) fue introducido por Karmarkar y es una
alternativa al método simplex (MS) (véase Gill et al.). El método primal–dual ha sido
superado por el método predictor–corrector, que es a su vez una versión modificada
del primal–dual original de Mehrotra. Este método requiere normalmente menos
iteraciones y es el método de punto interior preferido en muchas ocasiones. Al
contrario del MS, que tiene complejidad computacional exponencial, el MPI tiene
complejidad polinómica. En consecuencia, para problemas grandes (más de 2000
restricciones y variables) los métodos del punto interior superan al MS. No obstante, el
MS encuentra una solución en un número finito de pasos, mientras que el MPI no
siempre lo consigue, pues converge asintóticamente a la solución óptima. Si su
robustez está en entredicho, la distinción indicada puede ser determinante.
El método simplex se aplica a un PPL en el formato estándar siguiente:
Minimizar Z  cT x , (10)
sujeto a
A x  b, b  0, x  0 , (11)
donde c = (c1, c2, . . . , cn)T es la matriz columna de los coeficientes de la función
objetivo, x = (x1, x2, . . . , xn)T es el vector columna de las variables iniciales, y A es
una matriz m × n que contiene los coeficientes de las restricciones. El MS genera una
sucesión ordenada de soluciones básicas factibles que progresivamente mejora el
valor de la función objetivo.

El MS opera en dos fases:


1. Una etapa de iniciación en la que
(a) El conjunto inicial de restricciones de igualdad se transforma en otro
equivalente del mismo tipo (restricciones de igualdad), asociado a una
solución básica.
(b) Los valores de las variables básicas se transforman en valores no
negativos (se obtiene así una solución básica factible). Este proceso se
llamará fase de regulación.
2. Una etapa iterativa estándar, en la que los coeficientes de la función objetivo se
transforman en valores no negativos y el valor del costo se mejora
progresivamente hasta que se obtiene la solución óptima, no se detecta
ninguna solución factible, o aparecen soluciones no acotadas. En este proceso
iterativo, se calculan distintas soluciones básicas factibles. Para este fin se usa
la operación elemental de la pivotación.

El MPI opera en tres etapas:


1. Una fase inicial, en que el conjunto original de restricciones de igualdad se
transforma en otro equivalente de restricciones también de igualdad.
2. Una fase de regulación, en que los coeficientes de la función objetivo se
convierten en valores no negativos.
3. Una fase iterativa, en la que el valor de la función objetivo se mejora
progresivamente hasta que se llega a la solución óptima, no se encuentran
puntos factibles, o se establece que el problema es no acotado

También podría gustarte