Quintiq file version 2.0
|
#parent: #root
|
Method InitConstraintsForCampaignCombiSelection (
|
CapacityPlanningSuboptimizer_CapacityPlanningAlgorithm program,
|
const LibOpt_Scope scope
|
) const
|
{
|
TextBody:
|
[*
|
onecampaignpercombi_constname := typeof( MPOneCampaignCombiPerOptSubUnitPeriodConstraint );
|
scalefactor_underselectionsubperiod_const := this.ScaleConstraintTerm( typeof( MPUnderSelectionOfCampaignCombiVariable ), onecampaignpercombi_constname );
|
scalefactor_iscampaigncombiselected_const := this.ScaleConstraintTerm( typeof( MPIsCampaignCombiSelectedVariable ), onecampaignpercombi_constname );
|
scalefactor_rhs_onecampaignpercombi_constname := this.ScaleConstraintRHS( onecampaignpercombi_constname, 1.0 );
|
|
traverse( scope.GetUnitPeriodInOptimizerRunConst(), Elements.OptCampaignUnitSubPeriod, ocusp )
|
{
|
onecombictr := program.OneCampaignCombiPerOptSubUnitPeriodConstraints().New( ocusp )
|
onecombictr.RHSValue( 1.0 * scalefactor_rhs_onecampaignpercombi_constname )
|
onecombictr.Sense( "=" )
|
varunderselection := program.UnderSelectionOfCampaignCombiVariables().Get( ocusp )
|
onecombictr.NewTerm( 1.0 * scalefactor_underselectionsubperiod_const, varunderselection )
|
traverse( ocusp, OptCampaignCombiActive, combi )
|
{
|
varcombiselected := program.IsCampaignCombiSelectedVariables().Get( combi )
|
onecombictr.NewTerm( 1.0 * scalefactor_iscampaigncombiselected_const,varcombiselected )
|
}
|
}
|
|
traverse( scope.GetUnitPeriodInOptimizerRunConst(), Elements.OptCampaignUnitSubPeriod, ocusp )
|
{
|
traverse( ocusp, OptCampaignCombiActive, combi )
|
{
|
varcombiselected := program.IsCampaignCombiSelectedVariables().Get( combi )
|
|
//Check if multiperiod, which means we need to add it to more periods
|
if( combi.IsMultiPeriodsCombi() )
|
{
|
traverse( combi, OptCampaignCombiElement.OptCampaignUnitSubPeriod, ocuspadditional, ocusp <> ocuspadditional )
|
{
|
onecombiconst := program.OneCampaignCombiPerOptSubUnitPeriodConstraints().Get( ocuspadditional );
|
onecombiconst.NewTerm( 1.0 * scalefactor_iscampaigncombiselected_const,varcombiselected );
|
}
|
}
|
|
}
|
}
|
*]
|
InterfaceProperties { Accessibility: 'Module' }
|
}
|