6. MODELO...
Transcript of 6. MODELO...
OPTIMIZACIÓN DEL PROCESO DE EJECUCIÓN DE PRUEBAS FUNCIONALES RELATIVAS A LA PRODUCCIÓN AEROESPACIAL.
119
6. MODELO MATEMÁTICO.
6.1. Introducción al modelo matemático.
Un modelo, es un esquema teórico, generalmente en forma matemática, de un
sistema o de una realidad compleja, que se elabora para facilitar su compresión y el
estudio de su comportamiento. Por otro lado, se entiende por modelar, la acción de
construir un modelo, es decir, de encorsetar la realidad.
Un modelo es, en definitiva, una herramienta de ayuda a la toma de decisiones.
Por esta razón, sus resultados deben ser legibles y útiles.
Por una parte, la construcción de modelos se tiene carácter científico, pues se
basa en un conjunto de procesos estructurados: análisis y detección de las relaciones
entre los datos, establecimiento de suposiciones y aproximaciones en la
representación de los problemas, desarrollo o uso de algoritmos específicos de
solución. Por otra parte, es un arte, porque materializa una visión o interpretación de
la realidad no siempre de manera unívoca. Cada persona imprime su estilo en el
modelo mismo y en la especificación, en el desarrollo y en la documentación.
6.2. Etapas en el desarrollo de un modelo.
Las etapas que componen el ciclo de vida de un modelo son las siguientes:
6.2.1. Identificación del problema.
Cosiste en la recolección y análisis de la información relevante para el problema,
en el intercambio de información entre los agentes que intervienen en el proceso de
haber varios. Toda esta etapa es la que se ha establecido en el apartado quinto del
presente documento, denominado “MODELO A IMPLEMENTAR”.
6.2.2. Especificación matemática y formulación.
Escritura matemática del problema de optimización, definiendo sus variables, sus
ecuaciones, su función objetivo, sus parámetros. En esta etapa se analiza el tamaño del
problema, la escritura de la matriz de restricciones y su tipo.
Es una etapa de creación donde se debe prestar especialmente atención a la
precisión en la formulación y a la escritura de las ecuaciones que describen el
OPTIMIZACIÓN DEL PROCESO DE EJECUCIÓN DE PRUEBAS FUNCIONALES RELATIVAS A LA PRODUCCIÓN AEROESPACIAL.
120
problema. Hay que tener en cuenta, además, que existen diversas alternativas de
modelado, que afectan de manera fundamental en la resolución del mismo.
6.2.3. Resolución.
Se trata de implementar un algoritmo de obtención de la solución numérica
(muy próxima a la matemática) óptima o cuasi-óptima. Puede haber diferentes
métodos de solución de un problema o diferentes implantaciones de un mismo
método. El tiempo de resolución de un problema también puede depender
drásticamente de cómo esté formulado.
6.2.4. Verificación, validación y refinamiento.
Esta etapa conlleva la eliminación de los errores en la codificación, es decir,
conseguir que el modelo haga lo que se desea (depurar y verificar). Es necesario
comprobar la validez de las simplificaciones realizadas a través de los resultados
obtenidos, incluso contrastando éstos con situaciones reales ya transcurridas (validar).
Esta etapa de verificación, validación y comprobación da lugar a nuevas
necesidades de modelado para mejorar la capacidad de representación de la realidad,
a nuevos refinamientos indicados por el usuario.
6.2.5. Interpretación y análisis de los resultados.
Esta etapa consiste en proponer soluciones. Permite conocer en detalle el
comportamiento del modelo al hacer un análisis de sensibilidad en los parámetros de
entrada, estudiar diferentes escenarios plausibles de los parámetros, detectar
soluciones alternativas cuasi-óptimas pero suficientemente atractivas, comprobar la
robustez de la solución óptima. Esta etapa se verá en el apartado séptimo de
“RESULTADOS”.
6.3. Leguaje del modelado.
Como lenguaje para el modelado del problema, se usará una herramienta
diseñada para la construcción, y la resolución, de forma eficiente, de modelos de
optimización lineal, no lineal, y de integración, llamada LINGO.
OPTIMIZACIÓN DEL PROCESO DE EJECUCIÓN DE PRUEBAS FUNCIONALES RELATIVAS A LA PRODUCCIÓN AEROESPACIAL.
121
El modelo de optimización constará de tres partes:
Función objetivo: formula que describe exactamente qué es lo que el modelo
tiene que optimizar.
Variables: son cuantificadores que pueden ser cambiados para alcanzar los
valores óptimos de la función objetivo.
Restricciones: son fórmulas que definen los límites en los valores de las
variables.
6.4. Desarrollo del modelo.
Se va a abordar el problema de optimización en el proceso de ejecución de
pruebas funcionales de una aeronave. Para el desarrollo del modelo se dividirá este en
5 partes:
La primera, tratará de definir el escenario del problema. En ella, se tratan el
problema de las distintas líneas, los distintos ATA’s, y las variables que serán
necesarias en el problema.
La segunda, suministrará los datos que requiere el modelo para su posterior
cómputo.
La tercera, realizará una serie de cálculos necesarios, para la adecuación de las
matrices de datos al modelo que se tiene que ejecutar.
La cuarta, tratará de representar las restricciones del modelo.
La quinta, formulará la función objetivo que optimizará el modelo.
6.4.1. Descripción del escenario y variables.
En primer lugar, se tienen que definir las tres líneas de pruebas funcionales, que
son la verde (neumática), la roja (hidráulica) y la azul (eléctrica). Esto supone la
generación de tres variables (Li).
OPTIMIZACIÓN DEL PROCESO DE EJECUCIÓN DE PRUEBAS FUNCIONALES RELATIVAS A LA PRODUCCIÓN AEROESPACIAL.
122
En segundo lugar, habrá que definir un conjunto fila (NF). Este conjunto recogerá
una sucesión de pruebas funcionales. Por otro lado, el conjunto fila vendrá definido
por el número de pruebas que contiene (Ntasks), lo cual será un dato en el modelo,
dos variables para definir el tiempo de inicio y de fin del conjunto (Tinicio y Tfin), y del
proyecto (BTinicio y BTfin), además de cinco variables que se usarán para tener una
idea del uso de recursos (número de operarios que están trabajando, SumaFi).
Del análisis ya realizado durante el apartado sexto, se deriva que las líneas azul y
roja tienen 13 conjuntos filas, mientras que la verde solo tiene 6. No obstante en el
modelo se definirán 13 conjuntos filas, para las tres líneas y se asignarán 0 tareas, es
decir, pruebas funcionales, a los conjuntos filas de la línea verde que van del 7 al 13.
Esto se modela de la siguiente forma:
En tercer lugar, hay que definir las pruebas o tareas (NT) que se deben de realizar
en cada fila de cada línea. De la misma forma que se ha hecho para las filas, se ha
estudiado, que fila es la que más pruebas tiene que realizar, de forma que éste sea el
número de pruebas que se definan para cada una de las filas. En el problema que
acontece, 14 será el número máximo de pruebas funcionales que están asociadas a
una fila. De esta forma:
OPTIMIZACIÓN DEL PROCESO DE EJECUCIÓN DE PRUEBAS FUNCIONALES RELATIVAS A LA PRODUCCIÓN AEROESPACIAL.
123
Cada tarea o prueba, tendrá información sobre el instante de inicio (I_task), del
fin (F_task), de la duración que será un dato (Dura), y de un campo que indique con
qué nivel de recursos se va a llevar a cabo la tarea (Multiple). Para esto último se crean
5 variables binarias (fi), que definirán si se realizan las tareas: con el 100% de los
recursos, con el 200%,..., 500% (número de operarios). De forma que:
En cuarto lugar, se van a definir variables para cada uno de los AIM’s existentes,
para los computadores, así como para los sistemas de distribución.
Para el caso de los AIM’s (AIMS), existen 18 tipos diferentes, por lo que 18, serán las
variables a definir. Puesto que son independientes de la línea, solo crearán
incompatibilidades entre tareas que pertenezcan a filas que estén dentro de la misma
línea. Se creará una matriz de datos (Uso), función de la línea, la fila, la tarea y AIM,
para conocer el uso o no de cada AIM, rellena con 0 y 1. Por otra parte, se creará una
matriz de variables (Cmat), función de la línea, la fila y las tareas que determinará las
incompatibilidades entre las tareas por el uso de AIM’s. La forma de modelar esto es:
OPTIMIZACIÓN DEL PROCESO DE EJECUCIÓN DE PRUEBAS FUNCIONALES RELATIVAS A LA PRODUCCIÓN AEROESPACIAL.
124
Para el caso de los computadores y los sistemas de distribución, se hará de forma
conjunta, puesto que el criterio para la ejecución de tareas es el mismo. La posibilidad
de realizar una tarea al mismo tiempo pasa por que tenga el avión la misma
configuración en cuanto a computadores y sistemas de distribución se refiere. Se
creará un conjunto llamado COM_SIST_DIST (CSD), que supondrán 8 variables a definir
para cada línea, fila y tarea. Puesto que son independientes de la línea, solo crearán
incompatibilidades entre tareas que pertenezcan a filas que estén dentro de la misma
línea. Se creará una matriz de datos (Uso1), función de la línea, la fila, la tarea y
COM_SIST_DIST, para conocer el uso o no de cada computador y sistema de
distribución, rellena con 0 y 1. Por otra parte, se creará una matriz de variables (Cmat1),
función de la línea, la fila y las tareas que determinará las incompatibilidades entre las
tareas por el uso de computadores y sistemas de distribución. A continuación se
muestra la forma de modelarlo:
OPTIMIZACIÓN DEL PROCESO DE EJECUCIÓN DE PRUEBAS FUNCIONALES RELATIVAS A LA PRODUCCIÓN AEROESPACIAL.
125
6.4.2. Datos del problema.
A continuación se le tiene que asignar al modelo una serie de datos de partida en
algunas de las variables que se han definido anteriormente.
En primer lugar, hay que definir el número de tareas por fila. Éste se definió
entre 1 y 14, por lo que en realidad, el número de tareas tendrá que ser menor o igual
a catorce. Para definirlo, habrá que dar para cada línea y cada fila un valor del número
de tareas, asignando 0 si una línea no tiene tareas, como ocurre en la verde. Por lo que
habrá que dar 39 datos. La forma de modelarlo es la siguiente:
En segundo lugar, hay que definir la duración de cada una de las tareas. Habrá
que dar un valor de la duración de la tarea para cada línea, para cada fila y para cada
tarea. Como se definieron por defecto 14 tareas por línea, el número de datos a
aportar, será de 546. No obstante, puesto que anteriormente se han definido, el
número de tareas en cada fila, el resto de tareas hasta la catorceava, se les asignará un
cero, en los casos en que la fila no tenga 14 tareas, quedando el modelo, de la
siguiente forma:
OPTIMIZACIÓN DEL PROCESO DE EJECUCIÓN DE PRUEBAS FUNCIONALES RELATIVAS A LA PRODUCCIÓN AEROESPACIAL.
126
En tercer lugar, hay que definir la forma en la que se puede hacer una tarea
utilizando el campo (atributo) que se ha definido como “Multiple”. Esto se refiere a la
cantidad de recursos (operarios), con la que se puede realizar una tarea. Para la
modelación, se usará la siguiente codificación:
Pondremos un 5 en el caso que una tarea se pueda hacer a 100%, 200%, 300%,
400% y 500% de recursos.
Pondremos un 4 en el caso de que una tarea se pueda hacer a 100%, 200%,
300% o 400% de recursos.
Se pondrá un 3 en el caso de que la tarea se pueda realizar con el 100%, el
200% o el 300% de los recursos.
Un 2 en el caso de poder realizarse con recursos al 100% o 200%.
Un 1 en cuyo caso sólo se hagan al 100% de recursos.
Un cero para aquellas tareas que no existen, pero por la forma en que se ha
definido el modelo hay que poner, y por consiguiente se les asigna 0 recursos, puesto
que su duración en la matriz anterior también es cero.
De esta forma el modelo se representaría de la siguiente forma:
OPTIMIZACIÓN DEL PROCESO DE EJECUCIÓN DE PRUEBAS FUNCIONALES RELATIVAS A LA PRODUCCIÓN AEROESPACIAL.
127
En cuarto lugar, hay de definir la matriz de “Uso”. Será una matriz que tendrá por
columnas los 18 tipos de AIM’s que existen, y por filas cada una de las tareas, de cada
fila y cada línea. Estará llena de ceros y unos, (0 en caso de que la tarea no requiera el
AIM y 1 en el caso de que dicha tarea requiera el uso del AIM). En total habrá 9828
elementos. La forma matemática de modelarlo y de codificarlo en LINGO es la
siguiente:
En quinto lugar, se tiene que definir la matriz de “Uso1”. Será una matriz en la
que las cuatro primeras columnas, hacen referencia al uso de computadores que
requieren una tarea y las siguientes cuatro, hacen referencia a los sistemas de
distribución que requieren la misma tarea. Además dicha matriz tendrá por filas cada
una de las tareas, de cada fila y de cada línea. La matriz de “Uso1” estará llena de ceros
y unos (0 en caso de que la tarea no use el computador y 1 en caso que sí, de la misma
forma con el caso de los sistemas de distribución). En total habrá 4368 elementos. La
forma matemática de modelarlo y codificarlo en LINGO es la siguiente:
OPTIMIZACIÓN DEL PROCESO DE EJECUCIÓN DE PRUEBAS FUNCIONALES RELATIVAS A LA PRODUCCIÓN AEROESPACIAL.
128
6.4.3. Cálculos del problema.
En este apartado se tratará de realizar una serie de cálculos necesarios, para la
adecuación de las matrices de datos (Cmat y Cmat1) al modelo que se tiene que ejecutar.
La matriz Cmat determina la compatibilidad entre las distintas tareas de cada una de las
líneas para el uso de AIM’s. De forma que habrá un cero si las tareas son compatibles y
un uno en caso que sean incompatibles. La forma matemática de modelarlo y de
codificarlo es:
OPTIMIZACIÓN DEL PROCESO DE EJECUCIÓN DE PRUEBAS FUNCIONALES RELATIVAS A LA PRODUCCIÓN AEROESPACIAL.
129
La matriz Cmat1 determina la compatibilidad entre las distintas tareas de cada una
de las líneas para el uso de computadores y sistemas de distribución. De forma que
habrá un uno si las tareas son compatibles y un cero en caso que sean incompatibles.
La forma matemática de modelarlo y de codificarlo es:
OPTIMIZACIÓN DEL PROCESO DE EJECUCIÓN DE PRUEBAS FUNCIONALES RELATIVAS A LA PRODUCCIÓN AEROESPACIAL.
130
6.4.4. Restricciones del problema.
En este apartado, se van a modelar todas las restricciones del problema, con el
objetivo de que se reproduzcan de forma adecuada todas las limitaciones de éste, así
como, simplificar el cómputo.
6.4.4.1. Anulación de las variables fi.
Se obligará la anulación de las variables fi dependiendo del valor del atributo
“Multiple” que se haya definido en la sección de datos. De esta forma:
OPTIMIZACIÓN DEL PROCESO DE EJECUCIÓN DE PRUEBAS FUNCIONALES RELATIVAS A LA PRODUCCIÓN AEROESPACIAL.
131
6.4.4.2. Forzar que la suma de fi sea 1 excepto en el caso Multiple igual a cero.
Hay que forzar que la suma de las variables fi sea igual a la unidad, lo que implica
que cada tarea sólo se puede hacer con una condición de recursos determinada,
excepto en el caso de que un elemento del atributo “Multiple” tenga cero. En tal caso
significa que la tarea no se realiza y por tanto no tiene que tener ningún criterio de
asignación de recursos. De esta forma el modelo matemático y el código quedarían de
la siguiente forma:
6.4.4.3. Variables auxiliares para relacionar tiempos.
Una vez que se ha forzado que cada tarea tenga un valor de fi, es decir, una
condición de recursos determinada, es conveniente definir una serie de variables
auxiliares para evitar tener que arrastrar las fi a lo largo del modelo. Para ellos, se
relacionará el tiempo de fin, con el de inicio y duración de la tarea.
OPTIMIZACIÓN DEL PROCESO DE EJECUCIÓN DE PRUEBAS FUNCIONALES RELATIVAS A LA PRODUCCIÓN AEROESPACIAL.
132
6.4.4.4. Condiciones de tiempo de fin y de inicio.
Como es sabido, en cada una de las filas, las tareas tienen un orden prefijado,
por tanto se pueden imponer una serie de condiciones entre los tiempos de inicio y de
fin de las tareas. La forma de expresar esto es como sigue:
OPTIMIZACIÓN DEL PROCESO DE EJECUCIÓN DE PRUEBAS FUNCIONALES RELATIVAS A LA PRODUCCIÓN AEROESPACIAL.
133
6.4.4.5. Variables auxiliares para conocer duración de las tareas de una línea.
Puede resultar interesante conocer el tiempo empleado por las tareas de una
línea, desde su inicio hasta que la última tarea de la línea se ha realizado. Para ello, se
suman todas las tareas de cada fila y se almacenarán en las variables: “BTfin” y
“BTinicio”. Estas nos servirán a posteriori para tener una idea de lo que ocurre con la
asignación de recursos. Al mismo tiempo “Tinicio” y “Tfin” serán variables que
almacenarán los tiempos de la primera tarea y el final de la última. De esta forma, el
modelo quedaría de la siguiente forma:
OPTIMIZACIÓN DEL PROCESO DE EJECUCIÓN DE PRUEBAS FUNCIONALES RELATIVAS A LA PRODUCCIÓN AEROESPACIAL.
134
6.4.4.6. Hacer cero variables binarias tipo d y d1.
Se tiene que obligar hacer cero las variables binarias del tipo “d” en el caso de los
AIM’s; y del tipo “d1” en el caso de los computadores y sistemas de distribución,
siendo éstas acotadas por los valores de Cmat y Cmat1 respectivamente. El modelo y el
código serían los siguientes:
6.4.4.7. Restricciones entre tareas y AIM’s.
Por otra parte hay que impedir que dos tareas que usan el mismo AIM’s, se
puedan hacer al mismo tiempo. De esta forma el modelo y el código serían el
siguiente:
OPTIMIZACIÓN DEL PROCESO DE EJECUCIÓN DE PRUEBAS FUNCIONALES RELATIVAS A LA PRODUCCIÓN AEROESPACIAL.
135
De forma parecida a lo que se acaba de plantear para el caso de los AIM’s tiene
que hacerse con los computadores y los sistemas de distribución. En este caso de usar
los mismos, tareas distintas, implicaría que son compatibles. De esta forma:
OPTIMIZACIÓN DEL PROCESO DE EJECUCIÓN DE PRUEBAS FUNCIONALES RELATIVAS A LA PRODUCCIÓN AEROESPACIAL.
136
6.4.4.8. Declaración de variables binarias.
Se tienen que declarar como variables binarias del modelo todas las que se
muestran a continuación:
OPTIMIZACIÓN DEL PROCESO DE EJECUCIÓN DE PRUEBAS FUNCIONALES RELATIVAS A LA PRODUCCIÓN AEROESPACIAL.
137
6.4.4.9. Cálculos auxiliares interesantes.
Por último, se quiere tener una idea de la cantidad de recursos que se está
utilizando en cada momento. Para ello, se hará una suma en cada línea de las tareas
que se han realizado al 100%, con la variable SumaF1, de las realizadas al 200%,
variable SumaF2, al 300%, SumaF3, al 400%, SumaF4, y al 500%, SumaF5. La forma de
modelar esto es la siguiente:
OPTIMIZACIÓN DEL PROCESO DE EJECUCIÓN DE PRUEBAS FUNCIONALES RELATIVAS A LA PRODUCCIÓN AEROESPACIAL.
138
6.4.5. Función objetivo.
Por último, hay que preparar la función objetivo del problema. Puesto que lo que
se quiere es minimizar el tiempo en el que se realicen todas las tareas, habrá que
establecer dos criterios a la función objetivo para que todo cuadre. El primero, será
que la función objetivo, tendrá que tener una duración mayor que el tiempo de fin de
las últimas tareas de cada línea y fila de forma independiente. En segundo lugar, hay
que minimizar esa duración. Es decir, el primer criterio, lo que establece es un tipo de
restricción, puesto que el problema no podrá tener nunca una duración inferior a lo
que se dedicaría en realizaran las tareas de la fila, de mayor duración, de forma
consecutiva. El segundo criterio, si es lo que de verdad se quiere alcanzar, la mínima
duración para realizar todas y cada una de las tareas. Esto se plasma de la siguiente
forma: