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
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']
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
tupleset
, 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.
tupleset
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
- Pour un tutoriel sur la création de modèles DOcplex en Python, voir Résolution et analyse d'un modèle Decision Optimization : le problème de l'alimentation.
- Pour plus d'informations sur les modèles OPL, voir Decision Optimization Modèles OPL.