Ejemplo n.º 1
0
        public void Initialize(int population, int inputs, int outputs)
        {
            Population = population;
            Inputs     = inputs;
            Outputs    = outputs;

            Random = new Random();
            InitialNodes.AddRange(CreateInitNodes());
        }
Ejemplo n.º 2
0
 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);
 }
Ejemplo n.º 3
0
        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();
            }
        }