コード例 #1
0
 public NearestNeighbourTravelSalesman(CitiesCollection cities, AntParameters param)
     : this(cities)
 {
     SetParameters(param);
     tmrTimer          = new System.Timers.Timer(10);               //инициализация таймера
     tmrTimer.Elapsed += new ElapsedEventHandler(tmrTimer_Elapsed); //подписка на событие таймера "Elapsed"
 }
コード例 #2
0
ファイル: frmAlgSettings.cs プロジェクト: artifact113/matsps
        internal frmSelectAlgs(AntParameters param, int citiesCount) : this(param)
        {
            _iCitiesCount = citiesCount;

            // Заносим данные в контроллы
            SetDataToControls();
        }
コード例 #3
0
        /// <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;
                    }
                }
            }
        }
コード例 #4
0
ファイル: frmAlgSettings.cs プロジェクト: artifact113/matsps
        internal frmSelectAlgs(AntParameters param)
            : this()
        {
            _parameters = param;

            // Заносим данные в контроллы
            SetDataToControls();
        }
コード例 #5
0
 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"
 }
コード例 #6
0
        /// <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);
        }
コード例 #7
0
        /// <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();
            // Результаты
        }
コード例 #8
0
 /// <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);
 }
コード例 #9
0
        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>();
        }