コード例 #1
0
ファイル: Ant.cs プロジェクト: weslleyluiz/TravellingSalesman
        private Edge NextEdge(Ant ant)
        {
            double c = 0;
            double r = random.NextDouble();

            Vertex vertex = ant.visitedVertices.Peek();

            foreach (Edge e in vertex.neighbors)
            {
                if (!ant.visitedVertices.Contains(e.SecondVertex))
                {
                    c += Probability(ant, e);
                    if (c >= r)
                    {
                        return(e);
                    }
                }
            }
            return(null);
        }
コード例 #2
0
ファイル: Ant.cs プロジェクト: weslleyluiz/TravellingSalesman
 private void AntPath(Ant ant)
 {
     counter = 0;
     AntPathRecurring(ant, ant.startVertex);
 }