| Algorithm 1: Evolutionary algorithm for cell trap design |
|
input: params = set of hyperparameters for evolutionary algorithm (population size, number of populations, etc) constraints = set of constraints for cell trap output: Best found cell trap design ▸Generate random initial population pop←InitPopulation(params.pop_size, constraints) while not IsFinished(params.num_pop) do offsprings←Reproduce(pop, constraints) pop.fitness←Fitness(pop, constraints) pop←TournamentSelection(offsprings) return Best(pop) procedure Reproduce: input: pop, constraints output: offsprings while not Validate(constraints) modify cell traps designs offsprings←Crossover (pop) offsprings←Mutation (pop) return offsprings procedure Fitness: input: pop, constraints output: fitness values for each individual fitnesses={} for ind in pop: if Validate(individual, constraints) run sim for cell trap described in genotype fitnesses[ind]←COMSOL_Sim(ind) else fitnesses[ind]←0 return fitnesses |