-
Notifications
You must be signed in to change notification settings - Fork 0
/
randomBreeding.py
24 lines (22 loc) · 1.04 KB
/
randomBreeding.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
import naturalSelection as ns
def generateRandomBreeding(fileObj):
def firstGeneration():
return ns.simsFrame(populationSize = 100, mutator = ns.oneDominantAlleleMutator)
def nextGeneration(nextFrame):
return nextFrame(migrator = ns.wandererMigrator, breeder = ns.simpleProximityBreeder)
ns.generatePopulation(fileObj, 10, firstGeneration, nextGeneration)
def generateMutationBreeding(fileObj):
def firstGeneration():
return ns.simsFrame(populationSize = 10, mutator = ns.oneDominantAlleleMutator)
def nextGeneration(nextFrame):
return nextFrame(migrator = ns.wandererMigrator, breeder = ns.simpleProximityBreeder)
ns.generatePopulation(fileObj, 3, firstGeneration, nextGeneration)
randomBreeding = "data/randomBreeding"
solutions = []
for i in range(10):
with open(randomBreeding + str(i), 'w') as fileObj:
generateRandomBreeding(fileObj)
with open(randomBreeding + str(i), 'r') as fileObj:
simulation = ns.loadGraph(fileObj)
solutions.append(ns.MRCA(simulation)[1])
print solutions