Für Python DOcplex -oder OPL-Modelle können Sie unter Verwendung der folgenden Syntax auf importierte Daten verweisen.
Python -Modelle
inputs['tablename']
definieren. In dieser Codezeile ist Essen beispielsweise eine Entität, die aus der Tabelle diet_food
definiert wird:food = inputs['diet_food']
outputs['tablename']
angeben. Beispiel:outputs['solution'] = solution_df
Definiert eine Ausgabetabelle mit dem Namen solution
. Die Entität solution_df
im Python -Modell definiert diese Tabelle.Sie finden dieses Diätbeispiel im Ordner Model_Builder des Ordners DO-samples. Um es zu importieren und in der Experiment UI auszuführen (zu lösen), siehe Lösen und Analysieren eines Decision Optimization: das Ernährungsproblem.
OPL-Modelle
tupleset
für jede Tabelle, die Sie im Vorbereiten der Daten Sicht und mit den gleichen Namen. Das Schema für jedes Tupelset muss die gleiche Spaltenanzahl wie die Tabelle haben und die gleichen Feldnamen verwenden. Wenn Sie beispielsweise eine Eingabetabelle mit dem Namen Product
in Ihrem Daten vorbereiten Ansicht mit den Attributen name, demand, insideCost,
und outsideCost
haben, muss Ihr OPL-Modell die folgende Definition enthalten:tuple TProduct {
key string name;
float demand;
float insideCost;
float outsideCost;
};
{TProduct} Product = ...;
Die Beschränkung auf die Verwendung von Tupeln und Tupelmengen als OPL-Eingabe soll die Integration mit Datenquellen erleichtern. So kann zum Beispiel mit minimalem Aufwand auf SQL-Datenquellen zugegriffen und Daten gestreamt werden; NoSQL-Datenquellen können angesprochen und Daten automatisch in Tabellen umgewandelt werden. Bei Bedarf kann der Entwickler des Optimierungsmodells die Daten während der Optimierung neu formulieren, um andere Datenstrukturen zu füllen. Diese Manipulation darf aber die Eingabe- oder Ausgabedaten nicht beeinflussen.
tupleset
für diese Ausgabetabelle in Ihrem OPL-Modell. Dieser Code erzeugt beispielsweise eine Ausgabetabelle mit 3 Spalten in der Lösung./// solution
tuple TPlannedProduction {
key string productId;
float insideProduction;
float outsideProduction;
}
{TPlannedProduction} plan = {<p.name, Inside[p], Outside[p]> | p in Products};
Sie finden dieses OPL-Beispielmodell für ein Nudelproduktionsproblem im Ordner Model_Builder des DO-Beispiels. Sie könnenalle Beispiele herunterladen und entpacken. Wählen Sie den entsprechenden Produkt- und Versionsunterordner aus.
Weitere Informationen
- Eine Anleitung zur Erstellung von Python DOcplex-Modellen finden Sie unter Lösen und Analysieren eines Decision Optimization: das Ernährungsproblem.
- Weitere Informationen über OPL-Modelle finden Sie unter Decision Optimization OPL-Modelle.