-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpopulacao.py
35 lines (30 loc) · 1.01 KB
/
populacao.py
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
import random
class Populacao:
def __init__(self, populacao):
self.populacao = populacao
self.size = len(populacao)
self.acumulado = 0
self.selecionado = ''
self.selecionados = []
def calcular_acumulado(self):
self.acumulado = 0
for time in self.populacao:
self.acumulado += time.fit
time.acumulado = self.acumulado
def selecionar_melhor(self):
self.selecionado = self.populacao[0]
for time in self.populacao:
if time.fit > self.selecionado.fit:
self.selecionado = time
return self.selecionado
def selecionar_individuos(self):
self.selecionados = []
i = 0
while(i < self.size):
i += 1
randomNumber = random.uniform(0.0, self.acumulado)
for time in self.populacao:
if time.acumulado > randomNumber:
self.selecionados.append(time)
break
return self.selecionados