public Ant(int initialCity, Graph graph, PheromonMatrix pheromonMatrix, AcoProcessor.AcoParameters parameters) { _currentCity = initialCity; _graph = graph; _pheromonMatrix = pheromonMatrix; _parameters = parameters; }
public static string ParamsToTable(ICollection <AcoProcessor.AcoParameters> paramList, ICollection <double> results) { // Draw labels string result = "\nalpha\tbeta\tro\ttMax\tResult\n"; for (int i = 0; i < paramList.Count; i++) { AcoProcessor.AcoParameters param = paramList.ElementAt(i); result += param.alpha + "\t" + param.beta + "\t" + param.p + "\t" + param.tMax + "\t"; if (results != null) { result += results.ElementAt(i).ToString("F"); } result += '\n'; } return(result); }
public AcoProcessor.AcoParameters[] Iterate(AcoProcessor.AcoParameters paramBase) { List <AcoProcessor.AcoParameters> result = new List <AcoProcessor.AcoParameters>(); double alpha = _aMin; double alphaStep = (_aMax - _aMin) / _iterations; double roStep = (_roMax - _roMin) / _iterations; for (int i = 0; i < _iterations; i++) { /*double beta = _c - alpha; * double ro = _roMin;*/ double beta = _aMin; for (int m = 0; m < _iterations; m++) { double ro = _roMin; for (int j = 0; j < _iterations; j++) { for (int t = _tMin; t <= _tMax; t++) { AcoProcessor.AcoParameters iteration = paramBase; iteration.alpha = alpha; iteration.beta = beta; iteration.p = ro; iteration.tMax = t; result.Add(iteration); } ro += roStep; } beta += alphaStep; } alpha += alphaStep; if (alpha > _aMax) { alpha = _aMax; } } return(result.ToArray()); }