public void Test(IVertexAndEdgeListGraph g, IVertex root) { this.root = root; RandomWalkAlgorithm walker = new RandomWalkAlgorithm(g); walker.TreeEdge +=new EdgeEventHandler(walker_TreeEdge); walker.Generate(root,50); BidirectionalAdaptorGraph bg = new BidirectionalAdaptorGraph(g); ReversedBidirectionalGraph rg = new ReversedBidirectionalGraph(bg); CyclePoppingRandomTreeAlgorithm pop = new CyclePoppingRandomTreeAlgorithm(rg); pop.InitializeVertex +=new VertexEventHandler(this.InitializeVertex); pop.FinishVertex +=new VertexEventHandler(this.FinishVertex); pop.TreeEdge += new EdgeEventHandler(this.TreeEdge); pop.InitializeVertex +=new VertexEventHandler(vis.InitializeVertex); pop.TreeEdge += new EdgeEventHandler(vis.TreeEdge); pop.ClearTreeVertex += new VertexEventHandler(vis.ClearTreeVertex); pop.RandomTreeWithRoot(root); // plot tree... GraphvizAlgorithm gv = new GraphvizAlgorithm(g,".",GraphvizImageType.Svg); gv.FormatEdge +=new FormatEdgeEventHandler(this.FormatEdge); gv.FormatVertex +=new FormatVertexEventHandler(this.FormatVertex); gv.Write("randomtree"); }
public void Generate( [UsingFactories(typeof(EdgeChainFactory))] KeyValuePair<IVertexAndEdgeListGraph<string,Edge<string>>,IEdgeChain<string,Edge<String>>> eg ) { RandomWalkAlgorithm<string, Edge<string>> walker = new RandomWalkAlgorithm<string, Edge<string>>(eg.Key, eg.Value); walker.Generate(TraversalHelper.GetFirstVertex(eg.Key)); }
public void Generate( [UsingFactories(typeof(EdgeChainFactory))] KeyValuePair <IVertexAndEdgeListGraph <string, Edge <string> >, IEdgeChain <string, Edge <String> > > eg ) { RandomWalkAlgorithm <string, Edge <string> > walker = new RandomWalkAlgorithm <string, Edge <string> >(eg.Key, eg.Value); walker.Generate(TraversalHelper.GetFirstVertex(eg.Key)); }
private void Generate <TVertex, TEdge>(IVertexListGraph <TVertex, TEdge> g) where TEdge : IEdge <TVertex> { foreach (var v in g.Vertices) { var walker = new RandomWalkAlgorithm <TVertex, TEdge>(g); var vis = new EdgeRecorderObserver <TVertex, TEdge>(); using (vis.Attach(walker)) walker.Generate(v); } }
public void RoundRobinTest(IVertexListGraph<string, Edge<string>> g) { if (g.VertexCount == 0) return; RandomWalkAlgorithm<String, Edge<string>> walker = new RandomWalkAlgorithm<String, Edge<string>>(g); walker.EdgeChain = new NormalizedMarkovEdgeChain<string, Edge<string>>(); string root = TraversalHelper.GetFirstVertex(g); walker.Generate(root); }
public void GenerateWithVisitor( [UsingFactories(typeof(EdgeChainFactory))] KeyValuePair<IVertexAndEdgeListGraph<string,Edge<string>>,IEdgeChain<string,Edge<String>>> eg ) { RandomWalkAlgorithm<string, Edge<string>> walker = new RandomWalkAlgorithm<string, Edge<string>>(eg.Key, eg.Value); EdgeRecorderObserver<string, Edge<string>> vis = new EdgeRecorderObserver<string, Edge<string>>(); vis.Attach(walker); walker.Generate(TraversalHelper.GetFirstVertex(eg.Key)); vis.Detach(walker); }
public void GenerateWithVisitor( [UsingFactories(typeof(EdgeChainFactory))] KeyValuePair <IVertexAndEdgeListGraph <string, Edge <string> >, IEdgeChain <string, Edge <String> > > eg ) { RandomWalkAlgorithm <string, Edge <string> > walker = new RandomWalkAlgorithm <string, Edge <string> >(eg.Key, eg.Value); EdgeRecorderObserver <string, Edge <string> > vis = new EdgeRecorderObserver <string, Edge <string> >(); vis.Attach(walker); walker.Generate(TraversalHelper.GetFirstVertex(eg.Key)); vis.Detach(walker); }
public void RoundRobinTest <TVertex, TEdge>(IVertexListGraph <TVertex, TEdge> g) where TEdge : IEdge <TVertex> { if (g.VertexCount == 0) { return; } foreach (var root in g.Vertices) { var walker = new RandomWalkAlgorithm <TVertex, TEdge>(g); walker.EdgeChain = new NormalizedMarkovEdgeChain <TVertex, TEdge>(); walker.Generate(root); } }
public void RoundRobinTestWithVisitor(IVertexListGraph<string, Edge<string>> g) { if (g.VertexCount == 0) return; RandomWalkAlgorithm<String, Edge<string>> walker = new RandomWalkAlgorithm<String, Edge<string>>(g); walker.EdgeChain = new NormalizedMarkovEdgeChain<string, Edge<string>>(); string root = TraversalHelper.GetFirstVertex(g); EdgeRecorderObserver<string, Edge<string>> vis = new EdgeRecorderObserver<string, Edge<string>>(); vis.Attach(walker); walker.Generate(root); vis.Detach(walker); }
public void RoundRobinTest(IVertexListGraph <string, Edge <string> > g) { if (g.VertexCount == 0) { return; } RandomWalkAlgorithm <String, Edge <string> > walker = new RandomWalkAlgorithm <String, Edge <string> >(g); walker.EdgeChain = new NormalizedMarkovEdgeChain <string, Edge <string> >(); string root = TraversalHelper.GetFirstVertex(g); walker.Generate(root); }
public void RoundRobinTestWithVisitor <TVertex, TEdge>(IVertexListGraph <TVertex, TEdge> g) where TEdge : IEdge <TVertex> { if (g.VertexCount == 0) { return; } foreach (var root in g.Vertices) { var walker = new RandomWalkAlgorithm <TVertex, TEdge>(g); walker.EdgeChain = new NormalizedMarkovEdgeChain <TVertex, TEdge>(); var vis = new EdgeRecorderObserver <TVertex, TEdge>(); using (vis.Attach(walker)) walker.Generate(root); } }
public void RoundRobinTestWithVisitor(IVertexListGraph <string, Edge <string> > g) { if (g.VertexCount == 0) { return; } RandomWalkAlgorithm <String, Edge <string> > walker = new RandomWalkAlgorithm <String, Edge <string> >(g); walker.EdgeChain = new NormalizedMarkovEdgeChain <string, Edge <string> >(); string root = TraversalHelper.GetFirstVertex(g); EdgeRecorderObserver <string, Edge <string> > vis = new EdgeRecorderObserver <string, Edge <string> >(); vis.Attach(walker); walker.Generate(root); vis.Detach(walker); }
private void menuItem8_Click(object sender, System.EventArgs e) { if (this.netronPanel.Graph==null) throw new Exception("Generate a graph first"); if (this.netronPanel.Populator==null) throw new Exception("Populator should not be null."); ResetVertexAndEdgeColors(); // create algorithm this.vertexCounts = new VertexIntDictionary(); this.edgeCounts = new EdgeIntDictionary(); foreach(IVertex vertex in this.netronPanel.Graph.Vertices) this.vertexCounts[vertex]=0; foreach(IEdge edge in this.netronPanel.Graph.Edges) this.edgeCounts[edge]=0; this.edgeWeights =new EdgeDoubleDictionary(); foreach(IEdge edge in this.netronPanel.Graph.Edges) edgeWeights[edge]=1; WeightedMarkovEdgeChain chain = new WeightedMarkovEdgeChain(edgeWeights); RandomWalkAlgorithm walker = new RandomWalkAlgorithm( this.netronPanel.Graph ); walker.TreeEdge+=new EdgeEventHandler(walker_WeightedTreeEdge); LayoutAlgorithmTraverVisitor tracer = new LayoutAlgorithmTraverVisitor(this.netronPanel.Populator); walker.TreeEdge +=new EdgeEventHandler(tracer.TreeEdge); Thread thread = new Thread(new ThreadStart(walker.Generate)); thread.Start(); }