Ejemplo n.º 1
0
 /// <summary>Creates a new <see cref="MultiDimOptimizer.IConstraint"/> object.
 /// </summary>
 /// <param name="linearEqualityConstraint">The specific constraints in its <see cref="MultiDimRegion.LinearEquality"/> representation.</param>
 /// <returns>A specific <see cref="MultiDimOptimizer.IConstraint"/> object with respect to the specified optimization algorithm.</returns>
 /// <exception cref="InvalidOperationException">Thrown, if the optimization algorithm does not support this kind of constraints.</exception>
 public MultiDimOptimizer.IConstraint Create(MultiDimRegion.LinearEquality linearEqualityConstraint)
 {
     if (SupportedConstraints.HasFlag(ConstraintType.LinearEquation) == true)
     {
         return(new MultiDimOptimizerConstraint(this, linearEqualityConstraint));
     }
     throw new InvalidOperationException();
 }
Ejemplo n.º 2
0
        /// <summary>Creates a new <see cref="NLoptConstraint"/> object.
        /// </summary>
        /// <param name="linearEqualityConstraint">The specific constraints in its <see cref="MultiDimRegion.LinearEquality"/> representation.</param>
        /// <returns>A specific <see cref="NLoptConstraint"/> object with respect to the specified optimization algorithm.</returns>
        /// <exception cref="InvalidOperationException">Thrown, if the optimization algorithm does not support this kind of constraints.</exception>
        public NLoptConstraint Create(MultiDimRegion.LinearEquality linearEqualityConstraint)
        {
            if (linearEqualityConstraint == null)
            {
                throw new ArgumentNullException(nameof(linearEqualityConstraint));
            }
            if (nloptMultiDimOptimizer.Configuration.NonlinearConstraintRequirement.HasFlag(NLoptNonlinearConstraintRequirement.SupportsEqualityConstraints) == false)
            {
                throw new InvalidOperationException("The NLopt algorithm does not support linear equality constraints");
            }

            throw new NotImplementedException();
        }
Ejemplo n.º 3
0
 /// <summary>Creates a new <see cref="MultiDimOptimizer.IConstraint"/> object.
 /// </summary>
 /// <param name="linearEqualityConstraint">The specific constraints in its <see cref="MultiDimRegion.LinearEquality"/> representation.</param>
 /// <returns>A specific <see cref="MultiDimOptimizer.IConstraint"/> object with respect to the specified optimization algorithm.</returns>
 /// <exception cref="InvalidOperationException">Thrown, if the optimization algorithm does not support this kind of constraints.</exception>
 MultiDimOptimizer.IConstraint MultiDimOptimizer.IConstraintFactory.Create(MultiDimRegion.LinearEquality linearEqualityConstraint)
 {
     return(this.Create(linearEqualityConstraint));
 }