Riferimento ai dati importati e definizione dell'output della soluzione in un modello
Ultimo aggiornamento: 06 ago 2024
Riferimento ai dati importati in un modello in un esperimento Decision Optimization
Per i modelli Python DOcplex o OPL, puoi fare riferimento ai dati importati utilizzando la seguente sintassi.
Python modelli
Copy link to section
Per i modelli Python DOcplex, i dati importati in Prepara dativista nel UI esperimento sono accessibili dal dizionario di input. Per accedere ai dati importati, è necessario definire ciascuna tabella con la seguente sintassi inputs['tablename']. Ad esempio, in questa riga di codice, il cibo è un'entità definita dalla tabella denominata diet_food:
food = inputs['diet_food']
Copy to clipboardCopiato negli appunti
Allo stesso modo, per visualizzare le tabelle nellavistaEsplora soluzione dell' interfaccia utente dell'esperimento è necessario specificarle utilizzando la sintassi outputs['tablename']. Ad esempio:
outputs['solution'] = solution_df
Copy to clipboardCopiato negli appunti
definisce una tabella di output denominata solution. L'entità solution_df nel modello Python definisce questa tabella.
In un modello OPL è necessario dichiarare atupleset , per ogni tabella importata nel file Preparare i dati visualizzazione e con gli stessi nomi. Lo schema per ciascun tupleset deve avere lo stesso numero di colonne della tabella e utilizzare gli stessi nomi di campo. Ad esempio, se si dispone di una tabella di input in Prepara dativista denominata Product con gli attributi name, demand, insideCost, e outsideCost, il modello OPL deve contenere la seguente definizione:
La limitazione all'uso di tuple e insiemi di tuple come input OPL serve a facilitare l'integrazione con le fonti di dati. Ad esempio, è possibile accedere alle sorgenti di dati SQL e creare un flusso di dati con un minimo sforzo; è possibile accedere alle sorgenti di dati NoSQL e trasformare automaticamente i dati in tabelle. Se necessario, lo sviluppatore del modello di ottimizzazione può riformulare i dati per popolare altre strutture di dati durante l'ottimizzazione, ma questa manipolazione non deve influire sui dati di input o di output.
Allo stesso modo, se vuoi visualizzare una tabella nel file Esplora la soluzione visualizzazione , è necessario definire atupleset per questa tabella di output nel modello OPL. Ad esempio, questo codice produce una tabella di output con 3 colonne nella soluzione.
/// solution
tuple TPlannedProduction {
key string productId;
float insideProduction;
float outsideProduction;
}
{TPlannedProduction} plan = {<p.name, Inside[p], Outside[p]> | p in Products};
Copy to clipboardCopiato negli appunti
Questo modello OPL di esempio per un problema di produzione di pasta si trova nella cartella Model_Builder del file DO-samples. È possibile scaricare ed estrarre tutti gli esempi. Selezionare la sottocartella relativa al prodotto e alla versione.