Metodo Simplex
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Metodo Simplex

on

  • 44,688 vues

 

Statistiques

Vues

Total des vues
44,688
Vues sur SlideShare
44,688
Vues externes
0

Actions

J'aime
9
Téléchargements
745
Commentaires
0

0 Ajouts 0

No embeds

Accessibilité

Catégories

Détails de l'import

Uploaded via as Microsoft Word

Droits d'utilisation

© Tous droits réservés

Report content

Signalé comme inapproprié Signaler comme inapproprié
Signaler comme inapproprié

Indiquez la raison pour laquelle vous avez signalé cette présentation comme n'étant pas appropriée.

Annuler
  • Full Name Full Name Comment goes here.
    Êtes-vous sûr de vouloir
    Votre message apparaîtra ici
    Processing...
Poster un commentaire
Modifier votre commentaire

Metodo Simplex Document Transcript

  • 1. METODO SIMPLEX
    Fundamento Básico.
    Simplex.
    En geometría, un simplex o n-simplex es el análogo en n dimensiones de un triángulo. Es la envoltura convexa de un conjunto de (n + 1) puntos independientes afines en un espacio euclídeo de dimensión n o mayor, es decir, el conjunto de puntos tal que ningún m-plano contiene más que (m + 1) de ellos. Se dice de estos puntos que están en posición general. Un 0-símplex es un punto; un 1-símplex un segmento de una línea; un 2-símplex un triángulo; un 3-símplex es un tetraedro; y un 4-símplex es un pentácoron (en cada caso, con su interior).
    El método simplex es un método que sirve para resolver problemas de programación lineal. Este método fue inventado por George Dantzig en el 1947. La primera formulación del método simplex fue en el verano de 1947. El primer problema práctico que se resolvió con este método fue uno de nutrición.
    Método Simplex
    Es una técnica popular para dar soluciones numéricas del problema de la programación lineal. Es un método numérico para optimización de problemas libres multidimensionales perteneciente a la clase más general de algoritmos de búsqueda. Según Rodríguez (2009) este Método “…comienza con alguna solución factible, y sucesivamente obtiene soluciones en las intersecciones que ofrecen mejores funciones de la función objetivo. Finalmente, este método proporciona un indicador que determina el punto en el cual se logra la solución óptima...” (p. 1)
    Permite encontrar una solución óptima en un problema de maximización o minimización, buscando en los vértices del polígono. Es un procedimiento iterativo que permite ir mejorando la solución a cada paso. El proceso concluye cuando no es posible seguir mejorando más dicha solución. Partiendo del valor de la función objetivo en un vértice cualquiera, el método consiste en buscar sucesivamente otro vértice que mejore al anterior. La búsqueda se hace siempre a través de los lados del polígono (o de las aristas del poliedro, si el número de variables es mayor). Cómo el número de vértices (y de aristas) es finito, siempre se podrá encontrar la solución.
    Se basa en la siguiente propiedad: si la función objetivo, f, no toma su valor máximo en el vértice A, entonces hay una arista que parte de A, a lo largo de la cual f aumenta.
    El método simplex es muy eficiente en la práctica, en general, teniendo 2m a 3m iteraciones en la mayor parte (donde m es el número de restricciones de igualdad), y que convergen en la hora prevista para el polinomio de ciertas distribuciones de insumos al azar.
    La aplicación del método del Simplex, se utiliza cuando el problema es de un tamaño suficientemente grande.
    Está diseñado para problemas de programación lineal cuya matriz tiene la propiedad de diseminación (el número de no-cero es pequeño).
    Hay implementaciones del método simple para la solución de problemas de programación lineal con las matrices de restricción escasa.
    Se han desarrollado diversas variantes del método simplex que tienen en cuenta las particularidades de las diversas clases especiales de problemas de programación lineal (problemas de bloque, los problemas de transporte y otros).
    Formulación.
    La representación matemática de un modelo de programación lineal (llamada Forma General de representación) es:
    Max (ó Min) Z = C1 X1 + C2 X2 + . . . + Cj Xj
    sa:a11 x1 + a12 x2 + . . . + a1j xj = ó =) b1
    a21 x1 + a22 x2 + . . . + a2j xj = ó =) b2
    . . . . . . . .
    . . . . . . . .
    . . . . . . . .
    ai1 x1 + ai2 x2 + . . . + aij xj = ó =) bi
    3.X1 , X2 , … , Xj >= 0 j = 1, 2, 3, ... n
    Fuente: http://mathworld.wolfram.com/SimplexMethod.html (2010)
    Como podemos ver, el Modelo consta de las TRES partes fundamentales que son:
    Función Objetivo (FO).
    Matriz de Restricciones Funcionales ó Tecnológicas.
    Restricción de Factibilidad o de No-Negatividad.
    Para en el que:
    Z =valor de la medida global de efectividad (objetivo por lograr).
    Xj =nivel de la actividad j (para j = 1,2,...,n).
    Cj =incremento (o decremento) en Z que resulta al aumentar (o disminuir) una unidad enel nivel de la actividad j.
    bi =cantidad de recurso i disponible para asignar a las actividades (para i = 1,2,...,m).
    aij =cantidad del recurso i consumido por cada unidad de la actividad j
    En la representación de ambos Modelos, Canónico y Estándar, hay que hacer notar que los coeficientes de la función objetivo cambiarán de signo pues dicha función se iguala con cero antes de proceder a su solución por medio del método Simplex, es decir, de su representación clásica en Forma General:
    Max (ó Min) Z = C1 X1 + C2 X2 + . . . + Cj Xj
    Pasaríamos a su representación en Canónico o Estándar de la siguiente manera:
    Max (ó Min) Z – C1 X1 – C2 X2 – . . . – Cj Xj = 0
    Condiciones
    El objetivo es de la forma de maximización o de minimización.
    Todas las restricciones son de igualdad.
    Todas las variables son no negativas.
    Las constantes a la derecha de las restricciones son no negativas.
    Proceso
    El sistema es típicamente no determinado (el número de variables excede el número de ecuaciones)
    La diferencia entre el número de variables y el número de ecuaciones nos da los grados de libertad asociados con el problema. Cualquier solución, óptima o no, incluirá un número de variables de valor arbitrario. El algoritmo simplex usa cero como valor arbitrario, y el número de variables con valor cero es igual a los grados de libertad.
    Valores diferentes de cero son llamados variables básicas, y valores de cero son llamadas variables no básicas en el algoritmo simplex.
    Esta forma simplifica encontrar la solución factible básica inicial, dado que todas las variables de la forma estándar pueden ser elegidas para ser no básicas (cero), mientras que todas las nuevas variables introducidas en la forma aumentada, son básicas (diferentes de cero), dado que su valor puede ser calculado trivialmente (para ellas, dado que la matriz problema aumentada en diagonal es su lado derecho)
    En cada una de las desigualdades que se plantean en el modelo matemático de programación lineal, se plantean desigualdades de , ≤, ≥, ó =
    Estas desigualdades se convierten en igualdades completando con variables de holgura si se trata de ; en el caso de que sea ≤, ó ≥, se completa con variables de excedente , estas con signo negativo ya que como su nombre lo indica, es una cantidad que esta de excedente y hay que quitar para convertirla en igualdad, en caso se maneje el =, se manejan las variables artificiales.
    Los pasos método simplex son: (Fuente: http://www.investigacion-operaciones.com/Metodos_Solucion_PL.htm)
    Determinar una solución básica factible inicial.
    Prueba de optimidad: determinar si la solución básica factible inicial es óptima y sólo si todos los coeficientes de la ecuación son no negativos ( >= 0 ). Si es así, el proceso termina; de otra manera se lleva a cabo otra interacción para obtener la nueva solución básica factible inicial.
    Condición de factibilidad.- Para todos los problemas de maximización y minimización, variable que sale es la variable básica que tiene la razón más pequeña (positiva). Una coincidencia se anula arbitrariamente.
    Seleccionar las variables de holgura como las variables básicas de inicio.
    Selecciona una variable que entra de entre las variables no básicas actuales que, cuando se incrementan arriba de cero, pueden mejorar el valor de la función objetivo. Si no existe la solución básica es la óptima, si existe pasar al paso siguiente.
    Realizar el paso iterativo.
    a) Se determina la variable básica entrante mediante la elección de la variable con el coeficiente negativo que tiene el valor mayor valor absoluto en la ecuación. Se enmarca la columna correspondiente a este coeficiente y se le da el nombre de columna pivote.
    b)  Se determina la variable básica que sale; para esta, se toma cada coeficiente  positivo (>0) de la columna enmarcada, se divide el lado derecho de cada renglón entre estos coeficientes, se identifica la ecuación con el menor cociente y se selecciona la variable básica para esta ecuación. c)  Se determina la nueva solución básica factible construyendo una nueva tabla en la forma apropiada de eliminación de Gauss, abajo de la que se tiene. Para cambiar el coeficiente de la nueva variable básica en el renglón pivote a 1, se divide todo el renglón entre el número pivote, entonces
    renglón pivote nuevo  = renglón pivote antiguo/ numero pivote
    para completar la primera iteración es necesario seguir usando la eliminación de Gauss para obtener coeficientes de 0 para la nueva variable básica Xj en los otros renglones, para realizar este cambio se utiliza la siguiente fórmula:
    renglón nuevo = renglón antiguo - ( coeficiente de la columna pivote X renglón pivote  nuevo)
    cuando el coeficiente es negativo se utiliza la fórmula:
    renglón nuevo = renglón antiguo + (coeficiente de la columna pivote X renglón pivote nuevo)
    Ejemplo (fuente: http://www.slideshare.net/eileen017/el-metodo-simplex autor: Rodríguez 2009)
    Un agricultor tiene una parcela de 640m² para dedicarla al cultivo de árboles frutales: naranjos, perales, manzanos y limoneros. Se pregunta de qué forma debería repartir la superficie de la parcela entre las variedades para conseguir el máximo beneficio sabiendo que:
    Cada naranjo necesita un mínimo de 16m², cada peral 4m², cada manzano 8m² y cada limonero 12m².
    Dispone de 900 horas de trabajo al año, necesitando cada naranjo 30 horas al año, cada peral 5 horas, cada manzano 10 horas, y cada limonero 20 horas.
    A causa de la sequía, el agricultor tiene restricciones para el riego: le han asignado 200m³ de agua anuales. Las necesidades anuales son de 2m³ por cada naranjo, 1m³ por cada peral, 1m³ por cada manzano, y 2m³ por cada limonero.
    Los beneficios unitarios son de Bs. 50, 25, 20, y 30 por cada naranjo, peral, manzano y limonero respectivamente.
    Se determinan las variables de decisión y se representan algebraicamente. En este caso:
    X1: número de naranjos
    X2: número de perales
    X3: número de manzanos
    X4: número de limoneros
    15.Se determinan las restricciones y se expresan como ecuaciones o inecuaciones de las variables de decisión. Dichas restricciones se deducen de las necesidades de cada árbol de terreno, horas de trabajo anuales, y necesidades de riego:
    Necesidades de terreno:
    16•X1 + 4•X2 + 8•X3 + 12•X4 ≤ 640
    Necesidades de horas anuales:
    30•X1 + 5•X2 + 10•X3 + 20•X4 ≤ 900
    Necesidades de riego:
    2•X1 + X2 + X3 + 2•X4 ≤ 200
    Se expresan todas las condiciones implícitamente establecidas por la naturaleza de las variables: que no puedan ser negativas, que sean enteras, que solo puedan tomar determinados valores. En este caso las restricciones son que el número de árboles no puede ser negativo y además debe ser un número entero:
    Xi ≥ 0
    Xi son enteros
    Se determina la función objetivo:
    Maximizar Z = 50•X1 + 25•X2 + 20•X3 + 30•X4
    Software útiles para la solución del problema del agricultor
    Implementación con el uso de Excel
    http://trucosexcel.blogspot.com/search/label/Excel
    Implementación con Java
    http://neos.mcs.anl.gov/CaseStudies/simplex/applet/SimplexTool.htm
    Implementación con Mathematica
    http://math.fullerton.edu/mathews/n2003/linearprogramming/LinearProgrammingMod/Links/LinearProgrammingMod_lnk_2.html
    Ejemplo de casos reales
    http://www.phpsimplex.com/casos_reales.htm
    Otro software útil en la implementación del Método Simplex
    WinQSB- Creado por el del Dr. Yih-Long Chang. Consta de una serie de módulos o aplicaciones individuales que nos ayudarán en temas de investigación de operaciones, métodos de trabajo, planteamiento de la producción, evaluación de proyectos, control de calidad, simulación, estadística, etc., y son en total 19 módulos.
    LINDO - Se especializa en software de Optimización Lineal, No Lineal, y Entera ofreciendo una línea completa de productos, con un total soporte de estos. Los que vienen de acuerdo al tamaño de matriz de sus modelos (número de variables y restricciones),y además están disponibles en todas las plataformas conocidas
    Creador y Reseña Histórica.
    12001576835 George Bernard Dantzig nació el 8 de Noviembre de 1914 en Portland, Oregon, EEUU. Su padre era profesor de Matemáticas, se retiró dejando su puesto de Jefe del Departamento de Matemáticas en la Universidad de Maryland poco después de la Segunda Guerra Mundial. Su madre era una lingüista especializada en idiomas eslavos.
    Dantzig estudió su carrera en la Universidad de Maryland, donde se graduó en 1936. Le disgustaba el hecho de no haber visto ni una sola aplicación en alguno de los cursos de Matemáticas que había tomado allí. Al año siguiente hizo estudios de postgrado en la escuela de Matemáticas de la Universidad de Michigan. Sin embargo, exceptuando la Estadística, le pareció que los cursos eran demasiado abstractos; tan abstractos, que él sólo deseaba una cosa: abandonar sus estudios de postgrado y conseguir un trabajo.
    En 1937 Dantzig dejó Michigan para trabajar como empleado en Estadística en el Bureau of Labor Statistics. Dos años después se inscribía en Berkeley para estudiar un Doctorado en Estadística.
    La historia de la tesis doctoral de Dantzig es ahora parte del anecdotario de las Matemáticas. Durante su primer año en Berkeley, se inscribió en un curso de Estadística que impartía el famoso profesor Jerzy Neymann. Este profesor tenía la costumbre de escribir en la pizarra un par de ejercicios al comenzar sus clases para que, como tarea para el hogar, fueran resueltos por sus alumnos y entregados en la clase siguiente. En una ocasión llegó tarde a una de las clases de Neymann y se encontró con dos problemas escritos en la pizarra. Supuso que eran problemas de tarea y, consecuentemente, los copió y los resolvió, aun cuando le parecieron " un poco más difíciles que los problemas ordinarios" . Unos días después se los entregó a Neymann, disculpándose por haber tardado tanto. Aproximadamente seis semanas después, un domingo a las 8:00 de la mañana, Neymann llegó aporreando la puerta de Dantzig, explicándole que había escrito una introducción a uno de los artículos de Dantzig y que quería que la leyera a fin de poder enviar el artículo para su publicación. Los dos " problemas de tarea" que Dantzig había resuelto eran, en realidad, dos famosos problemas no resueltos de la Estadística. Las soluciones de estos problemas se convirtieron en su tesis doctoral, a sugerencia de Neymann.
    No obstante, Dantzig no terminó su doctorado hasta 1946. Poco después del comienzo de la Segunda Guerra Mundial se unió a la Fuerza Aérea de Estados Unidos y trabajó con el Combat Analysis Branch of Statistical Control. Después de recibir su Doctorado, regresó a la Fuerza Aérea como el asesor de Matemáticas del U. S. Air Force Controller. Fue en ese trabajo donde encontró los problemas que le llevaron a hacer sus grandes descubrimientos. La Fuerza Aérea necesitaba una forma más rápida de calcular el tiempo de duración de las etapas de un programa de despliegue, entrenamiento y suministro logístico.
    El profesor Dantzig centró básicamente sus desarrollos científicos, cronológicamente, en la RAND Corporation y las universidades de Berkeley y Stanford en California, con asignaciones temporales en otros centros como el IIASA en Viena. (Es gozosa la anécdota que él cuenta como la razón principal para moverse de Berkeley a Stanford, la " culpa" es de un aparcamiento de coches para los profesores en la misma puerta de su nuevo Dpto. con tal mala fortuna que este aparcamiento ya había desaparecido cuando él se incorporó a Stanford).
    El trabajo de Dantzig generalizó lo hecho por el economista, ganador del Premio Nobel, Wassily Leontief. Dantzig pronto se dio cuenta de que los problemas de planeación con los que se encontraba eran demasiado complejos para las computadoras más veloces de 1947 (y aun para las de la actualidad).
    Habiéndose ya establecido el problema general de Programación Lineal, fue necesario hallar soluciones en un tiempo razonable. Aquí rindió frutos la intuición geométrica de Dantzig: " Comencé observando que la región factible es un cuerpo convexo, es decir, un conjunto poliédrico. Por tanto, el proceso se podría mejorar si se hacían movimientos a lo largo de los bordes desde un punto extremo al siguiente. Sin embargo, este procedimiento parecía ser demasiado ineficiente. En tres dimensiones, la región se podía visualizar como un diamante con caras, aristas y vértices. En los casos de muchos bordes, el proceso llevaría a todo un recorrido a lo largo de ellos antes de que se pudiese alcanzar el punto de esquina óptimo del diamante" .
    Esta intuición llevó a la primera formulación del método simplex en el verano de 1947. El primer problema práctico que se resolvió con este método fue uno de nutrición.
    El 3 de octubre de l947 Dantzig visitó el Institute for Advanced Study donde conoció a John von Neumann, quien por entonces era considerado por muchos como el mejor Matemático del mundo. Von Neumann le habló a Dantzig sobre el trabajo conjunto que estaba realizando con Oscar Morgenstern acerca de la teoría de juegos. Fue entonces cuando Dantzig supo por primera vez del importante teorema de la dualidad.
    Otro de sus grandes logros es la teoría de la dualidad, ideado conjuntamente con Fulkerson y Johnson en 1954 para resolver el paradigmático problema del Agente Viajero (resolviendo entonces problemas con 49 ciudades cuando, hoy día, mediante modernas implementaciones del método, se resuelven problemas con varios miles de ciudades y hasta un millón de nodos) es el precursor de los hoy utilísimos métodos de Branch-and Cut (Bifurcación y corte) tan utilizados en programación entera para resolver problemas de grandes dimensiones.
    Muchos de los problemas a resolver mediante Programación Matemática se enmarcan en planificación dinámica a través de un horizonte temporal. Muchos de los parámetros se refieren al futuro y no se pueden determinar con exactitud. Surge entonces la programación estocástica o programación bajo incertidumbre. Esta rama, con un gran desarrollo hoy día, y un tremendo potencial para el futuro, debe su desarrollo a dos trabajos seminales que de forma independiente son debidos a los profesores E.Martin L Beale y George B. Dantzig en 1955.
    Así mismo es de gran utilización su método denominado Descomposición de Dantzig- Wolfe (desarrollado conjuntamente con Philip Wolfe en 1959-1960) (cuyo dual es el método de Descomposición de Benders, tan utilizado hoy día en Programación Estocástica), para resolver problemas de programación lineal estructurados.
    El libro " Linear Programming and Extensions" (1963), ha sido su gran libro de referencia durante los 42 años que median desde su publicación. Ha cerrado el ciclo de su extensa bibliografía con el libro en dos tomos " Linear Programming" (1997 y 2003), escrito conjuntamente con N. Thapa.
    En 1976 el presidente Gerald Ford otorgó a Dantzig la Medalla Nacional de Ciencias, que es la presea más alta de los Estados Unidos en Ciencia. En la ceremonia en la Casa Blanca se citó a George Bernard Dantzig " por haber inventado la Programación Lineal, por haber descubierto métodos que condujeron a aplicaciones científicas y técnicas en gran escala a problemas importantes en logística, elaboración de programas, optimización de redes y al uso de las computadoras para hacer un empleo eficiente de la teoría matemática" .
    El profesor G. B. Dantzig no pudo conseguir el premio Nobel, pero recibió un cúmulo de distinciones, entre otras la mencionada anteriormente, el premio Von Neumann Theory en 1975, Premio en Matemáticas Aplicadas y Análisis Numérico de la National Academy of Sciences en 1977, Harvey Prize en Ciencia y Tecnología de Technion, Israel, en 1985. Fue miembro de la Academia de Ciencias y de la Academia Nacional de Ingeniería de EEUU. Las Sociedades de Programación Matemática y SIAM instituyeron hace años un premio que lleva su nombre, premio que es uno de los más prestigiosos de nuestra comunidad.
    Dantzig se sorprendió de que el método simplex funcionara con tanta eficiencia. Citando de nuevo sus palabras: " La mayor parte de las ocasiones el método simplex resolvía problemas de m ecuaciones en 2m o en 3m pasos, algo realmente impresionante. En realidad nunca pensé que fuese a resultar tan eficiente. En ese entonces yo aún no había tenido experiencias con problemas en dimensiones mayores y no confiaba en mi intuición geométrica. Por ejemplo, mi intuición me decía que el procedimiento requeriría demasiados pasos de un vértice al siguiente. En la práctica son muy pocos pasos. Dicho con pocas palabras, la intuición en espacios de dimensiones mayores no es muy buena guía. Sólo ahora, 52 años después de haber propuesto el método simplex por primera vez, la gente está comenzando a tener una idea de por qué el método funciona tan bien como lo hace" .
    Una precisión acerca de la terminología: un simplex es un tipo especial de conjunto convexo poliédrico. Más concretamente, sean P1, P2, . . . , Pn+1 n+1 puntos (o vectores) en R. Se dice que los vectores tienen independencia afín si los n vectores P1 P2, P1 P3, . . . , P1 Pn, P1 P son linealmente independientes. Si los puntos tienen independencia afín, entonces el conjunto convexo más pequeño que contiene los n+1 puntos en se llama n-simplex. En R, tres puntos tienen independencia afín si no son colineales. El conjunto convexo más pequeño que contiene tres puntos no colineales es un triángulo con estos puntos como vértices. Por tanto, un 2-simplex es un triángulo. En R, cuatro puntos tienen independencia afín si no son coplanares. El conjunto convexo más pequeño que contiene cuatro de tales puntos es un tetraedro. Este es el 3-simplex. Los triángulos y los tetraedros son conjuntos poliédricos convexos, no obstante que los conjuntos convexos poliédricos no son necesariamente simplex. El método simplex fue llamado así por George Dantzig, aunque no está claro por qué eligió ese nombre. Habría sido más adecuado llamarlo " método del conjunto convexo poliédrico" .
    Por último, pero no lo último, es importante reseñar la aplicación de programación matemática que el profesor Dantzig fue desarrollando a lo largo de los años para diversos sectores industriales y de la Administración, destacando a título de ejemplo el proyecto PILOT, para una mejor planificación del sector energético y, por tanto, un mayor ahorro energético.
    El 13 de Mayo de 2004, George Bernard Dantzig, murió a la edad de 90 años en su casa de Stanford debido a complicaciones con la diabetes y problemas cardiovasculares.

    BIBLIOGRAFIA
    http://en.wikipedia.org/wiki/Simplex http://mathworld.wolfram.com/SimplexMethod.htmlhttp://eom.springer.de/S/s085340.htmhttp://wapedia.mobi/en/Simplex_algorithmhttp://en.wikipedia.org/wiki/Simplex_algorithmhttp://neos.mcs.anl.gov/CaseStudies/simplex/index.htmlhttp://math.fullerton.edu/mathews/n2003/LinearProgrammingMod.html http://glossary.computing.society.informs.orghttp://www.me.utexas.edu/~jensen/ORMM/frontpage/jensen.lib/index.html
    http://www.phpsimplex.com/biografia_Dantzig.htm