public void Initialize(int population, int inputs, int outputs) { Population = population; Inputs = inputs; Outputs = outputs; Random = new Random(); InitialNodes.AddRange(CreateInitNodes()); }
public void Reset(int population, int inputs, int outputs) { Generation = 0; InnovationId = 0; GenomeId = 0; NodeId = 0; InitialNodes.Clear(); CurrentGeneration.Clear(); LastGeneration.Clear(); SpeciesCollection.SpeciesItems.Clear(); Connections.Clear(); Initialize(population, inputs, outputs); }
private void Graph_GraphLayoutStarting(object sender, EventArgs e) { // I'd like to just call RemoveAllConstraints here, but it doesn't work. if (LayeredLayout) { var settings = Graph.ConfigureSugiyamaLayout(HorizontalLayout ? Math.PI / 2.0 : Math.PI); if (GroupInitialNodes && InitialNodes != null) { // Declare all initial nodes to be above every other node. foreach (DNode nc in InitialNodes) { foreach (DNode nc2 in Graph.Nodes().Where(ec => !(ec is DCluster) && !InitialNodes.Contains(ec as DNode))) { settings.AddUpDownConstraint(nc.GeometryNode, nc2.GeometryNode); } } } if (EnforceAspectRatio && GraphContainer.ActualHeight != 0.0 && GraphContainer.ActualWidth != 0.0) { settings.AspectRatio = HorizontalLayout ? GraphContainer.ActualHeight / GraphContainer.ActualWidth : GraphContainer.ActualWidth / GraphContainer.ActualHeight; } if (HorizontalLayout) { settings.Transformation = PlaneTransformation.Rotation(Math.PI / 2); } else { settings.Transformation = PlaneTransformation.Rotation(Math.PI); } settings.EdgeRoutingSettings.EdgeRoutingMode = (EdgeRoutingMode)typeof(EdgeRoutingMode).GetField((EdgeRoutingComboBox.SelectedItem as ComboBoxItem).Tag.ToString()).GetValue(null); int separation = 5; Int32.TryParse(BundlingSeparationTextBox.Text, out separation); settings.EdgeRoutingSettings.BundlingSettings = new BundlingSettings() { EdgeSeparation = separation }; Graph.Graph.LayoutAlgorithmSettings = settings; } else { Graph.ConfigureIncrementalLayout(); } }