| 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' } | 
| } |