Skip to content

Mejore sus Proyectos de Simulación con el API de Python para AnyLogic

, , , | febrero 2, 2023 | By

Integración de Python con AnyLogic para el Modelado de Simulación

Python + AnyLogic

El API de Python para AnyLogic proporciona una forma poderosa de llevar sus modelos de simulación al siguiente nivel.

Python representa uno de los lenguajes de programación más populares del mundo. Según la firma de analistas RedMonk, Python ocupa el segundo lugar en el último ranking de popularidad de lenguajes de programación, justo debajo de JavaScript. El ser un lenguaje de código abierto, tener una gran variedad de bibliotecas para múltiples propósitos (por ejemplo, ciencia de datos, aprendizaje automático, inteligencia artificial, big data, visualización de datos, optimización, estadísticas) y su compatibilidad con otros programas han contribuido a su creciente popularidad entre profesionales y académicos de múltiples campos.

AnyLogic, un software de simulación líder para aplicaciones empresariales utilizado en todo el mundo por más del 40 % de las empresas de Fortune 100, ha integrado recientemente una API de Python para que AnyLogic funcione en modelos de simulación almacenados en su AnyLogic Cloud personal. Se espera que esta nueva funcionalidad aporte beneficios potenciales a los usuarios de AnyLogic y Python en el desarrollo, configuración y experimentación de sus modelos de simulación.

Los modelos de simulación de AnyLogic almacenados en su cuenta personal de AnyLogic Cloud se pueden configurar y ejecutar mediante programación a través de un API de Python para que AnyLogic obtenga resultados experimentales y evalúe múltiples escenarios cambiando los valores de los parámetros.

Esta nueva funcionalidad de Python con AnyLogic representa una gran herramienta para cuando se requiere ejecutar y experimentar con modelos de simulación de AnyLogic en una computadora que no tiene instalado el software AnyLogic.

Para comenzar a utilizar el API de Python para AnyLogic, instale la biblioteca del cliente en la nube de AnyLogic mediante el instalador del paquete pip:

Cloud AnyLogic Installation.md
pip install https://cloud.anylogic.com/files/api-8.5.0/clients/anylogiccloudclient-8.5.0-py3-none-any.whl
https://gist.github.com/SimWell/1d2d636c2d2b2efc62a93bf0f9cc0101
 

Modelo de Simulación Minimalista

El modelo analizado en este tutorial (es decir, la demostración de un sistema de servicio) se puede encontrar en el sitio web en AnyLogic Cloud.

El modelo de demostración del sistema de servicio consta de una fuente única, un módulo de servicio, un punto de control y un sumidero. Se mide el tiempo que los agentes pasan en el sistema y el objetivo es obtener el tiempo total medio que los agentes pasan en el sistema, la utilización del servidor y el tamaño medio de la cola.

Siga los siguientes pasos para ejecutar el modelo de demostración del sistema de servicio en el sitio web de AnyLogic Cloud:

  • Escriba "Service Systems Demo" en la barra de búsqueda del sitio web de AnyLogic Cloud. El modelo se mostrará en la pantalla de la siguiente manera:
 

Sitio web de AnyLogic Cloud con 'Demostración del sistema de servicio' escrito en la barra de búsqueda

  • Haga clic en el modelo para abrirlo.
 

Modelo de demostración del sistema de servicio en el sitio web de AnyLogic Cloud

  • Haga clic en reproducir para ejecutar el modelo de simulación y obtener los resultados.
 

Resultados del modelo de demostración del sistema de servicio

Resultados de Referencia:

Según los resultados del modelo de referencia, el tiempo total medio en el sistema es 4.63, la utilización del servidor 0.83 y el tamaño medio de la cola 2.54.

Ahora, ejecutemos el mismo modelo de simulación utilizando el API de Python para AnyLogic vinculándolo con el modelo de AnyLogic Cloud. Siga los siguientes pasos para ejecutar el modelo de demostración del sistema de servicio:

Código Python:

Service System Demo.py
# Load anylogiccloudclient library
from anylogiccloudclient.client.cloud_client import CloudClient

# Creat a CloudClient object, given the API key
client = CloudClient("e05a6efa-ea5f-4adf-b090-ae0ca7d16c20")

# Obtain latest model version of "Service System Demo" model
version = client.get_latest_model_version("Service System Demo")

# Create an Inputs object with the default input values
inputs = client.create_inputs_from_experiment(version, "Baseline")

# Change the "Server Capacity" parameter value
inputs.set_input("Server capacity", 8)

# Creat a simulation object with the inputs
simulation = client.create_simulation(inputs)

# Obtain the simulation outputs
outputs = simulation.get_outputs_and_run_if_absent()

# Print the simulation model outcome values
print("Raw outputs = " + str(outputs.get_raw_outputs()))
print("For Server Capacity = " + str(inputs.get_input("Server capacity")))
print("Mean queue size = " + str(outputs.value("Mean queue size|Mean queue size")))
print("Server utilization = " + str(outputs.value("Utilization|Server utilization")))

https://gist.github.com/SimWell/e84fbcb4346ef39719e8fec7a0983705
 

Resultados:

Service System Demo Results
Raw outputs = [<anylogiccloudclient.data.model_data.ModelData object at 0x7fef0072fba8>, <anylogiccloudclient.data.model_data.ModelData object at 0x7fef0072f4a8>, <anylogiccloudclient.data.model_data.ModelData object at 0x7fef0072fb70>, <anylogiccloudclient.data.model_data.ModelData object at 0x7fef0072f828>]
For Server Capacity = 8
Mean queue size = 0.9988466025848514
Server utilization = 0.31275860811685163
https://gist.github.com/SimWell/a7344b32a46671b5fabf252ea5e6e648

Comparación con el Modelo de Referencia:

Al aumentar la capacidad del servidor de 3 a 8, el tamaño medio de la cola se redujo de 2.54 a 1 agente. Además, la utilización media del servidor también se redujo de 0.83 a 0.31, lo que representa un tiempo de inactividad adicional que debe optimizarse aún más.

¿Qué Vendrá Después?

Se espera que las nuevas capacidades de Python con AnyLogic aumenten su funcionalidad para proyectos de simulación. Si bien sus aplicaciones actuales aún son limitadas, podemos esperar nuevas funcionalidades en un futuro cercano considerando la popularidad de Python entre programadores e ingenieros.  Para obtener ayuda sobre la API de Python para AnyLogic, haga clic aquí para agndar una llamada.

Para obtener información adicional, consulte la documentación oficial de la nube de AnyLogic aquí los códigos Python aquí.

¿Está interesado en obtener una licencia de AnyLogic? Haga click aquí para agendar una llamada.

Acerca de SimWell

En SimWell, sabemos que es un líder empresarial innovador y que su trabajo consiste en tomar decisiones seguras e informadas. El problema es que tiene una operación compleja con infinitas variables e interacciones que simplemente no caben en una tabla dinámica. Esto lo deja completamente decepcionado por las herramientas predictivas a su disposición y completamente abrumado por las decisiones masivas que se avecinan.

Entendemos la naturaleza absorbente de las grandes decisiones y las noches de insomnio que seguramente siguen. Sabemos la presión que siente y estamos aquí para ayudarlo. Necesita respuestas REALES basadas en las complejidades de su operación. Con el software de simulación de vanguardia de SimWell, obtiene exactamente eso.

Lo ayudamos a predecir con precisión el resultado de sus decisiones, devolviéndole años de prueba y error, ahorrándole innumerables costos y liberándolo para que sea un líder empresarial innovador. Avance rápido en sus grandes decisiones con SimWell.

New call-to-action