Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method AddDebottleneckNeighborhood ( 
 | 
  LibOpt_Task task, 
 | 
  TransformerSmartPlanUpStream transformerup, 
 | 
  TransformerSmartPlanDownStream tranformerdown, 
 | 
  LibOpt_Scope out_scope, 
 | 
  RunContextForCapacityPlanning runcontext, 
 | 
  RunContextMeta rcm, 
 | 
  ProductInStockingPointInPeriodPlanningLeafs pispips_inputs_to_bottleneck, 
 | 
  LaneLegs lanelegsforopt, 
 | 
  Period_MPs periods, 
 | 
  String msgtag 
 | 
) 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    debuginfo(  '>>> Start debottleneck' );  
 | 
    debuginfo(  'PISPIP for debottleneck = ' ,pispips_inputs_to_bottleneck.Size() );  
 | 
    beforesize := out_scope.GetEstimatedNrPISPIPs(); 
 | 
     
 | 
    this.AddUpstreamNeighborhood( transformerup, out_scope, runcontext, pispips_inputs_to_bottleneck , true, lanelegsforopt, periods, false ); 
 | 
     
 | 
    this.AddDownStreamLimitedExplore( tranformerdown,  
 | 
                                      out_scope,  
 | 
                                      pispips_inputs_to_bottleneck,  
 | 
                                      runcontext,  
 | 
                                      false, // debug 
 | 
                                      rcm.OptionCheckSizeLimitDebottleneckNeighborhood(), // check size limit   
 | 
                                      0.25,  // fraction of max to use in case checking size limiting 
 | 
                                      Number::MaxNumber(),   //MaxFanExploreDownStreamLane 
 | 
                                      true, // limit to nonzero planning 
 | 
                                      Number::MaxNumber(),  // nr operations chosen - unused because previous argument true 
 | 
                                      false ); // reset visited prior to search 
 | 
    aftersize := out_scope.GetEstimatedNrPISPIPs();  
 | 
     
 | 
    task.Log( 'Selector added for downstream (debottleneck):' + [String]( aftersize - beforesize ) + ' size before  = ' + [String] beforesize + ' ' + msgtag );  
 | 
    debuginfo(  '<<< End debottleneck' ); 
 | 
  *] 
 | 
  InterfaceProperties { Accessibility: 'Module' } 
 | 
} 
 |