public NearestNeighbourTravelSalesman(CitiesCollection cities, AntParameters param) : this(cities) { SetParameters(param); tmrTimer = new System.Timers.Timer(10); //инициализация таймера tmrTimer.Elapsed += new ElapsedEventHandler(tmrTimer_Elapsed); //подписка на событие таймера "Elapsed" }
internal frmSelectAlgs(AntParameters param, int citiesCount) : this(param) { _iCitiesCount = citiesCount; // Заносим данные в контроллы SetDataToControls(); }
/// <summary> /// Установить параметры алгоритма /// </summary> public void SetParameters(AntParameters param) { if (Cities != null) { // Создаем Муравьев Ants = new AntAlgDataAntsCollection(param.MaxCities); Ants.InitAnts(Cities); } _parameters = param; best = _parameters.MaxTour; if (Cities != null) { Pheromone = new double[Cities.Count, Cities.Count]; for (int from = 0; from < Cities.Count; from++) { for (int to = 0; to < Cities.Count; to++) { Pheromone[from, to] = _parameters.InitPheromone; } } } }
internal frmSelectAlgs(AntParameters param) : this() { _parameters = param; // Заносим данные в контроллы SetDataToControls(); }
public AntAlgTravelSalesman(CitiesCollection cities, AntParameters param) : this(cities) { SetParameters(param); maxTime = _parameters.MaxTime; //установка максимального ко-ва проходов tmrTimer = new System.Timers.Timer(10); //инициализация таймера tmrTimer.Elapsed += new ElapsedEventHandler(tmrTimer_Elapsed); //подписка на событие таймера "Elapsed" }
/// <summary> /// Коллекция с лучшим маршрутом /// </summary> // public AntAlgDataCitiesCollection BestPath // { // get // { // AntAlgDataCitiesCollection cities = new AntAlgDataCitiesCollection(); // cities.MaxDistance = Cities.MaxDistance; // for (int i = 0; i < Cities.Count; i++) // { // // AntAlgDataCity newCity = new AntAlgDataCity(Ants[bestIndex].PathGet(i).X, Ants[bestIndex].PathGet(i).Y); // //newCity.Index = Ants[bestIndex].PathGet(i).Index; // //cities.Add(newCity); // } // return cities; // } //} #endregion /// <summary> /// Установить параметры алгоритма /// </summary> public void SetParameters(AntParameters param) { if (Cities != null) { // Создаем соседей InitNeighbours(); } _parameters = param; best = _parameters.MaxTour; // OnFinally(EventArgs.Empty); }
/// <summary> /// Начать алгоритм расчета /// </summary> /// <param name="cities">Коллекция городов</param> /// <param name="parameters">Параметры расчета</param> public void Start(CitiesCollection cities, AntParameters parameters) { Init(cities, parameters); timeStart = DateTime.Now; travelSalesmanNN.Calculate(); // travelSalesmanNN.SetParameters(parameters); //travelSalesmanNN.InitNeighbours(cities); //travelSalesmanNN.Calculate(); // Результаты }
/// <summary> /// Инициализируем данные /// </summary> private void Init(CitiesCollection cities, AntParameters parameters) { if (cities == null) { throw new Exception("В алгоритме на определены города"); } if (parameters == null) { throw new Exception("В алгоритме на определены параметры расчета"); } travelSalesmanNN = new NearestNeighbourTravelSalesman(cities, parameters); travelSalesmanNN.eventProgressChanged += new EventHandler <NearestNeighbourChangesEventArgs>(ProgressChange); travelSalesmanNN.eventFinally += new EventHandler <EventArgs>(Finally); }
public frmMain() { InitializeComponent(); // Начальная инициализация параметров расчета. Используются параметры по умолчанию. _paramAnt = new AntParameters(); _paramBnB = new BnBParameters(); _paramGA = new GAParameters(); // Отправляем ссылку на Лист Маршрутов контроллу прорисовки liRoute = new List <Route>(); ucCP.ListRoute = liRoute; //инициализация списков экземпляров алгоритмов _prAntList = new List <ProcessAnt>(); _prNNList = new List <ProcessNearestNeighbour>(); _prBnBList = new List <ProcessBranchAndBound>(); _prGAList = new List <ProcessGeneticAlgorithm>(); }