Skip to content

Améliorez votre projet de simulation avec l'API Python pour AnyLogic

, , , | février 2, 2023 | By

Intégration de Python avec AnyLogic pour la modélisation en simulation

Python + AnyLogic

L'API Python pour AnyLogic offre un moyen puissant de faire passer vos modèles de simulation au niveau supérieur.

Python est l'un des langages de programmation les plus populaires au monde. Selon le cabinet d'analystes RedMonk, Python occupe la deuxième place dans le dernier classement de la popularité des langages de programmation, juste derrière JavaScript. Le fait d'être un langage libre et gratuit, de disposer d'une grande variété de bibliothèques à des fins multiples (par exemple, la science des données, l'apprentissage automatique, l'intelligence artificielle, le big data, la visualisation des données, l'optimisation, les statistiques) et sa compatibilité avec d'autres programmes ont contribué à sa popularité croissante parmi les professionnels et les universitaires de multiples domaines.

AnyLogic, un logiciel de simulation de premier plan pour les applications commerciales utilisé dans le monde entier par plus de 40 % des entreprises du Fortune 100, a récemment intégré une API Python pour AnyLogic afin de travailler sur des modèles de simulation stockés sur votre Cloud AnyLogic personnel. Cette nouvelle fonctionnalité apporte des avantages potentiels aux utilisateurs d'AnyLogic et de Python dans le développement, la configuration et l'expérimentation de leurs modèles de simulation.

Les modèles de simulation AnyLogic stockés dans votre compte personnel AnyLogic Cloud peuvent être configurés et exécutés de manière programmatique via une API Python pour AnyLogic afin d'obtenir des résultats de plans d'expérimentations et d'évaluer plusieurs scénarios en changeant les valeurs des paramètres.

Cette nouvelle fonctionnalité Python avec AnyLogic représente un outil formidable lorsqu'il s'agit d'exécuter et d'expérimenter des modèles de simulation AnyLogic sur un ordinateur qui n'a pas le logiciel AnyLogic installé.

Pour commencer à utiliser l'API Python pour AnyLogic, installez la bibliothèque client du  AnyLogic Cloud en utilisant l'installateur 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
 

Modèle de simulation minimaliste

Le modèle analysé dans ce tutoriel (Modèle démo de processus de service) peut être trouvé sur le site Web de AnyLogic Cloud.

Le modèle démo de processus de service consiste en une source unique, un module de service, un point de contrôle et un puits (sink). Le temps que les agents passent dans le système est mesuré et l'objectif est d'obtenir le temps total moyen que les agents passent dans le système, l'utilisation du serveur et la taille moyenne des files d'attente.

Suivez les étapes suivantes pour exécuter le modèle Démo de processus de service sur le site de AnyLogic  :

  • Tapez 'Service Systems Demo' dans la barre de recherche du site AnyLogic Cloud. Le modèle s'affichera à l'écran comme suit :
 

AnyLogic Cloud website with 'Service System Demo' typed in search bar

Site web Anylogic Cloud
  • Cliquez sur le modèle "Service Systems Demo" pour l'ouvrir.
 

Service System Demo model on the AnyLogic Cloud website

Démo de processus de service
  • Cliquez sur "play" pour exécuter le modèle de simulation et obtenir les résultats.
 

Results from the Service System Demo model

Résultats du Démo de processus de service

Résultats de référence:

Selon les résultats du modèle de base, le temps total moyen dans le système est de 4,63, l'utilisation du serveur de 0,83 et la taille moyenne de la file d'attente de 2,54.

Maintenant, exécutons le même modèle de simulation en utilisant l'API Python pour AnyLogic en le reliant au modèle AnyLogic dans le cloud. Suivez les étapes suivantes pour exécuter le modèle Service System Demo :

Code 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
 

Results:

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

Comparaison avec modèle de référence:

En augmentant la capacité des serveurs de 3 à 8, la taille moyenne des files d'attente a été réduite de 2,54 à 1 agent. De plus, l'utilisation moyenne des serveurs a également été réduite de 0,83 à 0,31, ce qui représente un temps d'inactivité supplémentaire qui devrait être optimisé.

Quelle sera la suite?

Les nouvelles capacités de Python avec AnyLogic devraient augmenter ses fonctionnalités pour les projets de simulation. Bien que ses applications actuelles soient encore limitées, nous pouvons nous attendre à de nouvelles fonctionnalités dans un avenir proche, compte tenu de la popularité de Python auprès des programmeurs et des ingénieurs. Pour obtenir de l'aide sur l'API Python pour AnyLogic, cliquez ici pour programmer un appel.

Pour plus d'informations, consultez la documentation officielle d'AnyLogic Cloud ici et les codes Python ici.

Intéressé par l'obtention d'une licence AnyLogic? Cliquez ici pour planifier un appel.

À propos de SimWell

Chez SimWell, nous savons que vous êtes un chef d'entreprise avant-gardiste et que votre travail consiste à prendre des décisions sûres et éclairées. Le problème est que vous avez des opérations complexes avec des variables et des interactions infinies qui ne tiennent pas dans un tableau croisé dynamique. Les outils prédictifs à votre disposition ne vous satisfont pas du tout et vous êtes complètement dépassé par les décisions importantes qui vous attendent.

Nous comprenons la nature dévorante des grandes décisions et les nuits blanches qui s'ensuivent. Nous connaissons la pression que vous ressentez et nous sommes là pour vous aider. Vous avez besoin de VRAIES réponses basées sur les complexités de vos opérations. Avec le logiciel de simulation de pointe de SimWell, c'est exactement ce que vous obtenez.

Nous vous aidons à prédire avec précision le résultat de vos décisions, vous redonnant ainsi des années d'essais et d'erreurs, vous épargnant d'importants coûts et vous permettant d'être un chef d'entreprise avant-gardiste. Accélérez vos décisions importantes avec SimWell.