Esempio n. 1
0
 public Populacao(int numGenes, int tamanhoPopulacao, EnumeradorDeLocalizacaoDoIndividuo localizacaoInicial) : this()
 {
     for (int i = 0; i < tamanhoPopulacao; i++)
     {
         Individuos.Add(new Individuo(numGenes, localizacaoInicial));
     }
 }
Esempio n. 2
0
 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)));
     }
 }
Esempio n. 3
0
        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));
            }
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        public EnumeradorDeResultadoDaMovimentacao CalcularPenalidade(EnumeradorDeMovimentoDoIndividuo movimentoDoPonto, EnumeradorDeLocalizacaoDoIndividuo localizacaoAtual)
        {
            var localizacoesInvalidas = movimentosInvalidos[movimentoDoPonto];

            if (localizacoesInvalidas.TryGetValue(localizacaoAtual, out EnumeradorDeResultadoDaMovimentacao resultado))
            {
                return(resultado);
            }
            else
            {
                return(EnumeradorDeResultadoDaMovimentacao.Valido);
            }
        }
Esempio n. 6
0
 public async Task DefinirLocalizacao(Individuo individuo)
 {
     local = individuo.Localizacao;
     await _servicoDeAtualizacaoDeInterface.AtualizarLocalizacao(this);
 }