Utiliser Python dans les modèles AnyLogic

Utilisez la bibliothèque Pypeline pour exécuter du code Python directement depuis votre modèle AnyLogic. Elle fonctionne avec une installation locale de Python, permettant une intégration fluide de la logique, des calculs, du traitement de données ou de bibliothèques externes basés sur Python dans vos simulations AnyLogic.

Télécharger la bibliothèque

Tout modèle développé dans AnyLogic est une application Java qui peut être personnalisée nativement à l'aide du langage de programmation Java. Cependant, il est possible d'introduire Python en tant que langage de programmation auxiliaire dans vos modèles, ce qui permet d'utiliser des bibliothèques et des algorithmes basés sur Python.

La bibliothèque Pypeline peut être utilisée pour des cas tels que :

  • Travailler avec n’importe quelle bibliothèque Python pour des tâches telles que l’analyse de données, le calcul scientifique et financier, l’apprentissage automatique, la visualisation avancée, et bien plus encore.
  • Utilisation de code écrit à l'origine en Python sans avoir à le porter en Java.
  • Écrire des algorithmes complexes en Python que vous pouvez appeler en Java, en passant éventuellement des objets/données entre les langages.
  • Utiliser la simulation comme banc d'essai pour tester des politiques d'intelligence artificielle entraînées.

Il est compatible avec AnyLogic avec n'importe quelle licence valide (Personal Learning Edition, University, or Professional) et n'importe quelle version de Python 3 (à l'exception du Windows Store) installée sur votre ordinateur.

Pour faciliter le transfert de données entre vos environnements Python et AnyLogic (Java), Pypeline est également livré avec des fonctionnalités permettant de convertir des objets de données vers et depuis le format JSON. Il s'agit d'un format de fichier standard ouvert et d'un format d'échange de données qui est convivial à analyser pour les humains et les ordinateurs.

Les modèles AnyLogic peuvent accéder au code Python à l’aide de la bibliothèque Pypeline. Inversement, pour lancer un modèle AnyLogic depuis du code Python, les développeurs peuvent utiliser l’API Cloud d’AnyLogic ou la bibliothèque Alpyne.

La société AnyLogic a développé Pypeline en tant que bibliothèque tierce gratuite, open source et un outil de connectivité optionnel, sans obligation de fournir un support officiel ou une promesse de compatibilité de quelque nature que ce soit. Les utilisateurs de la bibliothèque peuvent poser des questions ou fournir des commentaires dans les onglets Problème ou Discussion de la page GitHub page.


Webinaire : Pypeline – Une bibliothèque de connecteurs Python pour AnyLogic

Ce webinaire propose une introduction complète à Pypeline. La présentation commence par une explication de sa définition et des divers cas d'utilisation. S'ensuit une exploration technique approfondie, démontrant comment intégrer de manière optimale Pypeline dans les modèles de simulation. Pour les dernières mises à jour, y compris les nouveaux paramètres et fonctionnalités, veuillez vous référer au dépôt GitHub du projet.

Études de cas : utilisation de Python avec AnyLogic pour la prise de décision

Exemples de modèles


Les exemples ci-dessous illustrent divers cas d'utilisation et niveaux de complexité de la bibliothèque Pypeline ; ils sont disponibles à partir du référentiel GitHub et du référentiel interne des modèles fournis avec n'importe quelle édition d'AnyLogic (écran d'accueil AnyLogic → Exemples de modèles → Modèles pratiques/Exemples).


  • 01

    Fonctionnalité de base
    (introduction interactive à Pypeline)

    Modèle de fonctionnalité de base de la bibliothèque Pypeline

    Il s'agit d'une démo d'introduction dans laquelle vous pouvez explorer les fonctionnalités de base que Pypeline fournit dans trois fonctions différentes - « run », « runResults » et « runFile ».

    Contrairement à tout autre modèle, il est configuré pour vous permettre de configurer de manière interactive l'objet PyCommunicator et d'envoyer ou de recevoir des informations vers ou depuis l'environnement Python sous-jacent. Dans cette démo, les principales fonctionnalités sont présentées pour donner une introduction pratique à l'utilisation de Pypeline.

    Explorer

  • 02

    Hôpital simple (banc d'essai IA)

    Modèle hospitalier simple

    Cette maquette représente un hôpital simplifié où les patients arrivent, y restent un certain temps, puis partent. Deux réseaux neuronaux sont utilisés : l'un pour prédire le taux d'arrivée des patients en fonction des taux d'arrivée des derniers jours, et l'autre pour prédire la durée du séjour des patients sur la base de 24 attributs liés à la santé de l'individu.

    Explorer

  • 03

    Optimiseur de chaîne d'approvisionnement

    Optimiseur de chaîne d'approvisionnement

    Il s'agit d'un modèle de chaîne d'approvisionnement à 3 échelons pour un seul produit. Les clients demandent des quantités variables du produit chaque semaine aux usines, qui peuvent les stocker dans des entrepôts.

    Le modèle comprend les coûts associés au transport du produit entre les trois niveaux de la chaîne d'approvisionnement. La chaîne d'approvisionnement est importée d'un fichier Excel vers la base de données au démarrage. Au début de chaque semaine, l'état actuel du modèle est envoyé à un optimiseur Python pour déterminer la quantité de produit à envoyer et à qui.

    Explorer

  • 04

    Représentant de commerce itinérant

    Modèle de représentant de commerce itinérant

    Ce modèle présente un exemple de problème de représentant de commerce (TSP). Dans le TSP, un ensemble de villes est présent, l'une d'entre elles étant désignée comme lieu d'origine.

    Étant donné un nombre arbitraire de villes à visiter, l'objectif est de trouver l'itinéraire le plus court qui commence et se termine à l'endroit où l'on se trouve chez soi. Pour optimiser l'ordre, la bibliothèque Python OR-tools (de Google) est utilisée.

    Explorer

  • 05

    Modèle météorologique Lorenz
    (avec Pypeline)

    Modèle météorologique Lorenz (avec Pypeline) modèle

    Ce modèle est une version légèrement modifiée de l'exemple de modèle original d'AnyLogic. L'original est un modèle de dynamique de système démontrant un système chaotique mais déterministe. Lorsque le modèle démarre, Pypeline génère une nouvelle fenêtre 3D (via la bibliothèque Python « MatPlotLib ») et commence à y diffuser des données.

    Vous pouvez interagir avec celui-ci en faisant glisser le graphique 3D pour afficher le modèle sous différents angles ou en modifiant les curseurs dans la simulation et en affichant les résultats. Ce modèle démontre également la capacité de Pypeline à fonctionner dans des simulations parallèles sans aucun code supplémentaire.

    Explorer

  • 06

    Centres d'appels interconnectés
    (Web App avec Pypeline)

    Modèle de centres d'appels interconnectés (Web App avec Pypeline)

    Ce modèle est une version légèrement modifiée de l'exemple original d'AnyLogic « Centres d'appels interconnectés ». Il montre comment utiliser les bibliothèques de tableau de bord (la bibliothèque « Dash » dans ce cas) pour créer une application web en direct pour le modèle en cours d'exécution.

    Après le lancement du modèle, l'application web sera lancée dans un environnement Python en arrière-plan. Vous pouvez ouvrir un nouvel onglet du navigateur sur « localhost :8050 » pour le voir. Périodiquement, le modèle transmettra son état actuel à Python, qui mettra ensuite à jour l'application Web. Vous pouvez utiliser cette stratégie pour créer d'autres interfaces permettant d'analyser votre modèle pendant son exécution.

    Explorer

  • 07

    Initialisation et exportation avec JSON

    Explorer le modèle d'initialisation et d'exportation avec JSON

    Ce modèle illustre un cas d'utilisation de base des fonctionnalités JSON intégrées à Pypeline. Il s'agit notamment de la possibilité de sérialiser les objets du modèle au format JSON (soit pour transférer des données vers Python, soit à des fins de journalisation) et de désérialiser le texte JSON pour les agents et les populations.

    Les fonctionnalités de sérialisation sont également personnalisées via un objet de filtre intégré. L'ensemble des fonctionnalités JSON provient d'une bibliothèque AnyLogic JSONifier intégrée à Pypeline.

    Explorer

  • 08

    Optimiseur de machine

    Modèle Machine Optimizer

    Ce modèle illustre la résolution de l'optimisation statique à l'aide des bibliothèques Python Numpy et Scipy. Dans le modèle, il existe trois types de machines ; Chacune a son propre coût de production et est construite en trois étapes, chaque étape ayant une exigence de temps différente pour chaque étape.

    Il y a deux contraintes : le nombre de machines construites et le temps cumulé alloué à chaque étape. L'objectif est de changer le nombre de chaque type construit afin de minimiser le coût de production.

    Explorer

  • 09

    Python à partir de l'écran d'expérience

    Python à partir du modèle d'écran d'expérience

    Il s'agit d'un modèle de preuve de concept sur la façon d'utiliser l'objet PyCommunicator de Pypeline à partir d'un expériment. Bien que l'objet PyCommunicator soit techniquement un agent, en l'initialisant à partir de certains champs d'action d'expérience, Python peut être appelé à, dans cet exemple, générer les valeurs suivantes dans une expérience de variation de paramètre.

    Explorer


Simulation pour l'entraînement et le test de l'IA – Pack d'e-mails

La simulation AnyLogic est la plateforme de formation et de test de l'IA en entreprise. Avec la simulation à usage général AnyLogic, vous pouvez construire des environnements virtuels détaillés et robustes pour l'entraînement et le test de vos modèles d'IA. Les capacités uniques de simulation multi-méthodes constituent un outil complet pour l'apprentissage automatique.

Utilisée par des entreprises de premier plan dans tous les secteurs, cette plateforme entièrement compatible avec le cloud et dotée d'une API ouverte améliore et accélère le développement de l'IA aujourd'hui. Pour en savoir plus sur ce puissant outil d'apprentissage automatique, consultez notre pack d'e-mails et notre livre blanc sur l'IA !

Pack IA et livre blanc