Quintiq file version 2.0
|
#parent: #root
|
Method RunAutoScaling (
|
MathematicalProgram program,
|
LibOpt_Task task,
|
Boolean ismeta
|
)
|
{
|
Description: 'Updates the min/max optimal variable values and runs the scaling algorithm'
|
TextBody:
|
[*
|
// Update the optimal variable value statistics for the automatic scaling
|
debuginfo( 'Running auto scaling algorithm' );
|
macroplan := this.Optimization().astype( Optimization ).MacroPlan();
|
algorithmrun := macroplan.GetLastAlgorithmRun();
|
|
algscaling := this.Optimization().astype( Optimization ).AlgorithmScaling();
|
if ( program.HasSolution() )
|
{
|
this.UpdateOptimalVariableValues( program );
|
}
|
|
// Run the automatic scaling optimizer
|
// We do not want to include the coefficients for which both scaling types are the same as we cannot influence them
|
coefficientscaling := selectset( algorithmrun, ScalingType_Lib.AsConstraintScalingType, coeffscaling,
|
not coeffscaling.HasSameScalingTypes() );
|
algscaling.MMPAutomaticScaling( coefficientscaling, task, ismeta, this.FocusLevel() );
|
*]
|
InterfaceProperties { Accessibility: 'Module' }
|
}
|