private MutationManager InitMutations() { var result = new MutationManager(); result.MutationEntries.Add(new MutationEntry( new SingleSynapseWeightMutation(() => singleSynapseMutValue), singleSynapseMutChance, EMutationType.Independent )); result.MutationEntries.Add(new MutationEntry( new SingleSynapseWeightMutation(() => singleSynapseMutValue * 5), singleSynapseMutChance / 5, EMutationType.Independent )); result.MutationEntries.Add(new MutationEntry( new AllSynapsesWeightMutation( () => allSynapsesMutValue, allSynapsesMutChanceEach), allSynapsesMutChance, EMutationType.Independent )); return(result); }
public void SelectMutation() { MutationManager mutationManager = GameObject.FindGameObjectWithTag("MutationManager").GetComponent <MutationManager>(); mutationManager.AddMutationID(idMonster, mutation); string s = "CAPITAL"; SceneManager.LoadScene(s); // SceneManager.UnloadScene(currentScene); /* * SceneManager.SetActiveScene(SceneManager.GetSceneByName(s)); * for (int i = 0; i < SceneManager.GetActiveScene().GetRootGameObjects().Length; i++) * { * GameObject go = SceneManager.GetActiveScene().GetRootGameObjects()[i]; * if (go.tag != "Spotligth") * SceneManager.GetActiveScene().GetRootGameObjects()[i].SetActive(true); * } */ GameObject g = GameObject.FindGameObjectWithTag("ProtoManager"); ProtoScript ps = null; if (g != null) { ps = g.GetComponent <ProtoScript>(); ps.map.EnterMap(); ps.currentIndex++; } }
private void CreateFirstPopulation() { population = new Parameters[population_size]; int loaded = 0; if (fitnesses.Any()) { var myList = fitnesses.ToList(); myList.Sort((pair1, pair2) => - pair1.Value.average.CompareTo(pair2.Value.average)); while (loaded < population_size && loaded < myList.Count) { population[loaded] = myList[loaded].Key; loaded++; } } for (int i = loaded; i < population_size; i++) { population[i] = new Parameters(); //completely randomize some of the values for (int j = 0; j < i * 10; j++) { population[i] = MutationManager.Mutate(population[i]); } } }
private void Start() { MutationManager mutationManager = GameObject.FindGameObjectWithTag("MutationManager").GetComponent <MutationManager>(); CreaturesData creatureData = GameObject.FindGameObjectWithTag("CreaturesData").GetComponent <CreaturesData>(); if (mutationManager.allMutations.Count > 0) { MutationManager.MutationData data = mutationManager.GetRandomMutation(1)[0]; idMonster = data.nIdMonster; mutation = CaractMonster.GetCaractMonsterOfEnum(data.mutation); monsterIcon.GetComponent <Image>().sprite = Resources.Load <Sprite>("Sprites/MonsterIcons/" + creatureData.GetFighterOfID <Monster>(CreatureType.Monster, idMonster).sName); mutationIcon.GetComponent <Image>().sprite = Resources.Load <Sprite>("Sprites/HumandexIcons/" + mutation.sName); char[] correctCapitalisation = mutation.sName.ToLowerInvariant().ToCharArray(); correctCapitalisation[0] = correctCapitalisation[0].ToString().ToUpperInvariant()[0]; mutationName.text = ""; for (int i = 0; i < correctCapitalisation.Length; ++i) { mutationName.text += correctCapitalisation[i]; } } else { Destroy(gameObject); } }
void OnEnable() { Monster monster = caravane.lFighters[caravaneIndex]; monsterName.text = monster.sName; List <CaractMonster> muts = new List <CaractMonster>(); if (MutationManager.Instance() != null) { muts = MutationManager.Instance().GetMutationsWithId(monster.nID); } for (int i = 0; i < countedMutations.Count; ++i) { Destroy(countedMutations[i]); } countedMutations.Clear(); for (int i = 0; i < muts.Count; i++) { mutationImage.SetActive(true); mutationImage.GetComponent <Image>().sprite = Resources.Load <Sprite>("Sprites/HumandexIcons/" + muts[i].sName); countedMutations.Add(Instantiate(mutationImage, transform)); mutationImage.SetActive(false); } //xxx mutationImage.GetComponent<Image>().sprite = Resources.Load<Sprite>("Sprites/HumandexIcons/" + MutationManager.Instance().GetMutationWithId(monster.nID).sName); }
public MutationManager GetMutationManagerForUnit(Unit unit) { if (!mutationManagers.ContainsKey(unit)) { mutationManagers[unit] = new MutationManager(unit, this); } return(mutationManagers[unit]); }
static MutationManager singleton() { if (instance == null) { instance = new MutationManager(); } return(instance); }
private void Start() { tier1.Add(tier1DoubleJump); tier2.Add(tier2TripleJump); tier2.Add(tier2SuperSpeed); myMutationManager = this.GetComponent <MutationManager>(); }
// Update is called once per frame void Update() { if (Input.GetKeyDown(KeyCode.Escape)) { escapePressed = true; lastEscapePress = Time.unscaledTime; } if (Input.GetKeyUp(KeyCode.Escape)) { Camera.main.transform.position = new Vector3(0, 0, Camera.main.transform.position.z); escapePressed = false; } if (Input.GetKey(KeyCode.LeftAlt) || Input.GetKey(KeyCode.RightAlt) || Input.GetKey(KeyCode.AltGr)) { if (Input.GetKeyUp(KeyCode.F7)) { ChangeToMutation("BaseGameScene"); } else if (Input.GetKeyUp(KeyCode.F8)) { ChangeToMutation("PointGameScene"); } else if (Input.GetKeyUp(KeyCode.F9)) { ChangeToMutation("MovementGameScene"); } else if (Input.GetKeyUp(KeyCode.F10)) { ChangeToMutation("ShootGameScene"); } else if (Input.GetKeyUp(KeyCode.F11)) { ChangeToMutation("InputGameScene"); } else if (Input.GetKeyUp(KeyCode.Alpha1)) { ChangeToMutation(MutationManager.GotoNextMutation()); } else if (Input.GetKeyUp(KeyCode.Alpha0)) { ChangeToMutation(MutationManager.FullGameMutation()); } } if (escapePressed) { Camera cam = Camera.main; cam.transform.position = new Vector3(Random.Range(-shakeOffset, shakeOffset), Random.Range(-shakeOffset, shakeOffset), cam.transform.position.z); if (Time.unscaledTime - lastEscapePress > quitDelay) { EventLogger.Log(EventLog.EventCode.GameEnded("InputEscapePressed")); Application.Quit(); } } }
public AutoevolutionaryInformation Create(List <Gen> gens) { return(new AutoevolutionaryInformation( FitnessMatcherFabrik.Create(gens.Skip(AutoEvolutionaryInformationGeneticDescriptor.Count + MutationManager.GetInstance().GetMutationTypes() + CrossOverManager.GetInstance().GetCrossOverTypes()).ToList()), gens[0].Value, gens[1].Value, gens[2].Value, gens.Skip(3).Take(MutationManager.GetInstance().GetMutationTypes()).Select(o => o.Value).ToList(), gens.Skip(3 + MutationManager.GetInstance().GetMutationTypes()).Take(CrossOverManager.GetInstance().GetCrossOverTypes()).Select(o => o.Value).ToList())); }
public ReproductionSystem(EntityManager pool, NeatMutationConfig config, InnovationIdManager innovationIdManager, EnergyManager energyManager, int currentMaxSpeciesId, float similarityThreshold, Simulation simulation) : base(pool, (e) => e.HasComponents(typeof(ReproductionComponent), typeof(EnergyComponent))) { _muationManager = new MutationManager(config); _innovationIdManager = innovationIdManager; _energyManager = energyManager; _nextSpeciesIdCounter = currentMaxSpeciesId + 1; _similarityThreshold = similarityThreshold; _simulation = simulation; }
public void GetMutation() { MutationManager MM = MutationManager.Instance; if (!MM) { return; } switch (mutationType) { case Mutations.AOEMutation: mutation = MM.AOEMutation; break; case Mutations.DashMutation: mutation = MM.DashMutation; break; case Mutations.TentacleMutation: mutation = MM.TentacleMutation; break; case Mutations.BloodlustMutation: mutation = MM.BloodlustMutation; break; case Mutations.BunnyHopMutation: mutation = MM.BunnyHopMutation; break; case Mutations.DoubleEdgeMutation: mutation = MM.DoubleEdgeMutation; break; case Mutations.RootedMutation: mutation = MM.RootedMutation; break; case Mutations.SlimeTrailMutation: mutation = MM.SlimeTrailMutation; break; case Mutations.TurretMutation: mutation = MM.TurretMutation; break; case Mutations.DancingSwordMutation: mutation = MM.DancingSwordMutation; break; } ; mutationDescription = mutation.Description; }
public BreedingClassic( float productionPart, int minProduction, ISelection selection, ICrossover crossover, MutationManager mutationManager ) : base(productionPart, minProduction) { Selection = selection; Crossover = crossover; this.MutationManager = mutationManager; }
private MutationManager InitMutations() { var mutation = new NbMutation((int)(geneDeltaMutationPart * maxGeneValue)); var mutManager = new MutationManager(); mutManager.MutationEntries.Add(new MutationEntry( mutation, geneNbMutationChance, EMutationType.Independent)); return(mutManager); }
private MutationManager InitMutations() { var mutation = new TSSwapMutation(); var result = new MutationManager(); result.MutationEntries.Add(new MutationEntry( mutation, geneMutationChance, EMutationType.Independent )); return(result); }
// Update is called once per frame void Update() { if (Input.GetKeyUp(KeyCode.Return)) { SceneManager.LoadScene(MutationManager.MutationName() + ""); } if (Input.GetKeyUp(KeyCode.F12)) { CueManager.SetCues(!CueManager.HasCues()); EventLogger.Log(EventLog.EventCode.GameHasCues(CueManager.HasCues())); UpdateCueIndicator(); } }
public void Start() { if (permanentMutation != CaractMonster._enumCaractMonster.NONE) { permanentCarMutation = CaractMonster.GetCaractMonsterOfEnum(permanentMutation); } int id = gameObject.transform.parent.GetComponent <FighterUI>().fighter.nID; MutationManager mmm = GameObject.FindGameObjectWithTag("MutationManager").GetComponent <MutationManager>(); SetCaract(mmm.GetMutationWithId(id)); }
public async Task ShouldMutateMessage() { var mutator = new FakeMutator(); A.CallTo(() => Configuration.Settings.Container.Resolve(A <Type> .Ignored)).Returns(mutator); MutationManager.RegisterMutator("test", typeof(FakeMutator)); var next = A.Fake <Func <Task> >(); var context = new TestableIncomingLogicalMessageContext(); context.UpdateMessageInstance(Fake <Messages.IEvent>()); await Sut.Invoke(context, next).ConfigureAwait(false); A.CallTo(() => next()).MustHaveHappened(); mutator.MutatedIncoming.Should().BeTrue(); }
private static void Main(string[] args) { var configurationBuilder = new ConfigurationBuilder(); configurationBuilder.AddEnvironmentVariables("TODOMVC_"); Configuration = configurationBuilder.Build(); Console.Title = "Domain"; Log.Logger = new LoggerConfiguration() .MinimumLevel.Warning() .WriteTo.Console(outputTemplate: "[{Level}] {Message}{NewLine}{Exception}") .CreateLogger(); AppDomain.CurrentDomain.UnhandledException += UnhandledExceptionTrapper; NServiceBus.Logging.LogManager.Use <SerilogFactory>(); _container = new Container(x => { x.For <IValidatorFactory>().Use <StructureMapValidatorFactory>(); x.Scan(y => { y.TheCallingAssembly(); y.WithDefaultConventions(); }); }); MutationManager.RegisterMutator("domain", typeof(Mutator)); // Start the bus _bus = InitBus().Result; Console.WriteLine("Press CTRL+C to exit..."); Console.CancelKeyPress += (sender, eArgs) => { QuitEvent.Set(); eArgs.Cancel = true; }; QuitEvent.WaitOne(); _bus.Stop().Wait(); }
public async Task ShouldNotMutateReplies() { var mutator = new FakeMutator(); A.CallTo(() => Configuration.Settings.Container.Resolve(A <Type> .Ignored)).Returns(mutator); MutationManager.RegisterMutator("test", typeof(FakeMutator)); var next = A.Fake <Func <Task> >(); var context = new TestableOutgoingLogicalMessageContext(); context.Headers[Headers.MessageIntent] = MessageIntentEnum.Reply.ToString(); context.UpdateMessage(Fake <Messages.IEvent>()); await Sut.Invoke(context, next).ConfigureAwait(false); A.CallTo(() => next()).MustHaveHappened(); mutator.MutatedOutgoing.Should().BeFalse(); }
public void Awake() { if (instance == null) { instance = this; } if (!created) { DontDestroyOnLoad(transform.gameObject); created = true; } else { Destroy(transform.gameObject); } CaractMonster init = CaractMonster.AILES; Initialise(); }
private void CreateNewGeneration() { var myList = population.ToList(); myList.Sort((pair1, pair2) => - fitnesses[pair1].average.CompareTo(fitnesses[pair2].average)); Parameters[] nextGeneration = new Parameters[population_size]; nextGeneration[0] = myList[0]; int pos = 1; while (pos < population_size) { Parameters p1 = SelectCandidateByRank(myList); Parameters p2 = SelectCandidateByRank(myList); nextGeneration[pos] = MutationManager.Mutate(MutationManager.Crossover(p1, p2)); pos++; } population = nextGeneration; }
public static void Main(string[] args) { Random rand = new Random(); ItemSetController itemSetController = new ItemSetController(rand, ITERATION_COUNT); PopulationSelector populationSelector = new PopulationSelector(1, 106, rand, ITERATION_COUNT); CrossoverManager crossoverManager = new CrossoverManager(rand, ITERATION_COUNT); SelectionManager selectionManager = new SelectionManager(rand); MutationManager mutationManager = new MutationManager(rand, ITERATION_COUNT); for (int i = 0; i < ITERATION_COUNT; i++) { itemSetController.addItem(new Item(rand.Next(1, 30), rand.Next(1, 30)), i); } itemSetController.ShowItems(); itemSetController.IniSets(); itemSetController.ShowSets(); string pairSelection; do { Console.WriteLine("Выберите тип выборки пары: 1 - Лучшая пара 2 - Случайный"); pairSelection = Console.ReadLine(); } while (pairSelection != "1" && pairSelection != "2"); string crossover; do { Console.WriteLine("Выберите вид кроссовера: 1 - Двухточечный(Случайный) 2 - Одноточечный классический"); crossover = Console.ReadLine(); } while (crossover != "1" && crossover != "2"); string mutation; do { Console.WriteLine("Выберите вид мутации: 1 - изменеие бита на противоположный 2 - инверсия в случайном интервале"); mutation = Console.ReadLine(); } while (mutation != "1" && mutation != "2"); string selection; do { Console.WriteLine("Выберите вид селекции: 1 - Бинарный турнир 2 - Пропорциональная"); selection = Console.ReadLine(); } while (selection != "1" && selection != "2"); do { if (pairSelection == "1") { populationSelector.ChooseBestPair(itemSetController.getSets()); } else { populationSelector.ChoosePair(itemSetController.getSets()); } Set[] childrens = new Set[CHILDS_COUNT]; int dividerPoint = rand.Next(1, ITERATION_COUNT - 1); Set[] bestPair = populationSelector.getPair(); for (int i = 0; i < childrens.Length; i++) { childrens[i] = crossover == "1" ? crossoverManager.DoubleCross(bestPair, itemSetController.getItems()) : crossoverManager.ClassicCross(bestPair, itemSetController.getItems(), dividerPoint); if (mutation == "1") { mutationManager.RandomMutation(childrens[i]); } else { mutationManager.InversionMutation(childrens[i]); } } populationSelector.NewPopulation(itemSetController.getSets(), selection == "1" ? selectionManager.BinaryTournament(childrens, CHILDS_COUNT / 2) : selectionManager.ProportionallySelection(childrens, CHILDS_COUNT / 2)); Console.WriteLine("Новая популяция:"); itemSetController.ShowSets(); populationSelector.ShowBestOf(itemSetController.getSets()); } while (!populationSelector.End(itemSetController.getSets(), 85) && populationSelector.getAge() != 10); Console.ReadKey(); }
public Genome Mutate(int type, float choose_probability, float amplitude_porcentage) { return(new Genome(Descriptors, MutationManager.GetInstance().Mutate(type, Gens, choose_probability, amplitude_porcentage))); }
public void mutate() { MutationManager mutation = new MutationManager(this); mutation.mutate(); }
void ChangeToMutation(string name) { MutationManager.SetMutationName(name); EventLogger.Log("ChangedScene|" + MutationManager.MutationName()); SceneManager.LoadScene("SplashScreen"); }
public List <GenDescriptor> GetGeneticDescriptor() { var descriptor = AutoEvolutionaryInformationGeneticDescriptor.ToList(); descriptor.AddRange(Enumerable.Repeat(new GenDescriptor("Mutation type prob", 0, 1, 0.001f), MutationManager.GetInstance().GetMutationTypes())); descriptor.AddRange(Enumerable.Repeat(new GenDescriptor("Apariation type prob", 0, 1, 0.001f), CrossOverManager.GetInstance().GetCrossOverTypes())); descriptor.AddRange(FitnessMatcherFabrik.GetGeneticDescriptor()); return(descriptor); }
static void Main(string[] args) { byte[] fileContet; using (WebClient client = new WebClient()) { fileContet = client.DownloadData("http://people.sc.fsu.edu/~jburkardt/datasets/tsp/p01_d.txt"); } String input = Encoding.UTF8.GetString(fileContet).Trim(); int i = 0, j = 0; string[] rows = input.Split('\n'); float [,] distancesVector = new float[rows.Length, rows.Length]; float maxPathLength = 0; foreach (var row in rows) { j = 0; foreach (var col in Regex.Split(row.Trim(), @"\s+")) { distancesVector[i, j] = float.Parse(col.Trim()); if (distancesVector[i, j] > maxPathLength) { maxPathLength = distancesVector[i, j]; } j++; } i++; } int nodes = rows.Length; //MutationManager.GetInstance().Register(new ClassicMutationResolver()); //MutationManager.GetInstance().Register(new SwapMutationResolver()); MutationManager.GetInstance().Register(new DividedMutation(nodes, new SwapMutationResolver(), new ClassicMutationResolver())); CrossOverManager.GetInstance().Register(new DividedCrossOver(nodes, new PMXCrossOver(), new ClassicCrossOverResolver())); CrossOverManager.GetInstance().Register(new DividedCrossOver(nodes, new CycleCrossOver(), new ClassicCrossOverResolver())); var fitnessMatcherFabrik = new AutoevolutionaryFitnessMatcherDefaultImplementationFabrik(); var GAInfo = new AutoevolutionaryGeneticAlgorithmParameters <TravelSalesmanIndividual, AutoevolutionaryFitnessMatcherDefaultImplementation> { IndividualFabrik = new TravelSalesmanPathIndividualFabrik(nodes), ScenarioGeneratior = new TravelSalesmanScenarioGenerator(distancesVector, nodes, maxPathLength), EvolutionaryInformationFabrik = new AutoEvolutionaryInformationFabrik <AutoevolutionaryFitnessMatcherDefaultImplementation>(fitnessMatcherFabrik), MaxPopulation = 100, InitialLives = 3, AprovedPorcentage = 0.5f, ApariateTournamentCount = 5, DeathTournamentCount = 6, ForeingersByGeneration = 10 }; var GA = new AutoEvolutionaryGeneticAlgorithm <TravelSalesmanIndividual, AutoevolutionaryFitnessMatcherDefaultImplementation>(GAInfo); //Console.Out.WriteLine(Arrays.PrettyPrintMatrix<float>(scenarioGenerator.DistancesVector)); for (int g = 0; g < 5000; g++) { GA.AdvanceGenerations(1); var bestIndividual = GA.Population.MaxBy(o => o.getNormalizedFitness()); Console.Out.WriteLine("Generation: " + GA.GenerationNumber); Console.Out.WriteLine("AVG apariate dominance porcentage: " + GA.Population.Average(o => o.EvolutionInformtaion.CrossOverGenDominancePorcentage)); Console.Out.WriteLine("Best apariate dominance porcentage: " + bestIndividual.EvolutionInformtaion.CrossOverGenDominancePorcentage); Console.Out.WriteLine("AVG mutate amplitude: " + GA.Population.Average(o => o.EvolutionInformtaion.MutateGenAmplitudePorcentage)); Console.Out.WriteLine("Best mutate amplitude: " + bestIndividual.EvolutionInformtaion.MutateGenAmplitudePorcentage); Console.Out.WriteLine("AVG mutate choose prob: " + GA.Population.Average(o => o.EvolutionInformtaion.MutateGenChooseProbability)); Console.Out.WriteLine("Best mutate choose prob: " + bestIndividual.EvolutionInformtaion.MutateGenChooseProbability); Console.Out.WriteLine("Best mutation type prob: " + bestIndividual.EvolutionInformtaion.MutationTypeProbability[0]); Console.Out.WriteLine("Best crossover type prob: " + bestIndividual.EvolutionInformtaion.CrossOverTypeProbability[0] + ", " + bestIndividual.EvolutionInformtaion.CrossOverTypeProbability[1]); Console.Out.WriteLine("Actual Population: " + GA.Population.Count); Console.Out.WriteLine("Best path: " + String.Join(",", bestIndividual.Individual.travelOrder)); Console.Out.WriteLine("Best fitness: " + bestIndividual.getNormalizedFitness()); TravelSalesmanFitness fitness = (TravelSalesmanFitness)(bestIndividual.Fitness); Console.Out.WriteLine("Best fitness: " + fitness.TotalDistance); } while (true) { Thread.Sleep(1000); } }
public int GetGenCount() { return(AutoEvolutionaryInformationGeneticDescriptor.Count + MutationManager.GetInstance().GetMutationTypes() + CrossOverManager.GetInstance().GetCrossOverTypes() + FitnessMatcherFabrik.GetGenCount()); }
public void ResetLastScene() { SceneManager.LoadScene(MutationManager.MutationName()); Debug.Log(MutationManager.MutationName()); }