4.- modelos de resoluciónbibing.us.es/proyectos/abreproy/30236/fichero/4... · solución óptima...

12
4.- Modelos de resolución exacta empleados.

Upload: others

Post on 25-Apr-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

4.- Modelos de resolución

exacta empleados.

P.F.C. Resolución exacta y heurística de problemas de programación táctica de trabajos en intervalos.

4.-Modelos de resolución exacta empleados. 2014

- 18 -

Una vez explicada la batería de problemas con la que vamos a trabajar, y según la

metodología a seguir en este proyecto, pasamos a describir los modelos de resolución

exacta con los que vamos a trabajar.

Utilizaremos modelos matemáticos para llegar a la solución óptima tanto para el

objetivo táctico con trabajos sin clases como para la resolución táctica con trabajos con

clases.

Para poder gestionar la información que proporcionaba la batería de problemas se ha

implementado un algoritmo en Visual Basic, en dicha implementación tanto para el

problema sin clases como para el problema con clases el procedimiento ha sido el

mismo:

-Procedimiento de lectura donde todos los problemas de la batería se han volcado uno

a uno.

-Gestionar la información que cada problema individual posee y volcarla en variables

matriz para posteriormente trabajar con ella.

-Con la información necesaria procedente de los problemas con los que vamos a

trabajar, se le aplica un algoritmo con el que obtenemos el modelo matemático con la

función objetivo y las restricciones acordes con la metodología necesaria para la

solución óptima del problema Táctico.

-El archivo construido mediante algoritmo que contiene el modelo matemático tiene

extensión para ser resuelto mediante el programa de resolución LINGO, lg4.

Como se ha comentado anteriormente este procedimiento es el mismo tanto para los

problemas sin clase como para los problemas con clases.

4.1.- Modelos utilizados para máquinas sin clase.

El modelo sin clases busca el mínimo número de máquinas necesarias para realizar los

trabajos.

A continuación explicaremos el modelo utilizado para el cálculo del mínimo número de

máquinas necesarias.

El procedimiento será:

- Declaramos las variables e índices utilizados.

- Descripción de la Función Objetivo.

- Descripción de las restricciones utilizadas.

P.F.C. Resolución exacta y heurística de problemas de programación táctica de trabajos en intervalos.

4.-Modelos de resolución exacta empleados. 2014

- 19 -

4.1.1.-Declaración de variables y subíndices.

Y = Variable discreta o continua, que nos indica el número de máquinas utilizadas.

= Variable binaria o continua con subíndices del número de tareas y diferentes

posibles instantes de comienzo.

t = Subíndice que recorre todos los posibles instantes de comienzo de una tarea.

i = Subíndice por el que recorre todas las tareas que pueden ser accionadas en un

instante de tiempo t.

J = número total de tareas.

k = Subíndice que recorre las distintas posibilidades de comienzo por los que la

variable X puede ser activada.

= Primer instante posible de inicio de la tarea i.

= Último instante posible de inicio de la tarea i.

4.1.2.-Función objetivo.

Min Y

La finalidad de la función objetivo es obtener el mínimo número de máquinas que

realicen todas las tareas.

4.1.3.-Restricciones.

a.- Restricción para minimizar el número de máquinas.

Esta restricción obliga que en cada instante del horizonte temporal donde se puedan

accionar cada uno de los posibles inicios de cada tarea, sea menor o igual al número

de máquinas calculadas.

Un ejemplo:

X1_1 + X1_2 + X1_3 + X2_1 + X2_2 + X3_1 <= Y;

P.F.C. Resolución exacta y heurística de problemas de programación táctica de trabajos en intervalos.

4.-Modelos de resolución exacta empleados. 2014

- 20 -

Esta restricción es sacada en un instante concreto dentro de todo el intervalo donde se

podrán calcular.

-Vemos que en este instante concreto las posibles tareas que pueden estar activas son

las que corresponden con el primer subíndice de la variable .

En este ejemplo, las tareas son la 1º, 2º y 3º.

-También podemos observar que dentro de este instante concreto dentro del intervalo

total de posible activación de tareas, el segundo subíndice marca la posibilidad de que

una misma actividad se accione en diferentes instantes de inicio por lo que:

X1_1 = quiere decir que en ese instante la actividad 1 puede estar activada

habiendo empezado en su primer instante posible de inicio.

X1_2 = quiere decir que en ese instante la actividad 1 puede estar activada

habiendo empezado en su segundo instante posible de inicio.

b.- Restricción para que solo una tarea puede ser activada en un mismo instante.

Esta restricción obliga que dentro de todos los instantes en los que se pueda activar

una tarea, solo se active uno.

Un ejemplo:

X1_1+X1_2+X1_3+X1_4+X1_5 = 1

De esta restricción vemos que cuando la tarea 1 pueda ser activada en los cinco

instantes diferentes, sólo sea activada en uno de ellos.

Cabe destacar que los subíndices que corresponde a los posibles instante de comienzo

no marcan el instante, sino el numero de instantes posibles, esto quiere decir que la

tarea uno sea posible realizarla en los instantes del 1 al 5. Sino que hay 5 posibles

instantes de comienzo, el instante concreto de comienzo se puede leer en la

información concreta de la tarea en cada uno de los problemas de la batería.

Por lo que la variable estará activa en la restricción dependiendo del instante t

general que corresponde con el intervalo total de acción desde el primer instante

posible de la primera tarea hasta el último instante posible de finalización de la última

tarea.

P.F.C. Resolución exacta y heurística de problemas de programación táctica de trabajos en intervalos.

4.-Modelos de resolución exacta empleados. 2014

- 21 -

4.2-Implementacion del modelo matemático sin clases en Visual Basic.

El procedimiento para implementar en Visual Basic el modelo matemático y obtener el

archivo Lingo donde se calculará la resolución óptima. Mostramos el modelo completo

para su mejor comprensión.

Mostramos un breve esquema del procedimiento para implementar el modelo

matemático en archivo con extensión .lg4 para resolverlo con LINGO.

Para comentar el algoritmo utilizado para crear el archivo LINGO con el modelo, se

expondrá de forma esquemática para entender la generalidad de su proposición,

haciendo leve referencia a las funciones utilizadas para fines diferentes a la obtención

del modelo matemático.

De acuerdo a lo comentado en el párrafo anterior se expondrá la función principal (Sub

Main), la cual contiene las funciones necesarias para completar el algoritmo.

Respecto a la declaración de las variables, solo se comentaran las necesarias para

comprender como se ha obtenido el modelo matemático.

Algoritmo de Visual

Basic donde trata la

información de los

problemas en extensión

.txt y crea el archivo

para LINGO .lg4 con el

modelo matemático

Archivo de la

batería de

problemas con

extensión .txt

Extensión lg4.

con la función

objetivo y

restricciones

para calcular el

óptimo.

P.F.C. Resolución exacta y heurística de problemas de programación táctica de trabajos en intervalos.

4.-Modelos de resolución exacta empleados. 2014

- 22 -

FUNCIÓN PRINCIPAL, Sub main.

Sub main()

FicheroEntrada = "File_3_2_400_16_3_4_9.txt"

LeerArchivoEntrada

GenerarModelo

End Sub

El primer paso es meter en la variable “FicheroEntrada” el nombre del problema que

queremos realizar.

Cabe destacar que este procedimiento de introducir el nombre del problema a mano

no se realizó a la hora de obtener todos los problemas, ya que debido a su número,

1080 problema en la batería, llevaría mucho tiempo. Para todos los problemas de la

batería se utilizo un pequeño algoritmo donde combina todas las posibilidades y así

obtener la totalidad de la batería.

4.3.- Modelos utilizados para máquinas con clases.

El modelo con clases busca el mínimo coste posible, el cálculo se realiza sumando

todas la máquinas de cada clase que se han utilizando, sabiendo que cada clase de

máquina tiene un coste diferente.

A continuación explicaremos el modelo utilizado para el cálculo del mínimo número de

máquinas necesarias.

El procedimiento será el mismo que con la máquinas sin clases:

- Declaramos las variables e índices utilizados.

- Descripción de la Función Objetivo.

- Descripción de las restricciones utilizadas.

4.3.1.-Declaración de variables.

= Variable discreta o continua, que nos indica el número de máquinas de cada clase

utilizadas.

= Variable binaria con subíndices del número de tareas, la clase de tarea y

diferentes posibles instantes de comienzo.

t = Subíndice que recorre todos los posibles instantes de comienzo de una tarea.

P.F.C. Resolución exacta y heurística de problemas de programación táctica de trabajos en intervalos.

4.-Modelos de resolución exacta empleados. 2014

- 23 -

i = Subíndice por el que recorre todas las tareas que pueden ser accionadas en cada

instante de tiempo t.

J = Número total de tareas.

c = Subíndice que recorre las clases de cada trabajo.

C = Número total de clases de tareas.

k = Subíndice que recorre las distintas posibilidades de comienzo por los que la

variable X puede estar activa.

= Primer instante posible de inicio de la tarea i.

= Último instante posible de inicio de la tarea i.

L ( c) = Matriz de compatibilidad.

4.3.2.-Función objetivo.

La finalidad de la función objetivo es la obtener el mínimo coste de máquinas,

conociendo el coste que tiene cada clase de máquina.

4.3.3.-Restricciones.

a.- Restricción para minimizar el número de máquinas.

Esta restricción es parecida a la del modelo matemático sin clases, lo único que el

estudio de cada instante temporal de todo el intervalo se hace para cada clase de

trabajo, por lo que obliga que en cada instante del horizonte temporal donde se

puedan accionar cada uno de los posibles inicios de cada tarea, sea menor o igual al

número de máquinas calculadas de cada clase.

Un ejemplo:

X1_1_1 + X1_1_2 + X1_1_3 + X3_1_1 <= Y1;

X1_2_1 + X1_2_2 + X1_2_3 + X2_2_1 + X2_2_2 <= Y2;

P.F.C. Resolución exacta y heurística de problemas de programación táctica de trabajos en intervalos.

4.-Modelos de resolución exacta empleados. 2014

- 24 -

Estas restricciones son sacadas del modelo matemático final, con la intención de hacer

ver la diferencia con el modelo sin clases.

Estas dos restricciones ejemplos se han tomado en un instante temporal cualquiera,

pudiendo no ser el mismo instante en las dos restricciones.

Se aprecia que una restricción es para la clase de máquina 1 y la otra para la clase de

máquina 2.

El mismo procedimiento de comprobación de instantes se harán para todas las clases

de máquinas.

- Vemos que en los instantes en los que se encuentran las dos restricciones

respectivamente, las posibles tareas que pueden estar activas son las que

corresponden con el primer subíndice de la variable .

En este ejemplo, las tareas son la 1º y 2º en las dos restricciones

- Como en el modelo sin clases, podemos observar que, en cada clase de máquinas,

dentro de este instante concreto dentro del intervalo total de posible activación de

tareas, el segundo subíndice marca la posibilidad de que una misma actividad se

accione en diferentes instantes de inicio por lo que:

X1_1_2 = quiere decir que en ese instante la actividad 1, de la clase de

máquina 2, puede estar activada habiendo empezado en su primer instante

posible de inicio.

X2_2_1 = quiere decir que en ese instante la actividad 2, de la clase de

máquina 1, puede estar activada habiendo empezado en su segundo instante

posible de inicio.

b.- Restricción para que solo una tarea puede ser activada en un mismo instante.

Esta restricción obliga que de cada clase de máquinas, dentro de todos los instantes en

los que se pueda activar una tarea, solo se active uno. Pasando por todas las tareas.

Un ejemplo:

X4_1_1 + X4_2_1 + X4_1_2 + X4_2_2 + X4_1_3 + X4_2_3 + X4_1_4 + X4_2_4

+ X4_1_5 + X4_2_5 = 1;

De esta restricción vemos que cuando la tarea 4 pueda ser activada en los cinco

instantes diferentes, y las dos clases de máquinas, solo sea activada en uno de ellos.

4.4.-Implementacion del modelo matemático con clases en Visual Basic.

Como en el apartado anterior para máquinas sin clases, el procedimiento para

implementar en Visual Basic el modelo matemático y obtener el archivo Lingo donde

P.F.C. Resolución exacta y heurística de problemas de programación táctica de trabajos en intervalos.

4.-Modelos de resolución exacta empleados. 2014

- 25 -

se calculará la resolución optima, siempre que se calcule dentro del tiempo límite de 4

horas establecido, se comenta a continuación paso a paso.

Mostramos el modelo matemático.

El procedimiento es el mismo con máquinas sin clases, como veremos en el esquema a

continuación:

La implementación del archivo de LINGO en Visual se explica igual que en el apartado

anterior.

FUNCIÓN PRINCIPAL, Sub main.

Sub main()

FicheroEntrada = "File_3_2_400_16_3_4_9.txt"

LeerArchivoEntrada

GenerarModelo

End Sub

El primer paso es meter en la variable “FicheroEntrada” el nombre del problema que

queremos realizar.

Algoritmo de Visual

Basic donde trata la

información de los

problemas en extensión

.txt y crea el archivo

para LINGO .lg4 con el

modelo matemático

Archivo de la

batería de

problemas con

extensión .txt

Extensión lg4.

con la función

objetivo y

restricciones

para calcular el

óptimo.

P.F.C. Resolución exacta y heurística de problemas de programación táctica de trabajos en intervalos.

4.-Modelos de resolución exacta empleados. 2014

- 26 -

Cabe destacar que este procedimiento de introducir el nombre del problema a mano

no se realizó a la hora de obtener todos los problemas de la batería, ya que debido a su

número, 1080 problema en la batería, llevaría mucho tiempo. Para todos los

problemas de la batería se utilizó un pequeño algoritmo donde combina todas las

posibilidades y así obtener la totalidad de la batería.

4.5.- Pasos para la resolución de un problema.

Una vez que hemos creado todos los archivos .lg4, hacemos los cálculos con el

programa LINGO. De los resultados obtenidos anotamos el resultado de la función

objetivo, tiempo de resolución y en el caso de máquinas con clases, el número de clase

de máquinas empleados para resolver.

Cabe destacar que para la resolución de los modelos matemáticos mediante archivos

LINGO se ha acotado el tiempo de resolución empleados en cada problema, siendo el

tiempo máximo de espera de 4 horas.

En los casos en los que el tiempo de resolución de los modelos supere las 4 horas, se

paraliza el cálculo y se apuntan los valores calculados hasta ese instante.

Se realiza una explicación sobre el programa utilizado.

4.5.1.- Software LINGO.

LINGO: (LINear Generalize Optimizer) es una herramienta simple para formular

problemas lineales y no lineales, resolverlos y analizar su solución. El resultado que

LINGO nos proporciona es la optimización que nos ayuda a encontrar el mejor

resultado: la ganancia más alta, o el costo más bajo. A menudo estos problemas

involucran el uso más eficiente de los recursos. Los problemas de optimización son

clasificados a menudo como lineales o no lineales, dependiendo si las relaciones en el

problema son lineales con respecto a las variables.

Uno de los rasgos más poderosos de LINGO es su aplicación en el lenguaje de modelo

matemático. El cual permite expresar un problema de una manera muy similar a la

anotación matemática normal pudiendo también, expresar una serie entera de

restricciones en una declaración compacta. Esto lleva a modelos que son mucho más

fáciles de mantener.

Otro aspecto es la sección de los datos, que le permite aislar los datos de la

formulación del modelo. De hecho LINGO puede leer datos incluso de una hoja de

cálculo separada, base de datos, o archivo de texto. Con datos independientes del

modelo, es mucho más fácil de hacer cambios, y hay menos oportunidad de error

cuando se realiza el modelo.

P.F.C. Resolución exacta y heurística de problemas de programación táctica de trabajos en intervalos.

4.-Modelos de resolución exacta empleados. 2014

- 27 -

4.5.2.-Resolucion de problemas.

A continuación se adjuntarán un rápido tutorial que explica como correr los

problemas:

1.-Una vez que hemos creado todos los archivos .lg4, para accionarlos solo tenemos

que accionarlos con doble click, el problema que queramos correr.

Figura 4.1.- Batería de problemas en formato .lg4.

2.-Una vez el doble click, se abre el programa LINGO con el modelo matemático.

Figura 4.2.- Programa LINGO abierto con problema a resolver.

Accionando el botón Solve, se acciona el programa y comienza el cálculo del modelo matemático.

Figura 4.2.- Botón Solve

P.F.C. Resolución exacta y heurística de problemas de programación táctica de trabajos en intervalos.

4.-Modelos de resolución exacta empleados. 2014

- 28 -

3.- Pantalla de seguimiento de resolución.

5.-Pantalla de óptimos.

Una vez se consigue el óptimo, bien porque se termina el proceso de búsqueda o

porque interrumpimos dicha búsqueda, nos aparece una pantalla donde se ven las

variables que se activan.