Skip to content

Commit b962b34

Browse files
Christoph BodensteinChristoph Bodenstein
authored andcommitted
code optimization, handled code style warnings.
1 parent 70b1a24 commit b962b34

File tree

1 file changed

+34
-41
lines changed

1 file changed

+34
-41
lines changed

TimeNETOptimizationEnvironment/src/toe/optimization/OptimizerHill.java

Lines changed: 34 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
*/
2929
public class OptimizerHill implements Runnable, Optimizer {
3030

31-
private double sizeOfNeighborhood;
31+
private final double sizeOfNeighborhood;
3232
private static final OptimizerPreferences myPreferences = support.getOptimizerPreferences();
3333

3434
private int simulationCounter = 0;
@@ -40,8 +40,8 @@ public class OptimizerHill implements Runnable, Optimizer {
4040
String pathToTimeNet = "";
4141
MainFrame parent = null;
4242
JTabbedPane MeasureFormPane;
43-
ArrayList<MeasureType> listOfMeasures = new ArrayList<MeasureType>();//Get List of all measures from MainFrame //Empty here
44-
ArrayList<SimulationType> historyOfParsers = new ArrayList<SimulationType>();//History of all simulation runs
43+
ArrayList<MeasureType> listOfMeasures = new ArrayList<>();//Get List of all measures from MainFrame //Empty here
44+
ArrayList<SimulationType> historyOfParsers = new ArrayList<>();//History of all simulation runs
4545
ArrayList<parameter> parameterBase;//Base set of parameters, start/end-value, stepping, etc.
4646
SimulationCache mySimulationCache = new SimulationCache();
4747
boolean optimized = false;//False until Optimization is ended
@@ -72,6 +72,7 @@ public OptimizerHill() {
7272
* support-class and starts optimization
7373
*
7474
*/
75+
@Override
7576
public void initOptimizer() {
7677
this.pathToTimeNet = support.getPathToTimeNet();// pathToTimeNetTMP;
7778
this.MeasureFormPane = support.getMeasureFormPane();//MeasureFormPaneTMP;
@@ -92,6 +93,7 @@ public void initOptimizer() {
9293
/**
9394
* Main Routine for Thread. The Optimization runs here
9495
*/
96+
@Override
9597
public void run() {
9698
ArrayList<parameter> lastParameterset;
9799
ArrayList<ArrayList<parameter>> newParameterset;
@@ -116,7 +118,7 @@ public void run() {
116118
support.spinInLabel();
117119

118120
newParameterset = getNextParametersetAsArrayList(lastParameterset);
119-
listOfCompletedSimulations = null;
121+
//listOfCompletedSimulations = null;
120122
//If result is already in cache, then count up corresponding counter
121123
//Else start simulation
122124

@@ -128,8 +130,8 @@ public void run() {
128130
listOfCompletedSimulations = support.shrinkArrayListToFirstMember(listOfCompletedSimulations);
129131

130132
//set all results to "cached", for statistics
131-
for (int i = 0; i < listOfCompletedSimulations.size(); i++) {
132-
listOfCompletedSimulations.get(i).setIsFromCache(true);
133+
for (SimulationType listOfCompletedSimulation : listOfCompletedSimulations) {
134+
listOfCompletedSimulation.setIsFromCache(true);
133135
}
134136

135137
//If last parameterset is double, then count up eject-counter for LastInCache
@@ -150,8 +152,8 @@ public void run() {
150152
listOfCompletedSimulations = support.shrinkArrayListToFirstMember(listOfCompletedSimulations);
151153

152154
//Fit all resulting Simulation-Parameterlists
153-
for (int i1 = 0; i1 < listOfCompletedSimulations.size(); i1++) {
154-
listOfCompletedSimulations.get(i1).setListOfParameters(listOfCompletedSimulations.get(i1).getListOfParametersFittedToBaseParameterset());
155+
for (SimulationType listOfCompletedSimulation : listOfCompletedSimulations) {
156+
listOfCompletedSimulation.setListOfParameters(listOfCompletedSimulation.getListOfParametersFittedToBaseParameterset());
155157
}
156158

157159
//Add all Results to Cache
@@ -251,8 +253,7 @@ private ArrayList<parameter> getFirstParameterset() {
251253
support.log("Taking Min-Values as Start for every Parameter.");
252254
//Calculate first parameterset, set every parameter to start-value
253255
//For this choosing strategy, the first element must be minimum
254-
for (int i = 0; i < newParameterset.size(); i++) {
255-
parameter p = newParameterset.get(i);
256+
for (parameter p : newParameterset) {
256257
if (p.isIteratableAndIntern()) {
257258
p.setValue(p.getStartValue());
258259
}
@@ -261,8 +262,7 @@ private ArrayList<parameter> getFirstParameterset() {
261262
case middle:
262263
support.log("Taking Middle-Values as Start for every Parameter.");
263264
//Calulate first parameterset, the mean value of all parameters, with respect to stepping
264-
for (int i = 0; i < newParameterset.size(); i++) {
265-
parameter p = newParameterset.get(i);
265+
for (parameter p : newParameterset) {
266266
if (p.isIteratableAndIntern()) {
267267
double distance = p.getEndValue() - p.getStartValue();
268268
distance = Math.round(0.5 * distance / p.getStepping()) * p.getStepping() + p.getStartValue();
@@ -274,8 +274,7 @@ private ArrayList<parameter> getFirstParameterset() {
274274
support.log("Taking Max-Values as Start for every Parameter.");
275275
//Calculate first parameterset, set every parameter to end-value
276276
//For this choosing strategy, the first element must be minimum
277-
for (int i = 0; i < newParameterset.size(); i++) {
278-
parameter p = newParameterset.get(i);
277+
for (parameter p : newParameterset) {
279278
if (p.isIteratableAndIntern()) {
280279
p.setValue(p.getEndValue());
281280
}
@@ -284,8 +283,7 @@ private ArrayList<parameter> getFirstParameterset() {
284283
case random:
285284
support.log("Taking Random-Values as Start for every Parameter.");
286285
//Calulate first parameterset, the random value of all parameters, with respect to stepping
287-
for (int i = 0; i < newParameterset.size(); i++) {
288-
parameter p = newParameterset.get(i);
286+
for (parameter p : newParameterset) {
289287
if (p.isIteratableAndIntern()) {
290288
double distance = p.getEndValue() - p.getStartValue();
291289
double rnd = Math.random();
@@ -297,8 +295,7 @@ private ArrayList<parameter> getFirstParameterset() {
297295
case preset:
298296
//Nothing to to, Value is already set to the preferred start-Value
299297
//But let`s make sure, set it to middle if something is wrong
300-
for (int i = 0; i < newParameterset.size(); i++) {
301-
parameter p = newParameterset.get(i);
298+
for (parameter p : newParameterset) {
302299
if (p.isIteratableAndIntern()) {
303300
if ((p.getValue() < p.getStartValue()) || (p.getValue() > p.getEndValue())) {
304301
double distance = p.getEndValue() - p.getStartValue();
@@ -354,7 +351,7 @@ protected ArrayList<parameter> getNextParameterset(ArrayList<parameter> actualPa
354351
support.log("Number of Parameters in List: " + lastParameterList.size());
355352

356353
//For every Parameter check if it is iteratable and if it was changed last time
357-
int i = 0;
354+
int i;
358355
numberOfLastParameter = -1;//Number of last parameter that was changed(in an Array of changable parameters)
359356
for (i = 0; i < lastParameterList.size(); i++) {
360357
if (lastParameterList.get(i).isIteratableAndIntern()) {
@@ -438,9 +435,8 @@ protected ArrayList<parameter> getNextParameterset(ArrayList<parameter> actualPa
438435
incResult = support.getParameterByName(newParameterset, nameOfParameterToBeChanged).incDecValue(this.directionOfOptimization);
439436
break;
440437

441-
case StepForwardBackRandom://Step back and forward randomly based on stepping
442-
for (int i = 0; i < newParameterset.size(); i++) {
443-
parameter p = newParameterset.get(i);
438+
case StepForwardBackRandom: //Step back and forward randomly based on stepping
439+
for (parameter p : newParameterset) {
444440
if (p.isIteratableAndIntern()) {
445441
double nextValue = 0.0;
446442
if (Math.random() >= 0.5) {
@@ -452,13 +448,11 @@ protected ArrayList<parameter> getNextParameterset(ArrayList<parameter> actualPa
452448
}
453449
}
454450
break;
455-
case RandomStepInNeighborhood://Calculate neighborhood and choose next value randomly
456-
for (int i = 0; i < newParameterset.size(); i++) {
457-
parameter p = newParameterset.get(i);
451+
case RandomStepInNeighborhood: //Calculate neighborhood and choose next value randomly
452+
for (parameter p : newParameterset) {
458453
if (p.isIteratableAndIntern()) {
459-
double nextValue = 0.0;
460454
double stepCount = (p.getEndValue() - p.getStartValue()) / p.getStepping();
461-
nextValue = p.getStepping() * Math.round(Math.random() * stepCount * this.sizeOfNeighborhood / 100);
455+
double nextValue = p.getStepping() * Math.round(Math.random() * stepCount * this.sizeOfNeighborhood / 100);
462456
if (Math.random() >= 0.5) {
463457
nextValue = Math.min(p.getValue() + nextValue, p.getEndValue());
464458
} else {
@@ -469,25 +463,21 @@ protected ArrayList<parameter> getNextParameterset(ArrayList<parameter> actualPa
469463
}
470464
incResult = true;
471465
break;
472-
case RandomStepInDesignspace://Choose Value randomly out of complete designspace
473-
for (int i = 0; i < newParameterset.size(); i++) {
474-
parameter p = newParameterset.get(i);
466+
case RandomStepInDesignspace: //Choose Value randomly out of complete designspace
467+
for (parameter p : newParameterset) {
475468
if (p.isIteratableAndIntern()) {
476-
double nextValue = 0.0;
477469
double stepCount = (p.getEndValue() - p.getStartValue()) / p.getStepping();
478-
nextValue = p.getStartValue() + Math.round(Math.random() * stepCount);
470+
double nextValue = p.getStartValue() + Math.round(Math.random() * stepCount);
479471
p.setValue(nextValue);
480472
}
481473
}
482474
incResult = true;
483475
break;
484476
case RandomSteplessInNeighborhood: //Calculate neighborhood and choose next value randomly, Ignore Stepping!
485-
for (int i = 0; i < newParameterset.size(); i++) {
486-
parameter p = newParameterset.get(i);
477+
for (parameter p : newParameterset) {
487478
if (p.isIteratableAndIntern()) {
488-
double nextValue = 0.0;
489479
double range = (p.getEndValue() - p.getStartValue());
490-
nextValue = Math.round(Math.random() * range * this.sizeOfNeighborhood / 100);
480+
double nextValue = Math.round(Math.random() * range * this.sizeOfNeighborhood / 100);
491481
if (Math.random() >= 0.5) {
492482
nextValue = Math.min(p.getValue() + nextValue, p.getEndValue());
493483
} else {
@@ -532,7 +522,7 @@ protected ArrayList<parameter> getNextParameterset(ArrayList<parameter> actualPa
532522
* @return ArrayList of Parametersets
533523
*/
534524
private ArrayList< ArrayList<parameter>> getNextParametersetAsArrayList(ArrayList<parameter> actualParameterset) {
535-
ArrayList< ArrayList<parameter>> myParametersetList = new ArrayList< ArrayList<parameter>>();
525+
ArrayList< ArrayList<parameter>> myParametersetList = new ArrayList<>();
536526
myParametersetList.add(getNextParameterset(actualParameterset));
537527
return myParametersetList;
538528
}
@@ -541,7 +531,7 @@ private ArrayList< ArrayList<parameter>> getNextParametersetAsArrayList(ArrayLis
541531
* Wrapper, returns ArrayList of ArrayList of Parameters
542532
*/
543533
private ArrayList< ArrayList<parameter>> getParametersetAsArrayList(ArrayList<parameter> actualParameterset) {
544-
ArrayList< ArrayList<parameter>> myParametersetList = new ArrayList< ArrayList<parameter>>();
534+
ArrayList< ArrayList<parameter>> myParametersetList = new ArrayList<>();
545535
myParametersetList.add(actualParameterset);
546536
return myParametersetList;
547537
}
@@ -556,9 +546,9 @@ private ArrayList< ArrayList<parameter>> getParametersetAsArrayList(ArrayList<pa
556546
*/
557547
protected double getActualDistance(SimulationType p) {
558548
double distance = 0;
559-
for (int measureCount = 0; measureCount < listOfMeasures.size(); measureCount++) {
560-
MeasureType activeMeasure = p.getMeasureByName(listOfMeasures.get(measureCount).getMeasureName());
561-
MeasureType activeMeasureFromInterface = listOfMeasures.get(measureCount);//Contains Optimization targets
549+
for (MeasureType listOfMeasure : listOfMeasures) {
550+
MeasureType activeMeasure = p.getMeasureByName(listOfMeasure.getMeasureName());
551+
MeasureType activeMeasureFromInterface = listOfMeasure; //Contains Optimization targets
562552
activeMeasure.setTargetValue(activeMeasureFromInterface.getTargetValue(), activeMeasureFromInterface.getTargetTypeOf());
563553
if (activeMeasure.getTargetTypeOf().equals(typedef.typeOfTarget.value)) {
564554
distance = activeMeasure.getDistanceFromTarget();
@@ -595,6 +585,7 @@ public void setSimulationCounter(int simulationCounter) {
595585
*
596586
* @return null if optimization not yet ended, else Optimum
597587
*/
588+
@Override
598589
public SimulationType getOptimum() {
599590
if (this.optimized) {
600591
support.log("Its optimized, so returning best solution.");
@@ -611,6 +602,7 @@ public SimulationType getOptimum() {
611602
*
612603
* @param name Name (path) of logfile
613604
*/
605+
@Override
614606
public void setLogFileName(String name) {
615607
this.logFileName = name;
616608
}
@@ -620,6 +612,7 @@ public void setLogFileName(String name) {
620612
*
621613
* @return name of logfile
622614
*/
615+
@Override
623616
public String getLogFileName() {
624617
return this.logFileName;
625618
}

0 commit comments

Comments
 (0)