Changeset 1421 in algoquant
- Timestamp:
- 5/12/2013 10:31:30 PM (7 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
core/src/main/java/com/numericalmethod/algoquant/model/signal/crossover/strategy/SMA2CrossoverDynamic.java
r1366 r1421 43 43 import com.numericalmethod.suanshu.optimization.multivariate.constrained.integer.bruteforce.BruteForceIPProblem; 44 44 import com.numericalmethod.suanshu.optimization.multivariate.constrained.integer.bruteforce.BruteForceIPProblem.IntegerDomain; 45 import com.numericalmethod.suanshu.optimization.multivariate.geneticalgorithm.minimizer.deoptim.*; 46 import com.numericalmethod.suanshu.optimization.multivariate.geneticalgorithm.minimizer.deoptim.constrained.IntegralConstrainedCellFactory; 47 import com.numericalmethod.suanshu.optimization.problem.*; 48 import com.numericalmethod.suanshu.stats.random.univariate.uniform.UniformRNG; 45 49 import org.joda.time.DateTime; 46 50 import org.joda.time.Period; … … 144 148 StrategyOptimizer optimizer = new StrategyOptimizer( 145 149 new StrategyOptimizer.Minimizer() { 146 @Override 147 public Result minimize(RealScalarFunction objFunc, double epsilon, 148 Vector... searchPoints) { 149 try { 150 //optimization by brute force on the integral domain 151 IntegerDomain fastLagDomain = new BruteForceIPProblem.IntegerDomain(1, 1, 2, 1);//fastLag ∈ [1, 2] 152 IntegerDomain slowLagDomain = new BruteForceIPProblem.IntegerDomain(2, 2, 25, 5);//slowLag ∈ [2, 25] 153 IntegerDomain domains[] = new IntegerDomain[]{fastLagDomain, slowLagDomain}; 154 BruteForceIPProblem problem = new BruteForceIPProblem(objFunc, null, null, domains, epsilon); 155 BruteForceIPMinimizer solver = new BruteForceIPMinimizer(epsilon, 20); 156 BruteForceIPMinimizer.Solution soln = solver.solve(problem); 157 158 //optimization by DeOptim 159 // DeOptimCellFactory factory = new IntegralCellFactory(new DeRand1Bin(0.5, 0.5), IntegralCellFactory.ALL_INTEGERS); 160 // DeOptim solver = new DeOptim(factory, true, new RNG()); 161 // solver.solve(objFunc, precision, 80); 162 163 Vector minimizer = soln.search(searchPoints);//initial params 164 return new Result(minimizer, soln.minimum()); 165 } catch (Exception ex) { 166 return new Result(null, Double.POSITIVE_INFINITY); 167 } 150 @Override 151 public Result minimize(RealScalarFunction objFunc, double epsilon, 152 Vector... searchPoints) { 153 try { 154 MinimizationSolution<Vector> soln; 155 if (false) { 156 System.out.println("optimization by brute force on the integral domain"); 157 IntegerDomain fastLagDomain = new BruteForceIPProblem.IntegerDomain(1, 1, 2, 1);//fastLag ∈ [1, 2] 158 IntegerDomain slowLagDomain = new BruteForceIPProblem.IntegerDomain(2, 2, 25, 5);//slowLag ∈ [2, 25] 159 IntegerDomain domains[] = new IntegerDomain[]{fastLagDomain, slowLagDomain}; 160 BruteForceIPProblem problem = new BruteForceIPProblem(objFunc, null, null, domains, epsilon); 161 BruteForceIPMinimizer solver = new BruteForceIPMinimizer(epsilon, 20); 162 soln = solver.solve(problem); 163 ((BruteForceIPMinimizer.Solution) soln).search(searchPoints);//initial params 164 } else { 165 System.out.println("optimization by DEOptim"); 166 DEOptim solver = new DEOptim( 167 new DEOptim.NewCellFactory() { 168 @Override 169 public DEOptimCellFactory newCellFactory() { 170 return new IntegralConstrainedCellFactory(new Rand1Bin(0.5, 0.5), new IntegralConstrainedCellFactory.AllIntegers()); 171 } 172 }, true, new UniformRNG(), epsilon, 80, 10); 173 soln = solver.solve(new C2OptimProblemImpl(objFunc)); 174 ((IterativeMinimizer<Vector>) soln).search(searchPoints);//initial params 168 175 } 169 }, 176 177 Vector minimizer = soln.minimizer(); 178 double minimum = soln.minimum(); 179 return new Result(minimizer, minimum); 180 } catch (Exception ex) { 181 return new Result(null, Double.POSITIVE_INFINITY); 182 } 183 } 184 }, 170 185 strategyFactory, 171 186 performanceMeasureFactory);
Note: See TracChangeset
for help on using the changeset viewer.
