Archivo de la etiqueta: forma estándar

Investigación de Operaciones: Forma canónica y forma estándar de un problema lineal (9)

Por Aldo Romero

Introducción

En las entradas anteriores hemos dado ejemplos de varios problemas de aplicación que pueden ser planteados mediante un problema de programación lineal. Una vez que llegamos a un modelo, se pueden tener restricciones de los tipos $\leq$, $=$ y $\geq$. Además, puede haber restricciones de signo sobre las variables. Puede que se les pida ser no positivas, no negativas o irrestrictas (no restringidas) en signo. Lo que haremos ahora es recordar forma estándar y forma canónica de un problema lineal; y como pasar de un formato a otro.

Forma canónica de un problema lineal

Definición. Se dice que un problema de programación lineal está en forma canónica si cumple las siguientes tres propiedades:

  1. Las variables de decisión son todas no negativas ($x_i \geq 0$).
  2. El problema es de maximización ($Max \quad z = c_1x_1+\ldots+c_nx_n$).
  3. Las restricciones del problema son todas del tipo $\leq$ ($a_{i1}x_1+ \ldots + a_{in}x_n \leq b_i$).

Tenemos entonces que un problema en forma canónica se ve de la siguiente manera:

\begin{align*}
Max \quad z &= c_1x_1+\ldots+c_nx_n\\
s.a.&\\
&\begin{matrix} a_{11}x_1 + a_{12}x_2 + \ldots + a_{1n}x_n \leq b_1\\
a_{21}x_1+a_{22}x_2+\ldots + a_{2n}x_n \leq b_2\\
\vdots \\
a_{m1}x_1+a_{m2}x_2+\ldots+a_{mn}x_n\leq b_n\end{matrix}\\
& x_1\geq 0, x_2\geq 0, \ldots, x_n\geq 0.
\end{align*}

En términos matriciales, esto podemos reescribirlo de manera mucho más compacta como sigue:

\begin{align*}
Max \quad z &= cx\\
s.a.&\\
Ax &\leq b\\
x &\geq \bar 0,\\
\end{align*}

en donde:

  • $c=(c_1,\ldots,c_n)\in \mathbb R^n$ es el vector de costos (vector fila)
  • $x = (x_1,\ldots,x_n)\in \mathbb R^n$ es el vector de variables de decisión (vector columna),
  • $A=[a_{ij}]$ es la matriz de restricciones, que es una matriz de $m \times n$ y
  • $b = (b_1,\ldots,b_m) \in \mathbb R^m$ es el vector de términos independientes o vector de recursos (vector columna),
  • Entendemos $\bar{0}$ como el vector en $\mathbb{R}^n$ cuyas entradas son todas cero (vector fila o vector columna según sea el caso).

Dado un problema de programación lineal, este siempre se puede ser expresar en su forma canónica; es decir, puede definirse un problema en forma canónica equivalente a él. Esta expresión del problema nos ayuda a resolverlo con métodos de solución que veremos más adelante, pero que requieren que el problema esté en su forma canónica.

A continuación de presenta una serie de posibilidades que podria tener un problema de programación lineal formulado y qué se debe de hacer para que cumpla las condiciones para pasarlo a su forma estándar.

  • Para una variable negativa ($x_i\leq 0$), se puede sustituir por una nueva variable $x_i’$ definida como $x_i’ = -x_i$, siendo ahora $x_i’ \geq 0$. El valor de $x_i$ está directamente relacionado con el valor de $x_i’$ ya que es su opuesto negativo.
  • Para una variable $x_i$ sin restricción de signo (SRS), se pueden definir dos variables no negativas $x_i’$ y $x_i»$ tales que el resultado de su resta sea $x_i$ ($x_i = x_i’-x_i$»). Dada cualquier $x_i$, podemos construir dichas variables, y así mismo; dadas cualesquiera $x_i’$ y $x_i»$, se puede construir $x_i$.
  • Si el problema formulado es a minimizar ($Min \quad z = c_1x_1+\ldots+c_nx_n$), puede considerarse en vez de la función $z$, su opuesta negativa $z’$ (es decir, $z’ = -z$). Así, minimizar la función $z$ equivale a maximizar la función $z’$ ($Max \quad z’ = -c_1x_1 – \ldots -c_nx_n$).
  • Si dada una restricción, esta es del tipo $\geq$ ($a_{i1}x_1+ \ldots + a_{in}x_n \geq b_i$), se pueden multiplicar ambos lados de la restricción por un $-1$ para que la desigualdad se invierta y nos quede una restricción del tipo $\leq$ ($-a_{i1}x_1- \ldots – a_{in}x_n \leq -b_i$).
  • Una ecuación ($a_{i1}x_1+ \ldots + a_{in}x_n = b_i$) puede ser substituida por dos desigualdades, una del tipo $\leq$ ($a_{i1}x_1+ \ldots + a_{in}x_n \leq b_i$) y otra del tipo $\geq$ ($a_{i1}x_1+ \ldots + a_{in}x_n \geq b_i$). Luego, la ecuación del tipo $\geq$ puede se multiplica de ambos lados por un $-1$ para que sea una ecuación del tipo $\leq$ ($-a_{i1}x_1 – \ldots -a_{in}x_n \leq -b_i$).

Ejemplo 1 de pasar un problema a forma canónica

Transformemos el siguiente problema a su forma canónica:
\begin{align*}
Min \quad z &= 3x_1-x_2\\
s.a&\\
&\begin{matrix}2x_1&+x_2& \leq 50\\
-x_1&+3x_2& \geq 20\end{matrix}\\
& x_1\geq 0, x_2 \leq 0\\
\end{align*}

Primero, observemos que la primera condición se cumple para la variable $x_1$, pero para $x_2$ no ya que $x_2 \geq 0$. Entonces definimos $x_2′ = -x_2$ y de esa manera, $x_2′ \leq 0$.

Ahora, la segunda condición nos dice que el problema tiene que ser de maximización y en este momento es de minimización. Para transformar nuestro problema a uno de maximización solo tenemos que invertir el signo de la función objetivo, ya que el minimizar la primera función ($z$) es equivalente a maximizar la función negativa ($-z$).

$$Max \quad z = -3x_1 + x_2$$

Y por último verifiquemos que se cumpla la tercera condición. La primera restricción claramente es del tipo $\leq$, pero la segunda restricción no es del tipo $\leq$ sino que es del tipo $\geq$. A esta restricción se le puede multiplicar por -1 de ambos lados y se convierte en una restricción del tipo $\leq$.

\begin{matrix}2x_1&+x_2& \leq 50\\
x_1&-3x_2& \leq -20\end{matrix}

Entonces nuestro problema ya cumple las 3 condiciones y podemos decir que está en forma canónica:

\begin{align*}
Max \quad z &= -3x_1 + x_2\\
&s.a\\
&\begin{matrix}2x_1&+x_2& \leq& 50\\
x_1&-3x_2& \leq& -20\end{matrix}\\
& x_1, x_2\geq 0\\
\end{align*}

Ejemplo 2 de pasar un problema a forma canónica

Transformemos el siguiente problema a su forma canónica.

\begin{align*}
Max \quad z &= 2x_1 + 5x_2 -3x_3\\
&s.a\\
&\begin{matrix}-x_1&+2x_2&-4x_3 =& -9\\
3x_1&+x_2&-5x_3 \geq& 10\\
4x_1&-6x_2&+7x_3 \geq& 2\\
\end{matrix}\\
& x_1, x_2\geq 0, \quad x_3 \quad SRS\\
\end{align*}

Primero observemos que la primera condición se cumple para $x_1$ y $x_2$ pero $x_3$ está sin restricción de signo, por lo que vamos a definir $x_3’$ y $x_3″$ no negativos tales que $x_3 = x_3′- x_3″$.

Ahora, observemos que el problema ya es de maximización. Lo único que haremos es sustituir la variable $x_3$ que acabamos de re definir:

$$Max \quad z = 2x_1 + 5x_2 – 3x_3′ + 3x_3″$$

Y por último, para cumplir la tercera restricción tenemos que hacer a todas nuestras restricciones del tipo $\leq$.

Para la primera restricción, primero sustituimos la variable $x_3$ en términos de $x_3’$ y $x_3″$:

$$-x_1 + 2x_2 – 4x_3′ + 4x_3″ = -9$$

Y dado que es una igualdad, la podemos sustituir por dos desigualdades. Estas son:

\begin{matrix}-x_1&+2x_2&-4x_3’& + 4x_3″& \leq -9\\
-x_1&+2x_2& -4x_3’& +4x_3″& \geq -9\end{matrix}

La primera de estas dos nuevas restricciones ya es del tipo $\leq$, pero la segunda es del tipo $\geq$, por lo que lo único que hay que hacer es multiplicar por $-1$ de cada lado para que la desigualdad se invierta y la restricción sea del tipo $\leq$:

\begin{matrix}-x_1&+2x_2&-4x_3’& + 4x_3″& \leq -9\\
x_1&-2x_2& +4x_3’& -4x_3″& \leq 9\end{matrix}

Para la segunda y tercera restricción del problema original, primero sustituimos a variable $x_3$ en términos de $x_3’$ y $x_3″$:

\begin{matrix}3x_1&+x_2&-5x_3’& + 5x_3″& \geq 10\\
4x_1&-6x_2& +7x_3’& -7x_3″& \geq 2\end{matrix}

Y luego transformamos estas restricciones en restricciones del tipo \leq como acabamos de hacer.

\begin{matrix}-3x_1&-x_2&+5x_3’& -5x_3″& \leq -10\\
-4x_1&+6x_2& -7x_3’& +7x_3″& \leq -2\end{matrix}

Y así, juntando todo, el problema quedaría planteado de la siguiente manera:

\begin{align*}
Max \quad z = 2x_1 + 5x_2 – 3x_3′ + 3x_3″\\
\begin{matrix}-x_1&+2x_2&-4x_3’& + 4x_3″& \leq -9\\
x_1&-2x_2& +4x_3’& -4x_3″& \leq 9\\
3x_1&-x_2&+5x_3’& -5x_3″& \leq -10\\
-4x_1&+6x_2& -7x_3’& +7x_3″& \leq -2\end{matrix}\\
x_1, x_2, x_3′, x_3″ \geq 0\\
\end{align*}

Y así este segundo problema quedaría en su forma canónica.

Forma estándar de un problema lineal

Definición. Se dice que un problema de programación lineal está en forma estándar si

  1. Todas las variables son no negativas.
  2. Todas las restricciones son ecuaciones.
  3. Todos los elementos del vector de recursos son no negativos

De esta manera, un problema en forma estándar se ve como sigue:

\begin{align*}
Max\, (\text{o } Min) \quad z &= c_1x_1+\ldots+c_nx_n\\
s.a.&\\
&\begin{matrix} a_{11}x_1 + a_{12}x_2 + \ldots + a_{1n}x_n = b_1\\
a_{21}x_1+a_{22}x_2+\ldots + a_{2n}x_n = b_2\\
\vdots \\
a_{m1}x_1+a_{m2}x_2+\ldots+a_{mn}x_n= b_n\\
x_1\geq 0, x_2\geq 0, \ldots, x_n\geq 0.
\end{matrix}\\
\end{align*}

En notación matricial, el problema en forma canónica queda expresado de la siguiente manera:

\begin{align*}
Max\, (\text{o } Min) \quad z &= c^tx\\
s.a.&\\
Ax &= b\\
x &\geq \bar 0\\
\end{align*}

en donde $c, x, A$ y $b \geq \bar 0$ son como se mencionó antes.

Así como cualquier problema de programación lineal puede ser escrito en su forma canónica, así también cualquier problema de programación lineal puede ser escrito en forma estándar.

Aparte de las indicaciones anteriores que dimos para pasar un problema a su forma canónica, daremos una indicación de qué hacer cuando tenemos una desigualdad y queremos convertirla en igualdad:

  • Si tenemos una restricción del tipo $\leq$ ($a_{i1}x_1+ \ldots + a_{in}x_n \leq b_i$), definiremos una variable de holgura no negativa $x_{n+1}$ tal que $a_{i1}x_1+ \ldots + a_{in}x_n + x_{n+1} = b_i$.
  • Si tenemos una restricción del tipo $\geq$ ($a_{i1}x_1+ \ldots + a_{in}x_n \geq b_i$), definiremos una variable de holgura no negativa $x_{n+1}$ tal que $a_{i1}x_1+ \ldots + a_{in}x_n – x_{n+1} = b_i$.

Ejemplo 1 de pasar un problema a forma estándar

Retomemos el primer ejemplo, antes de expresarlo en forma estándar.

\begin{align*}
Min \quad z &= 3x_1-x_2\\
s.a&\\
&\begin{matrix}2x_1&+x_2& \leq 50\\
-x_1&+3x_2& \geq 20 \end{matrix}\\
& x_1 \geq 0, x_2 \leq 0\\
\end{align*}

Observemos que la primera condición se cumple para la variable $x_1$, pero para $x_2$ no ya que $x_2 \geq 0$. Entonces definimos $x_2′ = -x_2$ y de esa manera, $x_2′ \leq 0$.

Para la función objetivo, solo hay que sustituir $x_2$ en términos de $x_2’$, ya que recordemos la función puede ser a maximizar o minimizar:

$$Min \quad z = 3x_1+x_2’$$

Para cumplir la segunda condición, debemos añadir variables de holgura a las restricciones que son desigualdades como se acaba de mencionar. En la primera restricción, se define un variable no negativa $x_3$ tal que $2x_1+x_2 +x_3 = 50$. En la segunda restricción, se define una variable no negativa $x_4$ tal que $-x_1+3x_2 -x_4 = 20$

Y la tercera condición se cumple, ya que 50 y 20 son no negativos.

Así, juntando todos estos cambios, la forma estándar de este problema quedaría de la siguiente manera:

\begin{align*} Min \quad z &= 3x_1+x_2’\\
s.a&\\
&\begin{matrix}2x_1&+x_2& +x_3 = 50\\
-x_1&+3x_2& -x_4 = 20 \end{matrix}\\
& x_1, x_2′ \geq 0\\
\end{align*}

Ejemplo 2 de pasar un problema a forma estándar

Retomemos el segundo ejemplo, antes de expresarlo en forma estándar.

\begin{align*}
Max \quad z &= 2x_1 + 5x_2 -3x_3\\
&s.a\\
&\begin{matrix}-x_1&+2x_2&-4x_3 =& -9\\
3x_1&+x_2&-5x_3 \geq& 10\\
4x_1&-6x_2&+7x_3 \geq& 2\\
\end{matrix}\\
& x_1, x_2\geq 0, \quad x_3 \quad SRS\\
\end{align*}

Para la primera condición, las variables $x_1$ y $x_2$ cumplen con la no negatividad. La variable $x_3$ en cambio es una variable sin restricción de signo (SRS), por lo que, como se hizo anteriormente, definiremos variables no negativas $x_3’$ y $x_3″$ tales que $x_3 = x_3′ – x_3″$. En la función objetivo solo reemplazamos $x_3$ en términos de $x_3’$ y $x_3″$:

$$Max \quad z = 2x_1 + 5x_2 -3x_3′ + x_3″$$

La primera restricción ya cumple la segunda condición, por lo que solo hay que sustituir a $x_3$.

$$-x_1 +2x_2 -4x_3′ +4x_3″ = -9$$

En la segunda restricción definimos una variable de holgura no negativa $x_4$ tal que $3x_1 +x_2 -5x_3 -x_4 = 10$. Y sustituimos $x_3$ de igual forma:

$$3x_1 +x_2 -5x_3′ + 5x_3″ -x_4 = 10$$

Y para la tercera restricción definimos una variable de holgura no negativa $x_5$ tal que $4x_1-6x_2+7x_3 -x_5 = 2$. Y también sustituimos $x_3$:

$$4x_1-6x_2+7x_3′ – 7x_3″ -x_5 = 2$$

Y por último, la única restricción que no cumple la tercera condición es la primera, por lo que multiplicamos la ecuación por $-1$ para invertir el signo del valor independiente y sea no negativo:

$$x_1 -2x_2 +4x_3′ -4x_3″ = 9$$

Por lo que, juntando los cambios anteriores, la forma estándar de este problema sería la siguiente:

\begin{align*}
Max \quad z &= 2x_1 + 5x_2 -3x_3′ + 3x_3″\\
&s.a\\
&\begin{matrix}x_1&-2x_2&+4x_3’&-4x_3″& =& 9\\
3x_1&+x_2&-5x_3’& +5x_3″& -x_4& = 10\\
4x_1&-6x_2&+7x_3’& -7x_3″& -x_5& = 2\\
\end{matrix}\\
& x_1, x_2, x_3′, x_3″,x_4, x_5\geq 0\\
\end{align*}

Más adelante…

Las formas que estudiamos en esta entrada nos ayudarán posteriormente para plantear soluciones para problemas de programación lineal.

Mientras tanto, en la siguiente entrada hablaremos de otros conceptos relativos a la teoría de problemas lineales y propiedades que puede tener una asignación de variables. Recordaremos también lo que es una solución básica, una solución factible y un punto extremo para un problema lineal.

Tarea moral

  1. ¿Cuál sería la forma canónica del problema de maximizar $x+3y$ sujeto a $x-y\leq 8$ y $x + y \leq 0$, con $x \geq 0, y \quad \text{SRS}$? ¿Y su forma estándar?
  2. Transforma el siguiente problema de programación lineal a su forma canónica y a su forma estándar:
    \begin{align*}
    Max \quad z &= -2x_1 + 3x_2 – 2x_3\\
    &s.a.\\
    &\begin{matrix}4x_1 &-x_2 &- 5x_3 &=& 10\\
    2x_1 &+ 3x_2 &+ 2x_3 &\geq &12\end{matrix}\\
    & x_1 \leq 0, \quad x_2 \geq 0, x_3 \quad SRS.
    \end{align*}
  3. Encontrar la solución a la forma estándar (y también la canónica) de un problema de programación lineal es equivalente a encontrar la solución al problema original. ¿Porqué crees que se da esto? Justifica con tus propias palabras.

Respuestas

1.- \begin{align*}
Max \quad z &= x + 3y\\
&s.a\\
x-y &\geq -8\\
x+y &\leq 15 \\
x &\geq 0, y \quad SRS\\
\end{align*}

Primero, vamos a pasar el problema a su forma canónica.

Notemos que $x$ es no negativa. Sin embargo, $y$ es una variable sin restricción de signo, por lo que definimos variables no negativas $y’$ y $y»$ tales que $y = y’ – y»$

Sustituimos $y$ en la función objetivo que ya es a maximizar:

$$Max \quad z = x + 3y’ -3y»$$

Ahora, la segunda restricción ya es del tipo \leq, pero la primera restricción no, por lo que multiplicamos por $-1$ ambos lados de la desigualdad para invertirla y que ya sea del tipo $\leq$.

Juntando todo tenemos el problema en su forma canónica:

\begin{align*}
Max \quad z &= x + 3y’ – 3y»\\
&s.a\\
-x+y’+y» &\leq 8\\
x+y’+y» &\leq 15 \\
x,y’,y» &\geq 0\\
\end{align*}

Para la forma estándar solo hay que hacer cambios en las restricciones. Para la primera restricción definimos una variable de holgura no negativa $z_1$ tal que $-x+y’+y» +z_1 = 8$. Para la segunda restricción definimos una variable de holgura no negativa $z_2$ tal que $x+y’+y» +z_2 = 15$.

Entonces el problema en su forma estándar sería de la siguiente manera:

\begin{align*}
Max \quad z &= x + 3y’ – 3y»\\
&s.a\\
-x+y’+y» +z_1 &= 8\\
x+y’+y» +z_2 &= 15 \\
x,y’,y»,z_1,z_2 &\geq 0\\
\end{align*}

2.- \begin{align*}
Max \quad z &= -2x_1 + 3x_2 – 2x_3\\
&s.a.\\
&\begin{matrix}4x_1 &-x_2 &- 5x_3 &=& 10\\
2x_1 &+ 3x_2 &+ 2x_3 &\geq &12\end{matrix}\\
& x_1 \leq 0, \quad x_2 \geq 0, x_3 \quad SRS
\end{align*}

Primero vamos a expresar el problema en su forma estándar.

La variable $x_2$ ya es no negativa. La variable $x_1$ es no positiva por lo que definimos $x_1’$ tal que $x_1′ = -x_1$. $x_3$ es una variable sin restricción de signo, por lo que definimos variables no negativas $x_3’$ y $x_3″$ tal que $x_3= x_3′ – x_3″$.

En la función objetivo solo sustituimos los valores de $x_1$ y $x_3$:

$Max \quad z = 2x_1′ + 3x_2 – 2x_3′ + 2x_3″$$

La primera restricción ya es una ecuación. La segunda restricción es del tipo $\geq$, entonces definimos una variable de holgura no negativa $x_4$ tal que $2x_1 + 3x_2 + 2x_3 – x_4 = 12$. Ahora sustituimos $x_1$ y $x_3$ en ambas restricciones.

\begin{matrix}-4x_1′ & – x_2& – 5x_3’& + 5x_3″=& 10\\
-2x_1’& + 3x_2& + 2x_3’& – 2x_3″& – x_4 =& 12\end{matrix}

Y el vector de recursos es no negativo ya que $10,12 \geq 0$

Entonces la forma estándar de este problema sería la siguiente:

\begin{align*}
Max \quad z &= 2x_1′ + 3x_2 – 2x_3′ + 2x_3″\\
&s.a.\\
&\begin{matrix}
-4x_1’& – x_2& – 5x_3’& + 5x_3″& =& 10\\
-2x_1’& + 3x_2& + 2x_3’& – 2x_3″& – x_4 =& 12\\
\end{matrix}\\
&x_1′,x_2,x_3′,x_3″,x_4 \geq 0
\end{align*}

Para la forma canónica, vamos a hacer cambios a las restricciones resultantes de pasar el problema a su forma estándar.

Para la primera restricción que es una ecuación, la vamos a expresar como dos desigualdades:

\begin{align*}
-4x_1’& – x_2& – 5x_3’& + 5x_3″& \leq& 10\\
-4x_1’& – x_2& – 5x_3’& + 5x_3″& \geq& 10\\
\end{align*}

Para la restricción del tipo $\geq$, multiplicamos por $-1$ de ambos lados para invertir la desigualdad y que sea del tipo $\leq$:

\begin{align}
-4x_1’& – x_2& – 5x_3’& + 5x_3″& \leq& 10\\
4x_1’& + x_2& + 5x_3’& – 5x_3″& \leq& -10\\
\end{align}

Ahora, para la segunda restricción del problema estandarizado, retiramos la variable de holgura no negativa:

$$-2x_1′ + 3x_2 + 2x_3′ – 2x_3″ \geq 12$$

Y multiplicamos por $-1$ para invertir la desigualdad:

$$2x_1′ – 3x_2 – 2x_3′ + 2x_3″ \leq -12$$

Entonces la forma canónica de este problema sería la siguiente:

\begin{align*}
Max \quad z &= 2x_1′ + 3x_2 – 2x_3′ + 2x_3″\\
&s.a.\\
&\begin{matrix}
-4x_1’& – x_2& – 5x_3’& + 5x_3″& \leq& 10\\
4x_1’& + x_2& + 5x_3’& – 5x_3″& \leq& -10\\
2x_1’& – 3x_2& – 2x_3’& + 2x_3″& \leq& -12\\
\end{matrix}\\
&x_1′,x_2,x_3′,x_3″ \geq 0
\end{align*}

Entradas relacionadas