Skip to content
Snippets Groups Projects
Commit 9915f56d authored by Nihama Sandra Ayumi's avatar Nihama Sandra Ayumi
Browse files

croisement corrected

parent a3c91feb
No related branches found
No related tags found
No related merge requests found
No preview for this file type
No preview for this file type
No preview for this file type
......@@ -18,7 +18,7 @@ ROT_TABLE = {\
"TA": [36, 0.9, 0, 1.1, 2, 0],\
"TC": [36.9, 5.3, -120, 0.9, 6, 0],\
"TG": [34.5, 3.5, 64, 0.9, 34, 0],\
"TT": [35.62, 7.2, 154, 0.06, 0.6, 0]\
"TT": [35.62, 7.2, -154, 0.06, 0.6, 0]\
}
......@@ -26,30 +26,71 @@ def croisement_un_point(parent1, parent2):
enfant1 = Individu(RotTable())
enfant2 = Individu(RotTable())
comp = 0
point_crois= numpy.random.random_integers(0,16)
point_crois= numpy.random.random_integers(0,8)
for doublet in ROT_TABLE:
if doublet == "GA":
break
if comp < point_crois:
enfant1.table.rot_table[doublet] = parent1.table.rot_table[doublet]
correspondent_doublet1 = enfant1.table.corr()[doublet]
enfant1.table.rot_table[correspondent_doublet1] = parent1.table.rot_table[correspondent_doublet1]
enfant1.table.rot_table[correspondent_doublet1][2] *= -1
enfant2.table.rot_table[doublet] = parent2.table.rot_table[doublet]
correspondent_doublet2 = enfant2.table.corr()[doublet]
enfant2.table.rot_table[correspondent_doublet2] = parent2.table.rot_table[correspondent_doublet2]
enfant2.table.rot_table[correspondent_doublet2][2] *= -1
else :
enfant1.table.rot_table[doublet] = parent2.table.rot_table[doublet]
correspondent_doublet1 = enfant1.table.corr()[doublet]
enfant1.table.rot_table[correspondent_doublet1] = parent2.table.rot_table[correspondent_doublet1]
enfant1.table.rot_table[correspondent_doublet1][2] *= -1
enfant2.table.rot_table[doublet] = parent1.table.rot_table[doublet]
correspondent_doublet2 = enfant2.table.corr()[doublet]
enfant2.table.rot_table[correspondent_doublet2] = parent1.table.rot_table[correspondent_doublet1]
enfant2.table.rot_table[correspondent_doublet2][2] *= -1
comp += 1
return enfant1, enfant2
def croisement_deux_points(parent1, parent2):
enfant1 = RotTable()
enfant2 = RotTable()
enfant1 = Individu(RotTable())
enfant2 = Individu(RotTable())
comp = 0
point_crois1= numpy.random.random_integers(0,16)
point_crois2= numpy.random.random_integers(0,16)
point_crois1= numpy.random.random_integers(0,8)
point_crois2= numpy.random.random_integers(0,8)
for doublet in ROT_TABLE:
if comp < min(point_crois1,point_crois2) or comp > max(point_crois1,point_crois2):
enfant1.rot_table[doublet] = parent1.rot_table[doublet]
enfant2.rot_table[doublet] = parent2.rot_table[doublet]
enfant1.table.rot_table[doublet] = parent1.table.rot_table[doublet]
correspondent_doublet1 = enfant1.table.corr()[doublet]
enfant1.table.rot_table[correspondent_doublet1] = parent1.table.rot_table[correspondent_doublet1]
enfant1.table.rot_table[correspondent_doublet1][2] *= -1
enfant2.table.rot_table[doublet] = parent2.table.rot_table[doublet]
correspondent_doublet2 = enfant2.table.corr()[doublet]
enfant2.table.rot_table[correspondent_doublet2] = parent2.table.rot_table[correspondent_doublet2]
enfant2.table.rot_table[correspondent_doublet2][2] *= -1
else :
enfant1.rot_table[doublet] = parent2.rot_table[doublet]
enfant2.rot_table[doublet] = parent1.rot_table[doublet]
enfant1.table.rot_table[doublet] = parent2.table.rot_table[doublet]
correspondent_doublet1 = enfant1.table.corr()[doublet]
enfant1.table.rot_table[correspondent_doublet1] = parent2.table.rot_table[correspondent_doublet1]
enfant1.table.rot_table[correspondent_doublet1][2] *= -1
enfant2.table.rot_table[doublet] = parent1.table.rot_table[doublet]
correspondent_doublet2 = enfant2.table.corr()[doublet]
enfant2.table.rot_table[correspondent_doublet2] = parent1.table.rot_table[correspondent_doublet1]
enfant2.table.rot_table[correspondent_doublet2][2] *= -1
comp += 1
return enfant1, enfant2
\ No newline at end of file
return enfant1, enfant2
# parent1 = Individu(RotTable())
# parent2 = Individu(RotTable())
# print("parent1: ", parent1.table.rot_table)
# print("parent2: ", parent2.table.rot_table)
# enfant1, enfant2 = croisement_un_point(parent1, parent2)
# print("enfant1: ", enfant1.table.rot_table)
# print("enfant2: ", enfant2.table.rot_table)
\ No newline at end of file
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