Documente Academic
Documente Profesional
Documente Cultură
Tipo de optimización.
Como se ha comentado, el objetivo del método consistirá en
optimizar el valor de la función objetivo. Sin embargo se
presentan dos opciones: obtener el valor óptimo mayor
(maximizar) u obtener el valor óptimo menor (minimizar).
Objetivo de maximización
Objetivo de minimización
Tipo de
Tipo de variable que aparece
desigualdad
≥ - exceso + artificial
= + artificial
≤ + holgura
Método Simplex
Construcción de la primera tabla:
Tabla
C1 C2 ... Cn
Base Cb P0 P1 P2 ... Pn
P1 Cb1 b1 a11 a12 ... a1n
P2 Cb2 b2 a21 a22 ... a2n
... ... ... ... ... ... ...
Pm Cbm bm am1 am2 ... amn
Z Z0 Z1-C1 Z2-C2 ... Zn-Cn
Todos los valores incluidos en la tabla vendrán dados
por el modelo del problema salvo los valores de la fila Z (o
fila indicadora). Estos se obtienen de la siguiente forma:
Zj = Σ(Cbi·Pj) para i = 1..m, donde si j = 0, P0 = bi y C0 = 0,
y en caso contrario Pj = aij.
Condición de parada:
Elemento pivote:
Actualización de la tabla:
FASE 1
Tabla
C0 C1 C2 ... Cn-k ... Cn
Base Cb P0 P1 P2 ... Pn-k ... Pn
FASE 2
Contenido
o 0.1 Visión general
0.1.1 Operación
0.1.2 Minimización
0.1.3 Cuadro
0.1.4 Matrices
0.1.5 En el espacio de dimensión N
0.1.6 Complejidad
o 0.2 Con un algoritmo de Tableau
1 Programación lineal
o 1.1 Ejemplo
o 1.2 Teoría
o 1.3 Algoritmos
o 1.4 Variables enteras
VISIÓN GENERAL
El método Simplex permite encontrar los valores óptimos en situaciones donde
deben respetarse muchos aspectos. Ante un problema, las desigualdades se
establecen limitaciones que representan a las variables. A partir de ahí, se prueba
posibilidades con el fin de optimizar el resultado tan pronto como sea posible.
El uso más común de la Simplex es maximizar el resultado, es decir, encontrar el valor
más grande posible para un total. Los problemas típicos de resolver con Simplex están
buscando cantidades óptimas de productos para ser vendidos, con restricciones en el
almacenamiento y la producción de los mismos.
La idea es para aislar una función como el objetivo. Las cantidades que desee
optimizar están representados por las variables aquí llamados , y la función objetivo
se presenta como siendo los coeficientes de las variables. Estos muestran la
proporcionalidad entre ellos.
Entre las posibilidades de los valores de las variables que satisfagan las limitaciones,
el algoritmo debe encontrar a los que dan la función objetivo el total más alto posible.
OPERACIÓN
Relacionado con la programación lineal, se trabaja con funciones de 1º grado, la idea
del algoritmo es bastante simple. Inicialmente, se asigna el valor cero a variables, sería
muy lejos de la solución.
A medida que este valor aumenta, el algoritmo comprueba todas las restricciones,
hasta que uno de ellos no se cumple. Esta restricción se llama la “restricción activa”.
En este momento, se sabe la variable activa máxima.
MINIMIZACIÓN
Aunque los ejemplos son casi siempre maximizando el Simplex también comprende
los casos en que desea encontrar el valor más pequeño posible. Los costos y gastos
son algunos de los resultados buscados comúnmente en estas situaciones.
Para ello, el algoritmo puede ser perfectamente adaptado con el fin de resolver un
problema en el que desea encontrar un pequeño resultado. Sin embargo, lo que se
hace a menudo es simplemente invertir todas las relaciones, multiplicando los
coeficientes por -1 y haciendo que el problema original es visto como un simple
maximización.
CUADRO
Ya implementada en varios idiomas diferentes, el Simplex también se puede aplicar de
forma manual. El método, conocido como Tableau, es poner toda la información
organizada de forma correcta en un marco, haciendo exactamente lo que el software
lo haría. En muchos lugares, el Simplex se enseña en este camino, por lo que la gente
tiene un buen campo de la técnica de optimización.
MATRICES
El algoritmo de procesamiento puede ser realizado por un producto de matriz. Una
vez que los coeficientes están correctamente dispuestos en filas y columnas, es
suficiente que este se multiplica por una versión modificada de la “identidad Matrix”,
de tamaño igual al número de variables.
La versión modificada tiene una línea formada por los coeficientes simétricos de la
línea relativa a la limitación violado dividido por el coeficiente de la variable violada.
Esta línea se corresponderá, en orden, a la variable que violó la restricción.
Este producto hace que las matrices siempre tiene una lista de coeficientes ya
modificados de acuerdo con las restricciones y los mejores valores posibles para las
variables hasta la fecha. El proceso se repite hasta que encuentre el resultado óptimo,
es decir, cuando ya no es posible mejorar el total sin violar las restricciones.
EN EL ESPACIO DE DIMENSIÓN N
Si se considera a la óptica geométrica, el Simplex trabajando en la construcción de un
politopo con un número de dimensiones igual al número de variables del problema. La
solución óptima será siempre un conjunto de coordenadas de los vértices del politopo.
Cada incrementar una variable, es como el Simplex percorresse uno de los bordes,
siempre en busca de la punta perfecta.
COMPLEJIDAD
Formalmente, se cree que la complejidad del algoritmo Simplex ser exponencial.
Muestra que en una aplicación ingenua, cada iteración en busca de la mejor solución
es, en principio, la complejidad en términos de variables y restricciones.
PROGRAMACIÓN LINEAL
En las matemáticas , un problema de programación lineal (LP) son problemas de
optimización en el que la función objetivo y las restricciones son lineales.
Programación lineal es un campo importante de la optimización por varias razones.
Muchos de los problemas prácticos en la investigación de operaciones se pueden
expresar como problemas de programación lineal.
Ciertos casos especiales de programación lineal, tales como problemas de flujo de red
y problemas de flujo multiservicio se consideran lo suficientemente importante que si
una gran cantidad de investigación se ha generado en los algoritmos especializados
para sus soluciones. Varios algoritmos para otros tipos de trabajo resolver problemas
de optimización problemas de PL como sub-problemas.
EJEMPLO
Aquí está un ejemplo de un problema de programación lineal. Supongamos que un
agricultor tiene un pedazo de tierra que decir, el km 2 , para ser sembrada con trigo o
cebada, o una combinación de ambos.
TEORÍA
Geométricamente, las restricciones lineales definen un poliedro convexo , que se llama
el conjunto de puntos factibles . Dado que la función objetivo también es lineal, es un
fantástico lugar automáticamente un óptimo global.
Para ser función objetivo lineal también implica que una solución óptima sólo puede
ocurrir en un punto del conjunto de puntos factibles frontera.
Hay dos situaciones en las que una solución óptima no se puede encontrar. En primer
lugar, si las restricciones se contradicen entre sí (por ejemplo, x ≥ 2 y x ≤ 1), entonces
la región factible está vacía y no puede haber ninguna solución óptima, ya que no
puede haber solución. En este caso, la PL se dice no factible .
Aparte de estas dos condiciones patológicas (que a menudo se eliminan por las
limitaciones de recursos inherentes en el problema que se modela como arriba), el
óptimo se alcanza siempre un vértice poliedro.
ALGORITMOS
El algoritmo simplex resuelve problemas de PL por la construcción de una solución
admisible en vértice poliedro, y entonces corre a través de los vértices del poliedro
que tienen valores sucesivamente más altos de la función objetivo para encontrar el
máximo.
Aunque este algoritmo es muy eficiente en la práctica, y está garantizado para
encontrar un óptimo global si ciertas condiciones para evitar los ciclos se toman, es
débil en el peor de los casos: Usted puede construir un problema de programación
lineal práctico para los que el método simplex realiza un número exponencial de
pasos en relación con el tamaño de la emisión.
Dado que el método Karmarkar, se han propuesto y analizado muchos otros métodos
de punto interior. Un método popular es el método predictor-corrector de Mehrotra,
cuya actuación tiene un buen rendimiento en la práctica, aunque se sabe poco acerca
de ello en teoría.
VARIABLES ENTERAS
Si ninguna de las variables de problemas pertenecen al conjunto de los números
enteros, tenemos una programación lineal subclase llamada Programación Entera (IP)
o la programación lineal entera. A diferencia de la PL que se puede encontrar la
solución óptima en un tiempo razonable, muchos problemas de programación entera
se consideran NP-duro.
Si las variables son binarias, es decir, teniendo sólo los valores 0 (cero) o 1, tienen un
caso especial de PI, que también puede ser clasificado como NP-duro.
Cuando sólo algunas de las variables son números enteros y otra continua, tenemos la
“Programación Entera Mixta” (PIM).
Sin embargo, hay algunas clases de problemas que se pueden resolver perfectamente
en tiempo polinómico, tienen su propia estructura de la matriz llama matrices
totalmente unimodulares.
Maximizar Z= f(x,y)= 3x + 2y
sujeto a: 2x + y 18
2x + 3y 42
3x + y 24
x 0,y 0
2x + y + h = 18
2x + 3y + s = 42
3x +y + d = 24
- 3x - 2y + Z = 0
En las columnas aparecerán todas las variables del problema y, en las filas, los coeficientes de las
igualdades obtenidas, una fila para cada restricción y la última fila con los coeficientes de la función
objetivo:
Tabla I . Iteración nº 1
Base Variable de decisión Variable de holgura Valores solución
x y h s d
h 2 1 1 0 0 18
s 2 3 0 1 0 42
d 3 1 0 0 1 24
Z -3 -2 0 0 0 0
4. Encontrar la variable de decisión que entra en la base y la variable de holgura que sale de
la base
A. Para escoger la variable de decisión que entra en la base, nos fijamos en la última fila, la
de los coeficientes de la función objetivo y escogemos la variable con el coeficiente
negativo mayor (en valor absoluto).
En nuestro caso, la variable x de coeficiente - 3.
Si existiesen dos o más coeficientes iguales que cumplan la condición anterior, entonces
se elige uno cualquiera de ellos.
La columna de la variable que entra en la base se llama columna pivote (En color verde).
B. Para encontrar la variable de holgura que tiene que salir de la base, se divide cada término
de la última columna (valores solución) por el término correspondiente de la columna
pivote, siempre que estos últimos sean mayores que cero. En nuestro caso:
18/2 [=9] , 42/2 [=21] y 24/3 [=8]
Si hubiese algún elemento menor o igual que cero no se hace dicho cociente. En el caso
de que todos los elementos fuesen menores o iguales a cero, entonces tendríamos una
solución no acotada y no se puede seguir.
Si al calcular los cocientes, dos o más son iguales, indica que cualquiera de las variables
correspondientes pueden salir de la base.
Los nuevos coeficientes de x se obtienen dividiendo todos los coeficientes de la fila d por el pivote
operacional, 3, que es el que hay que convertir en 1.
Nueva fila= (Vieja fila) - (Coeficiente de la vieja fila en la columna de la variable entrante) X
(Nueva fila del pivote)
Veámoslo con un ejemplo una vez calculada la fila del pivote (fila de x en la Tabla II):
Vieja fila de s 2 3 0 1 0 42
- - - - - -
Coeficiente 2 2 2 2 2 2
x x x x x x
= = = = = =
Como en los elementos de la última fila hay uno negativo, -1, significa que no hemos llegado
todavía a la solución óptima. Hay que repetir el proceso:
A. La variable que entra en la base es y, por ser la variable que corresponde al coeficiente -1
B. Para calcular la variable que sale, dividimos los términos de la última columna entre los
términos correspondientes de la nueva columna pivote:
2:1/3 [=6] , 26:7/3 [=78/7] y 8:1/3 [=8]
y como el menor cociente positivo es 6, tenemos que la variable de holgura que sale es h.
C. El elemento pivote, que ahora hay que hacer 1, es 1/3.
Como en los elementos de la última fila hay uno negativo, -1, significa que no hemos llegado
todavía a la solución óptima. Hay que repetir el proceso:
A. La variable que entra en la base es d, por ser la variable que corresponde al coeficiente -1
B. Para calcular la variable que sale, dividimos los términos de la última columna entre los
términos correspondientes de la nueva columna pivote:
6/(-2) [=-3] , 12/4 [=3], y 6:1 [=6]
y como el menor cociente positivo es 3, tenemos que la variable de holgura que sale es s.
C. El elemento pivote, que ahora hay que hacer 1, es 4.
Obtenemos la tabla:
Como todos los coeficientes de la fila de la función objetivo son positivos, hemos llegado a la
solución óptima.
Los solución óptima viene dada por el valor de Z en la columna de los valores solución, en nuestro
caso: 33. En la misma columna se puede observar el vértice donde se alcanza, observando las
filas correspondientes a las variables de decisión que han entrado en la base: D(3,12)
Las sucesivas tablas que hemos construido van proporcionando el valor de la función objetivo en
los distintos vértices, ajustándose, a la vez, los coeficientes de las variables iniciales y de holgura.
En la primera iteración (Tabla I) han permanecido todos los coeficientes iguales, se ha calculado el
valor de la función objetivo en el vértice A(0,0), siendo este 0.
Sigue por la arista BC, hasta llegar a C, donde se para y despliega los datos
de la Tabla III.
En esta tercera iteración se ha calculado el valor que corresponde al vértice
C(6,6) : Z=f(6,6)=30.
Continua haciendo cálculos a través de la arista CD, hasta llegar al vértice D. Los datos que se
reflejan son los de la Tabla IV.
Concluye con esta tabla, advirtiendo que ha terminado (antes ha comprobado que la solución no
mejora al desplazarse por la arista DE)
El valor máximo de la función objetivo es 33, y corresponde a x = 3 e y = 12 (vértice D).
Si calculas el valor de la función objetivo en el vértice E(0,14), su valor no supera el valor 33.