private void Generate(Int32 numberOfVertices, Int32 edges, Double probability, String function) { int initial_vertex_count_ = 1; int additional_verteses_count_ = numberOfVertices; int vertexcount_ = additional_verteses_count_ + initial_vertex_count_; int edgespervertex_ = edges; double vertex_addition_probability_ = probability; DistributedRandom distributed_random_ = new DistributedRandom(function); List <double> fitnesses_ = new List <double>(vertexcount_); for (int current_initial_vertex = 0; current_initial_vertex < initial_vertex_count_; ++current_initial_vertex) { fitnesses_.Add(distributed_random_.get_distributed_probability()); container.AddVertex(); if (current_initial_vertex % 2 == 1) { container.AddConnection(current_initial_vertex, current_initial_vertex - 1); } if (current_initial_vertex == initial_vertex_count_ - 1 && current_initial_vertex != 0 && current_initial_vertex % 2 == 0) { container.AddConnection(current_initial_vertex, current_initial_vertex - 1); } } int current_vertex = initial_vertex_count_; while (current_vertex != vertexcount_) { double prob = distributed_random_.get_probability(); if (prob <= vertex_addition_probability_) { fitnesses_.Add(distributed_random_.get_distributed_probability()); container.AddVertex(); for (int j = 0; j < Math.Min(current_vertex, edgespervertex_); ++j) { int vertex_to_connect = get_vertex_to_connect(current_vertex, fitnesses_, distributed_random_); Debug.Assert(vertex_to_connect >= 0, "internal error"); container.AddConnection(current_vertex, vertex_to_connect); } current_vertex++; } else { add_internal_links(1, fitnesses_, distributed_random_); } } }
private void Generate(Int32 stepCount, Double probability, Int32 edges) { GenerateInitialGraph(probability); while (stepCount > 0) { Double[] probabilyArray = CalculateProbabilities(); container.AddVertex(); RefreshNeighbourships(MakeGenerationStep(probabilyArray, edges)); --stepCount; } }
private void Generate(uint stepCount, double probability, uint edges) { GenerateInitialGraph(probability); container = initialcontainer; while (stepCount > 0) { double[] probabilyArray = container.CountProbabilities(); container.AddVertex(); container.RefreshNeighbourships(MakeGenerationStep(probabilyArray, edges)); --stepCount; } }