protected SimulatedAnnealingOptimTest(
     string id, IOptimizationTestFactory optimizationTestFactory, TestMeasureList testMeasures) :
     base(id, (ISimAnnTestConfig)optimizationTestFactory.Scenario.TestsConfig)
 {
     this.optimizationTestFactory = optimizationTestFactory;
     this.testMeasures            = testMeasures;
 }
Ejemplo n.º 2
0
 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]);
 }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
 public IMRLSimAnnOptimTest(
     string id, IOptimizationTestFactory optimizationTestFactory, TestMeasureList testMeasures)
     : base(id, optimizationTestFactory, testMeasures)
 {
 }