public List <Diet> GetDiet(List <Food> foods, DietSummary targetDiet, Configuration configuration) { var currentPopulation = _populationInitializer.InitializePopulation(foods, configuration); var numberOfIndividualsToSelect = (int)(configuration.PopulationSize * configuration.SelectionFactor); var iteration = 0; while (iteration < configuration.MaxIterations) { var ahpSolver = new AhpSolver(); var ahpEvaluations = ahpSolver.Evaluate(currentPopulation, targetDiet); var evaluations = Evaluate(currentPopulation, targetDiet); OutputEvaluation(evaluations, iteration); currentPopulation = _selector.Select(evaluations, numberOfIndividualsToSelect); CrossOver(configuration, currentPopulation, numberOfIndividualsToSelect); Mutate(currentPopulation, foods, configuration); iteration++; } var endEvaluations = Evaluate(currentPopulation, targetDiet); return(currentPopulation.OrderBy(diet => _evaluator.Evaluate(diet, targetDiet)).ToList()); }
public void Test_CarSelection1() { IDecision tmp_project = TestFactory.CarSelectionProblem(); System.Diagnostics.Debug.WriteLine(tmp_project.ToString()); AhpSolver tmp_solver = new AhpSolver(tmp_project); IDecisionResult decisionResult = tmp_solver.Solve(); Assert.IsNotNull(decisionResult, "success"); }
public void Test_CarSelection2() { //http://en.wikipedia.org/wiki/Analytic_hierarchy_process_%E2%80%94_Car_example //https://rpubs.com/gluc/ahp IDecision tmp_project = TestFactory.ComplexCarSelectionProblem(); System.Diagnostics.Debug.WriteLine(tmp_project.ToString()); AhpSolver tmp_solver = new AhpSolver(tmp_project); IDecisionResult decisionResult = tmp_solver.Solve(); Assert.IsNotNull(decisionResult, "success"); }