-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathIndividuo.h
executable file
·60 lines (48 loc) · 1.39 KB
/
Individuo.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#ifndef INDIVIDUO_H_INCLUDED
#define INDIVIDUO_H_INCLUDED
#include <cmath>
#include <iostream>
#include <stdlib.h>
#include<vector>
#include<random>
// Genes válidos
const int GENES[2] = {0,1};
class Individuo
{
private:
int* cromossomo;
double fitness;
public:
static int BITS_SIZE;
static int min;
static int max;
static int POPULATION_SIZE;
static double param[4];
int*getCromossomo();
double getFitness();
void setFitness(double x);
void setCromossomo(int*x);
Individuo(int* cromossomo );
Individuo cruzar(Individuo parent2);
//Retorna o número diretamente a direita do x passado
int*maiorC();
//Retorna o número diretamente a esquerda do x passado
int*menorC();
double cal_fitness();
int getBitsSize();
//Sobrecarga do operador <
friend bool operator<(const Individuo &ind1, const Individuo &ind2);
friend int* criar_gnoma();
friend double converte_gray_dec(int*gray);
friend int* converte_dec_gray(double x);
friend Individuo melhor(std::vector<Individuo> pop);
};
double converte_gray_dec(int*gray);
Individuo melhor(std::vector<Individuo> pop);
int num_aleatorio(int start, int end);
int* converte_dec_gray(double x);
int genes_mutados();
int* criar_gnoma();
bool testeDerivada(double x);
bool igualZero(double x);
#endif // INDIVIDUO_H_INCLUDED