Quintiq file version 2.0
|
#parent: #root
|
Method RunMEIO (
|
ProductInStockingPoint_MPs pisps
|
)
|
{
|
Description: 'Run the MEIO optimizers for the input pisps. Initially it is launched for a capped number of products, and in post-processing of one product optimization, optimization is launched for a new product.'
|
TextBody:
|
[*
|
// Reset attributes and relations
|
if ( pisps.Size() > 0 )
|
{
|
this.MEIO_Parameters().Product_MP( relflush );
|
this.MEIO_Parameters().IsRunning( true );
|
|
// Construct for products to be used for optimization
|
products := construct( Product_MPs );
|
|
|
// Traverse all products, reset attributes and set relation to leaf products that will be used in the optimization
|
traverse( pisps, Elements.Product_MP, p )
|
{
|
p.MEIO_Successful( false );
|
p.MEIO_IsOptimized( false );
|
if( p.IsLeaf() )
|
{
|
products.Add( p );
|
this.MEIO_Parameters().Product_MP( relinsert,
|
p );
|
}
|
}
|
|
// Cap the number of products for which optimization will be launched initially.
|
cap := 1; // originally cap > 1 was used to have parallel R sessions
|
capped := products.SelectRange( 0, cap );
|
|
// Start optimization for selected products
|
traverse( capped, Elements, product )
|
{
|
m := MEIO_Engine::Create( product );
|
m.MEIO_Treeify().Optimize();
|
}
|
}
|
*]
|
}
|