Skip to content
Snippets Groups Projects
Commit 8b043ea3 authored by Boucaut Marius's avatar Boucaut Marius
Browse files

fiiix

parent c400affd
No related branches found
No related tags found
No related merge requests found
ALPHA = 3
p = 0.2
Pm = 0.3
size = 32
nb_iter = 10
size = 1024
nb_iter = 100
AGRANDISSEMENT = 5
nom_selection = "selection_roulette"
nom_croisement = "croisement_milieu"
......
......@@ -83,7 +83,7 @@ class RotTable:
self.dist_carre = (xf-x0)**2 + (yf-y0)**2 + (zf-z0)**2
return math.sqrt(self.dist_carre)
def evaluate(self, molecule): # renvoie la distance au carrée séparant les deux extrémités de la molecule telle que générée par la table self
def evaluate(self, molecule):
traj = Traj3D(False)
traj.compute(molecule+molecule[:AGRANDISSEMENT], self)
......@@ -112,6 +112,7 @@ class RotTable:
traj = Traj3D(False)
double_molecule = molecule+molecule
traj.compute(double_molecule, self)
res = 0
n = len(traj.getTraj())//2
for i in range(0, n, pas):
x0 = traj.getTraj()[i][0]
......@@ -120,7 +121,7 @@ class RotTable:
xf = traj.getTraj()[n+i][0]
yf = traj.getTraj()[n+i][1]
zf = traj.getTraj()[n+i][2]
res = res + ((xf-x0)**2 + (yf-y0)**2 + (zf-z0)**2)(1/2)
res = res + ((xf-x0)**2 + (yf-y0)**2 + (zf-z0)**2)**(1/2)
return res/(n//pas)
def copy(self):
......@@ -186,7 +187,7 @@ class RotTable:
def mutate_v3(self, molecule):
Pm = 0.2 # à choisir dans [0,001 ; 0,01]
score = max(self.evaluate(molecule)/(35879836.7637*AGRANDISSEMENT), 1)
score = max(self.evaluate(molecule)/(6000*AGRANDISSEMENT), 1)
parametre_preced = self.getTable()
for selected_gene in List_of_genes:
......
......@@ -278,9 +278,10 @@ if __name__ == "__main__":
# evolution_fitness()
'''
fitness_size()
main()
test_opt()
tests_croisements()
tests_selection()
'''
generation()
'''
main()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment