Quintiq file version 2.0
|
#parent: #root
|
StaticMethod Create (LibOpt_Run owner, RealVector kpi_pre, RealVector kpi_post,
|
LibOpt_RollbackKPI rollback_kpi, Boolean is_rollback) as LibOpt_SnapshotSuboptimizer
|
{
|
Description: 'Create a new snapshot of type `LibOpt_SnapshotSuboptimizer`.'
|
TextBody:
|
[*
|
change := kpi_post.Minus( kpi_pre );
|
|
// Calculate the real vector to set for `Improvement`.
|
improvement := LibOpt_SnapshotSuboptimizer::GetImprovements( rollback_kpi, change );
|
|
// Calculate the value to set for `IsImprovement`.
|
diff_index := LibOpt_RollbackKPI::GetDiffIndex( kpi_post, kpi_pre );
|
is_improvement := diff_index >= 0 and diff_index < improvement.Size() and improvement.Get( diff_index ) > 0.0;
|
|
return owner.Snapshot( relnew, LibOpt_SnapshotSuboptimizer,
|
Improvement := improvement.AsBinaryValue(),
|
IsImprovement := is_improvement,
|
IsRollback := is_rollback,
|
NrKPILevels := improvement.Size()
|
);
|
*]
|
}
|