public PhysicalParameters getParams()
{
<<<<<<< HEAD
return params;
=======
Category constraintCategory = getCategory(CONSTRAINT_CATEGORY_ID);
String constraint = constraintCategory.getSelectedSub();
Category optimizerCategory = getCategory(OPTIMIZER_CATEGORY_ID);
String optimizer = optimizerCategory.getSelectedSub();
Class extends InstrumentOptimizer> optimizerClass = null;
double[] lowerBound = null;
double[] upperBound = null;
InstrumentOptimizer.OptimizerType optimizerType = null;
switch (optimizer)
{
case FIPPLE_OPT_SUB_CATEGORY_ID:
optimizerClass = FippleFactorOptimizer.class;
lowerBound = new double[] { 0.2 };
upperBound = new double[] { 1.5 };
optimizerType = InstrumentOptimizer.OptimizerType.CMAESOptimizer;
break;
case HOLESIZE_OPT_SUB_CATEGORY_ID:
optimizerClass = HoleSizeOptimizer.class;
switch (constraint)
{
case HOLE_0_CONS_SUB_CATEGORY_ID:
lowerBound = new double[0];
upperBound = new double[0];
optimizerType = InstrumentOptimizer.OptimizerType.CMAESOptimizer;
break;
case HOLE_6_1_125_SPACING_CONS_SUB_CATEGORY_ID:
lowerBound = new double[] { 0.1, 0.15, 0.15, 0.15,
0.15, 0.15 };
upperBound = new double[] { 0.5, 0.5, 0.5, 0.5, 0.5,
0.6 };
optimizerType = InstrumentOptimizer.OptimizerType.BOBYQAOptimizer;
break;
case HOLE_6_1_25_SPACING_CONS_SUB_CATEGORY_ID:
lowerBound = new double[] { 0.1, 0.15, 0.15, 0.15,
0.15, 0.15 };
upperBound = new double[] { 0.5, 0.5, 0.5, 0.5, 0.5,
0.6 };
optimizerType = InstrumentOptimizer.OptimizerType.BOBYQAOptimizer;
break;
case HOLE_6_1_5_SPACING_CONS_SUB_CATEGORY_ID:
lowerBound = new double[] { 0.1, 0.15, 0.15, 0.15,
0.15, 0.15 };
upperBound = new double[] { 0.5, 0.5, 0.5, 0.5, 0.5,
0.6 };
optimizerType = InstrumentOptimizer.OptimizerType.BOBYQAOptimizer;
break;
case HOLE_7_CONS_SUB_CATEGORY_ID:
lowerBound = new double[] { 0.1, 0.1, 0.1, 0.1, 0.1,
0.05, 0.05 };
upperBound = new double[] { 0.7, 0.7, 0.7, 0.7, 0.7,
0.4, 0.4 };
optimizerType = InstrumentOptimizer.OptimizerType.BOBYQAOptimizer;
break;
}
break;
case NO_GROUP_OPT_SUB_CATEGORY_ID:
optimizerClass = HolePosAndDiamImpedanceOptimizer.class;
switch (constraint)
{
case HOLE_0_CONS_SUB_CATEGORY_ID:
lowerBound = new double[] { 0.25 };
upperBound = new double[] { 0.4 };
optimizerType = InstrumentOptimizer.OptimizerType.CMAESOptimizer;
break;
case HOLE_6_1_125_SPACING_CONS_SUB_CATEGORY_ID:
lowerBound = new double[] { 0.25, 0.01, 0.01, 0.01,
0.01, 0.01, 0.01, 0.1, 0.15, 0.15, 0.15, 0.15,
0.15 };
upperBound = new double[] { 0.6, 0.029, 0.029, 0.07,
0.029, 0.029, 0.3, 0.5, 0.5, 0.5, 0.5, 0.5, 0.6 };
optimizerType = InstrumentOptimizer.OptimizerType.BOBYQAOptimizer;
break;
case HOLE_6_1_25_SPACING_CONS_SUB_CATEGORY_ID:
lowerBound = new double[] { 0.25, 0.01, 0.01, 0.01,
0.01, 0.01, 0.01, 0.1, 0.15, 0.15, 0.15, 0.15,
0.15 };
upperBound = new double[] { 0.6, 0.032, 0.032, 0.07,
0.032, 0.032, 0.3, 0.5, 0.5, 0.5, 0.5, 0.5, 0.6 };
optimizerType = InstrumentOptimizer.OptimizerType.BOBYQAOptimizer;
break;
case HOLE_6_1_5_SPACING_CONS_SUB_CATEGORY_ID:
lowerBound = new double[] { 0.25, 0.01, 0.01, 0.01,
0.01, 0.01, 0.01, 0.1, 0.15, 0.15, 0.15, 0.15,
0.15 };
upperBound = new double[] { 0.6, 0.038, 0.038, 0.07,
0.038, 0.038, 0.3, 0.5, 0.5, 0.5, 0.5, 0.5, 0.6 };
optimizerType = InstrumentOptimizer.OptimizerType.BOBYQAOptimizer;
break;
case HOLE_7_CONS_SUB_CATEGORY_ID:
lowerBound = new double[] { 0.2, 0.012, 0.012, 0.012,
0.012, 0.012, 0.0005, 0.05, 0.1, 0.1, 0.1, 0.1,
0.1, 0.05, 0.05 };
upperBound = new double[] { 0.5, 0.05, 0.05, 0.1, 0.05,
0.05, 0.003, 0.2, 0.7, 0.7, 0.7, 0.7, 0.7, 0.4,
0.4 };
optimizerType = InstrumentOptimizer.OptimizerType.BOBYQAOptimizer;
break;
}
break;
case GROUP_OPT_SUB_CATEGORY_ID:
switch (constraint)
{
case HOLE_0_CONS_SUB_CATEGORY_ID:
optimizerClass = HolePosAndDiamImpedanceOptimizer.class;
lowerBound = new double[] { 0.25 };
upperBound = new double[] { 0.4 };
optimizerType = InstrumentOptimizer.OptimizerType.CMAESOptimizer;
break;
case HOLE_6_1_125_SPACING_CONS_SUB_CATEGORY_ID:
optimizerClass = HoleGroupSpacingOptimizer.class;
lowerBound = new double[] { 0.2, 0.012, 0.012, 0.012,
0.05, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1 };
upperBound = new double[] { 0.8, 0.029, 0.1, 0.029,
0.3, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7 };
optimizerType = InstrumentOptimizer.OptimizerType.BOBYQAOptimizer;
((HoleGroupSpacingOptimizationRunnner) runner)
.setHoleGroups(new int[][] { { 0, 1, 2 },
{ 3, 4, 5 } });
break;
case HOLE_6_1_25_SPACING_CONS_SUB_CATEGORY_ID:
optimizerClass = HoleGroupSpacingOptimizer.class;
lowerBound = new double[] { 0.2, 0.012, 0.012, 0.012,
0.05, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1 };
upperBound = new double[] { 0.8, 0.032, 0.1, 0.032,
0.3, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7 };
optimizerType = InstrumentOptimizer.OptimizerType.BOBYQAOptimizer;
((HoleGroupSpacingOptimizationRunnner) runner)
.setHoleGroups(new int[][] { { 0, 1, 2 },
{ 3, 4, 5 } });
break;
case HOLE_6_1_5_SPACING_CONS_SUB_CATEGORY_ID:
optimizerClass = HoleGroupSpacingOptimizer.class;
lowerBound = new double[] { 0.2, 0.012, 0.012, 0.012,
0.05, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1 };
upperBound = new double[] { 0.8, 0.038, 0.1, 0.038,
0.3, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7 };
optimizerType = InstrumentOptimizer.OptimizerType.BOBYQAOptimizer;
((HoleGroupSpacingOptimizationRunnner) runner)
.setHoleGroups(new int[][] { { 0, 1, 2 },
{ 3, 4, 5 } });
break;
case HOLE_7_CONS_SUB_CATEGORY_ID:
optimizerClass = HoleGroupSpacingOptimizer.class;
lowerBound = new double[] { 0.2, 0.012, 0.012, 0.012,
0.0005, 0.05, 0.1, 0.1, 0.1, 0.1, 0.1, 0.05,
0.05 };
upperBound = new double[] { 0.5, 0.05, 0.05, 0.1,
0.003, 0.2, 0.7, 0.7, 0.7, 0.7, 0.7, 0.4, 0.4 };
optimizerType = InstrumentOptimizer.OptimizerType.BOBYQAOptimizer;
((HoleGroupSpacingOptimizationRunnner) runner)
.setHoleGroups(new int[][] { { 0, 1, 2 },
{ 3, 4, 5 }, { 6 } });
break;
}
break;
case TAPER_GROUP_OPT_SUB_CATEGORY_ID:
switch (constraint)
{
case HOLE_0_CONS_SUB_CATEGORY_ID:
optimizerClass = HolePosAndDiamImpedanceOptimizer.class;
lowerBound = new double[] { 0.25 };
upperBound = new double[] { 0.4 };
optimizerType = InstrumentOptimizer.OptimizerType.CMAESOptimizer;
break;
case HOLE_6_1_125_SPACING_CONS_SUB_CATEGORY_ID:
optimizerClass = SingleTaperHoleGroupingOptimizer.class;
lowerBound = new double[] { 0.2, 0.01, 0.01, 0.01,
0.05, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.5, 0.0,
0.0 };
upperBound = new double[] { 0.8, 0.029, 0.1, 0.029,
0.3, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 2.0, 0.8,
0.8 };
optimizerType = InstrumentOptimizer.OptimizerType.BOBYQAOptimizer;
((HoleGroupSpacingOptimizationRunnner) runner)
.setHoleGroups(new int[][] { { 0, 1, 2 },
{ 3, 4, 5 } });
break;
case HOLE_6_1_25_SPACING_CONS_SUB_CATEGORY_ID:
optimizerClass = SingleTaperHoleGroupingOptimizer.class;
lowerBound = new double[] { 0.2, 0.01, 0.01, 0.01,
0.05, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.5, 0.0,
0.0 };
upperBound = new double[] { 0.8, 0.032, 0.1, 0.032,
0.3, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 2.0, 0.8,
0.8 };
optimizerType = InstrumentOptimizer.OptimizerType.BOBYQAOptimizer;
((HoleGroupSpacingOptimizationRunnner) runner)
.setHoleGroups(new int[][] { { 0, 1, 2 },
{ 3, 4, 5 } });
break;
case HOLE_6_1_5_SPACING_CONS_SUB_CATEGORY_ID:
optimizerClass = SingleTaperHoleGroupingOptimizer.class;
lowerBound = new double[] { 0.2, 0.01, 0.01, 0.01,
0.05, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.5, 0.0,
0.0 };
upperBound = new double[] { 0.8, 0.038, 0.1, 0.038,
0.3, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 2.0, 0.8,
0.8 };
optimizerType = InstrumentOptimizer.OptimizerType.BOBYQAOptimizer;
((HoleGroupSpacingOptimizationRunnner) runner)
.setHoleGroups(new int[][] { { 0, 1, 2 },
{ 3, 4, 5 } });
break;
case HOLE_7_CONS_SUB_CATEGORY_ID:
optimizerClass = SingleTaperHoleGroupingOptimizer.class;
lowerBound = new double[] { 0.2, 0.012, 0.012, 0.012,
0.0005, 0.05, 0.1, 0.1, 0.1, 0.1, 0.1, 0.05,
0.05, 0.5, 0.0, 0.0 };
upperBound = new double[] { 0.5, 0.032, 0.05, 0.032,
0.003, 0.2, 0.7, 0.7, 0.7, 0.7, 0.7, 0.4, 0.4,
2.0, 0.5, 0.5 };
optimizerType = InstrumentOptimizer.OptimizerType.BOBYQAOptimizer;
((HoleGroupSpacingOptimizationRunnner) runner)
.setHoleGroups(new int[][] { { 0, 1, 2 },
{ 3, 4, 5 }, { 6 } });
break;
}
break;
}
setRunnerConstraints(runner, optimizerClass, optimizerType, lowerBound,
upperBound);
}
protected void setRunnerConstraints(BaseOptimizationRunner runner,
Class extends InstrumentOptimizer> optimizerClass,
OptimizerType optimizerType, double[] lowerBound,
double[] upperBound)
{
runner.setOptimizerClass(optimizerClass);
runner.setOptimizerType(optimizerType);
runner.setLowerBound(lowerBound);
runner.setUpperBound(upperBound);
int numberOfDimensions = lowerBound == null ? 0 : lowerBound.length;
boolean isMultiStart = configureMultiStart(runner);
int numberOfInterpolations = determineInterpolations(optimizerType,
numberOfDimensions, isMultiStart);
runner.setNumberOfInterpolationPoints(numberOfInterpolations);
}
protected int determineInterpolations(OptimizerType optimizerType,
int numberOfDimensions, boolean isMultiStart)
{
int numberOfInterpolations = 0; // The default value for CMAES
if (OptimizerType.BOBYQAOptimizer.equals(optimizerType))
{
if (isMultiStart)
{
numberOfInterpolations = 2 * numberOfDimensions;
}
else
{
numberOfInterpolations = (numberOfDimensions + 1)
* (numberOfDimensions + 2) / 2;
}
}
return numberOfInterpolations;
>>>>>>> 082ced0360e3fae84c90f12369b1aa66315ef7a0
}
public void setParams(PhysicalParameters params) |