Saltar al contenido principal

Visión general

Cualquier campo numérico que varíe entre ejecuciones — tiempos de procesamiento, tasas de llegada, valores de atributos de entidad, requisitos de recursos, tiempos de cambio de Recurso — puede extraerse de una Distribución (Distribution) 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 disminuye, duraciones de procesamiento con colas largas realistas. Abre el selector de distribución en cualquier campo numérico y elige entre diez opciones: Fixed, Normal, Exponential, Uniform, Lognormal, Weibull, Triangular, Erlang, Beta, Gamma. Cada elección revela su propio conjunto de campos de parámetros debajo del selector. Cada campo de parámetro se renderiza como un selector de tiempo DDD:HH:MM:SS por defecto. Haz clic en el toggle </> junto a cualquier parámetro para cambiar ese campo a modo de expresión y escribir una Expresión (Expression) del DSL en su lugar — así es como haces que la variabilidad dependa del estado de simulación, constantes o atributos de entidad. La elección de distribución y la forma de sus parámetros son configuración estática. Los valores de parámetros individuales pueden ser literales o expresiones, mezclados libremente.
Cada campo de parámetro usa el selector de tiempo DDD:HH:MM:SS por defecto, incluso para parámetros adimensionales como los parámetros de forma de Beta, la forma de Weibull o la σ de Lognormal. El widget es el mismo independientemente de la unidad; en contextos no temporales trata el valor como un número plano. El toggle </> aún te da una entrada de expresión libre cuando la necesites.

Distribuciones soportadas

Fixed

Un valor determinista. Técnicamente no es una distribución, pero se incluye por coherencia para que cada campo numérico use el mismo selector. Parámetros
  • Value — la constante a la que el campo siempre se resuelve. Por defecto es 0.0.
El valor por defecto de Fixed es 0.0. Un parámetro Fixed recién añadido se resuelve a cero hasta que lo configures: un paso de procesamiento silencioso de duración cero o una llegada de tasa cero es una trampa común de modelado. Siempre establece el valor antes de ejecutar.
Úsalo para: valores predecibles y no aleatorios. Útil cuando quieres que el campo esté cableado de la misma manera que los campos variables pero el valor no debe variar.

Normal

La clásica campana — simétrica alrededor de una media, con dispersión controlada por la desviación estándar. Parámetros
  • Mean — centro de la distribución.
  • Standard Deviation — dispersión alrededor de la media.
Úsalo para: tiempos de procesamiento que se agrupan estrechamente alrededor de un valor central con variabilidad simétrica. Tiempos de ciclo de máquinas, errores de medición y cualquier cosa sujeta a muchas fuentes pequeñas e independientes de variación. Ten cuidado: las distribuciones normales se extienden al infinito negativo. Para cantidades estrictamente positivas (tiempos, pesos) con varianza sustancial, considera Lognormal o Gamma para evitar muestras negativas.

Exponential

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.
Úsalo 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.

Uniform

Cada valor entre los límites es igualmente probable. Distribución plana. Parámetros
  • Lower Bound — valor mínimo de muestra.
  • Upper Bound — valor máximo de muestra.
Úsalo 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 una suposición inicial antes de que se disponga de mejores datos.

Lognormal

Una transformación logarítmica de una distribución normal — sesgada a la derecha, estrictamente positiva, con una larga cola derecha. Parámetros
  • Mu — media de la distribución normal subyacente (antes de la transformación logarítmica), no de la lognormal en sí.
  • Sigma — desviación estándar de la distribución normal subyacente.
Úsalo para: tiempos de servicio, duraciones de tareas y cualquier cantidad que sea positiva, tenga un valor típico claro y ocasionalmente tenga valores atípicos largos. Muchas distribuciones del mundo real de “¿cuánto tiempo toma esto?” están bien modeladas por lognormal.

Weibull

Distribución flexible que puede modelar tasas de riesgo crecientes, constantes o decrecientes dependiendo de su parámetro de forma. Parámetros
  • Shape — controla cómo evoluciona la tasa de riesgo con el tiempo transcurrido.
  • Scale — magnitud característica de las muestras.
Úsalo para: modelado de tiempo hasta falla (ingeniería de confiabilidad), vida útil por fatiga y cualquier proceso donde la tasa de ocurrencia cambia con el tiempo transcurrido.

Triangular

Una distribución simple de tres puntos. Parámetros
  • Lower Bound — valor mínimo posible.
  • Upper Bound — valor máximo posible.
  • Mode — valor más probable, entre los límites.
Úsalo para: estimaciones obtenidas de expertos (“lo más rápido que toma son 2 min, típicamente 5 min, peor caso 10 min”). Un valor por defecto razonable cuando tienes estimaciones de tres puntos pero no una distribución empírica para ajustar.

Erlang

Suma de Shape variables aleatorias exponenciales independientes, donde Shape debe ser un entero positivo. Parámetros
  • Shape — número de etapas exponenciales sumadas (entero positivo; el campo no rechaza visiblemente la entrada no entera, pero la validación del backend sí).
  • Scale — media de cada etapa exponencial subyacente.
Úsalo para: procesos de múltiples etapas donde cada etapa está distribuida exponencialmente, o cuando necesitas distribuciones positivas con más control de forma que exponencial y menos complejidad que gamma.

Beta

Distribución en el intervalo [0, 1], con forma flexible mediante dos parámetros. Parámetros
  • Alpha — primer parámetro de forma.
  • Beta Parameter — segundo parámetro de forma. (La etiqueta se deletrea para evitar confusión con el nombre de la distribución Beta en sí.)
Úsalo para: proporciones, rendimientos y probabilidades que varían entre ejecuciones. Los parámetros de forma te permiten expresar todo desde uniforme (Alpha = 1, Beta Parameter = 1) hasta formas tipo campana y sesgadas fuertemente.

Gamma

Distribución continua de propósito general para cantidades positivas, controlada por dos parámetros. Parámetros
  • Alpha — parámetro de forma.
  • Beta — parámetro de escala. (El motor usa gammavariate(alpha, beta) con beta como escala, por lo que la media es α·β.)
Úsalo para: cantidades positivas con una forma más flexible que exponencial o lognormal. Tiempos de servicio, tiempos de espera y fenómenos de colas.

Eligiendo una distribución

Si tienes datos reales, ajusta una distribución a ellos. Si no los tienes:
Tú conoces…Usa
El valor exactoFixed
Media y variabilidad simétrica, el valor puede ser de cualquier signoNormal
Solo los límites, sin razón para favorecer ninguna regiónUniform
Solo la media, temporización de evento sin memoriaExponential
Estimación de tres puntos (mín/modo/máx)Triangular
Positivo, sesgado a la derecha, un valor “típico” con cola largaLognormal o Gamma
Proporción / probabilidad con variabilidadBeta
Tiempo hasta falla con una tasa de riesgo que cambia con el tiempoWeibull
Suma de etapas exponencialesErlang
Para tiempos de procesamiento donde tienes números de “promedio” y “peor caso” de la planta, Triangular es un valor por defecto pragmático. Para patrones de llegada, Exponential es el inicio estándar. Para trabajo sensible a distribuciones (análisis de colas, confiabilidad), ajusta a datos reales.

Parametrización con expresiones del DSL

Cada campo de parámetro tiene un toggle </> junto a su etiqueta. Haz clic en él y el selector de tiempo se reemplaza por una entrada de texto de una sola línea donde escribes una expresión del DSL — referencias a constantes, variables de estado, atributos de entidad (donde el contexto lo permite) o expresiones compuestas. Cambia de nuevo para revertir al modo de entrada del selector de tiempo. Un parámetro en modo expresión podría contener:
  • base_time * complexity_factor — escalar la Mean de una distribución Normal por un factor de complejidad a nivel de entidad mientras deja la Standard Deviation como literal.
  • LOOKUP(mean_interarrival_by_shift, current_shift) — alimentar la Beta de una distribución Exponential desde una tabla de búsqueda indexada por turno.
  • LOOKUP(log_mean_weight_by_product, ENTITY_TYPE) — elegir un Mu Lognormal por tipo de producto mientras mantiene Sigma fijo.
Los parámetros en modo expresión y en modo selector de tiempo pueden mezclarse libremente en la misma distribución: cambia solo los parámetros que necesitan variar. Esta capacidad de composición es lo que permite que un solo modelo represente variabilidad rica y basada en datos sin codificar números en docenas de campos.

Consejos

  • Toma una muestra 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 se ejecute el Proceso (Process) — no como un atributo de entidad establecido en la Fuente (Source). Esto mantiene la muestra cerca del estado del que debe depender.
  • Normal no siempre es la respuesta. Es familiar, pero puede producir muestras negativas. Para cantidades estrictamente positivas, prefiere Lognormal, Gamma o alternativas truncadas.
  • Revisa las etiquetas de parámetros cuidadosamente. Diferentes distribuciones reutilizan nombres incluso cuando el concepto matemático es similar — la Beta de Exponential es una media, la Beta de Gamma es una tasa/escala, y el Beta Parameter de Beta es una forma. Las etiquetas del selector son la fuente de verdad.
  • Ajusta la distribución a los datos cuando sea posible. Una distribución ajustada sobre tiempos de ciclo reales del MES dará resultados mucho más realistas que una paramétrica supuesta.
  • Usa Fixed para simplificar el modelado inicial. Comienza con valores fijos para verificar la estructura, luego cambia a distribuciones una vez que el modelo sea correcto.