Skip to main content

Visión general

Un campo que varía de corrida en corrida puede extraerse de una distribución de probabilidad en lugar de un número fijo. Las distribuciones permiten que un modelo refleje la variabilidad del mundo real: tiempos de ciclo que varían, demanda que se agrupa y decae, duraciones de procesamiento con colas largas realistas. En el Modelador, el selector de distribución aparece en:
  • Tiempo de Procesamiento en un Proceso
  • Lógica de Llegada en una Fuente — nota que esto es un tiempo entre llegadas (tiempo entre arribos), no una tasa
  • La estrategia de asignación Distribución para atributos Número en las salidas de Fuente, Combinador, Separador y Transformador
Los requisitos de recurso en un Proceso toman una cantidad entera, y los tiempos de cambio de un Recurso toman una duración fija. Si necesitas que cualquiera de los dos varíe, pídele a Dexter que lo configure.
La Cantidad a liberar en una acción de liberación toma un número literal o una expresión DSL, no una distribución.
Abre el selector de distribución y elige entre diez opciones: Fijo, Normal, Exponencial, Uniforme, Lognormal, Weibull, Triangular, Erlang, Beta, Gamma. Cada opción revela su propio conjunto de campos de parámetros debajo del selector, prellenados con valores iniciales. Cada campo de parámetro es, por defecto, un selector de duración (días, horas, minutos, segundos). Haz clic en el toggle </> (Cambiar a expresión) junto a un parámetro para escribir una expresión DSL en su lugar: así es como haces que la variabilidad dependa del estado de la simulación, de constantes o de atributos de entidad. La elección de distribución es configuración estática. Los valores de parámetro individuales pueden ser literales o expresiones, mezclados libremente.
El selector de duración guarda segundos completos, incluso para parámetros adimensionales como los parámetros de forma de Beta, la forma de Weibull, o la Sigma de Lognormal. Para ingresar un valor fraccionario como una Sigma de 0.294 o un Alfa de 2.5, cambia el parámetro a modo expresión y escribe el número. El campo conserva el valor exacto, pero cuando lo dejas, vuelve al selector de duración, que muestra el valor redondeado al segundo completo. Editarlo en el selector lo reemplaza con un número entero.

Distribuciones soportadas

Fijo

Un valor determinista. Técnicamente no es una distribución, pero se incluye por consistencia para que cada campo de distribución use el mismo selector. Parámetros
  • Valor: la constante a la que siempre resuelve el campo.
Un Proceso o Fuente nuevo empieza en Fijo, 1 segundo. Hasta que lo cambies, el Proceso toma un segundo por entidad y la Fuente libera una entidad cada segundo. Define el valor antes de correr.
Úsalo para: valores predecibles y no aleatorios. Útil cuando quieres que el campo esté conectado igual que los campos variables, pero el valor no debe variar.
Fijo + modo expresión es cómo alimentas un valor calculado en un slot de distribución. No hay forma de llamar a una distribución desde el DSL, pero la composición inversa funciona: elige Fijo, cambia su Valor a modo expresión, y escribe LOOKUP(CYCLE_TIMES, ENTITY_TYPE, default:=60) o cualquier otra expresión.

Normal

La clásica curva de campana: simétrica alrededor de una media, con la dispersión controlada por la desviación estándar. Parámetros
  • Media: centro de la distribución.
  • Desviación Estándar: dispersión alrededor de la media.
Úsala para: tiempos de procesamiento que se agrupan de forma cerrada alrededor de un valor central con variabilidad simétrica. Tiempos de ciclo de máquina, errores de medición, y cualquier cosa sujeta a muchas fuentes de variación pequeñas e independientes. Ten cuidado: las distribuciones normales se extienden hasta el infinito negativo, así que una Normal puede extraer valores negativos. Los tiempos de procesamiento y de llegada se recortan a cero, así que esas extracciones se convierten en pasos de duración cero o llegadas simultáneas, y el promedio se desplaza por encima de la Media que definiste. Para cantidades estrictamente positivas (tiempos, pesos), prefiere Lognormal o Gamma.

Exponencial

Tiempo entre eventos sin memoria. Mayor concentración cerca de cero, cola larga. Parámetros
  • Beta: la media (equivalentemente, 1 sobre la tasa). A pesar del nombre, es el valor esperado de una muestra.
Úsala para: tiempos entre llegadas en procesos de Poisson (llegadas aleatorias), tiempo hasta una falla aleatoria, tiempo hasta un evento aleatorio con tasa de riesgo constante.

Uniforme

Cada valor entre los límites es igualmente probable. Distribución plana. Parámetros
  • Límite Inferior: valor mínimo de muestra.
  • Límite Superior: valor máximo de muestra. Debe ser mayor que el Límite Inferior.
Úsala para: casos donde solo conoces los límites y no tienes razón para favorecer ningún valor específico dentro de ellos. A menudo, un supuesto de partida antes de que haya mejores datos disponibles.

Lognormal

Una transformación logarítmica de una distribución normal: asimétrica hacia la derecha, estrictamente positiva, con una cola derecha larga. Parámetros
  • Mu: media de la normal subyacente (antes de la transformación logarítmica), no de la lognormal en sí.
  • Sigma: desviación estándar de la normal subyacente.
Mu y Sigma son parámetros en espacio logarítmico, no la media y desviación estándar de tus datos. Ingresar una media real de 60 como Mu es el error de lognormal más común: produce muestras alrededor de e⁶⁰. Conviértelos primero (abajo). Un Mu extremadamente grande (por encima de aproximadamente 700) desborda por completo la exponencial.
Conversión desde una media real y un CV. Los números de ingeniería de procesos suelen llegar como una duración media y un coeficiente de variación (CV = desviación estándar ÷ media), no como parámetros en espacio logarítmico. Conviértelos con:
Por ejemplo, media 60 con CV 0.3: sigma² = ln(1.09) ≈ 0.086 → Sigma ≈ 0.294, Mu = ln(60) − 0.043 ≈ 4.05. Ambos son fraccionarios, así que ingrésalos en modo expresión. También puedes darle a Dexter la media y el CV y pedirle que configure la lognormal por ti. Úsala para: tiempos de servicio, duraciones de tarea, y cualquier cantidad que sea positiva, tenga un valor típico claro, y ocasionalmente tenga valores atípicos largos. Muchas distribuciones reales de “¿cuánto toma esto?” se modelan bien con lognormal.

Weibull

Distribución flexible que puede modelar tasas de riesgo crecientes, constantes o decrecientes según su parámetro de forma. Parámetros
  • Forma: controla cómo evoluciona la tasa de riesgo con el tiempo transcurrido. Forma < 1 modela mortalidad infantil (tasa de falla que disminuye con el tiempo), Forma = 1 se reduce a Exponencial (tasa constante), Forma > 1 modela desgaste (tasa de falla que aumenta con el tiempo).
  • Escala: magnitud característica de las muestras.
Ambos parámetros deben ser mayores que cero. Úsala para: modelado de tiempo hasta la falla (ingeniería de confiabilidad), vida por fatiga, y cualquier proceso donde la tasa de ocurrencia cambie con el tiempo transcurrido.

Triangular

Una distribución simple de tres puntos. Parámetros
  • Límite Inferior: valor mínimo posible.
  • Límite Superior: valor máximo posible.
  • Moda: valor más probable. Debe cumplir Límite Inferior ≤ Moda ≤ Límite Superior.
La media de una muestra Triangular es (lower + upper + mode) / 3: útil para verificar los resultados contra los números que te dieron. Úsala para: estimaciones obtenidas de expertos (“lo más rápido que toma es 2 min, típicamente 5 min, el peor caso 10 min”). Un valor predeterminado razonable cuando tienes estimaciones de tres puntos pero ninguna distribución empírica que ajustar.

Erlang

Suma de Forma variables aleatorias exponenciales independientes, donde Forma debe ser un entero positivo. Parámetros
  • Forma: número de etapas exponenciales sumadas (un entero positivo; un valor fraccionario se trunca a un número entero cuando corre el modelo).
  • Escala: media de cada etapa exponencial subyacente.
Úsala para: procesos multietapa donde cada etapa se distribuye exponencialmente, o cuando necesitas distribuciones positivas con más control de forma que exponencial y menos complejidad que gamma. Si quieres una forma no entera, usa Gamma: es la generalización continua de Erlang.

Beta

Distribución en el intervalo [0, 1], moldeada de forma flexible por dos parámetros. Parámetros
  • Alfa: primer parámetro de forma.
  • Parámetro Beta: segundo parámetro de forma. (La etiqueta está escrita completa para evitar confusión con el nombre de la distribución Beta en sí.)
Ambos parámetros de forma deben ser mayores que cero. Úsala para: proporciones, rendimientos y probabilidades que varían de corrida en corrida. Los parámetros de forma te permiten expresar desde uniforme (Alfa = 1, Parámetro Beta = 1) hasta formas parecidas a campana, hasta muy asimétricas.

Gamma

Distribución continua de propósito general para cantidades positivas, controlada por dos parámetros. Parámetros
  • Alfa: parámetro de forma.
  • Beta: parámetro de escala, así que la media es Alfa × Beta.
Ambos parámetros deben ser mayores que cero. Gamma se reduce a Exponencial cuando Alfa = 1 y a Erlang cuando Alfa es entero. Úsala para: cantidades positivas con una forma más flexible que exponencial o lognormal. Tiempos de servicio, tiempos de espera y fenómenos de colas.

Elegir una distribución

Si tienes datos reales, ajusta una distribución a ellos. Si no: Para tiempos de procesamiento donde tienes números de “promedio” y “peor caso” del piso, Triangular es un valor predeterminado pragmático; si tienes una media y una dispersión, Lognormal suele ser mejor. Para patrones de llegada, Exponencial es el punto de partida estándar. Evita Normal para duraciones: sus extracciones negativas se recortan a cero. Para trabajo sensible a la distribución (análisis de colas, confiabilidad), ajusta a datos reales.

Parametrizar con expresiones DSL

Cada campo de parámetro tiene un toggle </> junto a su etiqueta. Haz clic en él y el selector de duración se reemplaza por un campo de texto de una sola línea donde escribes una expresión DSL: referencias a constantes, variables de estado, atributos de entidad (donde el contexto lo permita), o expresiones compuestas. Haz clic en el ícono de reloj (Cambiar a duración) para volver al selector de duración. Un parámetro en modo expresión podría contener:
  • base_time * complexity_factor: escala la Media de una distribución Normal según atributos de entidad, dejando la Desviación Estándar como literal.
  • LOOKUP(MEAN_INTERARRIVAL_BY_SHIFT, CURRENT_SHIFT): impulsa la Beta de una distribución Exponencial a partir de una tabla de búsqueda indexada por turno y una variable de estado.
  • LOOKUP(LOG_MEAN_WEIGHT_BY_PRODUCT, ENTITY_TYPE): elige un Mu de Lognormal por tipo de producto mientras mantienes Sigma fijo.
Los parámetros en modo expresión y en selector de duración pueden mezclarse libremente en la misma distribución: cambia solo los parámetros que necesiten variar. Esta capacidad de composición es lo que le permite a un solo modelo representar variabilidad rica e impulsada por datos sin codificar números fijos en decenas de campos.

Consejos

  • Extrae de la distribución en el momento de uso, no en el momento de creación de la entidad. Para tiempos de procesamiento especialmente, muestrea la distribución cuando corre el Proceso, no como un atributo de entidad definido en la Fuente. Esto mantiene la muestra cerca del estado del que debería depender.
  • Normal no siempre es la respuesta. Es familiar, pero puede extraer valores negativos. Para cantidades estrictamente positivas, prefiere Lognormal o Gamma.
  • Revisa las etiquetas de los parámetros con cuidado. Distintas distribuciones reutilizan nombres aunque el concepto matemático sea similar: la Beta de Exponencial es una media, la Beta de Gamma es una escala (media = Alfa × Beta), y el Parámetro Beta de Beta es una forma. Las etiquetas del selector son la fuente de verdad.
  • Respeta las restricciones de los parámetros. Uniforme necesita límite superior > límite inferior; Triangular necesita límite inferior ≤ moda ≤ límite superior; la forma de Erlang debe ser un entero positivo; los parámetros de Weibull, Gamma, Beta y Exponencial deben ser todos positivos. El botón de reproducir no revisa esto. Cuando una corrida encuentra un parámetro inválido, corrige el valor (intercambiando límites invertidos, recortando la moda o un parámetro no positivo) y reporta un aviso en tiempo de ejecución en la corrida. Una forma fraccionaria de Erlang se trunca sin aviso. Si una corrida termina con avisos, revísalos antes de confiar en los resultados.
  • Ajusta la distribución a los datos cuando sea posible. Una distribución ajustada a tiempos de ciclo reales del MES dará resultados mucho más realistas que una asumida paramétricamente.
  • Usa Fijo para simplificar el modelado inicial. Empieza con valores fijos para verificar la estructura, y luego cambia a distribuciones una vez que el modelo esté correcto.