// Иссдедование алгоритма с переданными параметрами. public ResearchAlgorithmResponse ResearchAlgorithm(ResearchRequest param) { Graph graph = _graphBL.GetById(param.GraphId); double avgTime = 0.0; int error = 0; // Инициализация алгоритма с переданными параметрами. GeneticAlgorithmCore ga = new GeneticAlgorithmCore(graph, param.PopulationSize, param.Pm, param.Pc); // Многократный запуск алгоритма для оценки времени работы и процента ошибок. for (int i = 0; i < _testCount; i++) { // Запуск алгоритма и получение результатов FindingVertexResponse algResult = ga.StartAlgorithm(); // проверка на верность найденного решения if (algResult.R != graph.R) { error++; } // увеличение суммарного времени работы avgTime += algResult.Time; } // возвращение результата в виде среднего // значения времени работы и процента неверных ответов return(new ResearchAlgorithmResponse() { AvgTime = avgTime / _testCount, Error = error / (double)_testCount * 100.0, }); }
// ������������ ��������� � ����������� �����������. public ResearchAlgorithmResponse ResearchAlgorithm(ResearchRequest param) { Graph graph = _graphBL.GetById(param.GraphId); double avgTime = 0.0; int error = 0; // ������������� ��������� � ����������� �����������. GeneticAlgorithmCore ga = new GeneticAlgorithmCore(graph, param.PopulationSize, param.Pm, param.Pc); // ������������ ������ ��������� ��� ������ ������� ������ � �������� ������. for (int i = 0; i < _testCount; i++) { // ������ ��������� � ��������� ����������� FindingVertexResponse algResult = ga.StartAlgorithm(); // �������� �� �������� ���������� ������� if (algResult.R != graph.R) { error++; } // ���������� ���������� ������� ������ avgTime += algResult.Time; } // ����������� ���������� � ���� �������� // �������� ������� ������ � �������� �������� ������� return(new ResearchAlgorithmResponse() { AvgTime = avgTime / _testCount, Error = error / (double)_testCount * 100.0, }); }