-
Notifications
You must be signed in to change notification settings - Fork 0
/
Individuo.class.php
46 lines (38 loc) · 1.18 KB
/
Individuo.class.php
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
<?php
/*
* Classe que represata os individuos da populacao
* @atributo $coordenadas array
* @atributo $aptiodao double
*/
class Individuo {
// Representa as coordenadas x, y no plano cartesiano
public $coordenadas = [0,0];
// Aptidao do individuo
public $aptidao = 0;
// posicao do individuo dentro da populacao
// public $index;
/*
* Metodo constructor, para inicialiar um individuo
* @atributos $coordenadas array
* @atributos $aptidao double
*/
public function __construct($coordenadas, $mapa){
$this->coordenadas = $coordenadas;
$this->aptidao = $this->aptidao($mapa);
}
/*
* Calcula a aptidao do individuo
* @retorno $aptidao double
*/
public function aptidao($mapa){
foreach($mapa as $bairro){
$this->aptidao += $bairro->frequencia * ( sqrt( (pow($bairro->coordenadas[0] - $this->coordenadas[0], 2) ) + ( pow($bairro->coordenadas[1] - $this->coordenadas[1], 2) ) ) );
}
return round($this->aptidao, 2);
}
/*
* Calcula a aptidao do individuo
*/
public function mutacao(){
}
}