# Crear el flujo de proceso del modelo

AnyLogic tiene varias paletas con bloques de comandos que se arrastran al área central de modelado.

Como se describió al principio, en esta primera etapa del ejercicio, construiremos una cola M/M/1, compuesta básicamente por:

* Un proceso de llegadas de clientes, con intervalos entre llegadas sucesivas distribuidas exponencialmente y un valor promedio de **2.0 clientes/min**;
* Un proceso de uso de ATM, con una duración promedio de 0.4 min/cliente y distribución exponencial, equivalente a un cargo por servicio de **2.5 clientes/min** (= 1/0.4);
* Un solo servidor (solo 1 cajero automático, por ejemplo).

El bloque **source** es responsable de generar entidades (o, en la nomenclatura de AnyLogic, generar **agentes**) en un flujo de proceso. Haga clic, mantenga presionado y arrastre el bloque de **origen**, desde la paleta, hasta el centro de la pantalla. \[Observe, en el **área de Properties** a la derecha, cómo cambia el menú sensible].

![](https://lh6.googleusercontent.com/0a0Sf6nZKrnswXe7dW_trQpmPwYrjCc0T2j7-3N_G8FROBIG-g1DwROC-PVn4Ad_35dVKu80F16FKFID1ALEub2WaF151XzdZUtiwx534mzJdKyHtgV5RUGTPOyc6TnqNfrCppjF)

La cola M/M/1 tiene un solo servidor, por lo que haremos un flujo muy simple con elementos de AnyLogic:

* Un bloque de **source** para generar agentes;
* Un bloque de **queue** que representa la cola;
* Un bloque de **delay** que representa el proceso de servicio;
* Un bloque de **sink** donde termina el flujo o proceso del agente creado en el bloque **source**.

El "arrastrar y soltar" de AnyLogic es realmente fácil: si mueve el ratón más cerca del bloque, ya crea el **conector** que representa la conexión lógica entre los bloques.

![](https://lh6.googleusercontent.com/_OeSbZ5Hdx14hOTNphHUL8PwhcMT6NppwTbTinPl0SMWXBDhMzqrDbPKL1Yp74JYrvQHuBPeL91mW-AGPOh_EKVU0Mj7vJ6TxYHy8EV2zQOpIxaZJoqMTbiTQgOR4uNOHJialwxw)

Pero si **elimina** automáticamente o no crea un conector, haga doble clic en un extremo **verde del bloque de origen y únase al otro extremo verde del bloque de destino**.

![](https://lh3.googleusercontent.com/ZC0l1FVzBTI_sHhNJoF7vp5YSAJs0y4dGax6Tq_iu5RUQg_qPzpX9Dr78wdqGmKLJPBSu1H4xi0GCc8ZpKAluc9vWFZHt_2l0Azazft1NJXhjA5MqrApQJuUatYfb1GOTDRp0jvK)

Una vez que se ha creado el flujo del proceso, se establecen las **propiedades** de cada bloque. Haga clic en el bloque de **origen**:

* Cambie el nombre del bloque a algo como: **llegadas**;
* El proceso de llegada se definirá mediante una **Rate** o **Tasa** (= intervalos entre llegadas distribuidos exponencialmente, una [distribución de Poisson](https://es.wikipedia.org/wiki/Distribuci%C3%B3n_de_Poisson));
* Para este ejemplo, asumimos que la tasa de llegada de clientes es de **2.0 clientes/min**.

![](https://lh3.googleusercontent.com/fCiT_nOvHXiyy2r4HSyG0FFURVSBXKJ_okfEUlDqD4dmhAafTiMSNk37b7txe4dSa-Hrk71q5tLytpV7qd0QQKdMorZQ4C3J9t9KTrdjsMwB-3lCi_e_v0WXvutOw_4Nst8bwP2_)

Al hacer clic en el bloque **queue**, notará que la capacidad de la cola está limitada a **100**. Sin embargo, por definición, la cola M/M/1 tiene una capacidad ilimitada. Por lo tanto, debemos hacer clic en **Maximum capacity** en las propiedades del bloque **queue**, de modo que la cola tenga una capacidad ilimitada:

![](https://lh5.googleusercontent.com/OtnIjBRn2Ow8rq0upz4QASTK2sy47ffOTYGmDQTJZ8Kg7d0YsiH_CViD7st5d_IORjyYNB9mjG8N-7TXYRM0_89sX4fOY6dMtX_hiLgARcakR60I-Uqw7W7DPRJZC_DdM75EV3X8)

**Importante**: Vviene predeterminado que las colas AnyLogic nunca se crean con capacidad infinita, sino siempre con una capacidad limitada en 100 agentes. Si su valor no se cambia a la capacidad máxima y la cola excede su capacidad durante la simulación, AnyLogic presentará un mensaje de error.

Para el bloque **delay**, responsable de ejecutar el proceso de servicio, consideraremos que la tasa de servicio promedio es de **2.5 clientes/min**, con distribución exponencial.&#x20;

Para facilitar el proceso de completar distribuciones probabilísticas, AnyLogic tiene una herramienta específica para la selección de distribuciones, **Elegir distribuciones de probabilidad**:

* Seleccione el bloque **delay** y luego el campo Delay time;
* Cuando un campo que permite recibir **distribuciones de probabilidad** se abre, se activa un botón en la barra de comandos de AnyLogic (un “J” con una varita mágica):&#x20;

![](https://lh5.googleusercontent.com/tkiGPCUn6Bwdzet6q5DQYO4Q7TuyBKUzpjgrs_tdaie09Tc_aKOJ_HpyHsIPL-zzc_1HajPG-5T3ehoMDCjrK4V0mqXYmbEg4ja6Q2O6FuWLim4E01tP3E5W-ATg11nGYe-NWC6c)

* Haga clic en el botón para mostrar la ventana **Choose Probability Distribution...**:

![](https://lh4.googleusercontent.com/v47nCwIKNC7fEpKvbiTK-6L8zJ4FSneCnDEvElLmWScfBWA_FlK6yiGVHCbfnnTksw3Dmz6L75zweqBitlw-ZQu_poWg9XVKJZGG7SZCsjlg_1czYjokOUsjIzeS3eexVhYLCf5h)

Muchas distribuciones, ¿verdad?

**Importante**: AnyLogic considera el parámetro *lambda* o la tasa de ocurrencia del fenómeno de distribución (como suelen hacer los libros de Estadística). Por esta razón, debemos informar a AnyLogic la tasa de servicio promedio de **2.5 clientes/min** (que es básicamente el inverso del tiempo promedio de servicio, si lo desea, puede escribir directamente así: **1/0.4**).

Listo? Listo!

¡Simula!

![](/files/-MG-V6A9SRhExSRqZtJN)

Sí, ahora está ejecutando su primer modelo en AnyLogic usando el **botón verde** en la barra de menú superior:

![](https://lh5.googleusercontent.com/c_VN-tG01zdGPT1T0286z4Pu2ioK14u8NWmYDVTfSwWULzoNlGJzFlgHiFauRZSDkGgsiX70ZuShBAew3mMkFKHXtkPYbIv-jhzpDyHJZRAFCJ1LCInKOEjMdDLXu8H9xftdVgLq)

Tenga en cuenta que AnyLogic ejecutó su modelo como una **aplicación Java** y esto es **importante: AnyLogic es un generador de aplicaciones de simulación.**

En la versión **Professional**, y solo en ella, existe la opción de exportar esta aplicación, generando un archivo ejecutable **independiente de AnyLogic**, que puede distribuir a terceros o ejecutar en máquinas que ni siquiera tienen AnyLogic instalado.

Cuando haces clic en el botón **Run**, ocurre la magia. Tenga en cuenta que el bloque de la **queue** se llena de **azul oscuro** a medida que más clientes esperan en la fila.

![](https://lh4.googleusercontent.com/_gfTQSvDAnTM0htFo5vyiHJF7I3ocnYEYB_FAmKpd6704f26Z1Im3gN4AotnP7yPFDUna8YmqTHB1VUj8rLF4VjBtNGbxqz2QW0G302iTrrxx-eRdT4B6dQNfaWE5Cj3B41uy1mZ)

Haga clic en los bloques azules, están llenos de sorpresas:

![](https://lh5.googleusercontent.com/wDm3RxVKSgcqXlpjGW0jg0VaMepFCqqFWfPwaEzod3FjphWldUsxoh6Rx6i5pt4hplnubRIQgq--czBzcWUvGADKEx-hEOfpIYVKPj-E-BKHujtyOnaLChX-XJBaj2wZj_8yPFri)

Si simula durante mucho tiempo, en algún momento el **límite de 50,000 agentes de la versión PLE** se rompe y AnyLogic presentará una pantalla en blanco, informando el error.&#x20;

Para evitar este tipo de error (no es que suceda mucho, ya que 50,000 agentes son muchos), podemos configurar mejor nuestro **Experimento de simulación**.&#x20;

Usando la pantalla izquierda, seleccione la pestaña Projects. Verá un navegador con iconos apilados, como carpetas: los botones rojos (el símbolo es un muñeco) representan **agentes**; y el icono azul con una x blanca, que representa un **Experimento**.

![](https://lh6.googleusercontent.com/bdqZS-6HYYCEHCPhTi4MjVj6z92YziCOPpS2ZMdeR-0ciz9hWXSYhzOuFiY1XRQ2_vSi4bTD_UqzEf59j5cqkHizfkvsOmdJY9AxsR6V34nUauLGeXp0olMTfV33_6sHXMvTVNG8)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://tutorial.anylogicbrasil.com.br/tutorial-es/construindo-o-fluxo-de-processos-do-modelo.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
