/// <summary> /// Construtor /// </summary> /// <param name="funcao"></param> /// <param name="saida"></param> public Molecule(int funcao, ParameterMolecule saida) { _function = funcao; _function = 10; _input = null; _levelsBack = 0; _output = saida; }
/// <summary> /// Construtor /// </summary> /// <param name="funcao"></param> /// <param name="saida"></param> public Molecule(int funcao, ParameterMolecule saida) { _function = funcao; _function = 10; _input = null; _levelsBack = 0; _output = saida; }
/// <summary> /// /// </summary> /// <param name="funcao">5 - INV, 6 - AND, 7 - XOR , 8 - OR, 9 - ADD, 10 - INPUT, 11 - OUTPUT</param> /// <param name="entrada">Caso Seja um "INPUT", passar null, do mais, passar as entradas que estao sendo recebidas</param> /// <param name="saida"></param> public Molecule(int funcao, int[] entrada, ParameterMolecule saida) { _function = funcao; if (entrada == null) _function = 10; else _input = (int[])entrada; _output = saida; }
/// <summary> /// /// </summary> /// <param name="funcao">5 - INV, 6 - AND, 7 - XOR , 8 - OR, 9 - ADD, 10 - INPUT, 11 - OUTPUT</param> /// <param name="entrada">Caso Seja um "INPUT", passar null, do mais, passar as entradas que estao sendo recebidas</param> /// <param name="saida"></param> public Molecule(int funcao, int[] entrada, ParameterMolecule saida) { _function = funcao; if (entrada == null) { _function = 10; } else { _input = (int[])entrada; } _output = saida; }
/// <summary> /// Cartesian Genetic Programming /// </summary> /// <param name="n"> Linhas de moleculas </param> /// <param name="m"> Colunas de Moleculas </param> /// <param name="w"> Tamanho do dado (data width) </param> /// <param name="p"> Quantidade de nos intermediarios (level back parameter) (Geralmente, numero de colunas -1 )</param> public CGP(int n, int m, int w, int p, int[] genotype, ParameterMolecule[] output, ParameterMolecule[] input) { _genotype = genotype; _digitalCircuit = new Molecule[n, m]; _input = input; _output = output; linha = n; coluna = m; palavra = w; //Instanciando a matriz que representa o circuito genericamente for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { //Contador ID é por coluna _digitalCircuit[j, i] = new Molecule(6, new int[w], new ParameterMolecule(((linha * 4) + j + (i * linha)), false)); } } //Constroi o Circuito a partir do GENE Passado BuilCircuitFromGene(); }