0 / 0
Retourner à la version anglaise de la documentation
Référencement des données importées et définition de la sortie de solution dans un modèle
Dernière mise à jour : 12 août 2024
Référencement de données importées dans un modèle dans une expérimentation Decision Optimization

Pour les modèles Python DOcplex ou OPL, vous pouvez faire référence aux données importées en utilisant la syntaxe suivante.

Python modèles

Pour les modèles Python DOcplex, les données que vous avez importées dans Préparer les données afficher dans interface utilisateur d'expérimentation sont accessibles à partir du dictionnaire d'entrée. Pour accéder à vos données importées, vous devez définir chaque table avec la syntaxe suivante: inputs['tablename']. Par exemple, dans cette ligne de code, food est une entité définie à partir de la table appelée diet_food:
food = inputs['diet_food']
De même, pour afficher les tables dans le Explorer la solution afficher de interface utilisateur d'expérimentation , vous devez les spécifier à l'aide de la syntaxe outputs['tablename']. Exemple :
outputs['solution'] = solution_df
définit une table de sortie appelée solution. L'entité solution_df du modèle Python définit cette table.

Vous trouverez cet exemple Diet dans le dossier Model_Builder de DO-samples. Pour l'importer et l'exécuter (le résoudre) dans l'interface utilisateur expérience, voir Résoudre et analyser un modèle Decision Optimization : le problème de l'alimentation.

Modèles OPL

Dans un modèle OPL vous devez déclarer untupleset , pour chaque table que vous avez importée dans le Préparer les données voir et avec les mêmes noms. Le schéma de chaque tupleset doit avoir le même nombre de colonnes que la table et utiliser les mêmes noms de champs. Par exemple, si vous disposez d'une table d'entrée dans votre Préparer les données afficher appelée Product avec les attributs name, demand, insideCost, et outsideCost, votre modèle OPL doit contenir la définition suivante:
tuple TProduct {
   key string name;
   float demand;
   float insideCost;
   float outsideCost;
 };

{TProduct}     Product = ...;

La limitation à l'utilisation de tuples et d'ensembles de tuples en tant qu'entrée OPL a pour but de faciliter l'intégration avec les sources de données. Par exemple, il est possible d'accéder à des sources de données SQL et d'en extraire des données avec un minimum d'effort ; NoSQL il est possible d'accéder à des sources de données et de transformer automatiquement les données en tables. Si nécessaire, le développeur du modèle d'optimisation peut reformuler les données pour remplir d'autres structures de données pendant l'optimisation, mais cette manipulation ne doit pas affecter les données d'entrée ou de sortie.

De même, si vous souhaitez afficher un tableau dans le Explorer la solution voir , vous devez définir untupleset pour cette table de sortie dans votre modèle OPL. Par exemple, ce code génère une table de sortie avec 3 colonnes dans la solution.
/// solution
 tuple TPlannedProduction {
   key string productId;
   float insideProduction;
   float outsideProduction;
 }

{TPlannedProduction} plan = {<p.name, Inside[p], Outside[p]> | p in Products};

Vous trouverez cet exemple de modèle OPL pour un problème de production de pâtes dans le dossier Model_Builder du DO-samples. Vous pouvez télécharger et extraire tous les exemples. Sélectionnez le sous-dossier correspondant au produit et à la version en question.

En savoir plus

Recherche et réponse à l'IA générative
Ces réponses sont générées par un modèle de langue de grande taille dans watsonx.ai en fonction du contenu de la documentation du produit. En savoir plus