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