Quintiq file version 2.0
|
#parent: #root
|
Method InitConstraintsForCampaignCalcDurationOfOptCampaignUnitSubPeriod (
|
CapacityPlanningSuboptimizer_CapacityPlanningAlgorithm program,
|
const LibOpt_Scope scope,
|
const RunContextForCapacityPlanning runcontext
|
) const
|
{
|
Description: 'Unit sub period duration constraints'
|
TextBody:
|
[*
|
durationofsubperiod_constname := typeof( MPCalcDurationOfOptCampaignUnitSubPeriodConstraint );
|
scalefactor_DurationOfCampaignElementTypeStart_const := this.ScaleConstraintTerm( typeof( MPDurationOfCampaignElementTypeStartVariable ), durationofsubperiod_constname );
|
scalefactor_DurationOfCampaignElementTypeMid_const := this.ScaleConstraintTerm( typeof( MPDurationOfCampaignElementTypeMidVariable ), durationofsubperiod_constname );
|
scalefactor_DurationOfCampaignElementTypeEnd_const := this.ScaleConstraintTerm( typeof( MPDurationOfCampaignElementTypeEndVariable ), durationofsubperiod_constname );
|
scalefactor_CombiIsSelected_const := this.ScaleConstraintTerm( typeof( MPIsCampaignCombiSelectedVariable ), durationofsubperiod_constname );
|
|
traverse( scope.GetUnitPeriodInOptimizerRunConst(), Elements.OptCampaignUnitSubPeriod, ocusp )
|
{
|
constr := program.CalcDurationOfOptCampaignUnitSubPeriodConstraints().New( ocusp );
|
duration := ocusp.Duration().HoursAsReal()
|
constr.RHSValue( 0.0 );
|
|
traverse( ocusp, OptCampaignCombiElementActive.OptCampaignCombi, combi )
|
{
|
constr.NewTerm( -1.0 * scalefactor_CombiIsSelected_const * duration, program.IsCampaignCombiSelectedVariables().Get( combi ) );
|
}
|
|
traverse( ocusp, OptCampaignCombiElement.OptCampaignElementType, ocet )
|
{
|
// Duration of elementtype start
|
durationstart := program.DurationOfCampaignElementTypeStartVariables().Get( ocet, ocusp );
|
constr.NewTerm( scalefactor_DurationOfCampaignElementTypeStart_const, durationstart );
|
|
// Duration of elementtype mid
|
durationmid := program.DurationOfCampaignElementTypeMidVariables().Get( ocet, ocusp );
|
constr.NewTerm( scalefactor_DurationOfCampaignElementTypeMid_const, durationmid );
|
|
// Duration of elementtype end
|
durationend := program.DurationOfCampaignElementTypeEndVariables().Get( ocet, ocusp );
|
constr.NewTerm( scalefactor_DurationOfCampaignElementTypeEnd_const, durationend );
|
}
|
}
|
*]
|
InterfaceProperties { Accessibility: 'Module' }
|
}
|