Está en la página 1de 11

Experimenter/ Optimizer Example

Introducción.

Este tutorial presenta el experimentador y el optimizador que se encuentra en FlexSim. Cada


una de estas herramientas ayuda a responder las preguntas "qué pasaría si" para un modelo:
¿Qué sucede si la estación de fresado se coloca de manera diferente? ¿Qué pasa si se contrata
a más personas para un turno dado? ¿Y si se cambiara el orden de estos procesos? El
experimentador le permite probar muchas versiones diferentes de su modelo y evaluar el
rendimiento de cada una. Alternativamente, el optimizador puede buscar automáticamente a
través de muchas versiones diferentes de su modelo, buscando la mejor. Ambas son
herramientas muy poderosas que te permiten conocer y mejorar tu sistema.

Nota: el uso del optimizador requiere la licencia OptQuest. Póngase en contacto con FlexSim
para obtener más información sobre cómo obtener esta licencia.

Lo que vas a aprender

Este tutorial lo guiará a través de los siguientes pasos:

Creando un experimento

Ejecutando un experimento

Viendo los resultados del experimento

Diseñando una optimización

Ejecutando una optimización

Visualización de resultados de optimización

En el camino, cubriremos las definiciones de términos relacionados, tales como:

Variables experimentales

Medidas de desempeño

Escenarios

Tipos de variables optimizador

Restricciones

Los objetivos

Soluciones

Construcción paso a paso del modelo

Para este tutorial, examinemos una situación muy simple. Un solo trabajador debe llevar un
artículo de una fuente a un procesador. Una vez que el artículo termina de procesarse, el
trabajador debe llevarlo a un segundo procesador que demore más que el primero. Después
de que el segundo procesador termina el artículo, el trabajador lo lleva al fregadero.

Ahora supongamos que queremos maximizar el rendimiento (que también está vinculado a los
ingresos) de este sistema ajustando la posición de los procesadores. Si cada procesador se
pudiera mover hasta tres metros hacia la derecha o hacia la izquierda, ¿dónde debería
colocarse cada uno? Sería muy difícil saber intuitivamente cómo colocar ambos procesadores
para maximizar el rendimiento. Para resolver este problema con precisión, usaremos el
experimentador y el optimizador. Ahora, obviamente, este es un escenario drásticamente
simplificado, pero a menudo en la vida real hay situaciones en las que desea ver cómo los
distintos diseños afectan el rendimiento general. Esta es una implementación muy simplista de
tal experimento.

Paso 1: Construyendo el Modelo

Modelo

Cree un nuevo modelo utilizando segundos, metros y litros para las unidades.

Objetos

Cree una fuente, dos procesadores, un fregadero, un despachador y un operador. Coloque


estos objetos como se muestra a continuación.

Posiciones

Establezca la ubicación de los objetos de acuerdo con la siguiente tabla:

Dispatcher5 y Operator7 no necesitan estar en un lugar en particular, pero no deben estar en


línea con el resto de los objetos.

Lógica

Establecer la siguiente lógica:

Configure Source1, Processor2 y Processor3 en Use Transport (disponible en el menú


Propiedades rápidas).
Establezca el tiempo de proceso del Processor2 en normal (10, 2) (también disponible en el
menú Propiedades rápidas).

Establezca el tiempo de proceso de Processor3 en normal (12, 3).

Establezca la posición de restablecimiento de Operator7 en su posición actual

Paso 2: Definiendo el Experimento

El resto de este tutorial trata sobre el uso del Experimentador, que se encuentra en el menú
Estadísticas. El optimizador utiliza la mayoría de las funcionalidades ya presentes en el
experimentador.

Creando variables

Abre la ventana del experimentador. Coloque la ventana para que pueda ver los procesadores
en el modelo, así como la ventana. Luego, para Processor2 y luego Processor3, sigue estos
pasos:

Haga clic en el procesador en la vista 3D.

Haga clic en el botón Referencia de posición en Propiedades rápidas y establezca la referencia


de posición en Direct Spatials.

Haga clic en la flecha hacia abajo en el botón Agregar botón.

Seleccione Muestra en el menú emergente. Esto pone el cursor en modo de muestra.

Muestra el campo de posición X en el menú Propiedades rápidas haciendo clic en él. Esto
agrega una nueva variable de experimento.
Establezca el valor del escenario 1 para la nueva variable haciendo doble clic en la celda e
ingresando el nuevo valor.

Establezca el nombre de la variable haciendo doble clic en el nombre actual. Establezca el


nombre en Proc2X para Processor2 y Proc3X para Processor3.

Creación de medidas de rendimiento

Vaya a la pestaña de Medidas de rendimiento en la ventana del Experimentador. Desde allí:

Haga clic en el botón Agregar botón para agregar una nueva medida de rendimiento.

Nombra la nueva medida de rendimiento Rendimiento.

Haga clic en el botón desplegable y seleccione la primera opción. Aparecerá una ventana
emergente.

Seleccione Sink4 para el objeto y Input para la estadística. Para seleccionar el objeto,
simplemente escriba "/ Sink4" (sin comillas) en el campo del objeto o haga lo siguiente:

Haga clic en el botón Agregar medida de rendimiento.

Seleccione Sink4 de la lista de objetos.

Haga clic en el botón Seleccionar cuando haya terminado.


Diseñando el experimento

Ahora que hemos creado las variables y las medidas de rendimiento, configuraremos algunos
escenarios para nuestro experimento. Vuelve a la pestaña del experimento:

Cree 5 escenarios haciendo clic en el botón Agregar botón Escenarios 4 veces.

Introduzca los nombres y valores de los escenarios de la siguiente manera:

Ejecutando el experimento

Vaya a la pestaña Ejecución del experimento (RUN EXPERIMENTER). Pulsa el botón Ejecutar
experimento. Cada escenario se ejecutará 5 veces y los resultados de la medida de
rendimiento de rendimiento se recopilarán al final de cada ejecución. La ventana de estado
mostrará qué escenarios / replicaciones se están ejecutando actualmente. FlexSim ejecutará
múltiples escenarios simultáneamente si su computadora tiene una CPU de múltiples núcleos.

Una vez que finalice el experimento, haga clic en el botón Ver resultados en la parte inferior.
Esto abrirá una ventana donde puede obtener datos sobre las medidas de rendimiento para el
escenario. En este ejemplo, solo tenemos una medida de rendimiento, pero si tuviera varios,
podría ver los resultados de cada uno en esta ventana. Hay varias opciones sobre cómo
mostrar los datos, incluyendo un Gráfico de Replicaciones, un Histograma de Frecuencia, un
Gráfico de Correlación (para examinar las correlaciones entre múltiples medidas de
rendimiento), un Resumen de Datos y una vista de Datos Sin Fines.
En este experimento, el mejor escenario fue el escenario "Cerrar", que promedió alrededor de
99 partes del rendimiento. El peor escenario fue el escenario "Lejos", que promedió alrededor
de 75 partes de rendimiento.

Mejoramiento

Además de usar el Experimentador para definir escenarios de manera explícita, puede usar el
Optimizador. El optimizador creará automáticamente escenarios y luego los probará, tratando
de encontrar el escenario que mejor se adapte a un objetivo.

Diseñando la optimización

Vaya a la pestaña Diseño del optimizador en la ventana del Experimentador. Verás que las dos
variables creadas anteriormente están presentes; esto se debe a que el experimentador y el
optimizador comparten variables.

Sin embargo, el optimizador necesita información adicional sobre esas variables.


Específicamente, debe especificar:

 Tipo: el tipo de una variable determina qué tipos de valores son posibles para una
variable dada. Las variables continuas pueden tener cualquier valor entre el límite
superior e inferior.
 Límite inferior: el límite inferior especifica el valor más bajo posible que el optimizador
puede establecer para la variable.
 Límite superior: el límite superior especifica el valor más alto posible que el
optimizador puede establecer para la variable.
 Paso: para las variables Discretas y Diseño, el paso especifica la distancia entre los
valores posibles, a partir del límite inferior.
 Grupo: para las variables de permutación, el grupo especifica a qué conjunto de
variables de permutación pertenece esta variable en particular.
Para esta optimización, queremos permitir que los procesadores se muevan tres metros a cada
lado. Dado que no estamos limitados a posiciones específicas dentro de ese rango, ambas
variables de posición son Continuas. Sin embargo, necesitamos establecer los límites inferior y
superior de cada variable. Para editar valores en la tabla, haga doble clic en la celda de interés
e ingrese el nuevo valor. Ingrese los valores que se muestran a continuación:

El paso final del diseño es establecer la función objetivo. La función objetivo está presente,
pero en blanco. Edite su nombre para que sea Ingresos. Luego haga clic en el campo de
función. Un botón de botón desplegable aparecerá en el lado derecho. Haga clic en este botón
para que aparezca una lista de todas las variables y medidas de rendimiento. La función
objetivo es un valor derivado de cualquiera o todos estos valores. Seleccione el rendimiento;
esto agregará esa medida de rendimiento a la función objetivo y pondrá el cursor a la derecha
y al final. Agregue el texto * 500 para que Ingresos sea igual a Rendimiento * 500. Deje la
dirección en Maximizar, porque queremos maximizar los Ingresos. Como solo tenemos un
objetivo, el modo de búsqueda puede permanecer en Único.

Paso 3: Ejecutando la optimización

Vaya a la pestaña Ejecutar del optimizador en la ventana del Experimentador. Entonces:

Establezca el Tiempo de ejecución en 10000. Este es el tiempo que el optimizador ejecutará


cada configuración del modelo (llamada solución) para evaluarla.

Establezca Wall Time en 0. Esto generalmente significa cuánto tiempo se le permite al


optimizador ejecutar en tiempo real. El valor 0 significa que no tiene límite de tiempo.

Establezca Max Solutions en 50. Esto significa que el optimizador intentará no más de 50
soluciones diferentes para encontrar la solución óptima.

Haga clic en el botón Optimizar.


La ventana del Experimentador cambiará automáticamente a la pestaña Resultados del
Optimizador. El optimizador comienza a ejecutarse a través del siguiente bucle:

Determinar valores para Proc2X y Proc3X.

Ejecuta un modelo con esos valores durante 10000 segundos.

Evaluar las medidas de rendimiento.

Calcular la función objetivo.

Clasifique esta solución.

Utilice la información de esta solución para crear una nueva solución: nuevos valores para
Proc2X y Proc3X.

Repita desde el paso 2.

Debido a que el optimizador comparte la capacidad de subprocesos múltiples del


experimentador, puede evaluar múltiples soluciones al mismo tiempo. A medida que avanza la
optimización, el gráfico de resultados del optimizador se actualizará y mostrará el progreso del
optimizador.

Una vez que el optimizador evalúe 50 soluciones, aparecerá un mensaje indicando por qué se
detuvo el optimizador. En este caso, dirá que el optimizador alcanzó el número máximo de
soluciones. Si algo salió mal, el mensaje contendrá información sobre el error.
Paso 4: Analizar los resultados

Cuando la optimización haya finalizado, el gráfico de resultados del optimizador debería tener
este aspecto:

El Eje Y se llama "Objetivo Único". Para este ejemplo, es sinónimo de ingresos. Se destacan las
mejores soluciones. Los círculos con un borde más claro alrededor de ellos representan
mejores soluciones. Para un solo objetivo, las 10 mejores soluciones están marcadas de esta
manera.

A medida que avanzaba la optimización, el optimizador mejoró cada vez más en la creación de
buenas soluciones, por lo que las últimas 15 soluciones fueron todas muy buenas. Esto se
llama convergencia y es una forma de saber si una optimización ha finalizado; Si el valor
objetivo no ha mejorado por un tiempo, es posible que no mejore con una búsqueda adicional
y que se use la mejor solución actual.

Respondiendo a la pregunta original

El objetivo de esta optimización era averiguar dónde colocar los dos procesadores. Ahora
podemos encontrar fácilmente la respuesta a esta pregunta. Coloca el cursor sobre la mejor
solución (el círculo azul más grande) en la tabla; Aparecerá una pequeña ventana emergente

Haga clic en esta solución para seleccionarla. Ahora, en el panel Opciones de gráfico, cambie el
eje Y a Proc3X y el eje X a Proc2X.
La mejor solución (y todas las otras mejores soluciones) se encuentra donde Proc2X es mayor y
donde Proc3X es menor. Recuerde que todas las 10 soluciones principales produjeron los
mismos resultados; en este caso, tener los dos procesadores uno al lado del otro es la mejor
configuración para este modelo.

Configurando el modelo a la mejor solución

Puede ser muy útil configurar el modelo para que coincida con la mejor solución. Para ello,
haga clic en el botón Exportar escenarios. Esto toma todas las soluciones seleccionadas y crea
escenarios de experimentador para ellas. Regrese a la pestaña Escenarios en la ventana del
Experimentador para ver la nueva solución.

Ahora, desde el menú desplegable "Elegir restablecimiento predeterminado de sceanrio" en el


extremo derecho, seleccione el nuevo escenario. Luego reinicie el modelo para aplicar esos
valores al modelo 3D.