protected SimulatedAnnealingOptimTest( string id, IOptimizationTestFactory optimizationTestFactory, TestMeasureList testMeasures) : base(id, (ISimAnnTestConfig)optimizationTestFactory.Scenario.TestsConfig) { this.optimizationTestFactory = optimizationTestFactory; this.testMeasures = testMeasures; }
protected IEnumerable <TestMeasure> GetTestMeasures( IEnumerable <ArrayParameter> arrayParameters, TestMeasureList measures) { //tries to get all measures associated with the requested parameters return(from arrayParameter in arrayParameters where measures.Contains(arrayParameter) select measures[arrayParameter]); }
protected List <double[]> GetAnalysisData( TestMeasureList testMeasures, int xVarIdx, int seriesVarIdx, Dictionary <int, double> fixedParams) { Console.WriteLine("\n__________________________________________"); Console.WriteLine("Calculating data..."); //gets all possible values for the x- and series-variable var xValues = this.GetParameterValues(xVarIdx); var seriesValues = this.GetParameterValues(seriesVarIdx); //creates structure to hold data var numVars = (2 * seriesValues.Length) + 1; var data = new List <double[]>(); foreach (var x in xValues) { //creates data point for each possible value of the x-var var dataPoint = new double[numVars]; dataPoint[0] = x; //goes to all series to fill the data point with the corresponding fitness values for (var sIdx = 1; sIdx < numVars; sIdx += 2) { //gets all possible array params according to requested values var s = seriesValues[sIdx / 2]; var arrayParameters = this.GetPossibleArrayParams(xVarIdx, x, seriesVarIdx, s, fixedParams); //gets all associated test measures var measures = this.GetTestMeasures(arrayParameters, testMeasures); if (testMeasures.Count == 0) { Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "No test measure found for {0}={1:0.00}, {2}=x={3:0.0} !!", this.GetVarLetter(xVarIdx), x, this.GetVarLetter(sIdx), s)); continue; } //selects fitness for series var fitness = this.GetFitnessValue(measures); var fitnessErr = this.GetFitnessError(measures); //adds fitness to data point dataPoint[sIdx] = fitness; dataPoint[sIdx + 1] = fitnessErr; } //adds data point to list data.Add(dataPoint); } return(data); }
public IMRLSimAnnOptimTest( string id, IOptimizationTestFactory optimizationTestFactory, TestMeasureList testMeasures) : base(id, optimizationTestFactory, testMeasures) { }