private void ApplyFunctionalConstraints(Individual individual) { individual.IsActive = true; foreach (KeyValuePair <TId, double> constraint in individual.ConstraintValues) { if (FunctionalConstraints.ContainsKey(constraint.Key)) { if (!Comparer.CompareValuesWithSign( constraint.Value, FunctionalConstraints[constraint.Key].Value, FunctionalConstraints[constraint.Key].ConstraintRelation) ) { individual.IsActive = false; // It is enough to fail only one f. c. break; } } } }
private void ApplyFunctionalConstraints(Experiment experiment) { experiment.IsActive = true; foreach (KeyValuePair <TId, double> constraint in experiment.ConstraintValues) { if (FunctionalConstraints.ContainsKey(constraint.Key)) { if (!Comparer.CompareValuesWithSign( constraint.Value, FunctionalConstraints[constraint.Key].Value, FunctionalConstraints[constraint.Key].ConstraintRelation) ) { // Не вписывается в ограничение, сбрасываем experiment.IsActive = false; // Условие И на ограничения, поэтому если хоть // по одному не проходит - дальше не проверяем break; } } } }