Пример #1
0
 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;
             }
         }
     }
 }
Пример #2
0
 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;
             }
         }
     }
 }