/// <summary> /// /// </summary> /// <param name="number">ID mrówki</param> /// <param name="huntingSitesCount">Liczba łowisk (S1, S2, S3)</param> /// <param name="antCount">Liczba mrówek</param> /// <param name="nest">Mrowisko</param> /// <param name="starvation">Zagłodzenie</param> public Ant(int number, int dimensions, int huntingSitesCount, int antCount, Nest nest, int starvation) { this.number = number; this.huntingSitesCount = huntingSitesCount; this.nest = nest; this.starvation = starvation; this.dimensions = dimensions; this.random = new Random(); this.radius = 0.01 * Math.Pow(Math.Pow((10 / 0.01), 1.0 / antCount), number + 1); // Asite this.radius = Math.Round(this.radius, 4); // zaaokrąglanie this.localRadius = radius / 10.0; // Alocal this.fitness = 999; this.lastSuccess = 1; this.position = new double[dimensions]; this.huntingSites = new List<HuntingSite>(); }
/// <summary> /// Tutaj następuje inicjalizacja gniazd oraz samego algorytmu /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void Bw_DoWork(object sender, DoWorkEventArgs e) { for (int i = 0; i < paramList[8]; i++) { Nest nest = new Nest( (int)paramList[0], (int)paramList[1], (int)paramList[2], (int)paramList[3], (int)paramList[4], (int)paramList[5], (int)paramList[6], (int)paramList[7]); nest.run(); ((BackgroundWorker)sender).ReportProgress((int)(((i + 1) * 100) / paramList[8])); } }