public Populacao(int numGenes, int tamanhoPopulacao, EnumeradorDeLocalizacaoDoIndividuo localizacaoInicial) : this() { for (int i = 0; i < tamanhoPopulacao; i++) { Individuos.Add(new Individuo(numGenes, localizacaoInicial)); } }
public Individuo(int numeroDeGenes, EnumeradorDeLocalizacaoDoIndividuo localizacao) { Localizacao = localizacao; Genes = new List <EnumeradorDeMovimentoDoIndividuo>(); for (int i = 0; i < numeroDeGenes; i++) { var valoresPossiveis = Enum.GetValues(typeof(EnumeradorDeMovimentoDoIndividuo)); Random random = new Random(); Genes.Add((EnumeradorDeMovimentoDoIndividuo)valoresPossiveis.GetValue(random.Next(valoresPossiveis.Length))); } }
public Individuo(IList <EnumeradorDeMovimentoDoIndividuo> genes, EnumeradorDeLocalizacaoDoIndividuo localizacao, decimal taxaDeMutacao) { Localizacao = localizacao; Genes = genes; if (new Random().NextDouble() <= (double)taxaDeMutacao) { var valoresPossiveis = Enum.GetValues(typeof(EnumeradorDeMovimentoDoIndividuo)); int geneAleatorio = new Random().Next(0, 5); Genes[geneAleatorio] = (EnumeradorDeMovimentoDoIndividuo)valoresPossiveis.GetValue(new Random().Next(valoresPossiveis.Length)); } }
public async Task CriarPonto() { Name = "Ponto"; Content = "P"; Width = 30; Height = 30; Margin = new Thickness(0, 21, 0, 0); Foreground = new SolidColorBrush(Colors.White); Background = new SolidColorBrush(Colors.Black); HorizontalAlignment = HorizontalAlignment.Center; VerticalAlignment = VerticalAlignment.Center; local = _algoritimoGenetico.Inicio; await _servicoDeAtualizacaoDeInterface.AtualizarLocalizacao(this); }
public EnumeradorDeResultadoDaMovimentacao CalcularPenalidade(EnumeradorDeMovimentoDoIndividuo movimentoDoPonto, EnumeradorDeLocalizacaoDoIndividuo localizacaoAtual) { var localizacoesInvalidas = movimentosInvalidos[movimentoDoPonto]; if (localizacoesInvalidas.TryGetValue(localizacaoAtual, out EnumeradorDeResultadoDaMovimentacao resultado)) { return(resultado); } else { return(EnumeradorDeResultadoDaMovimentacao.Valido); } }
public async Task DefinirLocalizacao(Individuo individuo) { local = individuo.Localizacao; await _servicoDeAtualizacaoDeInterface.AtualizarLocalizacao(this); }