コード例 #1
0
        private static void Main(string[] args)
        {
            var generations = 500000;

            OrganismFactory <Organism> .GeneCount = 1000;
            var a = OrganismFactory <Organism> .CreateByDivineIntervention();

            a.Name = "Frank";
            var b = OrganismFactory <Organism> .CreateByDivineIntervention();

            b.Name = "Mary";
            var c = a.Mate(b);

            Console.WriteLine("First Child");
            c.Dump();
            for (var i = 0; i < generations; i++)
            {
                c = a.Mate(b);
            }

            Console.WriteLine("Original Parents");

            a.Dump();
            b.Dump();
            Console.WriteLine("Why cousins don't marry");
            c.Dump();
            Console.ReadKey();
        }
コード例 #2
0
            public void Initialize()
            {
                _fakeUser = new User();
                Guid trainingRoomId = Guid.NewGuid();

                _roomName        = "CoolRoom";
                _organismFactory = new OrganismFactory();
                _trainingRoom    = new TrainingRoom(trainingRoomId, _fakeUser, _roomName, new TrainingRoomSettings(trainingRoomId, 0, 2, 1, 1, 1, 0.4, 3, 0.05, 0.03, 0.75, 0.001, 1, 0.8, 0.1, 0.5, 0.25, 0, 15, 5), _organismFactory);
            }
コード例 #3
0
ファイル: Population.cs プロジェクト: hmuar/darwin
 public Population(PopulationController populationController,
                   OrganismFactory organismFactory,
                   int initCount)
 {
     this.populationController = populationController;
     this.organismFactory = organismFactory;
     AddOrganisms(initCount);
     InitParams();
     // subscribe self to organism death messages
     SubscribeDeath(HandleDeath);
 }
コード例 #4
0
            public void Initialize()
            {
                _user = new User()
                {
                    Id       = Guid.NewGuid(),
                    Username = "******"
                };
                Guid trainingRoomId = Guid.NewGuid();

                _organismFactory      = new OrganismFactory();
                _trainingRoomSettings = new TrainingRoomSettings(trainingRoomId, 0, 2, 1, 1, 1, 0.4, 3, 0.05, 0.03, 0.75, 0.001, 1, 0.8, 0.1, 0.5, 0.25, 0, 15, 5);
                _trainingRoom         = new TrainingRoom(trainingRoomId, _user, "CoolRoom", _trainingRoomSettings, _organismFactory);
            }
コード例 #5
0
            public void Initialize()
            {
                _fakeUser = new User();
                Guid trainingRoomId = Guid.NewGuid();

                _organismFactory = new OrganismFactory();
                _trainingRoom    = new TrainingRoom(trainingRoomId, _fakeUser, "FakeRoom", new TrainingRoomSettings(trainingRoomId, 0, 2, 3, 1, 1, 0.4, 3, 0.05, 0.03, 0.75, 0.001, 1, 0.8, 0.1, 0.5, 0.25, 0, 15, 5), _organismFactory);
                Guid id = Guid.NewGuid();

                _original = new Organism(id, _trainingRoom.TrainingRoomSettings, 0, new List <ConnectionGene>()
                {
                    new ConnectionGene(id, 1, 0, 3, 1),
                    new ConnectionGene(id, 2, 1, 3, 1, false),
                    new ConnectionGene(id, 3, 2, 3, 1),
                    new ConnectionGene(id, 4, 1, 4, 1),
                    new ConnectionGene(id, 5, 4, 3, 1),
                    new ConnectionGene(id, 6, 0, 4, 1)
                });
            }
コード例 #6
0
            public void Initialize()
            {
                _fakeUser = new User();
                Guid trainingRoomId = Guid.NewGuid();

                _roomName        = "CoolRoom";
                _organismFactory = new OrganismFactory();
                //Create a training room with really high mutation settings
                TrainingRoomSettings trainingRoomSettings = new TrainingRoomSettings(trainingRoomId: trainingRoomId,
                                                                                     organismCount: 100,
                                                                                     inputCount: 2,
                                                                                     outputCount: 1,
                                                                                     c1: 1,
                                                                                     c2: 1,
                                                                                     c3: 0.4,
                                                                                     threshold: 3,
                                                                                     addConnectionChance: 1,
                                                                                     addNodeChance: 1,
                                                                                     crossOverChance: 0.75,
                                                                                     interSpeciesChance: 0.001,
                                                                                     mutationChance: 1,
                                                                                     mutateWeightChance: 0.8,
                                                                                     weightReassignChance: 0.1,
                                                                                     topAmountToSurvive: 0.5,
                                                                                     enableConnectionChance: 0.25,
                                                                                     seed: 0,
                                                                                     maxStagnantTime: 15,
                                                                                     championCloneMinSpeciesSize: 5);

                _trainingRoom = new TrainingRoom(trainingRoomId, _fakeUser, _roomName, trainingRoomSettings, _organismFactory);

                for (int i = 0; i < trainingRoomSettings.OrganismCount; i++)
                {
                    Organism organism = new Organism(trainingRoomSettings, _trainingRoom.GetInnovationNumber)
                    {
                        IsLeased = true
                    };
                    _trainingRoom.AddOrganism(organism);
                }
                _trainingRoom.IncreaseNodeIdTo(trainingRoomSettings.InputCount + trainingRoomSettings.OutputCount);
            }