“SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE...

76
“SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE PROGRAMACIÓN LINEAL” TESIS PROFESIONAL QUE COMO REQUISITO PARCIAL PARA OBTENER EL TITULO DE: LICENCIADO EN ESTADISTICA PRESENTA: López Cruz Marco Antonio Chapingo, Texcoco, Edo. de México. Julio de 2009 UNIVERSIDAD AUTÓNOMA CHAPINGO DIVISIÓN DE CIENCIAS FORESTALES

Transcript of “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE...

Page 1: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

“SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE

PROBLEMAS DE PROGRAMACIÓN LINEAL”

TESIS PROFESIONAL

QUE COMO REQUISITO PARCIAL PARA OBTENER EL TITULO DE:

LICENCIADO EN ESTADISTICA

PRESENTA:  

López Cruz Marco Antonio

Chapingo, Texcoco, Edo. de México. Julio de 2009

UNIVERSIDAD AUTÓNOMA CHAPINGO

DIVISIÓN DE CIENCIAS FORESTALES

Page 2: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- ii -

La presente tesis titulada “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE

PROBLEMAS DE PROGRAMACIÓN LINEAL” fue realizada por el C. Marco Antonio

López Cruz, fue dirigida por el M.C. Ángel Leyva Ovalle y asesorada por el Dr. Víctor R.

Valdovinos Chávez. Fue revisada y aprobada por el siguiente Comité Revisor y Jurado

Examinador, para obtener el título de LICENCIADO EN ESTADISTICA.

PRESIDENTE

SECRETARIO

VOCAL

SUPLENTE

SUPLENTE

Chapingo, Texcoco, Edo. de México, Julio de 2009

_______________________________________

M. C. Ángel Leyva Ovalle

_______________________________________

Dr. Víctor Rafael Valdovinos Chávez

_______________________________________

M. C. José Antonio Maldonado Estrella

_______________________________________

M. C. Alejandro Corona Ambriz

_______________________________________

Lic. Margarito Soriano Montero

Page 3: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- iii -

AGRADECIMIENTOS

Antes que nada y después de todo, agradezco plenamente a mi Alma Mater, la Universidad

Autónoma Chapingo por brindarme la oportunidad de alojarme en sus aulas y prepararme

profesionalmente.

A todos y cada uno de los profesores que en cada uno de mis años, tuve el agrado de ocupar

sus pupitres estando ellos frente al pizarrón, poniendo en mis manos las herramientas que

dignamente usaré en mi andar.

A la Familia Buendía Velázquez quienes me brindaron su valioso apoyo cuando más lo

necesitaba sin pedirme nada a cambio.

A la Familia García Zaragoza quienes me han tratado como un hijo y hermano en lo que a

cada uno respecta, con ellos, eternamente agradecido estoy.

A todos los compañeros y amigos de la Licenciatura en Estadística quienes hicieron ver a esta

licenciatura como una familia de camaradas.

Al L. E. F. Guillermo Estrella Baca por ser un amigo y consejero.

A todas aquellas personas que omití pero que debí mencionar por que de alguna u otra manera

me ofrecieron algún tipo de apoyo, regalaron un buen consejo ó me hicieron alguna crítica

constructiva.

Page 4: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- iv -

DEDICATORIA

“Gracias al Ser Todopoderoso por

permitirme vivir, mantenerme vivo

y conservarme sano”

A mis primeros maestros y además padres, José Antonio López Celaya y Amparo Cruz

Aguilar, quienes en todo momento me han ofrecido incondicionalmente cariño, confianza y

con esfuerzo me han brindado educación enviándome a la escuela ó educándome en casa.

A mis hermanos Luís Antonio, Vlady Jazmín y Juan Manuel por ser mis mejores compañeros

y dejarme compartir con ellos el recreo en esta escuela de la vida de la cual espero no egresar.

A mi amiga, compañera y pareja Mayra Velen Buendía Velázquez por su valioso apoyo,

cariño, entera confianza, gran paciencia y felices momentos que me ha regalado.

En general, a dos conjuntos de personas:

{Familia de Marco} ∪ {Amigos de Marco} ≠ ∅

Page 5: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- v -

ÍNDICE GENERAL

Contenido Página

INDICE DE TABLAS. ............................................................................................... vii INDICE DE FIGURAS. ........................................................................................... viii 1. RESUMEN ................................................................................................................... ix 2. ABSTRACT ................................................................................................................... x 3. INTRODUCCIÓN ........................................................................................................ 1 4. OBJETIVOS .................................................................................................................. 2

4.1. GENERAL .................................................................................................................. 2 4.2. PARTICULAR ........................................................................................................... 2

5. REVISIÓN DE BIBLIOGRAFÍA ............................................................................... 3 5.1. LA PROGRAMACIÓN LINEAL Y EL USO DE LA COMPUTADORA ............... 3 5.2. FORMA ESTÁNDAR DEL PROBLEMA DE PROGRAMACIÓN LINEAL ......... 6 5.3. DEFINICIONES Y TEOREMAS BÁSICOS DE LA PROGRAMACIÓN LINEAL 8 5.4. EL MÉTODO SIMPLEX ......................................................................................... 10

5.4.1. El tableau de Tucker para el Método Simplex .................................................. 11 5.4.2. Fases del Método Simplex ................................................................................ 12

5.4.2.1. Fase 1 del Método Simplex .......................................................................... 12 5.4.2.2. Fase 2 del Método Simplex .......................................................................... 13

5.4.3. Intercambios de Jordán en el Método Simplex ................................................. 14 5.4.4. Reglas del Método Simplex .............................................................................. 15

5.4.4.1. Selección de la columna pivote .................................................................... 15 5.4.4.2. Selección de la hilera pivote ......................................................................... 15 5.4.4.3. Criterio de Optimalidad ................................................................................ 16

5.4.5. Relación entre variables dependientes y bases ................................................. 16 5.4.6. Comparación entre el tableau de Tucker y el tableau Estándar ........................ 17

5.4.6.1. Características de los tableaus de Tucker y Estándar. .................................. 18 5.4.6.2. Relación entre los tableaus Estándar y de Tucker ........................................ 19

5.4.7. Manejo de variables irrestrictas y restricciones de igualdad ............................ 19 5.4.7.1. Manejo de variables irrestrictas .................................................................... 20 5.4.7.2. Manejo de restricciones de igualdad ............................................................. 20

5.4.8. Finitud del Método Simplex ............................................................................ 21 5.4.9. Casos especiales en la aplicación del Método Simplex .................................... 21

5.4.9.1. Degeneración ................................................................................................ 22 5.4.9.2. Puntos óptimos alternos ................................................................................ 22 5.4.9.3. Soluciones no acotadas ................................................................................. 23 5.4.9.4. Soluciones infactibles ................................................................................... 23

5.4.10. Supuestos de la programación lineal ................................................................ 24 5.4.10.1. Proporcionalidad ....................................................................................... 24 5.4.10.2. Aditividad ................................................................................................. 24 5.4.10.3. Divisibilidad .............................................................................................. 25 5.4.10.4. Determinismo ............................................................................................ 25

5.4.11. Análisis de sensibilidad .................................................................................... 26

Page 6: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- vi -

5.4.11.1. Análisis de sensibilidad para la función objetivo ..................................... 27 5.4.11.1.1. Rango para las variables no-básicas. .................................................... 27 5.4.11.1.2. Rango para las variables básicas .......................................................... 28 5.4.11.1.3. Costo reducido ..................................................................................... 29

5.4.11.2. Análisis de sensibilidad para el lado derecho de las restricciones ............ 29 5.4.11.2.1. Rango para las restricciones no básicas ............................................... 29 5.4.11.2.2. Rango para las restricciones básicas .................................................... 30 5.4.11.2.3. Precios sombra ..................................................................................... 31

5.4.12. Método del ordenamiento lexicográfico ........................................................... 31 6. MATERIALES Y MÉTODOS .................................................................................. 34 7. RESULTADOS ........................................................................................................... 36

7.1. SOLUCIONADOR DE PROBLEMAS LINEALES USANDO EL TABLEAU DE TUCKER (SPLITT) .............................................................................................................. 36 7.2. MANUAL DEL USUARIO ..................................................................................... 37

7.2.1. Presentación ...................................................................................................... 37 7.2.2. Botones y funciones asociadas ......................................................................... 38 7.2.3. Definir un nuevo problema ............................................................................... 39 7.2.4. Introducir los datos del problema ..................................................................... 40 7.2.5. Comenzar a resolver un problema .................................................................... 42 7.2.6. Tratamiento de variables irrestrictas ................................................................. 43 7.2.7. Tratamiento de restricciones de igualdad ......................................................... 44 7.2.8. Aplicación de la Fase 1 del Método Simplex ................................................... 45 7.2.9. Aplicación de la Fase 2 del Método Simplex ................................................... 46 7.2.10. Finalización del Método Simplex ..................................................................... 47

7.3. PROBLEMA RESUELTO ALTERNAMENTE CON SPLITT Y WIN QSB ......... 48 8. DISCUSIÓN ................................................................................................................ 53 9. CONCLUSIONES ...................................................................................................... 54 10. RECOMENDACIONES ............................................................................................. 54 11. BIBLIOGRAFÍA ......................................................................................................... 55

Page 7: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- vii -

ÍNDICE DE TABLAS

Contenido Pagina

Tableau 1. Representación del problema en forma del tableau de Tucker…..……...…….

Tableau 2. Tableau que resulta de un intercambio de Jordán

con elemento pivote ars………………………………….……….…….……...

Tableau 3. Tableau resultante después de r intercambios de Jordán………..…………….

Tableau 4. Tableau resultante después de p intercambios de Jordán,

con la columna de bi al inicio……...…………………………….……….....…

11

14

16

33

Page 8: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- viii -

ÍNDICE DE FIGURAS

Contenido Pagina

Figura 1. Ventana de inicio del programa SPLITT…………………………..………....…

Figura 2. Principales botones de la barra de herramientas de SPLITT………………....…

Figura 3. Ventana de definición del problema con que cuenta el programa

SPLITT………….……………….………………………………...….……...…

Figura 4. Matriz de entrada de datos en SPLITT……………………………..……...……

Figura 5. Ventana de descripción del problema en SPLITT………………..………....…..

Figura 6. Ventana de Solución del Problema del programa SPLITT…………….….....…

Figura 7. Ventana de intercambio de Jordán para eliminar variables

irrestrictas……………..……………………………………………..……..…...

Figura 8. Ventana de intercambio de Jordán para eliminar restricciones de

igualdad……………………….……………………………….……..…….....…

Figura 9. Mensaje que muestra SPLITT después de maximizar la función Z*……….….

Figura 10. Ventana de intercambio de Jordán que se presenta en la

Fase 2 del Método Simplex…............................................................................

Figura 11. Mensaje que muestra el programa al final cuando la solución es única………

Figura 12. Mensaje que muestra el programa al final cuando existe más

de una solución…………………………………………………………...……

Figura 13. Tabla de Resultados que presenta SPLITT al resolver el

problema indicado…………………………………………………..……...….

Figura 14. Formulación del problema de la Productora Nacional de

Fertilizantes en SPLITT……………………………………………………..…

Figura 15. Formulación del problema de la Productora Nacional de

Fertilizantes en Win QSB…………………………………………….………..

Figura 16. Resultados del problema de la Productora Nacional de

Fertilizantes en SPLITT…………………………………………........……….

Figura 17. Resultados del problema de la Productora Nacional de

Fertilizantes en Win QSB……………………………………….…..…………

37

38

40

41

41

42

43

44

46

46

47

47

48

50

50

51

52

Page 9: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- ix -

1. RESUMEN

La programación lineal es una herramienta de gran utilidad en la actualidad, sobre todo en el

ramo industrial a la hora de determinar el programa óptimo de producción, de asignación, de

transporte, etc. de algún producto, el cual se encuentra inmerso en un conjunto de restricciones

de disponibilidad de recursos humanos, monetarios, etc. ó de requerimientos de calidad,

insumos, etc.; buscando alcanzar un objetivo que puede ser minimizar costos totales ó

maximizar ganancias obtenidas. Dado lo anterior, la enseñanza y comprensión de esta rama de

las matemáticas en las aulas de clase, es fundamental.

Es por esto que en el presente trabajo se elaboró un sistema de cómputo amigable que puede

resolver problemas de este tipo, además de ayudar al usuario a comprender todos y cada uno

de los pasos a seguir para llegar a tal solución. Para esto se hizo uso del Método Simplex que

es un procedimiento usado para resolver problemas de programación lineal. Usando

algoritmos, este método se adaptó en un programa por medio del compilador Borland Builder

6.0, usando un lenguaje de programación de alto nivel, llamado C++, permitiendo llevar a

cabo programación orientada a objetos.

Aunque se conocen muchos programas de cómputo para resolver problemas de esta índole, el

sistema propuesto en este trabajo, funciona de manera distinta, ya que la manera de manipular

y trabajar con los datos es a través de una tabla llamada tableau de Tucker. Finalmente, se

incluye un pequeño manual sobre como usar dicho programa, además de una comparación

entre el software más usado en este ámbito, conocido como Win QSB y el obtenido en este

trabajo.

Palabras clave: programación lineal, método simplex, lenguaje de programación, programa

óptimo, tableau de Tucker.

Page 10: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- x -

2. ABSTRACT

Nowadays, linear programming is an important tool, especially in the industrial sector to

determine the optimal production, allocation or transport of any product, which is immersed in

a series of restrictions on availability of human resources, money, etc.; or quality

requirements, inputs, etc., aiming to reach a goal that may be to minimize total costs or

maximize gains. Given the above, education and understanding of this branch of mathematics

in the classroom, is crucial.

Due to the above, in this study a computer-friendly system was developed, which can solve

problems of this kind, and help to users to understand each of the steps required to reach such

solution. This was done using the simplex method which is a procedure used to solve linear

programming problems. Using algorithms, this method was adapted in a program through the

compiler Borland Builder 6.0, using a high level programming language, called C++, allowing

to carry out object oriented programming.

Although known many computer programs to solve problems of this nature, the system

proposed works in a different way, as a way to manipulate and work with data is through a

table called the tableau of Tucker. Finally, it includes a small manual on how to use the

program, besides a comparison between the more used software in this area, known as Win

QSB and the obtained in this work.

Keywords: linear programming, simplex method, programming language, program optimal,

tableau of Tucker.

Page 11: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 1 -

3. INTRODUCCIÓN

El Método Simplex es un procedimiento de solución eficiente para resolver problemas de

programación lineal, incluso los de gran tamaño. Arreola (2003), menciona que, aunque las

operaciones involucradas para aplicar este método son elementales, tienen que realizarse un

gran número de veces, sobre todo cuando se trata de problemas grandes, lo cual hace que su

aplicación manual sea tediosa. Esto hace concluir que sin el uso de la computadora, este

método hubiese sido de interés académico solamente. Sin embrago, en la actualidad existen

aplicaciones de computadora que resuelven problemas de programación lineal usando el

Método Simplex. Entre los muchos programas de este tipo, los más conocidos son: Win QSB,

LINDO y SOLVER.

El uso de los sistemas antes mencionados, podría no ser muy ergonómico para los usuarios,

por lo cual es necesaria una herramienta que se encuentre en idioma español que proporcione

la solución óptima de un problema de programación lineal y que sea de fácil uso. Asimismo,

se requiere de un sistema más amigable para el usuario, enfocando su utilidad principalmente

a fortalecer el proceso de enseñanza-aprendizaje, de los distintos cursos de Investigación de

Operaciones que se ofertan al interior de la Universidad Autónoma Chapingo.

En el presente trabajo se desarrolló una aplicación para computadora, amigable y de fácil

manejo, con la cual se podrán solucionar problemas de programación lineal utilizando el

Método Simplex por medio del tableau de Tucker; esto, a través de algoritmos haciendo uso

de un lenguaje de programación de alto nivel, conocido como C++, con el que se llevó a cabo

la llamada programación orientada a objetos mediante el compilador Borland C++ Builder

versión 6. Además de esto, se elaboró un pequeño manual para el uso del mismo.

El usuario podrá formular algún problema de programación lineal y el sistema indica a éste,

paso a paso la metodología de solución del problema, de tal forma que se pueda comprender

en que fase del Método Simplex se encuentra, si tiene solución ó no, si se puede ó no mejorar

la solución y en el mejor de los casos, encuentra la solución óptima.

Page 12: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 2 -

4. OBJETIVOS

4.1. GENERAL

Generar una herramienta amigable que facilite los cálculos de solución de un problema de

programación lineal, apoye en la búsqueda de soluciones factibles, calcule cada una de las

iteraciones del Método Simplex y encuentre la solución óptima.

4.2. PARTICULAR

Desarrollar un sistema que auxilie al proceso de Enseñanza-Aprendizaje de los distintos cursos

de Investigación de Operaciones que se imparten al interior de la Universidad Autónoma

Chapingo, donde el usuario pueda visualizar paso a paso la metodología de la solución de un

problema de programación lineal, de una forma simple y sencilla.

Page 13: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 3 -

5. REVISIÓN DE BIBLIOGRAFÍA

5.1. LA PROGRAMACIÓN LINEAL Y EL USO DE LA COMPUTADORA

Durante el año de 1947, George Dantzing, con Marshall Word y sus asociados, se ocuparon de

un proyecto para la Fuerza Aérea de los Estados Unidos, que diera como resultado la búsqueda

de una técnica que fuera capaz de resolver los problemas de planeación militar. La esencia de

las investigaciones consistió en considerar las interrelaciones entre las actividades de una gran

organización como un método de programación lineal, y determinar el programa de

optimización minimizando o maximizando una función objetivo lineal. Dantzig indicó que ese

nuevo enfoque tendría amplias aplicaciones en los problemas de los negocios, como ocurre

actualmente (Thierauf, 1972).

La programación lineal es en la actualidad una herramienta de uso normal que ha ahorrado

miles ó millones de dólares a muchas compañías ó negocios en los distintos países

industrializados del mundo. Una proporción muy grande de los cálculos científicos en

computadoras está dedicada al uso de la programación lineal (Hillier y Lieberman, 2001).

La programación lineal está destinada a la asignación eficiente de recursos limitados en

actividades conocidas, con el objetivo de satisfacer las metas deseadas (tal como maximizar

beneficios o minimizar costos) (Taha, 1981).

La programación lineal utiliza un modelo matemático para describir el problema. El adjetivo

lineal significa que todas las funciones matemáticas del modelo deben ser funciones lineales.

La palabra programación, no se refiere a la programación en computadora, en esencia, es un

sinónimo de planeación. Entonces, la programación lineal trata la planeación de las

actividades para obtener un resultado óptimo, es decir, el resultado que, entre todas las

alternativas de solución, mejor alcance la meta especificada según el modelo matemático

(Hillier y Lieberman, 2001).

Page 14: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 4 -

Existe un procedimiento de solución eficiente para resolver problemas de programación lineal,

incluso los de gran tamaño, llamado Método Simplex (Hillier y Lieberman, 2001).

Aunque las operaciones involucradas para resolver este método son elementales, tienen que

realizarse un gran número de veces, sobre todo cuando se trata de problemas grandes, lo cual

hace que su aplicación manual sea tediosa. Esto hace concluir que sin el uso de la

computadora, este método hubiese sido de interés académico solamente (Arreola, 2003).

Afortunadamente, los programadores que se dedican a construir aplicaciones en computadoras

mediante algoritmos, se han encargado de adaptar el Método Simplex en programas

computacionales. Los algoritmos son procedimientos para la solución de problemas de

cualquier tipo por medio de una determinada secuencia de pasos simples y no ambiguos. Este

concepto es ampliamente usado en la programación de computadoras, la cual se lleva a cabo

comunicándose con ellas mediante algún lenguaje de computadora.

Existen hoy en día, cientos de lenguajes de computadora. Estos pueden ser categorizados en

tres tipos generales (Deitel, 1994):

1. El lenguaje maquina es el lenguaje natural de una computadora particular.

Generalmente, consiste de cadenas de números que instruyen a las computadoras para

que ejecuten sus operaciones más elementales una a la vez. Este lenguaje es difícil de

utilizar por los seres humanos.

2. Los lenguajes ensambladores se forman principalmente por abreviaturas en ingles para

representar las operaciones elementales de la computadora. Se desarrollaron

traductores denominados ensambladores para convertir los programas de lenguaje

ensamblador a lenguaje maquina a la velocidad de las computadoras.

3. Los lenguajes de alto nivel se desarrollaron para acelerar el proceso de programación,

en los cuales se podía llevar a cabo tareas sustanciales. Los programas de traducción

que convierten los programas de alto nivel al lenguaje maquina, se llaman

Page 15: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 5 -

compiladores. Los lenguajes de alto nivel le permiten a los programadores escribir

instrucciones que parecen prácticamente como el español de todos los días y contienen

notaciones matemáticas comúnmente utilizadas.

Es obvio, que los lenguajes de alto nivel son mucho más deseables desde el punto de vista del

programador que los lenguajes máquina ó los ensambladores. C y C++, son de entre los

lenguajes de alto nivel, los más poderosos y más utilizados, además de que facilitan un método

estructurado y disciplinado para el diseño de programas de computación. (Deitel, 1994).

Para operar el Método Simplex por medio de la computadora, existen muchos programas,

entre ellos, los más conocidos son:

• Win QSB que podría ser el más usado en la actualidad, debido a su amplia gama de

módulos entre los que se encuentra “Linear Programming” con el cual se pueden

resolver problemas de programación lineal continua, binaria (0 y 1) y entera,

gráficamente o utilizando el Método Simplex, sin embargo este paquete se encuentra

en ingles.

• SOLVER que es un complemento de Microsoft Excel, también resuelve problemas

lineales introduciendo en celdas la fórmula de una función que se busca optimizar y los

valores de las variables de las que depende dicha función; también hace uso del

Método Simplex. La introducción de datos es en cualquier celda y al momento de

resolver se tienen que ubicar las celdas donde se encuentran los datos.

• LINDO es una aplicación para computadoras que se utiliza para resolver problemas de

programación lineal, cuadrática y entera. Se dice que ha sido una de las herramientas

de optimización favoritas de las comunidades Educativas y Empresariales. Ya que es

uno de los más antiguos, tiene una larga historia y es uno de los pioneros en crear

programas de optimización. Para introducir los datos se reescribe el problema tal y

como se formula.

Page 16: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 6 -

5.2. FORMA ESTÁNDAR DEL PROBLEMA DE PROGRAMACIÓN LINEAL

Un problema que satisfaga las condiciones de linealidad en una función objetivo y en las

restricciones dadas, se dice que tiene la forma estándar si se formula matricialmente como a

continuación:

Maximizar Z = cX (*)

Sujeta a AX ≤ b (**)

X ≥ 0 (***)

donde la función lineal (*) se llama función objetivo; el sistema de desigualdades (**) se

llaman restricciones y a (***) se le conoce como condición de no-negatividad, que evita que

los resultados den un absurdo negativo (Strang, 2007).

X =

⎥⎥⎥⎥

⎢⎢⎢⎢

nX

XX

M2

1

es un vector de n elementos. Se le conoce como vector de actividades que son las

variables de decisión.

c = (c1, c2, …, cn) es un vector de n componentes que se le conoce como vector de precios ó de

costos unitarios de las variables.

b =

⎥⎥⎥⎥

⎢⎢⎢⎢

mb

bb

M2

1

es un vector de m elementos denominado vector de disponibilidad de recursos que

puede representar una limitación ó un requerimiento de recursos.

Page 17: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 7 -

A =

⎥⎥⎥⎥

⎢⎢⎢⎢

mnmm

n

n

aaa

aaaaaa

L

OMM

L

K

21

22221

11211

, es una matriz de m hileras y n columnas. Es conocida como matriz

de coeficientes tecnológicos. Cada coeficiente aij en esta matriz (i = 1,…,m y j = 1, …,n)

representa la cantidad de recursos j que se necesita por unidad de la actividad i (Prawda,

2005).

Dantzing (1963), señala que si el problema no reúne estas condiciones, se le debe manipular,

de modo que se pueda expresar mediante alguna de las siguientes transformaciones:

a) Si se tiene una restricción del tipo:

ai1X1 + ai2 X2+ ... +ain ≥ bi

para transformarla a la forma ≤, se le multiplica por -1 y se obtendrá entonces:

-ai1X1 - ai2 X2- ... - ain ≤ bi

b) Si se tiene una restricción del tipo:

ai1X1 + ai2 X2+ ... +ain = bi

se le puede sustituir por las siguientes restricciones:

ai1X1 + ai2 X2+ ... +ain ≤ bi

y

ai1X1 + ai2 X2+ ... +ain ≥ bi

ya que la intersección de estas dos restricciones da la restricción de igualdad.

c) Si se tiene una variable Xj que pueda tomar valores positivos y negativos, es decir, es

irrestricta , se le puede redefinir como sigue:

'''jjj XXX −= , donde 0,0 ''' ≥≥ jj XX

y sustituir '''jj XX − por cada aparición de Xj.

Page 18: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 8 -

d) Si se tiene un problema de minimización, se sustituye la función objetivo Z = c X por

Z’ = -c X y se maximiza Z’. Al terminar, el mínimo de Z se obtiene como:

Min Z = - Max {Z’ = -c X}

En algunos textos se considera la forma estándar como aquella que contiene igualdades en las

restricciones, sin embargo, esto tiene sus desventajas, pues para obtener igualdad a partir de

una desigualdad es necesario agregar una variable, ya sea de escasez o de exceso. Sin

embargo, la desventaja de usar esta forma estándar es que se incrementa el número de

variables de forma explícita (Bueno, 1987).

5.3. DEFINICIONES Y TEOREMAS BÁSICOS DE LA PROGRAMACIÓN

LINEAL

Punto extremo. Un punto X se denomina punto extremo, si está en la frontera de n ó más

restricciones, donde n es el número de variables en el problema.

Punto adyacente. Un punto extremo B es un punto adyacente a un punto extremo A, si ambos

están en la frontera de una misma restricción.

Es conveniente hacer dos observaciones. Primero, como los puntos extremos se obtienen al

intersecarse n o más fronteras de restricciones y el número de estas es finito, el número de

puntos extremos por considerar en el Método Simplex es finito. Segundo, como siempre se

trata de mejorar la función, una vez visitado un punto extremo, jamás se regresa a él, excepto

en el caso de que se intersequen más de n restricciones en un punto extremo y se presente

ciclaje (Se explica más adelante con detalle) (Bueno, 1987).

Solución factible. Una solución factible de un problema lineal es aquel vector columna

X’ = (X1, X2,…, Xn) el cual satisface las restricciones AX ≤ b y X ≥ 0.

Page 19: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 9 -

Solución factible básica. Es aquella solución factible con no más de m componentes positivas.

Solución factible básica no degenerada. Es una solución factible básica donde exactamente m

componentes del vector columna X son positivas.

Solución no factible. Es una solución para la que al menos una restricción se viola, es decir, no

se satisface.

Variables no básicas. Son las n-m variables que se hacen iguales a cero en una solución

básica.

Variables básicas. Son las m variables restantes en una solución básica que toman valor

positivo (Generalmente).

Región factible. Es la colección de todas las soluciones factibles. Gráficamente, representa el

área que se encuentra limitada por todas las fronteras de las restricciones y las condiciones de

no-negatividad de las variables.

Teorema. El conjunto de todas las soluciones factibles de un problema de programación

lineal, es un conjunto convexo (Taha, 1981). Dantzing (1963) describe un conjunto convexo

como aquel para el cual se cumple que, dados dos puntos cualesquiera del conjunto, la recta

que une tales puntos, pertenece también a la región.

Solución óptima. Es una solución factible que proporciona el valor más favorable de la

función objetivo. Por valor más favorable se entiende el valor más grande para el caso de

problemas de maximización o el valor más pequeño para el caso de problemas de

minimización.

Teorema. La función objetivo de un problema de programación lineal alcanza su valor optimo

(máximo ó mínimo) en un punto extremo del conjunto convexo de soluciones factibles (región

factible) (Taha, 1987).

Page 20: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 10 -

La mayoría de los problemas tendrán una única solución óptima, sin embargo, también es

posible que se encuentren más de una. En este caso, se tendrá un número infinito de soluciones

con el mismo valor de la función objetivo, denominadas como soluciones óptimas alternas (Se

detalla más adelante).

Bueno (1987) menciona que puede ocurrir que el problema no tenga soluciones óptimas. Esto

ocurre si el problema no tiene soluciones factibles ó si las restricciones no impiden que el

valor de la función objetivo mejore indefinidamente en la dirección favorable (positiva o

negativa). Éste último se conoce como problema no acotado (Se detalla más adelante).

5.4. EL MÉTODO SIMPLEX

Prawda (2005) señala que en un problema con n variables y m restricciones, el número

máximo de puntos extremos es )!(!

!mnm

nmn

−=⎟⎟

⎞⎜⎜⎝

⎛, que podría ser un número muy grande si n

y m también lo fueran; sin embargo, Dantzing, considerado como el padre de la Programación

Lineal, halló un método que permite resolver un problema de programación lineal sin

necesidad de analizar el valor de la función objetivo en cada punto extremo. Dantzing (1963)

señala que esto se debe al hecho de que el óptimo de un problema de programación lineal

siempre deberá ocurrir en el punto extremo debido a la linealidad y convexidad de las

restricciones; de ahí que basta analizar los puntos extremos para conocer el punto que produce

el óptimo.

El método se inicia en un punto extremo factible (en muchos de los casos el origen es el punto

factible) y se mueve a otro punto extremo factible adyacente que incremente la función del

objetivo. Cuando no es posible moverse a otro punto adyacente mejorando la función

objetivo, se ha alcanzado el óptimo.

De acuerdo con Taha (1981), para asegurar que en cada nueva solución del Método Simplex,

el valor de la función objetivo se mejore, se debe cumplir dos condiciones fundamentales:

Page 21: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 11 -

• La condición de optimalidad que asegura que nunca se encontrará una solución inferior

(comparada con la solución actual).

• La condición de factibilidad que garantiza que partiendo de una solución básica

factible, únicamente se encontrarán durante el cálculo, soluciones básicas factibles.

5.4.1. El tableau de Tucker para el Método Simplex

El problema de programación lineal escrito en forma estándar es de la siguiente forma:

Maximizar Z = c X Sujeta a: A X ≤ b

X ≥ 0

Este problema se puede reescribir como sigue:

Maximizar Z = c X Sujeta a: Y = A (-X) + b ≥ 0

X ≥ 0

Las restricciones son ahora un conjunto de relaciones lineales, con la restricción adicional de

que, tanto las variables independientes (X), como las dependientes (Y), son no-negativas.

Este problema se puede resumir en una tabla, que en la terminología del Método Simplex se

llama tableau ó tabla de Tucker y que es de la siguiente forma (Tableau 1):

Variables independientes

-X1 -X2 … -Xn 1 Y1 = a11 a12 … a1m b1 Y2 = a21 a22 … a2m b2 M M M O M M

Ym = am1 am2 … anm bm Z = - c1 - c2 … - cn 0

Tableau 1. Representación del problema en forma del tableau de Tucker.

Var

iabl

es

depe

ndie

ntes

Page 22: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 12 -

El tableau contiene relaciones lineales que representan a las restricciones y a la función

objetivo. La hilera i de la tabla que se leerá como: Yi = ai1(-X1) + …+ain(-Xn) + bi , que es

igual a multiplicar la hilera i de la matriz A por el vector (-X) y sumarle bi, es decir,

Yi = Ai(-X)+bi.

El tableau representará el punto X en el espacio Rn, que se obtiene al hacer cero las variables

independientes. En el tableau inicial, generalmente, este punto es X1 = 0, X2 = 0, …, Xn = 0

y el valor de la función objetivo que se obtiene en ese punto es cero, que es el elemento que

aparece en la última celda de la última columna del tableau.

5.4.2. Fases del Método Simplex

El Método Simplex consta de dos fases: la Fase 1 que provee un punto inicial factible para la

Fase 2 (Dantzing, 1963). Se describirán a continuación ambas fases:

5.4.2.1. Fase 1 del Método Simplex

En la Fase 2 del Método Simplex se parte del hecho de que se conoce un punto extremo

factible; el origen (0,0,…,0) generalmente es un punto extremo factible para muchos

problemas. Cuando el origen no es un punto factible se requiere aplicar la Fase 1 del Método

Simplex. El origen no es factible si alguno de los bi del problema AX ≤ b es negativo (Bueno,

1987).

La Fase 1 consiste en introducir una variable independiente adicional ρ en las restricciones Yi

cuya bi sea < 0 y asignarle un valor positivo manteniendo a X = 0, de modo que:

ij

jiji bXaY ++−= ∑ ρ)( ≥ 0

Page 23: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 13 -

para las restricciones con bi < 0. Las demás restricciones permanecen igual. Los coeficientes

bajo la columna de ρ son -1 para las restricciones con bi < 0 y 0 para el resto de las

restricciones.

Las variables independientes en este problema aumentado son (X, ρ), de donde el punto que

representa el tableau está en el plano Rn+1. Al asignar a ρ el valor de ρ0 que hace que Yi ≥ 0,

i = 1,2,…,m, el punto (0, ρ0) resultará ser un punto extremo factible para el nuevo problema.

El valor de ρ0 se obtiene como el mayor valor absoluto de los bi < 0.

Para hacer que ρ tome el valor ρ0, se efectúa un Intercambio de Jordán (Se explica más

adelante) volviendo a ρ variable dependiente y haciendo independiente a la restricción que dio

el valor de ρ0. Después del intercambio, el tableau representará un punto extremo factible

(0, ρ0) en el espacio Rn+1.

Se deberá regresar al espacio Rn lo más pronto posible, es decir, quitar la variable y función

adicional, posicionándose en un punto extremo factible del problema original, de existir

alguno. Esto se logra maximizando la función adicional Z* = - ρ, que deberá tener su máximo

en ρ = 0, si es que existieran puntos factibles en el problema original. Los coeficientes sobre

la hilera de Z* son 1 para la columna de ρ y 0 para el resto de las columnas. Si el valor

máximo ocurriera en ρ distinto de cero, el problema original es infactible (se explica más

adelante). Si el máximo ocurriera en ρ = 0, se podrá quitar del tableau la columna de ρ y la

hilera de la función objetivo adicional Z* y el tableau que quedará representará un punto

extremo factible del problema original, por lo que se podrá continuar con la Fase 2 del Método

Simplex (Bueno, 1987).

5.4.2.2. Fase 2 del Método Simplex

Partiendo de un punto extremo factible se encuentra el punto extremo óptimo. Esto equivale

hacer que los elementos de la última hilera del tableau, con excepción del que está bajo la

última columna, tomen valores no-negativos, manteniendo en todo momento factibilidad, es

Page 24: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 14 -

decir, la última columna deberá conservarse no-negativa y que el elemento último de la

columna final (valor de Z), no decrezca. Para lograr esto se utilizan los llamados Intercambios

de Jordán, intercambiando las variables independientes (no-básicas) por variables

dependientes (básicas).

Como el punto que representa el tableau es el que se obtiene al hacer cero las variables

independientes, en el tableau inicial, las variables X son las variables independientes, entonces

X = 0 estará en la región factible si Y ≥ 0, pero como Y = A (-X) + b y si X = 0, Y = b. Se

sigue que si b es no-negativa, el punto X = 0 estará en la región factible y se puede iniciar con

esta Fase.

5.4.3. Intercambios de Jordán en el Método Simplex

Considérese de nuevo el Tableau 1. Un Intercambio de Jordán con elemento pivote ars

consiste en intercambiar el papel de la variable Yr con el de la variable Xs, es decir, volver a Xs

variable dependiente y a Yr variable independiente. Esto se logra despejando a Xs de la

ecuación r-ésima y sustituyéndola en las demás funciones lineales. El sistema así obtenido

dará como resultado un tableau como el que se ilustra a continuación (Tableau 2):

-X1 ... -Xs-1 -Yr -Xs+1 ... -Xn Y1 = d11 ... d1, s-1 d1s d1, s+1 ... d11

M M O M M M O M Yr-1 = dr-1, 1 ... dr-1, s-1 dr-1,, r dr-1, s+1 ... dr-1 ,n Xs = ds1 ... ds, s+1 dsr ds, s+1 ... dsn

Yr+1 = dr+1, 1 ... dr+1, s-1 dr+1, r dr+1, s+1 ... dr+1, n M M O M M M O M

Ym = dm1 ... dm, s-1 dmr dm, s+1 ... dmn

Tableau 2. Tableau que resulta de un intercambio de Jordán con elemento pivote ars.

Page 25: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 15 -

En la cual, los coeficientes dij son los que resultarán después de efectuar el despeje de Xs de la

ecuación r-ésima y su sustitución en las demás ecuaciones. Estos se obtienen mediante las

siguientes reglas (Bueno, 1987):

• Elemento pivote: rs

rs ad 1

=

• Elementos sobre la hilera pivote (hilera r): rs

rjrj a

ad = , j ≠ s

• Elementos sobre la columna pivote (columna s): rs

isis a

ad −= , i ≠ r

• Resto de los elementos: rs

rjisijij a

aaad −= , i ≠ r y j ≠ s

5.4.4. Reglas del Método Simplex

Las reglas que se deben toma en cuanta para aplicar el Método Simplex son las siguientes:

5.4.4.1. Selección de la columna pivote

La elección de la columna cuya variable con elemento negativo en la última hilera del tableau

del Método Simplex, para tomar un valor λ > 0, que produce un incremento en la función

objetivo.

5.4.4.2. Selección de la hilera pivote

La elección de la hilera cuya variable con la cual se cumple λ = min {bi /ais | ais > 0}, que

garantiza factibilidad, es decir, se mantiene Y ≥ 0 y X ≥ 0.

Page 26: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 16 -

5.4.4.3. Criterio de Optimalidad

El valor óptimo se obtendrá en el punto extremo que representará el tableau cuya última hilera

es no-negativa.

5.4.5. Relación entre variables dependientes y bases

Para explicar la relación que hay entre las variables dependientes y las bases asociadas,

considérense A1, A2, …, An, los n vectores columna de la matriz A de m hileras y n columnas

y, e1, e2, …,em, los m vectores columna de la matriz identidad I de m hileras y m columnas,

donde:

I =

⎥⎥⎥⎥

⎢⎢⎢⎢

100

010001

K

MOMM

L

L

Durante alguna iteración del Método Simplex se obtendrá un tableau como el que se ilustra en

el Tableau 3:

-Y1 … -Yr -Xr+1 … -Xn 1 X1 = d11 … d1r d1, r+1 … d1n f1, n+1 M M O M M O M M

Xr = dr1 … drr dr, r+1 … drn fr, n+1 Yr+1 = dr+1,1 … dr+1, r dr+1, r+1 … dr+1, n fr+1, n+1 M M O M M O M M

Ym = dm1 … dmr dm, r+1 … dmn fm, n+1 Z = u1 … ur qr+1 … qn Q

Teorema. Para cada tableau existe una base asociada que está constituida por los vectores

columna de coeficientes (Aj para variables Xj y ei para las variables Yi), correspondientes a las

variables dependientes en el tableau y las columnas de coeficientes en el tableau, excepto la

última hilera, son las coordenadas de los vectores de coeficientes (Aj para variables Xj y ei para

Tableau 3. Tableau resultante después de r intercambios de Jordán.

Page 27: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 17 -

las variables Yi) correspondientes a las variables independientes respecto de la base asociada al

tableau.

De acuerdo a lo anterior, la base asociada al Tableau 3 la constituyen los vectores A1, …, Ar,

er+1, …, em, que son los vectores de coeficientes iniciales correspondientes a las variables

dependientes X1, …, Xr, Yr+1,…, Ym. Es por esta razón que a las variables dependientes se les

llama también variables básicas y a las independientes, variables no básicas.

Si se denota con B a la matriz formada por los vectores en la base, se tiene:

B = [A1, …, Ar, er+1, …, em]

Así entonces, los coeficientes dij sobre las columnas de las variables independientes son las

coordenadas, respecto de la base B, de los vectores e1, …, er, Ar+1, …, An, que son los

coeficientes iniciales correspondientes a las variables independientes Y1, …, Yr , Xr+1, …, Xn.

Esto quiere decir que el vector columna bajo Yr, denotado por dr, se obtendrá como:

dr = B-1er

y el vector columna bajo Xn se obtendrá como:

dn = B-1An

5.4.6. Comparación entre el tableau de Tucker y el tableau Estándar

El tableau de Tucker tiene la ventaja de que el paso de un tableau a otro representará un

intercambio entre una variable dependiente y una variable independiente y requiere

prácticamente nada de álgebra lineal para su comprensión, además permite reconocer

fácilmente el punto extremo que representa el tableau, la base y las restricciones que se cruzan

en el punto extremo. Sin embargo, algunas propiedades del Método Simplex como es su

finitud para el caso de degeneración, requieren la utilización de la forma estándar (Bueno,

1987).

Page 28: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 18 -

5.4.6.1. Características de los tableaus de Tucker y Estándar.

Las características de ambos tableaus son las siguientes:

Tucker Estándar

Las variables básicas se ubican a la

izquierda del tableau, pero también

aparecen esparcidas en él. Son las variables

cuyas columnas constituyen la matriz I y

varían de iteración a iteración.

Las variables no-básicas están esparcidas en

el tableau y son aquellas cuyas columnas

que no forman parte de la matriz idéntica I.

El valor de Z depende de las variables

básicas, la hilera de Z contiene ceros bajo

las columnas que están en la base y los

demás coeficientes coinciden con los de la

última hilera del tableau de Tucker.

Pivotear en ars ≠ 0, significa despejar Xs de

la ecuación r-ésima:

( )∑=

=+n

jrrjrj bYXa

1

y sustituirla en las demás ecuaciones, es

decir, hacer Xs básica y Yr no-básica.

La selección de la variable que entrará a la

base es cualquiera con elemento en la

última hilera < 0, eso garantiza la selección

de una variable no-básica.

1.- Las variables básicas aparecen a la

izquierda del tableau y varían de iteración a

iteración.

2.- Las variables no-básicas aparecen en la

parte superior del tableau y varían en cada

iteración.

3.- El valor de Z depende de las variables

básicas y se afecta cambiando el valor de

Xj = 0 a Xj > 0, donde Xj es una variable no-

básica.

4.- Pivotear en ars ≠ 0, significa despejar Xs

de la ecuación r-ésima:

( )∑=

+−=n

jrjrjr bXaY

1

y sustituirla en las demás ecuaciones, es

decir, hacer Xs básica y a Yr no-básica.

5.- La elección de la variable que entrará a

la base es cualquiera con qs < 0.

Page 29: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 19 -

5.4.6.2. Relación entre los tableaus Estándar y de Tucker

El tableau de Tucker es una parte del tableau Estándar. Exactamente aquellas columnas del

tableau Estándar que corresponden a las variables no-básicas, son aquellas que constituyen el

tableau de Tucker. El resto de las columnas del tableau Estándar, es decir, las que

corresponden a las variables básicas, contienen a la matriz identidad I y ceros en la última

hilera del tableau (Bueno, 1987).

El tableau de Tucker es realmente una versión resumida del tableau Estándar que tiene la

ventaja de utilizar en su definición el concepto de variables dependientes e independientes que

facilitan la comprensión del Método Simplex (Bueno, 1987).

5.4.7. Manejo de variables irrestrictas y restricciones de igualdad

El procedimiento para manipular un problema que no está en la forma estándar y llevarlo a

ella, implica, para el caso de tener igualdades, un aumento en el número de restricciones; y

para el caso de tener variables irrestrictas, aumento en el número de variables de decisión. Se

6.- La selección de la hilera que saldrá de la

base es aquella con r que haga:

fr/drs = min {fr/dis | dis > 0}.

7.- Las formulas de pivoteo son:

d’rs = 1/drs

d’rj = drj/drs j ≠ s

d’is = -dis/drs i ≠ r

d’ij = dij – (dis drj)/drs

La selección de la hilera que saldrá de la

base es aquella con r que haga:

fr/drs = min {fr/dis | dis > 0}.

Las formulas de pivoteo son:

d’rs = 1

d’rj = drj/drs j ≠ s

d’is = 0s i ≠ r

d’ij = dij – (dis drj)/drs

Page 30: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 20 -

propone otra metodología para estos casos sin tener que pasarlo a la forma estándar, ésta

consiste en remover del tableau las variables irrestrictas y las restricciones de igualdad

(Bueno, 1987).

5.4.7.1. Manejo de variables irrestrictas

Consiste en pivotear todas las variables irrestrictas para que se vuelvan variables dependientes

ó básicas. Una vez hecho esto, se extraerá del tableau la hilera de la variable y se guardará la

relación que la representará como variable dependiente para obtener su valor posteriormente

(Bueno, 1987).

Si no fuera posible efectuar el pivoteo, quiere decir, que la columna bajo la variable contiene

todos sus elementos igual a cero y:

• Si el elemento de la última hilera es cero también, se puede eliminar la columna de la

variable, ya que el problema es independiente de ella y no afecta a la función objetivo.

• Si el elemento de la última hilera es diferente de cero, entonces el problema es

no-acotado y por lo tanto infactible (Se detallan más adelante).

5.4.7.2. Manejo de restricciones de igualdad

Consiste en pivotear todas las variables Yi correspondientes a una igualdad para convertirlas en

variables independientes y posteriormente extraer la columna correspondiente del tableau.

Esto es válido, ya que al ser Yi independiente y tomando el valor de cero, garantiza el

cumplimiento de la igualdad (Bueno, 1987).

Si no fuese posible convertir a Yi en una variable independiente, quiere decir que los

elementos sobre la hilera i son todos cero y:

Page 31: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 21 -

• Si bi = 0, hay dependencia lineal. La restricción Yi es redundante y se puede eliminar

del tableau sin afectar el problema.

• Si bi ≠ 0, la restricción es infactible, y por lo tanto, el problema también lo es (Se

detalla más adelante).

5.4.8. Finitud del Método Simplex

Si un problema lineal es factible, entonces al iniciarse el Método Simplex en un punto extremo

factible, la función objetivo se mejora estrictamente en cada iteración y después de un número

finito de iteraciones se obtiene el punto óptimo ó se detecta un no-acotamiento en la función

objetivo. Todo esto si el problema es tal que en ningún tableau se presente la degeneración (Se

detalla más adelante), es decir, que los elementos de la última columna se mantengan

estrictamente positivos.

5.4.9. Casos especiales en la aplicación del Método Simplex

Taha (1981) señala que se consideran casos especiales que pueden presentarse en la aplicación

del Método Simplex, entre ellos destacan:

• Degeneración. • Puntos óptimos alternos. • Soluciones no acotadas. • Soluciones inexistentes (infactibles).

Page 32: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 22 -

5.4.9.1. Degeneración

Se dice que un tableau es degenerado si algún elemento de la última columna del tableau es

cero. Un problema es degenerado si alguno de los tableaus que se obtienen al resolverlo con el

Método Simplex es degenerado. La degeneración aparece cuando, en el problema inicial una ó

más restricciones tienen bi igual a cero, ó cuando al seleccionar la hilera del pivote, más de

una hilera produce el valor mínimo (Dantzing, 1963).

El hecho de que el punto extremo que representa el tableau se obtenga al hacer cero las n

variables independientes y que las m variables restantes sean básicas, hace que, cuando en el

punto extremo, más de n restricciones tomen el valor de cero, se puedan usar distintas

combinaciones de n variables para que sean variables independientes y consecuentemente

distintas bases (Bueno, 1987).

Como el punto extremo no cambiará, solo las bases, el valor de la función objetivo no

cambiará tampoco. Entonces, se podría tener una secuencia infinita de bases con el mismo

valor de la función objetivo y el Método Simplex podría no terminar jamás. Esto dará lugar al

fenómeno conocido como ciclaje (Dantzing, 1963).

Para evitar el ciclaje y asegurar la finitud del Método Simplex, se puede aplicar el Método de

ordenamiento lexicográfico ó la regla de Bland (Bueno, 1987).

5.4.9.2. Puntos óptimos alternos

Cuando la función objetivo es paralela a una restricción que se satisface en el sentido de la

igualdad a través de la solución óptima, la función objetivo tomará el mismo valor óptimo en

más de un punto de solución (Taha, 1981).

Si al obtener el valor óptimo de un problema, el tableau óptimo contiene ceros en la última

hilera, el problema contiene puntos óptimos alternos. La restricción que es paralela a la

Page 33: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 23 -

función objetivo es la que contiene elemento diferente de cero en la última hilera del tableau.

Para obtener estos puntos alternos, se pueden hacer iteraciones (Intercambios de Jordán) en las

variables independientes j que contengan elemento qj de la última hilera igual a cero; Taha

(1981) señala que estas variables entrarán a la solución sin alterar el valor de Z, pero

provocarán un cambio en los valores de las variables.

5.4.9.3. Soluciones no acotadas

Taha (1981) menciona que en algunos modelos de programación lineal, los valores de las

variables se pueden aumentar en forma indefinida sin violar ninguna de las restricciones, lo

que significa que el espacio de soluciones es no acotado cuando menos en una dirección. Esto

da como resultado, que el valor de la función objetivo aumente (caso de maximización) ó

disminuya (caso de minimización) en forma indefinida. En este caso se dice que el espacio de

soluciones y la función objetivo son no-acotados.

Thie (1979) señala en un teorema, que se detectará un no-acotamiento en la función objetivo

cuando se encuentre una columna j con elemento de la última hilera qj < 0 pero con aij ≤ 0

para i = 1,2,…,m, es decir, que en la columna seleccionada, todos los elementos, a excepción

de él de la última hilera, sean menor o igual a cero.

5.4.9.4. Soluciones infactibles

Taha (1981) señala que cuando las restricciones no se pueden satisfacer en forma simultánea,

se dice que el modelo no tiene solución factible. Esta situación nunca podrá ocurrir si todas las

restricciones son del tipo “≤” suponiendo constantes no negativas en la última columna

(elementos bi).

Usando el tableau de Tucker, esta situación se presenta en el caso de tener restricciones del

tipo “=” cuando no es posible convertir la variable Yi correspondiente en variable

Page 34: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 24 -

independiente. Ocurre también en el caso de aplicar la Fase 1 cuando tenemos elementos

bi < 0, cuando al maximizar la variable adicional Z* = - ρ, su óptimo ocurre en un punto ρ ≠ 0.

5.4.10. Supuestos de la programación lineal

De acuerdo con Bazaraa (1981), para poder representar un problema de optimización como un

problema de programación lineal, se requieren varios supuestos que están implícitos en la

formulación del problema. A continuación se explican brevemente:

5.4.10.1. Proporcionalidad

El supuesto de proporcionalidad es sobre la función objetivo y las restricciones. Se refiere a

que la contribución de cada actividad Xj al valor de la función objetivo es proporcional al nivel

de la actividad Xj, representado por el término cj Xj en la función objetivo. Similarmente, la

contribución de cada actividad al lado izquierdo de cada restricción funcional es proporcional

al nivel de la actividad Xj, representado por el termino aij Xj en la restricción. Este supuesto

elimina cualquier exponente de las variables Xj distinto de 1 en cualquier término de la función

objetivo ó del lado izquierdo de las restricciones (Hillier y Lieberman, 2001).

5.4.10.2. Aditividad

Aunque el supuesto de proporcionalidad elimina los exponentes de las variables distintos de

uno, no prohíbe los términos de productos cruzados. El supuesto de aditividad, también

conocido como de linealidad, se refiere a que el valor de cada función en un modelo de

programación lineal (función objetivo ó lado izquierdo de las restricciones) es la suma de las

contribuciones individuales de las restricciones respectivas (Hillier y Lieberman, 2001).

Page 35: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 25 -

5.4.10.3. Divisibilidad

El supuesto de divisibilidad se refiere a los valores permitidos para las variables de decisión.

Este supone que las variables de decisión en un modelo de programación lineal pueden tomar

cualquier valor, incluso valores no enteros, que satisfagan las restricciones funcionales y de no

negatividad. Quiere decir que las variables no están restringidas solo a valores enteros. Por lo

tanto, como cada variable de decisión representa el nivel de alguna actividad, se supone que

las actividades se pueden realizar a niveles fraccionales (Hillier y Lieberman, 2001).

En algunas situaciones este supuesto no se cumple debido a que algunas ó todas las variables

de decisión deben restringirse a valores enteros. Estos modelos se conocen como Modelos de

Programación Entera; pero en el presente trabajo solo se trabaja con problemas cuyos valores

no son necesariamente enteros.

5.4.10.4. Determinismo

Este último supuesto, también conocido como de certidumbre, se refiere a los precios unitarios

(cj) en la función objetivo, a los coeficientes tecnológicos (aij) en las restricciones funcionales

y a las cantidades de recurso disponible (bi) en el lado derecho de las restricciones. Y supone

que los valores asignados a cada uno de estos parámetros de un modelo de programación

lineal, son constantes conocidas.

En los problemas reales, rara vez se satisface por completo este supuesto de certidumbre.

Generalmente se formula un problema como una aproximación para elegir un curso de acción

futuro, por lo tanto, al ser una predicción, los valores de los parámetros generan un cierto

grado de incertidumbre.

Por eso, es importante siempre realizar un análisis de sensibilidad después de encontrar una

solución (Hillier y Lieberman, 2001).

Page 36: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 26 -

5.4.11. Análisis de sensibilidad

Una vez que se halla resuelto un problema de programación lineal, puede darse el caso de que

uno o varios parámetros de la formulación original, tales como los precios unitarios (cj), los

coeficientes tecnológicos (aij) ó la disponibilidad de los recursos (bi), cambien, dando origen a

un nuevo problema. Sin embargo, no es necesario volver a resolverlo, el análisis de

sensibilidad permite identificar el impacto que resulta en la solución óptima del problema

original luego de determinadas variaciones en los coeficientes del modelo sin que sea

necesario resolver el problema de nuevo. Este análisis hace uso de la solución óptima y del

tableau final del Método Simplex (Prawda, 2005).

La variación en estos coeficientes del problema se analizará individualmente, es decir, se

analizará la sensibilidad de la solución debida a la modificación de un coeficiente a la vez,

asumiendo que todos los demás permanecen sin alteración alguna. Esto es importante porque

se trata de una sensibilidad estática y no dinámica, que solo contempla el cambio de un dato a

la vez y no el de varios (Figueroa, 2009).

El objetivo principal del análisis de sensibilidad es establecer un intervalo de números reales

en el cual la variable que se analiza pueda estar contenida, de tal manera que la solución siga

siendo óptima y que la variable permanezca en el nivel en el que se encuentra (básica ó no-

básica) siempre que su valor pertenezca a dicho intervalo, es decir, que no se tenga que

cambiar la base; además de predecir el cambio que sufre el valor de Z debido a un cambio en

la variable (Hillier y Lieberman, 2001).

Generalmente, se presta más atención al análisis de sensibilidad sobre los parámetros bi y cj

que sobre los aij, ya que el efecto de variar el valor de algún aij, casi siempre es despreciable,

mientras que un cambio en un bi ó cj puede tener un impacto más notable, además de que los

valores de aij quedan determinados por la tecnología que se está usando, de aquí el nombre que

se les da de coeficientes tecnológicos.

Page 37: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 27 -

Si el análisis de sensibilidad indicara que la base no cambia y que la solución ó el valor de Z se

afectan solo levemente ante cambios considerables en los valores de los coeficientes, se dice

que la solución óptima es insensible. Por otro lado, si la base cambia ó el valor óptimo de la

función Z se modifica considerablemente ante cambios pequeños en los en los valores de los

coeficientes, se dice que la solución óptima es sensible (Dantzing, 1963).

5.4.11.1. Análisis de sensibilidad para la función objetivo

El análisis de sensibilidad para la función objetivo consiste en conocer:

• Los rangos en los que pueden fluctuar los costos para las variables sin que se tenga que

modificar la base.

• Como cambia la base fuera de esos rangos.

• En cuánto se modifica el valor de la función objetivo.

5.4.11.1.1. Rango para las variables no-básicas.

Considere el tableau óptimo, es decir, el último que se obtiene al finalizar el Método Simplex,

cuando ya no es posible mejorar más el valor de la función objetivo. Suponga el Tableau 3

como óptimo.

El rango en que puede fluctuar el costo de una variable no-básica (independiente), sin que

entre a la base y cambie la solución óptima se conoce como rango de insignificancia.

El análisis de sensibilidad puede efectuarse utilizando la información contenida en el tableau

óptimo. Los coeficientes qj de la última hilera del tableau se pueden obtener como sigue:

qj = zj – cj = cBB-1 hj – cj

Page 38: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 28 -

donde hj es el vector columna en la matriz H = (I, A) correspondiente a la variable de la

columna j del tableau y cB es el vector que contiene los costos de las variables que son básicas.

Al cambiar el costo de una variable Xk no básica, de ck a c’k = ck + ∆, el nuevo valor q’k será:

q’k = qk - ∆

Para que el punto óptimo que representa el tableau permanezca como optimo, se deberá seguir

cumpliendo que la última hilera sea no-negativa, es decir, q’k deberá ser mayor ó igual a cero.

Entonces qk - ∆ ≥ 0 implica que ∆ ≤ qk. De donde el rango de insignificancia para la variable Xk

será (- ∞, ck + qk].

5.4.11.1.2. Rango para las variables básicas

El rango en que puede fluctuar el costo (ci) de una variable básica (dependiente) Xi, sin que

esta deje de ser productiva y salga de la base y, por consiguiente, cambie la solución óptima,

se llama rango de optimalidad.

Similarmente, los coeficientes qj de la última hilera del tableau se obtienen como sigue:

qj = zj – cj = cBB-1 hj – cj

Al cambiar el costo de una variable básica cBi a cBi + ∆, donde cB es el vector que contiene los

costos de las variables que son básicas, después de una manipulación algebraica, los

coeficientes de la última hilera se modifican a :

q’j = qj + ∆eiB-1hj

Para que el punto extremo óptimo se mantenga óptimo se deberá cumplir que:

q’j ≥ 0, j = 1, …, n

Esto quiere decir que para obtener los q’j se debe sumar a la última hilera del tableau, ∆ veces

la hilera i. Las expresiones obtenidas tienen que ser entonces, mayor ó igual a cero y definirán

el rango de optimalidad para la variable Xi.

Page 39: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 29 -

5.4.11.1.3. Costo reducido

Haciendo uso del tableau se puede conocer qué variable no-básica provoca un incremento

mayor en la función objetivo. Esto se logra conociendo el costo reducido de la variable.

El valor del costo reducido de la variable Xj indica el cambio en el valor de la función objetivo

por cada unidad de aumento en el valor de la variable no-básica Xj. Por consiguiente, un costo

reducido positivo para una variable no-básica tiene como resultado una solución con un valor

de la función objetivo mayor cuando dicha variable no-básica se convierte en básica. Un costo

reducido negativo tiene como resultado una solución con un valor de la función objetivo más

pequeño (Kamlesh, 1996).

El Método Simplex, con el tableau de Tucker identifica este costo reducido como el

coeficiente (qj) que se encuentra en la última hilera de la columna de la variable independiente

Xj.

5.4.11.2. Análisis de sensibilidad para el lado derecho de las restricciones

El análisis de sensibilidad para el vector del lado derecho de las restricciones (LDR), es muy

importante desde el punto de vista económico, pues las restricciones generalmente representan

recursos, tiempo de labor, etc., que podrían cambiar si resultara benéfico.

5.4.11.2.1. Rango para las restricciones no básicas

El rango en que se puede mover el coeficiente bi sin modificar a tal grado la región factible

que obligue a un cambio en la base y por lo tanto, a un diferente punto óptimo, se conoce

como rango de factibilidad para la restricción.

Page 40: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 30 -

Si la restricción Yi se encuentra como variable independiente y se cambia el valor de bi por

bi + ∆, el nuevo valor de la función objetivo es:

Q’ = Q + ∆ cB B-1 ei

pero como ei es el vector de coeficientes asociados a Yi, se tiene que cB B-1 ei es el coeficiente

de la última hilera del tableau bajo Yi, denotada como ui, de donde:

Q’ = Q + ∆ ui

La solución óptima se transformará en:

X’B = XB + ∆ B-1 ei

es decir, para obtener la nueva solución, hay que agregar ∆ veces la columna bajo Yi al vector

de solución (a la última columna del tableau). Para encontrar el rango de factibilidad para la

restricción i, se deberá cumplir que el nuevo punto se mantenga factible, es decir:

X’B = XB + ∆ B-1 ei ≥ 0

Los límites de ∆ que resulten de la desigualdad anterior definirán el rango de factibilidad para

bi.

5.4.11.2.2. Rango para las restricciones básicas

Se llama actividad de la restricción al valor que se usa durante el proceso. En el tableau, este

valor es equivalente al valor de la variable Yi, que es igual a ∑=

n

jjij Xa

1

, siendo Xj el valor

optimo. La holgura de la restricción es el remanente no utilizado en el proceso, es decir,

bi - ∑=

n

jjij Xa

1

.

Si bi < ∑=

n

jjij Xa

1

, siendo Xj el valor optimo, el punto extremo obtenido sería infactible, por lo

que se tendría que cambiar de base para obtener el óptimo.

Page 41: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 31 -

Si se cambia el valor de bi por b’i = bi + ∆, y para que la nueva solución X’B siga siendo

óptima, se deberá cumplir que:

X’Bi = XBi + ∆ ≥ 0

Es decir, mientras ∆ ≥ - XBi.

5.4.11.2.3. Precios sombra

El Método Simplex proporciona una información sobre la contribución económica de los

recursos al desempeño de Z, denominados precios sombra para los recursos.

El precio sombra para el recurso i, mide el valor marginal de este recurso, es decir, la tasa a la

cual Z puede aumentar si se incrementa la cantidad que se proporciona de este recurso bi.

Dicho de otra manera, representa la variación que sufre Z ante un aumento de una unidad de bi

(Hillier y Lieberman, 2001). El Método Simplex, con el tableau de Tucker identifica este

precio sombra como el coeficiente ui (ver Tableau 3) que se encuentra en la última hilera de la

columna de la variable independiente Yi.

Los precios sombra con signo positivo restringen a Z para que no pueda incrementarse. Los

recursos con este precio sombra se conocen como recursos escasos. Mientras que los recursos

con precio sombra igual a cero que son disponibles con superávit, se conocen como recursos

abundantes. Si el valor que se usa para bi es una estimación del valor del recurso disponible y

no una decisión del administrador, se debe manejar con más cuidado si tiene precio sombra

positivo ó más aun, si el valor del precio sombra es grande (Hillier y Lieberman, 2001).

5.4.12. Método del ordenamiento lexicográfico

Este método se basa en las siguientes definiciones y propiedades:

Page 42: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 32 -

Definición. Un vector X ∈Rn es positivo (ó negativo) lexicográficamente, si su primer

elemento diferente de cero es positivo (ó negativo) y se escribe X f 0 (ó X p 0), indicando

así que X es lexicográficamente positivo (ó negativo).

Por ejemplo: (0, 0, 7, 4,-5) f 0; (0,-4, 4, 0, 5) p 0

Definición. Un vector X es mayor que el vector Y lexicográficamente (X f Y), si y solo si, el

vector de diferencia X - Y es positivo lexicográficamente (X - Y f 0).

Por ejemplo: (0, 3,-4, 0,-2) f (0, 1, 4,-4, 3), ya que (0, 2, -8, 4, -5) f 0.

Las propiedades del ordenamiento lexicográfico son:

Propiedad 1.

Si X f 0, y Y f 0, entonces, X + Y f 0.

Para cada X ≠ Y ∈Rn, puede cumplirse una de las siguientes posibilidades:

• X f Y.

• X p Y.

• Propiedad de Transitividad: X f Y y Y f Z, entonces, X f Z

Propiedad 2. Mínimo

Sean m vectores de Rn, distintos, es decir, Ai ∈ Rn, i = 1,2,…, m, Ai ≠ Aj, i ≠ j, entonces Ar es

el mínimo lexicográfico, si y solo si, Ar p Ai para i = 1,2,…, m, i ≠ r y se escribe

Ar = { }mmi

A,,ALexicoMin 11

K≤≤

.

El Método Simplex con el ordenamiento lexicográfico requiere que el problema sea positivo

lexicográficamente para poder iniciarse. Para esto, dado que el vector b es positivo (en el caso

de haber factibilidad y no presentarse degeneración), se traslada este de tal manera que sea la

primera columna del tableau. Considérese el Tableau 4.

Page 43: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 33 -

1 -Y1 … -Yp -Xp+1 … -Xn X1 = f1, n+1 d11 … d1p d1, p+1 … d1n M M M O M M O M

Xp = fp, n+1 dp1 … dpp dp, p+1 … dpn Yp+1 = fp+1, n+1 dp+1,1 … dp+1, p dp+1, p+1 … dp+1, n M M M O M M O M

Ym = fm, n+1 dm1 … dmp dm, p+1 … dmn Z = Q u1 … up qp+1 … qn

En las iteraciones, la regla para seleccionar la columna pivote, es cualquier columna s con

elemento negativo en la última hilera y la regla para seleccionar la hilera pivote es la hilera r

que sea el mínimo lexicográficamente de los vectores hilera multiplicados por 1/ dis, es decir,

se elige la hilera que cumpla:

⎟⎟⎠

⎞⎜⎜⎝

⎛=⎟⎟

⎞⎜⎜⎝

>≤≤ is

ni

is

i

is

i

is

i

hmirs

nr

rs

r

rs

r

rs

r

dd

dd

dd

df

dd

dd

dd

df

is

,,,,LexicoMin,,,, 21

0,1

21 LL

La regla de selección lexicográfica garantiza que:

• Todas las hileras, con excepción posiblemente de la hilera correspondiente a la función

objetivo, permanezcan positivas lexicográficamente.

• El valor de la función objetivo Z se incremente en cada iteración, evitándose así el

ciclaje, iniciándose para la siguiente iteración con un tableau positivo

lexicográficamente.

Tableau 4. Tableau resultante después de p intercambios de Jordán, con la columna de bi al inicio.

Page 44: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 34 -

6. MATERIALES Y MÉTODOS

Para la elaboración del trabajo propuesto, se hizo uso de la información contenida en la

bibliografía de la Dra. Graciela Bueno Aguilar, “Introducción a la Programación Lineal y al

Análisis de Sensibilidad”. Además, esta bibliografía se adaptó en un programa que contiene

los elementos necesarios para la solución y obtención de los resultados de problemas de

programación lineal utilizando el Método Simplex usando el tableau de Tucker, todo esto,

haciendo uso del lenguaje C++, con el cual se llevó a cabo un tipo de paradigma de

programación que usa objetos y sus interrelaciones para diseñar aplicaciones de computadora

conocido como programación orientada a objetos (Blum, 1992) mediante el compilador

Borland C++ Builder versión 6. Además, se redactó un pequeño manual para el uso del

mismo, este contiene imágenes de apoyo resolviendo un problema hipotético.

La metodología que se programó en el sistema para la solución de un problema de

programación lineal es la propuesta en la teoría por medio de algoritmos, a saber:

1) Una vez introducidos todos los datos y antes de empezar a resolver el problema ya sea

pasando a la Fase 1 ó Fase 2, de existir variables de decisión no restringidas y/o

restricciones de igualdad, se realiza el tratamiento propuesto en la bibliografía, es

decir, eliminar las variables irrestrictas una vez establecidas como variables

dependientes con un intercambio de Jordán y guardando su relación que la representa

como variable dependiente para al final, ya teniendo los valores de las variables

independientes, obtener su valor; y para las restricciones de igualdad, el tratamiento es

también eliminarlas del tableau después de intercambiarlas como variables

independientes mediante un intercambio de Jordán. Este tratamiento lo debe hacer el

usuario, indicando el orden de eliminación y la variable con la que se hará dicho

intercambio, ya sea al mismo tiempo ó con alguna variable que permita el intercambio.

2) Una vez hecho esto, el programa detecta si es necesario aplicar la Fase 1 del Método

Simplex ó se puede pasar directamente a la Fase 2 del mismo. Si fuese necesario

aplicar la Fase 1, la herramienta, elaborará el paso sugerido en la teoría, esto es,

Page 45: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 35 -

introducirá en una columna, una variable adicional “ρ” (Rho) y una función adicional

Z* = - ρ, que en el programa se indicará como “R”. Maximizará la función Z*, hecho

esto, el sistema indicará el paso a seguir dependiendo del resultado de este

procedimiento aplicado, que puede ser continuar a la Fase 2 si el máximo de la función

Z* se alcanzara en ρ = 0, de lo contrario, detectará la infactibilidad del problema y

mostrará un mensaje sobre tal infactibilidad.

3) De poder pasar a la Fase 2 del Método Simplex, en el programa se puede seleccionar

de una lista la variable que entrará a la base dándole un clic sobre esta y

automáticamente, aplicando el método de ordenamiento lexicográfico para evitar

ciclaje y una secuencia infinita de intercambios de Jordán, la herramienta propone la

variable dependiente que saldrá de la base. Al tener ya contempladas ambas variables,

se hace un intercambio de Jordán usando como elemento pivote el que se encuentra en

la intersección de la fila y la columna de las variables. Si el usuario prefiere, se puede

elegir resolver el problema automáticamente con un botón sin tener que escoger la

variable, ya que el programa lo hace repetidamente hasta que ya no se cumpla el

criterio de selección de la variable que entrará a la base.

4) Si en el problema existieran variables que no acotan la función objetivo, es decir, no se

pudiera aplicar el Método Simplex, ya que la región factible no es acotada, el programa

desplegará un mensaje de no-acotamiento y el Método Simplex terminará. Por otro

lado, si existieran restricciones no factibles, el sistema las detectará y sugerirá

eliminarlas de ser posible ó terminar el proceso del Método Simplex.

5) Cuando ya no se cumpla con el criterio de selección de la variable independiente que

entrará a la base, el programa lo indicará en un mensaje desplegado y presentará en una

tabla el resumen del problema, a saber, valores finales de las variables, coeficientes

(tecnológicos ó costos), contribución total de cada variable al valor de la función

objetivo, precio sombra ó costo reducido, rango de optimalidad, de insignificancia ó de

factibilidad. Además, el usuario podrá obtener, si es que existieran, los puntos óptimos

alternos del problema mediante intercambios de Jordán.

Page 46: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 36 -

7. RESULTADOS

El resultado obtenido al final de este trabajo fue un sistema para Windows que soporta

cualquier sistema operativo hasta Windows Vista en 32 bits, además de un pequeño manual

del usuario sobre cómo usar dicho programa.

7.1. SOLUCIONADOR DE PROBLEMAS LINEALES USANDO EL TABLEAU DE

TUCKER (SPLITT)

Se elaboró un programa que utiliza los mecanismos típicos de la interface de Windows, es

decir, ventanas, menús desplegables, barras de herramientas, etc. Su uso y manejo es similar a

cualquier otro que utilice el entorno Windows.

Este programa cuenta con tres ventanas: la ventana principal donde contiene los botones y el

menú básico del sistema. Una ventana secundaria que contiene una interfaz que posee celdas

de entrada de datos: numero de variables, numero de restricciones, tipo de variables de

decisión, criterio del problema, además de una matriz la cual contendrá el tableau inicial del

problema. Además, de una segunda ventana secundaria donde se contiene una matriz donde se

alojarán los tableaus para cada una de las iteraciones, además de una matriz donde se

presentarán los resultados finales.

El programa es capaz de resolver problemas de programación lineal definidos con hasta 50

variables de decisión y hasta 50 restricciones de recurso; en él se pueden resolver problemas

ya sea de maximizar (ganancias) ó minimizar (costos). El usuario formula el problema en su

forma natural y el programa lo manipula para llevarlo a la forma adecuada:

Maximizar Z = c X. Sujeta a: Y = A (- X) + b ≥ 0

X ≥ 0. que es la que se usa en el tableau de Tucker.

Page 47: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 37 -

El programa realiza el tratamiento para variables irrestrictas y/o restricciones de igualdad, si es

que estas existen, ó pasa directamente a la Fase 2 del Método Simplex donde se aplicarán

intercambios de Jordán para hacer cambios de base e ir mejorando la función objetivo hasta

alcanzar su valor máximo.

Una vez encontrado el valor óptimo, el programa muestra en una tabla, el análisis de

sensibilidad del problema, que cuenta con los valores máximos y mínimos en los que debe

fluctuar el valor de la variable para mantenerla en el nivel en que se encuentra, además del

costo unitario para las variables independientes básicas, el costo reducido para las variables

no-básicas y el precio sombra de las restricciones que no están en la base.

7.2. MANUAL DEL USUARIO

7.2.1. Presentación

El programa SPLITT es una herramienta amigable con la cual se podrá apoyar para resolver

problemas de programación lineal. Por la palabra “amigable” se quiere decir que su manejo y

uso es fácil, ya que está en idioma español y que su entorno es familiar, ya que cuenta con

matrices de entrada de datos, menús desplegables, barras de herramientas, etc. Al iniciar el

programa aparece una ventana de presentación (Figura 1) de SPLITT.

Figura 1. Ventana de inicio del programa SPLITT.

Page 48: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 38 -

7.2.2. Botones y funciones asociadas

Los principales botones con que cuenta la barra de herramientas de SPLITT se ilustran en la

Figura 2:

Nuevo. Para formular un nuevo problema. Aparecerá una ventana de entrada de datos (numero

de variables, numero de restricciones, criterio de optimización, tipo de variables por default).

Abrir. Para abrir un problema guardado anteriormente. Abre archivos del tipo *.txt con el

formato requerido de SPLITT.

Guardar. Puede guardar un problema formulado. Solo guarda la formulación, no los

resultados. Se guarda en archivo *.txt.

Vista anterior. Regresa a la ventana de entrada de datos, donde puede modificar los

coeficientes del problema.

Intercambio de Jordán. Aparece una ventana en la cual puede escoger las variables que va

intercambiar durante la solución del problema.

Nuevo

Abrir

Guardar

Vista anterior

Intercambio de Jordán

Columna mas ancha

Columna menos ancha

Hilera mas alta

Hilera menos alta

Letra mas grande

Letra mas chica

Eliminar hilera

Eliminar columna

Resolver

Figura 2. Principales botones de la barra de herramientas de SPLITT.

Page 49: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 39 -

Resolver. Para resolver el problema haciendo intercambios de Jordán hasta que se encuentra la

solución. Solo está disponible cuando no hay variables irrestrictas, restricciones de igualdad ó

puntos extremos no factibles.

Columna más ancha ó columna menos ancha. Para cambiar el ancho de la columna del tableau

ó de la tabla de resultados que aparece al resolver el problema.

Hilera más alta ó hilera menos alta. Para modificar la altura de las hileras del tableau.

Letra más grande ó letra más chica. Se puede modificar el tamaño de la fuente usada en las

tablas.

Eliminar hilera ó eliminar columna. Puede sustraer del tableau una hilera ó columna, siempre

y cuando no afecte el problema, es decir, que todos los elementos en la hilera ó columna sean

cero. Si elimina una hilera o columna diferente de ceros, puede alterar el problema original.

7.2.3. Definir un nuevo problema

Para formular un nuevo problema lineal se puede hacer clic en el menú archivo, seleccionar la

opción “Nuevo” ó hacer clic en el botón del mismo nombre, donde aparecerá una ventana de

entrada de datos (Figura 3). Se le pude poner opcionalmente un nombre al problema. En el

cuadro de “Tamaño del problema”, se debe especificar el número de variables de decisión y el

número de restricciones de recurso; los cuales deben ser valores enteros mayores que 1 y

menor o igual 50. Además, en el cuadro de “Criterio del problema”, se puede escoger el tipo

de problema que se va a resolver (de maximización ó de minimización), seleccionando con un

clic la opción a manejar. En el cuadro de “Tipo de variable por default”, se puede seleccionar

el tipo de variable que aparecerá en el tableau por omisión, aunque más adelante se puede

cambiar. Una vez introducidos los datos de variables, restricciones y criterio, para continuar

hacer clic en el botón “OK”.

Page 50: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 40 -

7.2.4. Introducir los datos del problema

Una vez que ya se tiene especificado el tamaño del problema (número de variables,

restricciones y criterio de optimización) se pueden introducir los datos del problema en la

matriz, es decir, los coeficientes de cada restricción (R1, R2, etc.), los coeficientes de la

función objetivo, el lado derecho de las restricciones (bi), la dirección de la restricción y el tipo

de variable Xj. Los datos pueden ser números enteros o decimales, estos últimos, se deben

introducir a 3 cifras, se pueden también escribir fracciones como de esta manera ½, 4/5, ¾,

etc. La dirección se puede cambiar escribiendo “<=”, “=” ó “>=” ó haciendo clic sobre ella

donde aparecerá una pequeña lista como en la Figura 4 y seleccionando la deseada.

Similarmente, el tipo de variable, se puede cambiar escribiendo “nonegativa” ó “irrestricta”, ó

Figura 3. Ventana de definición del problema con que cuenta el programa SPLITT.

Page 51: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 41 -

haciendo clic sobre la celda y eligiendo el deseado de la lista (Figura 4). Es posible introducir

solamente los coeficientes diferentes de cero y para completar, si es que hubiesen, los datos

restantes con ceros, existe la opción “Rellenar con ceros” dando clic con el botón derecho del

mouse.

Por ejemplo, el problema:

Maximizar Z = 2X1 + X 2 - 2X 3 + 2X4 Sujeta a: X1 + X2 + 3X3+ X4 ≤ 6

2X1+ 2X2 + 2X3 + 2X4 ≤ 5 3X1 + X2 + 2X3 + 4X4 ≤ 4

4X1 + 3X3 + X4 ≤ 6 X1, X2, X3, X4 ≥ 0

se formularía en SPLITT como se ilustra en la Figura 5:

Figura 5. Ventana de descripción del problema en SPLITT.

Figura 4. Matriz de entrada de datos en SPLITT.

Page 52: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 42 -

7.2.5. Comenzar a resolver un problema

Cuando ya se han introducido los datos del problema, se puede continuar haciendo clic en el

botón ”Siguiente”. Inmediatamente aparecerá la ventana de “Solución del Problema” tal como

se ilustra en la Figura 6.

El programa indicará en un texto de seguimiento que aparecerá durante la solución del

problema, ubicado en la parte inferior de la ventana, el paso a seguir dependiendo si hay

variables irrestrictas y/o restricciones de igualdad, directamente aplicar la Fase 1 ó pasar a la

Fase 2 del Método Simplex. Se puede regresar a la ventana de “Descripción del Problema”

desde el menú “Datos>Modificar datos del tableau” ó con el botón “Pagina anterior”, donde

se pueden hacer modificaciones a los datos. También es posible modificar el tamaño del

problema desde el menú “Datos>Modificar criterio y tamaño”.

Figura 6. Ventana de Solución del Problema del programa SPLITT.

Page 53: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 43 -

7.2.6. Tratamiento de variables irrestrictas

Si existieran variables irrestrictas en el problema, habrá que eliminarlas del tableau. El

programa lo indicará en el texto de seguimiento. Se debe dar clic en el botón “Intercambio de

Jordán” ó en el menú “Análisis>Intercambio de Jordán”.

Aparecerá una ventana como la de la Figura 7, donde se puede seleccionar con un clic, la

variable irrestricta que se desee intercambiar para eliminar en cada intercambio de Jordán. En

la lista de la izquierda, aparecerán las variables dependientes con las que es posible realizar tal

intercambio. Si además, existieran restricciones de igualdad, se pueden intercambiar al mismo

tiempo variables irrestrictas e igualdades seleccionando la opción “Intercambiar al mismo

tiempo” que se encuentra en el cuadro de la parte inferior de la ventana. Si no existieran

restricciones de igualdad en el problema, tal cuadro no aparecerá. En los cuadros que se

encuentran en la parte superior de las listas, aparecerán las variables que se van intercambiar.

Si no fuera posible intercambiar la variable X, ya sea debido a un no-acotamiento, el programa

lo indicará con un mensaje y el Método Simplex terminará; ó debido a una redundancia (todos

Figura 7. Ventana de intercambio de Jordán para eliminar variables irrestrictas.

Page 54: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 44 -

los elementos sobre la columna de la variable son cero), se debe eliminar haciendo clic sobre

el botón “Eliminar columna” ubicado en la barra de herramientas. Si se elimina una columna

con elementos distintos de cero, se puede afectar el problema original.

7.2.7. Tratamiento de restricciones de igualdad

Si existieran variables irrestrictas en el problema, habrá que eliminarlas del tableau después de

intercambiarlas como variables independientes. El programa lo indicará en el texto de

seguimiento situado en la parte inferior de la ventana. Se deberá hacer clic en el botón

“Intercambio de Jordán” ó en el menú “Análisis > Intercambio de Jordán”.

Aparecerá una ventana como la de la Figura 8, donde se puede seleccionar con un clic, la

variable Y correspondiente a la igualdad que se desee intercambiar para eliminar en cada

intercambio de Jordán. En la lista de la derecha aparecerán las variables independientes con las

que es posible realizar tales intercambios. Si además existieran variables irrestrictas se pueden

Figura 8. Ventana de intercambio de Jordán para eliminar restricciones de igualdad.

Page 55: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 45 -

intercambiar al mismo tiempo igualdades y variables irrestrictas seleccionando la opción

“Intercambiar al mismo tiempo” que se encuentra en el cuadro de la parte inferior de la

ventana. Si no existieran variables irrestrictas en el problema, tal cuadro no aparecerá. En los

cuadros que se encuentran en la parte superior de las listas, aparecerán las variables que se van

intercambiar.

Si no fuera posible intercambiar la variable Y, ya sea debido a una infactibilidad, el programa

lo indicará con un mensaje y el Método Simplex terminará; ó debido a una dependencia lineal

(todos los elementos sobre la columna de la variable son cero), se debe eliminar haciendo clic

sobre el botón “Eliminar hilera” ubicado en la barra de herramientas. Si se elimina una hilera

con elementos distintos de cero, se puede afectar el problema original.

7.2.8. Aplicación de la Fase 1 del Método Simplex

Si en el problema planteado existiera algún elemento de la última columna del tableau menor a

cero, se deberá aplicar la Fase 1. El programa lo indicará en el texto de seguimiento situado en

la parte inferior y agregará una variable “R” ubicada en una columna antes de la columna de

“1“, además de una función adicional “Z*” en la última hilera del tableau.

El usuario deberá dar clic en el botón “Intercambio de Jordán” para continuar con el

procedimiento, que es maximizar la función Z*, primeramente intercambiando a R con la

variable Y que tenga en la columna de “1”, al mayor coeficiente negativo, en valor absoluto.

Cuando se halla maximizado la función Z*, aparecerá un mensaje como el de la Figura 9 si el

máximo ocurre en R = 0 y automáticamente el programa eliminará la columna de R e hilera Z*

y podrá continuar con la Fase 2. Si el máximo ocurriera en R ≠ 0, se mostrará un mensaje de

infactibilidad del problema y terminará el Método Simplex. El mismo procedimiento se hará

cuando después de eliminar todas las variables irrestrictas y restricciones de igualdad,

existieran elementos negativos en la última columna del tableau.

Page 56: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 46 -

7.2.9. Aplicación de la Fase 2 del Método Simplex

Se podrá aplicar la Fase 2 del Método Simplex, siempre y cuando no halla variables

irrestrictas, restricciones de igualdad ó coeficientes negativos en la última columna. En este

momento, estará visible el botón “Resolver”, con el cual se podrá resolver el problema dándole

clic ó desde el menú “Análisis>Resolver”, ó si se prefiere ir viendo cada uno de los

intercambios de Jordán, dando clic en el botón “Intercambio de Jordán” (ó en el menú

“Análisis>Intercambio de Jordán”), aparecerá la ventana (Figura 10) donde es posible elegir

de la lista de la derecha la variable independiente que incrementa la Z, dándole un clic y en la

lista de la izquierda aparecerá la variable dependiente con la cual se hará el intercambio,

aplicando la regla de selección. Se puede realizar el intercambio, dando clic en el botón

“Intercambio”.

Figura 9. Mensaje que muestra SPLITT después de maximizar la función Z*.

Figura 10. Ventana de intercambio de Jordán que se presenta en la Fase 2 del Método S implex.

Page 57: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 47 -

7.2.10. Finalización del Método Simplex

El Método Simplex terminará cuando:

• Se ha obtenido la solución óptima, y ésta es única. En este caso aparecerá un mensaje

como el siguiente (Figura 11):

• Se ha obtenido una solución óptima, aunque existe más de una solución. Se mostrará

un mensaje como el siguiente (Figura 12):

En este último caso, se puede hacer un intercambio de Jordán dando clic en el botón del

mismo nombre en la barra de herramientas para obtener los puntos óptimos alternos. En

ambos casos, después de clicar el botón de “OK” del mensaje que se mostrará, se presentará

una tabla con el resumen del problema y el análisis de sensibilidad (Figura 13).

Figura 11. Mensaje que muestra el programa al final cuando la solución es única.

Figura 12. Mensaje que muestra el programa al final cuando existe más de una solución.

Page 58: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 48 -

En el menú “Ver” se puede cambiar entre ver el tableau óptimo (el último que se obtuvo) ó ver

los resultados finales (Figura 13).

7.3. PROBLEMA RESUELTO ALTERNAMENTE CON SPLITT Y WIN QSB

Problema

La Productora Nacional de Fertilizantes quiere programar su producción trimestral para el

próximo año de 1975. Supóngase que la demanda de fertilizantes pronosticada por la

Secretaría de Agricultura es de:

Toneladas de

Periodo fertilizante 1er trimestre 1975 100,000 2do trimestre 1975 120,000 3er trimestre 1975 110,000 4to trimestre 1975 90,000

La capacidad de producción de la Productora Nacional de Fertilizantes es de 95,000 toneladas

por trimestre. Sin embargo, se pueden producir 30,000 toneladas adicionales por trimestre si se

pone a trabajar un tercer turno. Cuesta $300/ton/trimestre más el poder producir el fertilizante

en el turno extra que durante los turnos normales. Eso se debe a que en los turnos extras, los

Figura 13. Tabla de Resultados que presenta SPLITT al resolver el problema indicado.

Page 59: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 49 -

salarios son más altos. Al fertilizante que no se pueda vender, hay que almacenarlo en bodegas

a un costo de $500/ton/trimestre. Las bodegas no pueden almacenar más de 20,000

ton/trimestre.

Bajo estas condiciones, ¿Cuántas toneladas deben producirse por trimestre en turnos normales

y extras tal que la demanda se satisfaga y se abatan los costos extras de producción y de

almacenamiento? Supóngase que el costo normal de producción es de $700/ton/trimestre.

Solución

El problema se puede formular como sigue:

Xi ≥ 0: toneladas de fertilizantes producidas en el trimestre i (i = 1, 2, 3, 4) durante los turnos

regulares.

Xi+4 ≥ 0: toneladas de fertilizantes producidas en el trimestre i (i = 1, 2, 3, 4) durante los

turnos extra.

Xi+8 ≥ 0: toneladas de fertilizantes que quedan almacenadas al final del trimestre i (i = 1, 2, 3 y

4) durante los turnos regulares.

Las ecuaciones que indican el balance de flujo son:

X1 + X5 = 100 000 + X9

X2 + X6 + X9 = 120 000 + X10

X3 + X7 + X10 = 110 000 + X11

X4 + X8 + X11 = 90 000 + X12

Las restricciones que indican las limitaciones de producción son:

Xi ≤ 95 000, i = 1, 2, 3, 4

Xi ≤ 30 000, i = 5, 6, 7, 8

En cambio, las limitaciones en almacenamiento están dadas por:

Xi ≤ 20 000, i = 9, 10, 11, 12

Page 60: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 50 -

La función objetivo que se trata de minimizar es la de la suma de los costos de producción

normales y extras, más los costos de almacenamiento. Esta dada por:

Min Z = 700(X1 + X 2 + X 3 + X 4) + (700 + 300)( X 5 + X 6 + X 7 + X 8) + 500(X 9 + X 10 + X 11 + X 12)

Introduciendo los datos del problema en SPLITT, se tiene (Figura 14):

Si se formula el problema con Win QSB, se tiene (Figura 15):

Figura 14. Formulación del problema de la Productora Nacional de Fertilizantes en SPLITT.

Figura 15. Formulación del problema de la Productora Nacional de Fertilizantes en Win QSB.

Page 61: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 51 -

Resolviendo el problema con SPLITT, se tiene como resultado una tabla con el reporte final

del problema y el análisis de sensibilidad (Figura 16):

Similarmente, si se resuelve con Win QSB, se tiene una tabla similar (Figura 17):

Figura 16. Resultados del problema de la Productora Nacional de Fertilizantes en SPLITT.

Page 62: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 52 -

Ambos sistemas arrojan que la solución óptima es (Ver figuras 16 y 17):

Producir 95 000 toneladas de fertilizante en el trimestre 1 en turno regular.

Producir 95 000 toneladas de fertilizante en el trimestre 2 en turno regular.

Producir 95 000 toneladas de fertilizante en el trimestre 3 en turno regular.

Producir 90 000 toneladas de fertilizante en el trimestre 4 en turno regular.

Producir 5 000 toneladas de fertilizante durante en el trimestre 1 en turno extra.

Producir 25 000 toneladas de fertilizante durante en el trimestre 2 en turno extra.

Producir 15 000 toneladas de fertilizante durante en el trimestre 3 en turno extra.

Con un valor mínimo de la función objetivo de $ 307,000,000.

Figura 17. Resultados del problema de la Productora Nacional de Fertilizantes en Win QSB.

Page 63: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 53 -

8. DISCUSIÓN

El sistema elaborado, a grandes rasgos, es similar al Win QSB. Aunque cabe recalcar que éste

último es un software muy poderoso y muy usado por su amplia gama de módulos con los que

cuenta, además de que puede trabajar con variables de valor entero y binarias (0 y 1),

comparándolo con SPLITT, destaca en primer plano, el idioma; además de que el sistema

SPLITT no puede resolver un problema con el método gráfico, a diferencia de Win QSB, sin

embargo, este método solamente se aplica en problemas con dos variables, que en la teoria,

son muy escasos. En ambos, la manera de introducir los datos es similar, es relativamente más

fácil comparada con la forma de entrada de datos en los sistemas como SOLVER y LINDO,

donde para introducir los datos, se tiene que reescribir el problema por completo a diferencia

de SPLITT y Win QSB, donde solamente se introducen los coeficientes en las hileras y

columnas correspondientes. Además, los programas mencionados anteriormente, Win QSB,

LINDO y SOLVER trabajan usando el tableau Estándar, que desde el punto de vista de la

programación en computadora, demandan mayor espacio de memoria, ya que aumentan el

numero de variables en contraste con el tableau de Tucker que es el que usa SPLITT. En

SOLVER, no se puede obtener cada una de las iteraciones, más aun, no se muestra el último

tableau (óptimo), ya que se muestra directamente el resultado final; además de que la

introducción de datos es un poco más complicada que en el sistema LINDO.

Page 64: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 54 -

9. CONCLUSIONES

El sistema SPLITT es un software amigable y de fácil uso, en el cual se facilita la introducción

de datos, la resolución y la interpretación de los resultados de un problema de programación

lineal, principalmente por el idioma en que fue programado y por su formato de salida de

resultados.

SPLITT sirve de apoyo en el proceso de enseñanza-aprendizaje, ya que durante la solución de

un problema de programación lineal, se va indicando al usuario el paso a seguir dependiendo

de la manera en que esta definido el problema, es decir, si es necesario aplicar tratamiento para

variables irrestrictas ó para restricciones de igualdad, si hay que aplicar la Fase 1 ó si es

posible implementar la Fase 2 del Método Simplex.

10. RECOMENDACIONES

Finalmente, se recomienda que se continúe con un trabajo similar, que soporte variables

binarias (0,1) y enteras. Además podría agregarse opciones para formular los problemas de

transporte, de flujo máximo, ruta más corta y problemas de asignación como problemas

lineales y resolverlos con el presente sistema. Asimismo podría adicionarse la opción de

resolver un problema de dos variables por el método grafico, es decir, que pueda graficar. Con

todo esto se obtendría un programa más completo en español de apoyo para la solución de

problemas de programación lineal.

Se sugiere continuar con estos tipos de trabajos, ya que podrían ser de apoyo académico para

la enseñanza de la metodología de la solución de problemas de programación lineal.

Page 65: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 55 -

11. BIBLIOGRAFÍA

1. Arreola Risa, A. 2003. Programación Lineal: Una introducción a la toma de

decisiones cuantitativa. Disponible en:

http://books.google.com.mx/books?id=VyklbTvUhggC&printsec=frontcover&source=

gbs_v2_summary_r&cad=0. (16/05/09).

2. Bazaraa, M. 1981. Programación Lineal y Flujo en Redes. Versión en español, primera

edición. Editorial Limusa. 539 p.

3. Blum, A. 1992. Neuronal Networks in C++, an Object-Oriented Framework for

Building Connectionist Systems. John Wiley & Sons, Inc. 207 p.

4. Bueno Aguilar, G. 1987. Introducción a la Programación Lineal y al Análisis de

Sensibilidad. Primera edición. Editorial Trillas. 187 p.

5. Dantzing, G. B. 1963. Linear Programming and Extensions. Primera edición.

Princeton University Press. 627 p.

6. Deitel, H. M. 1994. Como Programar en C / C++. Segunda edición. Pearson, Prentice

Hall. 927 p.

7. Figueroa, J. C. 2009. Portal para Investigadores y Profesionales. Disponible en:

http://www.elprisma.com/apuntes/matematicas/analisisdesensibilidad/ (14/05/09)

8. Gass, S. I. 1978. Programación Lineal (Métodos y Aplicaciones). Primera publicación.

Compañía Editorial Continental, S. A., México. 444 p.

9. Hernan, G. 1998. Investigación de Operaciones. Disponible en:

http://members.tripod.com/operativa/lindo/lindo.html (14/05/09)

Page 66: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

- 56 -

10. Hillier, F. y Lieberman, G. J. 2001. Investigación de Operaciones. Séptima edición.

Editorial Mc Graw-Hill. 1223 p.

11. Kamlesh, M. 1996. Investigación de Operaciones, El Arte de la Toma de Decisiones.

Primera edición. Prentice Hall Hispanoamericana, S. A. 972 p.

12. Prawda, J. 2005. Métodos y Modelos de Investigación de Operaciones. Volumen 1.

Editorial Limusa, Grupo Noriega Editores. 935 p.

13. Programación Lineal. 2008. Sitio de Programación lineal en español. Disponible en:

http://www.programacionlineal.net/sensibilidad.html (25/04/09)

14. Strang, G. 2007. Algebra Lineal y sus Aplicaciones. Cuarta edición. Internacional

Thompson Editores, S.A. de C.V. 487 p.

15. Taha Hamdy, A. 1981. Investigación de Operaciones, Una Introducción. Versión en

español de la segunda edición. Representaciones y Servicios de Ingeniería, S. A. 647 p.

16. Thie, P. R. 1979. An Introduction to Linear Programming and Game Theory. Segunda

edición. John Wiley & Sons. 335 p.

17. Thierauf, R. J. 1972. Toma de decisiones por medio de Investigación de Operaciones.

Primera edición. Limusa-Wiley S.A. 560 p.

Page 67: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

Autor: Lic. Marco Antonio López Cruz Universidad Autónoma Chapingo

- 1 -

M A N U A L D E L U S U A R I O

1. Presentación

El programa SPLITT es una herramienta amigable con el cual se podrá apoyar para resolver problemas de programación lineal. Por la palabra “amigable” se quiere decir que su manejo y uso es fácil, ya que esta en idioma español y que su entorno es familiar, ya que cuenta con matrices de entrada de datos, menús desplegables, barras de herramientas, etc. Al iniciar el programa aparece una ventana de presentación (Figura 1) de SPLITT.

Figura 1. Ventana de inicio del programa SPLITT.

Page 68: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

Autor: Lic. Marco Antonio López Cruz Universidad Autónoma Chapingo

- 2 -

2. Botones y funciones asociadas

Los principales botones con que cuenta la barra de herramientas de SPLITT se ilustran en la Figura 2:

Nuevo. Para formular un nuevo problema. Aparecerá una ventana de entrada de datos (numero de variables, numero de restricciones, criterio de optimización, tipo de variables por default). Abrir. Para abrir un problema guardado anteriormente. Abre archivos del tipo *.txt con el formato requerido de SPLITT. Guardar. Puede guardar un problema formulado. Solo guarda la formulación, no los resultados. Se guarda en archivo *.txt. Vista anterior. Regresa a la ventana de entrada de datos, donde puede modificar los coeficientes del problema. Intercambio de Jordán. Aparece una ventana en la cual puede escoger las variables que va intercambiar durante la solución del problema. Resolver. Para resolver el problema haciendo intercambios de Jordán hasta que se encuentra la solución. Solo está disponible cuando no hay variables irrestrictas, restricciones de igualdad ó puntos extremos no factibles. Columna más ancha o columna menos ancha. Para cambiar el ancho de la columna del tableau o de la tabla de resultados que aparece al resolver el problema. Hilera más alta o hilera menos alta. Para modificar la altura de las hileras del tableau.

Nuevo

Abrir

Guardar

Vista anterior

Intercambio de Jordán

Columna mas ancha

Columna menos ancha

Hilera mas alta

Hilera menos alta

Letra mas grande

Letra mas chica

Eliminar hilera

Eliminar columna

Resolver

Figura 2. Principales botones de la barra de herramientas de SPLITT.

Page 69: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

Autor: Lic. Marco Antonio López Cruz Universidad Autónoma Chapingo

- 3 -

Letra más grande o letra más chica. Se puede modificar el tamaño de la fuente usada en las tablas. Eliminar hilera o eliminar columna. Puede sustraer del tableau o tabla una hilera ó columna, siempre y cuando no afecte el problema, es decir, que todos los elementos en la hilera ó columna sean cero. Si elimina una hilera o columna diferente de ceros, puede alterar el problema original.

3. Definir un nuevo problema

Para formular un nuevo problema lineal se puede hacer clic en el menú Archivo, seleccionar la opción “Nuevo” ó hacer clic en el botón del mismo nombre, donde aparecerá una ventana de entrada de datos (Figura 3). Se le pude poner opcionalmente un nombre al problema. En el cuadro de “Tamaño del problema”, se debe especificar el número de variables de decisión y el número de restricciones de recurso; los cuales deben ser valores enteros mayores que 1 y menor o igual 50. Además, en el cuadro de “Criterio del problema”, se puede escoger el tipo de problema que se va a resolver (de maximización o de minimización), seleccionando con un clic la opción a manejar. En el cuadro de “Tipo de variable por default”, se puede seleccionar el tipo de variable que aparecerá en el tableau por default, aunque más adelante se puede cambiar. Una vez introducidos los datos de variables, restricciones y criterio, para continuar hacer clic en el botón “OK”.

Figura 3. Ventana de definición del problema con que cuenta el programa SPLITT.

Page 70: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

Autor: Lic. Marco Antonio López Cruz Universidad Autónoma Chapingo

- 4 -

4. Introducir los datos del problema

Una vez que ya se tiene especificado el tamaño del problema (número de variables, restricciones y criterio de optimización) se pueden introducir los datos del problema en la matriz, es decir, los coeficientes de cada restricción (R1, R2, etc.), los coeficientes de la función objetivo, el lado derecho de las restricciones (bi), la dirección de la restricción y el tipo de variable Xj. Los datos pueden ser números enteros o decimales, estos últimos, se deben introducir a 3 cifras, se pueden también escribir fracciones como de esta manera ½, 4/5, ¾, etc. La dirección se puede cambiar escribiendo “<=”, “=” o “>=” o haciendo clic sobre ella donde aparecerá una pequeña lista como en la Figura 4 y seleccionando la deseada. Similarmente, el tipo de variable, se puede cambiar escribiendo “nonegativa” o “irrestricta” o haciendo clic sobre la celda y eligiendo el deseado de la lista (Figura 4). Es posible introducir solamente los coeficientes diferentes de cero y para completar, si es que hubiesen, los datos restantes con ceros, existe la opción “rellenar con ceros” dando clic con el botón derecho del mouse.

Por ejemplo, el problema:

Maximizar Z = 2X1 + X 2 - 2 X 3 + 2X4 Sujeta a: X1 + X2 + 3X3 + X4 ≤ 6

2X1+ 2X2 + 2X3 + 2X4 ≤ 5 3X1 + X2 + 2X3 + 4X4 ≤ 4 4X1 + 3X3 + X4 ≤ 6

X1, X2, X3, X4 ≥ 0

se formularía en SPLITT como se ilustra en la Figura 5:

Figura 4. Matriz de entrada de datos en SPLITT.

Page 71: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

Autor: Lic. Marco Antonio López Cruz Universidad Autónoma Chapingo

- 5 -

5. Comenzar a resolver un problema Cuando ya se han introducido los datos del problema, se puede continuar haciendo clic en el botón ”Siguiente”. Inmediatamente aparecerá la ventana de “Solución del Problema” tal como se ilustra en la Figura 6.

Figura 6. Ventana de Solución del Problema del programa SPLITT.

Figura 5. Ventana de descripción del problema en SPLITT.

Page 72: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

Autor: Lic. Marco Antonio López Cruz Universidad Autónoma Chapingo

- 6 -

El programa indicará en un texto de seguimiento que aparecerá durante la solución del problema, ubicado en la parte inferior de la ventana, el paso a seguir dependiendo si hay variables irrestrictas y/o restricciones de igualdad, directamente aplicar la Fase 1 o pasar a la Fase 2 del Método Simplex. Se puede regresar a la ventana de “Descripción del Problema” desde el menú “Datos>Modificar datos del tableau” o con el botón “Pagina anterior”, donde se pueden hacer modificaciones a los datos. También es posible modificar el tamaño del problema desde el menú “Datos>Modificar criterio y tamaño”.

6. Tratamiento de variables irrestrictas Si existieran variables irrestrictas en el problema, habrá que eliminarlas del tableau. El programa lo indicará en el texto de seguimiento. Se debe dar clic en el botón “Intercambio de Jordán” o en el menú “Análisis>Intercambio de Jordán”.

Aparecerá una ventana como la de la Figura 7, donde se puede seleccionar con un clic, la variable irrestricta que se desee intercambiar para eliminar en cada intercambio de Jordán. En la lista de la izquierda, aparecerán las variables dependientes con las que es posible realizar tal intercambio. Si además, existieran restricciones de igualdad, se pueden intercambiar al mismo tiempo variables irrestrictas e igualdades seleccionando la opción “Intercambiar al mismo tiempo” que se encuentra en el cuadro de la parte inferior de la ventana. Si no existieran restricciones de igualdad en el problema, tal cuadro no aparecerá.

Figura 7. Ventana de intercambio de Jordán para eliminar variables irrestrictas.

Page 73: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

Autor: Lic. Marco Antonio López Cruz Universidad Autónoma Chapingo

- 7 -

En los cuadros que se encuentran en la parte superior de las listas aparecerán las variables que se van intercambiar. Si no fuera posible intercambiar la variable X, ya sea debido a un no-acotamiento, el programa lo indicará con un mensaje y el Método Simplex terminará; o debido a una redundancia (todos los elementos sobre la columna de la variable son cero), se debe eliminar haciendo clic sobre el botón “Eliminar columna” ubicado en la barra de herramientas. Si se elimina una columna con elementos distintos de cero, se puede afectar el problema original.

7. Tratamiento de restricciones de igualdad Si existieran variables irrestrictas en el problema, habrá que eliminarlas del tableau después de intercambiarlas como variables independientes. El programa lo indicará en el texto de seguimiento situado en la parte inferior de la ventana. Se deberá hacer clic en el botón “Intercambio de Jordán” o en el menú “Análisis > Intercambio de Jordán”.

Aparecerá una ventana como la de la Figura 8, donde se puede seleccionar con un clic, la variable Y correspondiente a la igualdad que se desee intercambiar para eliminar en cada intercambio de Jordán. En la lista de la derecha aparecerán las variables independientes con las que es posible realizar tales intercambios. Si además existieran variables irrestrictas se pueden intercambiar al mismo tiempo igualdades y variables irrestrictas seleccionando la

Figura 8. Ventana de intercambio de Jordán para eliminar restricciones de igualdad.

Page 74: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

Autor: Lic. Marco Antonio López Cruz Universidad Autónoma Chapingo

- 8 -

opción “Intercambiar al mismo tiempo” que se encuentra en el cuadro de la parte inferior de la ventana. Si no existieran variables irrestrictas en el problema, tal cuadro no aparecerá. En los cuadros que se encuentran en la parte superior de las listas aparecerán las variables que se van intercambiar. Si no fuera posible intercambiar la variable Y, ya sea debido a una infactibilidad, el programa lo indicará con un mensaje y el Método Simplex terminará; o debido a una dependencia lineal (todos los elementos sobre la columna de la variable son cero), se debe eliminar haciendo clic sobre el botón “Eliminar hilera” ubicado en la barra de herramientas. Si se elimina una hilera con elementos distintos de cero, se puede afectar el problema original.

8. Aplicación de la Fase 1 del Método Simplex Si en el problema planteado existiera algún elemento de la última columna del tableau menor a cero, se deberá aplicar la Fase 1. El programa lo indicará en el texto de seguimiento situado en la parte inferior y agregará una variable “R” ubicada en una columna antes de la columna de “1“, además de una función adicional “Z*” en la última hilera del tableau. El usuario deberá dar clic en el botón “Intercambio de Jordán” para continuar con el procedimiento, que es maximizar la función Z*, primeramente intercambiando a R con la variable Y que tenga en la columna de “1”, al mayor coeficiente negativo en valor absoluto. Cuando se halla maximizado la función Z*, aparecerá un mensaje como el de la Figura 9 si el máximo ocurre en R = 0 y automáticamente el programa eliminará la columna de R e hilera Z* y podrá continuar con la Fase 2. Si el máximo ocurriera en R ≠ 0, se mostrará un mensaje de infactibilidad del problema y el Método Simplex terminará. El mismo procedimiento se hará cuando después de eliminar todas las variables irrestrictas y restricciones de igualdad, existieran elementos negativos en la última columna del tableau.

Figura 9. Mensaje que muestra SPLITT después de maximizar la función Z*.

Page 75: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

Autor: Lic. Marco Antonio López Cruz Universidad Autónoma Chapingo

- 9 -

9. Aplicación de la Fase 2 del Método Simplex

Podrá aplicar la Fase 2 del Método Simplex, siempre y cuando no halla variables irrestrictas, restricciones de igualdad o coeficientes negativos en la última columna. En este momento, estará visible el botón “Resolver”, con el cual se podrá resolver el problema dándole clic o desde el menú “Análisis>Resolver”; o si se prefiere ir viendo cada uno de los intercambios de Jordán, dando clic en el botón “Intercambio de Jordán” (o en el menú “Análisis>Intercambio de Jordán”), aparecerá la ventana (Figura 10) donde es posible elegir de la lista de la derecha la variable independiente que incrementa la Z dándole un clic y en la lista de la izquierda aparecerá la variable dependiente con la cual se hará el intercambio, aplicando la regla de selección. Puede realizar el intercambio, dando clic en el botón “Intercambio”.

10. Finalización del Método Simplex

El Método Simplex terminará cuando:

• Se ha obtenido la solución óptima, y esta es única. En este caso aparecerá un mensaje como el siguiente (Figura 11):

Figura 10. Ventana de intercambio de Jordán que se presenta en la Fase 2 del Método Simplex.

Page 76: “SISTEMA DE COMPUTO PARA LA SOLUCIÓN DE PROBLEMAS DE ...files.departamento-de-productos-forest.webnode.es/200001690-c7029c8304/... · “sistema de computo para la soluciÓn de

Autor: Lic. Marco Antonio López Cruz Universidad Autónoma Chapingo

- 10 -

• Se ha obtenido una solución óptima, aunque existen más de una solución. Se mostrará un mensaje como el siguiente (Figura 12):

En este último caso, se puede hacer un Intercambio de Jordán dando clic en el botón del mismo nombre para obtener los puntos óptimos alternos. En ambos casos, después de clicar el botón de “OK” del mensaje que se mostrará, se presentará una tabla con el resumen del problema y el análisis de sensibilidad (Figura 13). En el menú “Ver” se puede cambiar entre ver el tableau óptimo (el último que se obtuvo) o ver los resultados finales (Figura 13).

Figura 11. Mensaje que muestra el programa al final cuando la solución es única.

Figura 13. Tabla de Resultados que presenta SPLITT al resolver el problema indicado.

Figura 12. Mensaje que muestra el programa al final cuando existen más de una solución.