Referenciando dados importados e definindo a saída da solução em um modelo

Para os modelos Python DOcplex ou OPL, é possível consultar os dados importados usando a sintaxe a seguir.

Python modelos

Para modelos DOcplex do Python , os dados que você importou no Preparar dados visualizar no UI do experimento são acessíveis a partir do dicionário de entrada Para acessar seus dados importados, deve-se definir cada tabela com a sintaxe inputs['tablename']a seguir: Por exemplo, nesta linha de código, alimento é uma entidade que é definida a partir da tabela chamada diet_food:
food = inputs['diet_food']
Da mesma forma, para mostrar tabelas no Explorar solução visualizar do UI do experimento , você deve especificá-las usando a sintaxe outputs['tablename']. Por exemplo,
outputs['solution'] = solution_df
define uma tabela de saída chamada solution. A entidade solution_df no modelo Python define essa tabela..

É possível localizar este exemplo de Dieta na pasta Model_Builder do DO-samples Para importá-lo e executá-lo (solucioná-lo) na IU do experimento, consulte Solucionando e analisando um modelo de Decision Optimization: o problema da dieta.

Modelos OPL

Em um modelo OPL você deve declarar umtupleset , para cada tabela que você importou no Preparar dados visualizar e com os mesmos nomes. O esquema para cada tupleset deve ter o mesmo número de colunas que a tabela e usar os mesmos nomes de campo. Por exemplo, se você tiver uma tabela de entrada em Preparar dados visualizar chamada Product com os atributos name, demand, insideCost, e outsideCost, seu modelo OPL deverá conter a definição a seguir:
tuple TProduct {
   key string name;
   float demand;
   float insideCost;
   float outsideCost;
 };

{TProduct}     Product = ...;

A limitação de usar apenas tuplas e conjuntos de tuplas como entrada OPL é para facilitar a integração com fontes de dados. Por exemplo, as fontes de dados SQL podem ser acessadas e o fluxo de dados pode ser feito com um mínimo de esforço; as fontes de dados NoSQL podem ser acessadas e os dados podem ser transformados automaticamente em tabelas. Se necessário, o desenvolvedor do modelo de otimização pode reformular os dados para preenchimento de outras estruturas de dados durante a otimização, mas essa manipulação não deve afetar os dados de entrada ou saída.

Da mesma forma, se você quiser exibir uma tabela no Explorar solução visualizar , você deve definir umtupleset para esta tabela de saída em seu modelo OPL. Por exemplo, esse código produz uma tabela de saída com 3 colunas na solução..
/// solution
 tuple TPlannedProduction {
   key string productId;
   float insideProduction;
   float outsideProduction;
 }

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

Você pode encontrar esse exemplo de modelo OPL para um problema de produção de massas na pasta Model_Builder do DO-samples. É possível fazer download de todas as amostras e extraí-las. Selecione a subpasta de produto e versão relevante.

Você pode encontrar esse exemplo de modelo OPL para um problema de produção de massas na pasta Model_Builder do DO-samples. É possível fazer download de todas as amostras e extraí-las. Selecione a subpasta de produto e versão relevante.

Saiba Mais