/// <summary>Creates a specific <see cref="IMultiDimOptimizerAlgorithm"/> object. /// </summary> /// <param name="optimizer">The <see cref="MultiDimOptimizer"/> object that supports a optimization problems without constraints.</param> /// <param name="multiDimRegionCollection">The constraints in its <see cref="MultiDimOptimizer.IConstraint"/> representation.</param> /// <returns>The specific <see cref="IMultiDimOptimizerAlgorithm"/> object.</returns> public override IMultiDimOptimizerAlgorithm Create(MultiDimOptimizer optimizer, MultiDimOptimizer.IConstraint[] multiDimRegionCollection) { if (multiDimRegionCollection == null) { throw new ArgumentNullException(nameof(multiDimRegionCollection)); } foreach (var constraint in multiDimRegionCollection) { if (constraint is MultiDimOptimizerConstraint) { var con = (MultiDimOptimizerConstraint)constraint; if (con.RegionRepresentation is MultiDimRegion.Interval) { return(new BoxTransformationAlgorithm(optimizer, con.RegionRepresentation as MultiDimRegion.Interval)); } } } throw new InvalidOperationException(); }
/// <summary>Creates a specific <see cref="IMultiDimOptimizerAlgorithm"/> object. /// </summary> /// <param name="optimizer">The <see cref="MultiDimOptimizer"/> object that supports a optimization problems without constraints.</param> /// <param name="multiDimRegionCollection">The constraints in its <see cref="MultiDimOptimizer.IConstraint"/> representation.</param> /// <returns>The specific <see cref="IMultiDimOptimizerAlgorithm"/> object.</returns> public abstract IMultiDimOptimizerAlgorithm Create(MultiDimOptimizer optimizer, MultiDimOptimizer.IConstraint[] multiDimRegionCollection);