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(); }
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); }
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); }
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); }
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) }); }
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); }