예제 #1
0
        public static Graph GenerateRandomGraph(int n)
        {
            float prob = 0.2f;

            Graph g = new Graph();

            g.Directed = false;

            for (int i = 0; i < n; i++)
            {
                Vertex v = new Vertex();
                g.AddVertex(v);
            }

            Random r = new Random();

            //Randomly decide when to add an edge between any two pairs
            foreach (Vertex v in g.GetVertices())
            {
                foreach (Vertex u in g.GetVertices())
                {
                    if (!v.Equals(u))
                    {
                        double random = r.NextDouble();
                        if (random >= 0 && random <= prob)
                        {
                            g.AddEdge(new Edge(v, u, (float)r.NextDouble()));
                        }
                    }
                }
            }

            foreach (Vertex v in g.GetVertices())
            {
                VertexClassification vc = ClassifyVertex(v);
                Output.WriteLine("Vertex " + v.ToString() + " is " + vc.ToString());
            }

            return(g);
        }
예제 #2
0
        public static Graph GenerateRandomGraph(int n)
        {
            float prob = 0.2f;

            Graph g = new Graph();
            g.Directed = false;

            for (int i = 0; i < n; i++)
            {
                Vertex v = new Vertex();
                g.AddVertex(v);
            }

            Random r = new Random();

            //Randomly decide when to add an edge between any two pairs
            foreach (Vertex v in g.GetVertices())
            {
                foreach (Vertex u in g.GetVertices())
                {
                    if (!v.Equals(u))
                    {
                        double random = r.NextDouble();
                        if (random >= 0 && random <= prob)
                        {
                            g.AddEdge(new Edge(v, u, (float)r.NextDouble()));
                        }
                    }
                }
            }

            foreach (Vertex v in g.GetVertices())
            {
                VertexClassification vc = ClassifyVertex(v);
                Output.WriteLine("Vertex " + v.ToString() + " is " + vc.ToString());
            }

            return g;
        }
예제 #3
0
 public override string ToString()
 {
     return("[" + fromVertex.ToString() + ", " + toVertex.ToString() + "], Weight = " + Weight.ToString());
 }