Created
June 29, 2012 04:41
-
-
Save alexsandro-xpt/3015805 to your computer and use it in GitHub Desktop.
Algoritmo genético TestCase
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.Collections.Generic; | |
using System.Linq; | |
using System.Text; | |
using System.Threading; | |
namespace AG1 { | |
class Program { | |
static bool bit; | |
static bool GerarLoco() | |
{ | |
//return t = !t; | |
Console.WriteLine("Escolhendo um valor aleatório"); | |
Thread.Sleep((new Random()).Next(30)); | |
int v = (new Random()).Next(); | |
if (v % 2 == 0) | |
return true && (bit = !bit); | |
else | |
return false && (bit = !bit); | |
} | |
static void Main(string[] args) | |
{ | |
List<Pais> listadePais = new List<Pais>(); | |
Genotipo gOlhos = new Genotipo("Olhos"); | |
var valorbioDiversidade = new bool[] {false, false, false}; | |
var nomeBioDiversidade = new KeyValuePair<int, string>(3, "Castanho"); | |
gOlhos.Fenotipo.Add(valorbioDiversidade, nomeBioDiversidade); | |
valorbioDiversidade = new bool[] {false, false, true}; | |
nomeBioDiversidade = new KeyValuePair<int, string>(4, "Verde"); | |
gOlhos.Fenotipo.Add(valorbioDiversidade, nomeBioDiversidade); | |
valorbioDiversidade = new bool[] {false, true, false}; | |
nomeBioDiversidade = new KeyValuePair<int, string>(5, "Azul"); | |
gOlhos.Fenotipo.Add(valorbioDiversidade, nomeBioDiversidade); | |
valorbioDiversidade = new bool[] { false, true, true }; | |
nomeBioDiversidade = new KeyValuePair<int, string>(6, "Amarelo"); | |
gOlhos.Fenotipo.Add(valorbioDiversidade, nomeBioDiversidade); | |
valorbioDiversidade = new bool[] { true, false, false }; | |
nomeBioDiversidade = new KeyValuePair<int, string>(7, "Vermelho"); | |
gOlhos.Fenotipo.Add(valorbioDiversidade, nomeBioDiversidade); | |
valorbioDiversidade = new bool[] { true, false, true }; | |
nomeBioDiversidade = new KeyValuePair<int, string>(8, "Branco"); | |
gOlhos.Fenotipo.Add(valorbioDiversidade, nomeBioDiversidade); | |
valorbioDiversidade = new bool[] { true, true, false }; | |
nomeBioDiversidade = new KeyValuePair<int, string>(9, "Cinza"); | |
gOlhos.Fenotipo.Add(valorbioDiversidade, nomeBioDiversidade); | |
valorbioDiversidade = new bool[] {true, true, true}; | |
nomeBioDiversidade = new KeyValuePair<int, string>(10, "Preto"); | |
gOlhos.Fenotipo.Add(valorbioDiversidade, nomeBioDiversidade); | |
Genotipo gEstrutura = new Genotipo("Estrutura"); | |
valorbioDiversidade = new bool[] {false, false}; | |
nomeBioDiversidade = new KeyValuePair<int, string>(3, "3 Membros"); | |
gEstrutura.Fenotipo.Add(valorbioDiversidade, nomeBioDiversidade); | |
valorbioDiversidade = new bool[] { false, true }; | |
nomeBioDiversidade = new KeyValuePair<int, string>(6, "2 Membros"); | |
gEstrutura.Fenotipo.Add(valorbioDiversidade, nomeBioDiversidade); | |
valorbioDiversidade = new bool[] { true, false }; | |
nomeBioDiversidade = new KeyValuePair<int, string>(10, "4 Membros"); | |
gEstrutura.Fenotipo.Add(valorbioDiversidade, nomeBioDiversidade); | |
Genotipo gMente = new Genotipo("Mente"); | |
valorbioDiversidade = new bool[] { false, false }; | |
nomeBioDiversidade = new KeyValuePair<int, string>(3, "Burro"); | |
gMente.Fenotipo.Add(valorbioDiversidade, nomeBioDiversidade); | |
valorbioDiversidade = new bool[] { true, true }; | |
nomeBioDiversidade = new KeyValuePair<int, string>(6, "Esperto"); | |
gMente.Fenotipo.Add(valorbioDiversidade, nomeBioDiversidade); | |
valorbioDiversidade = new bool[] { true, false }; | |
nomeBioDiversidade = new KeyValuePair<int, string>(10, "Inteligente"); | |
gMente.Fenotipo.Add(valorbioDiversidade, nomeBioDiversidade); | |
for (int n = 0; n < 10; n++) { | |
Cromossomo cromossomo1 = new Cromossomo(new bool[] { GerarLoco(), GerarLoco(), GerarLoco(), GerarLoco(), GerarLoco(), GerarLoco(), GerarLoco() }, new Genotipo[] { gOlhos, gEstrutura, gMente }); | |
Cromossomo cromossomo2 = new Cromossomo(new bool[] { GerarLoco(), GerarLoco(), GerarLoco(), GerarLoco(), GerarLoco(), GerarLoco(), GerarLoco() }, new Genotipo[] { gOlhos, gEstrutura, gMente }); | |
Pais pais = new Pais(cromossomo1, cromossomo2); | |
listadePais.Add(pais); | |
} | |
Cromossomo cromossomoVencedor = AlgoritmoGenetico.Evoluir(listadePais, 3, 20); | |
string melhor = "Nao achou"; | |
if (cromossomoVencedor != null) { | |
melhor = Cromossomo.Decodifica(cromossomoVencedor); | |
Console.WriteLine(cromossomoVencedor.Forca()); | |
} | |
Console.WriteLine(melhor); | |
Console.ReadKey(); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment