Sie sind auf Seite 1von 10

PROGRAMACIÓN LINEAL EN TORA

OBJETIVO

Estudiar el programa lineal del tora para hacer uso en la resolución de modelos lineales.

DEFINICIÓN

Tora es un conjunto de herramientas multiplataforma de software libre creado para ayudar a los
administradores y desarrolladores de aplicaciones de bases de datos Oracle. También suministra
soporte para MySQL y PostgreSQL.

Es una herramienta muy valorada por los mismos ya que la herramienta que proporciona Oracle,
el Enterprise Manager, no es demasiado intuitiva. Los desarrolladores para Oracle de Red Hat
Linux afirman hacer un uso intensivo de la misma.

Independientemente del sistema operativo sobre el que se instale, necesita como paso previo que
esté instalado el cliente de Oracle correspondiente a la misma o superior versión de base de datos
sobre la que queremos actuar. Dicho cliente se puede instalar en su forma mínima, de modo
Runtime.

El software TORA de optimización tiene por objeto usarse con muchas de las técnicas presentadas
en el libro Investigación de Operaciones de TAHA . TORA es una aplicación muy simple, con una
interfaz gráfica de baja calidad. Una de las ventajas de TORA es que puede utilizarse en
procesadores de 32 y 64 bits, hoy por hoy su principal desventaja es que deberá ajustarse la
configuración de pantalla para adecuarse a sus ajustes de presentación de 800 x 600 y 1024 x 768
pixeles. Se recomienda el segundo ajuste, porque produce una distribución más proporcionada de
la pantalla

Está disponible para los siguientes sistemas operativos:

 Todos los sistemas que soporten POSIX (GNU/Linux, [[BSD] y en general sistemas
operativos tipo UNIX)
 GNU/Linux, Solaris
 Microsoft Windows 32-bits (95/98/NT/2000/XP)

Para los sistemas operativos tipo Unix necesita que estén instaladas las biblioteca de KDE. La
versión Windows ya está compilada con las biblioteca Free Qt de Trolltech.

HISTORIA DEL PROYECTO

Henrik Mauritz Johnson inició el proyecto en diciembre de 2000 con la meta de crear una
herramienta para GNU/Linux que le permitiese interactuar con bases de datos Oracle con las
mismas prestaciones que las existentes para Windows en aquel momento. Comenzó con licencia
GPL manteniendo el copyright la compañía GlobeCom AB para la cual trabajaba Henrik. En
diciembre de 2001, el copyright de TOra 1.2.0 cambió pasando a pertenecer a la empresa
Underscore AB, propiedad del propio Henrik, que comercializó la versión Windows utilizando
bibliotecas gráficas propietarias y manteniendo la versión en sistemas GNU/Linux con licencia GPL.
Henrik Mauritz Johnson mantuvo un único control del directorio CVS de TOra encargándose de
incluir tanto el software que desarrollaba como los parches suministrados por otros colaboradores
de la comunidad del software libre. Durante el año 2004 hubo serias dudas sobre la continuidad
del proyecto motivadas por la lentitud de desarrollo y porque el 20 de enero de 2004 Quest
Software adquirió el copyright de TOra pasando Henrik a ser su empleado. A finales de 2004 Quest
Software dejó de comercializar TOra ya que contaba con su propia herramienta para Windows:
Toad para Oracle.

En un primer momento el fundador de proyecto, Henrik Mauritz Jhonson, era a la vez el único
desarrollador del mismo. Sin embargo a medida que se conoció el proyecto, otros usuarios de
TOra contribuyeron al mismo enviado sobre todo parches para las distintas versiones publicadas.
El fundador del proyecto mantuvo en su poder la decisión de incluir o no el software que otros le
enviaban y era más bien un proyecto personal que una comunidad de desarrolladores.

En cuanto al modelo de negocio de TOra como proyecto de Software libre, no hay que olvidar que
a una edad temprana del proyecto (antes de cumplir un año) ya existía una licencia comercial para
Windows del propio Henrik a través de su empresa Underscore AB en paralelo con las versiones
libres para GNU/Linux con licencia GPL. El éxito de TOra en el mercado de GNU/Linux le permitía a
Henrik vender TOra para entornos Windows.

ESTRUCTURAS ORGANIZATIVAS/ASOCIATIVAS O DE DECISIÓN

El proyecto está compuesto de un administrador, Nathan Neulinger, y once desarrolladores. Se


apoyan en la infraestructura suministrada por sourceforge para comunicarse básicamente
mediante dos listas de correo:

 tora-cvs. Lista usada para comunicar actualizaciones del CVS.


 tora-develop. Lista ampliamente usada, es el modo principal de comunicación entre
desarrolladores del proyecto.

Existe otra lista de correo, tora-announce, creada para comunicar la disponibilidad de nuevas
versiones, sin embargo no se han registrado entradas en ella desde el año 2004 por lo que se la
puede considerar inactiva.

ESTADO DEL PROYECTO

Según se desprende de la justificación del propio proyecto, TOra ha estado siempre ligado a la
evolución de Oracle al usar sus bibliotecas cliente. Con el transcurso de los años pasó a depender
de una empresa de la competencia (Quest Software) lo que estuvo a punto de causar su
desaparición. Quest Software es dueña del copyright de TOra como se puede comprobar
examinando los listados del código fuente. En la página web del proyecto se publicita la
herramienta comercial para Windows: Toad para Oracle.

Actualmente la última versión estable es la 2.1.3 que fue liberada el 19 de septiembre de 2010

ESTADO ACTUAL DE TORA

La versión más moderna de TOra, la 3.0.20, consta de 209.845 líneas de código fuente lo que para
una empresa normal de software implicaría el uso de 54,83 desarrolladores-año durante un
periodo de 2,45 años. El coste total del proyecto lo obtenemos de multiplicar los desarrolladores-
año por el periodo que dura el proyecto por un factor de sobrecarga de costes (debido a otros
costes asociados a la empresa como personal implicado en el proyecto además del programador,
costes logísticos y de vida de la empresa, etc. de 2,4) que resulta 7.406.878 dólares.

Página web http://tora.sourceforge.net/

Inicio del proyecto 2001

Versión actual 19 de septiembre de 2010

Líneas de código fuente 209.845

Estimación de Esfuerzo de Desarrollo


54,83 / 657,97
(persona-año / persona-mes)

Estimación de tiempo (años) 2,45

Estimación del nº de desarrolladores en paralelo 22,35

Estimación de coste (Ajustada al 2005) $7.406.878

LENGUAJES DE PROGRAMACIÓN UTILIZADOS EN TORA 2.1.3

Lenguaje Líneas de código %

C++ 191.993 91,49%

sh 17.549 8,36%

python 159 0,08%

ansic 75 0,04%

xml 69 0,03%

Total 209.845 100%

SOLUCIÓN DE UN PROBLEMA DE PROGRAMACIÓN LINEAL CON TORA

Al igual que para cualquier otro método de resolución, el primer paso para resolver un problema
de programación lineal (PL) consiste en el modelamiento matemático, y es en esta fase en la que
el profesional de Ingeniería Industrial debe desarrollar su mayor habilidad y destreza. Los pasos
para resolver un problema de PL se encuentran en el módulo de programación lineal.
PROBLEMA A RESOLVER

 Un herrero con 80 Kg. de acero y 120 Kg. de aluminio quiere hacer bicicletas de paseo y de
montaña que quiere vender, respectivamente a 20.000 y 15.000 pesos cada una para
sacar el máximo beneficio. Para la de paseo empleará 1 Kg. De acero y 3 Kg. de aluminio, y
para la de montaña 2 Kg. de ambos metales. ¿Cuántas bicicletas de paseo y de montaña
deberá fabricar para maximizar las utilidades?

EL MODELO MATEMÁTICO

Acero Aluminio Precio de Venta


Bicicleta de paseo (x) 1 kg 3 kg $ 20.000
Bicicleta de montaña (y) 2 kg 2 kg $ 15.000
Disponibilidad 80 kg 120

Declaración de variables

x = Cantidad de bicicletas de paseo a producir

y = Cantidad de bicicletas de montaña a producir

Función Objetivo

Zmax = 20000x + 15000y

Restricciones de capacidad

Aluminio: x + 2y <= 80

Acero: 3x + 2y <= 120

Restricciones de la no negatividad X,y >= 0

PASOS PARA RESOLVER EN EL PROGRAMA TORA

 INGRESANDO LOS DATOS A TORA

PASO 1: Una vez iniciado TORA nos mostrará su menú principal de opciones, en él seleccionamos
la opción "Linear Programming":
Una vez seleccionada la opción de programación lineal, nos mostrará un menú desde el cual
podemos elegir si iniciar un nuevo modelo, o abrir un archivo existente; además de seleccionar el
formato de ingreso de datos, en el cual recomendamos el formato decimal, luego de seleccionar
enter en el comando ¨go to input Screen¨ para ir a la siguiente ventana.

PASO 2. INTRODUCIR INFORMACIÓN GENERAL: El siguiente paso consiste en completar la


información solicitada en la nueva ventana, correspondiente al nombre del problema o al título
que se desea poner al problema, la cantidad de variables y restricciones, en este caso se tiene 2
variables que son X,Y y se tiene 2 restricciones más las variables de la no negatividad en total 4
restricciones. Posteriormente se tiene una pestaña ¨enter value¨ la cual nos permitirá ir a la
siguiente ventana.
PASO 3. INFORMACIÓN DEL MODELO: Una vez consignada la información anterior, y luego de
teclear ENTER, nos mostrará la siguiente interfaz, en la cual debemos consignar la información del
modelo, se trata de un formato tipo matricial muy similar al utilizado por WinQSB:

En la que se debe poner los coeficientes de las restricciones y los coeficientes de función objetivo
donde se maximiza la función, para las restricciones se usa <= o >=.
PASO 4. USO DEL SOLVE: Una vez completa la información de la matriz, procedemos a resolver el
modelo, presionando el botón SOLVE. Una vez hagamos esto nos mostrará un menú en el que
podemos modificar el formato numérico de la solución. Luego de esto, nos mostrará un menú
emergente en el que podemos elegir el tipo de solución que queremos visualizar, se encuentra la
solución gráfica y la algebraica, elegimos la algebraica en este caso y seleccionamos que se nos
muestre el tabulado final. En la opción de iteraciones también existe una gama de opciones pero
en este caso usaremos el método algebraic.

PASO 5. TABULADO DE LA SOLUCIÓN: En el tabulado solución podemos observar como la función


objetivo toma el mismo valor obtenido con los programas de solución de Solver y WinQSB. A partir
de este tabulado podemos efectuar un análisis de sensibilidad teniendo en cuenta que:
Objective Value: Nos muestra el resultado de nuestra función objetivo, en este caso la solución
óptima tiene una función objetivo (utilidad) de $ 850.000.

Value: El valor que toman las variables de decisión.

Obj Val Contrib: Es la contribución unitaria de las variables de decisión en la función objetivo.

Slack-/Surplus+: Cuando la restricción en cuestión tiene el operador <=, corresponde a una


holgura, es decir, se puede interpretar como el recurso no utilizado. Cuando la restricción en
cuestión tiene el operador >=, corresponde a un exceso, es decir, se puede interpretar como el
recurso utilizado por encima de la restricción de mínimo uso.

Min and Max Obj Coeff: Para un coeficiente de la función objetivo en particular. Este es el rango
en que la base actual de la solución sigue siendo la misma.

Dual price: Llamado en WinQSB como Shadow Price, y en Solver como Multiplicador de Lagrange,
corresponde al cambio marginal de la función objetivo cuando el valor del lado derecho de la
restricción aumenta en una unidad. En nuestro ejemplo sería así: por cada kg de acero adicional
que tengamos disponible, la función objetivo aumentará en $1250.

USANDO LA SOLUCIÓN POR MÉTODO GRAFICO:

Se opta por la opción del método grafico luego sale la siguiente ventana:
En la cual de pondrá la opción de ir a la siguente ventana sin cambiar ajustes, y aceptar a la
siguiente ventana con la respectiva pregunta, posteriormente saldrá la siguiente ventana:

En el lado izquierdo teclea el problema que se planteó sujeto a 4 restricciones, la funcion objetivo
a maximizar, y en la parte inferior se encuentra una pestaña ¨ click para dibujar¨ la solución
óptima del problema en la pantalla, damos click y vemos que empieza a dibujar las soluciones y
nos dibuja la solución óptima que iba bajando hasta llegar al punto de solución óptima que se
representa con una recta azul.
En el cuadro azul de la parte inferior se encuentra la solución óptima del modelo de programación
lineal.

Das könnte Ihnen auch gefallen