运行进化算法实验的工具
natural-selection的Python项目详细描述
自然选择
,(*
@@
*@ @@% *@
*@ @@ %@ @
@@/ @@ @@ @@
@@@(,@( @/ @@@@@@@&@@@@@
@ @& @@ /@@@#
/@ @@ ,@@ @@
,@@ @@ @@ @
%@@@ @@ @@@@@@@@@@@@@
,, @ @@ @@ &@@@
%@@ @@ &@@ @@
@%@@ &@@ @
,@,%@@
@@@@@@
_ _
_ __ __ _| |_ _ _ _ __ __ _| |
| '_ \ / _` | __| | | | '__/ _` | |
| | | | (_| | |_| |_| | | | (_| | |
|_| |_|\__,_|\__|\__,_|_| \__,_|_|
_ _ _
___ ___| | ___ ___| |_(_) ___ _ __
/ __|/ _ \ |/ _ \/ __| __| |/ _ \| '_ \
\__ \ __/ | __/ (__| |_| | (_) | | | |
|___/\___|_|\___|\___|\__|_|\___/|_| |_|
by Zipfian Science
由Zipfian Science创建和运行进化算法(EA)实验的Python工具。在
有关文档,请参阅docs。在
源位于GitHub。在
安装
^{pr2}$和使用
importrandomfromnatural_selection.gaimportGene,Genome,Individual,Island# Create a geneg_1=Gene(name="test_int",value=3,gene_max=10,gene_min=1,rand_type_func=random.randint)g_2=Gene(name="test_real",value=0.5,gene_max=1.0,gene_min=0.1,rand_type_func=random.random)# Add a list of genes to a genomegen=Genome([g_1,g_2])# Next, create an individual to carry these genes and evaluate themfitness_function=lambdagen,x,y:gen[0].value*x+yadam=Individual(fitness_function,name="Adam",genome=gen)# Now we can create an island for running the evolutionary process# Notice the fitness function parameters are given here.params=dict()params['x']=0.5params['y']=0.2isolated_island=Island(function_params=params)# Using a single individual, we can create a new populationisolated_island.create(adam,population_size=5)# And finally, we let the randomness of life do its thing: optimisebest_individual=isolated_island.evolve_generational(n_generations=5)# After running for a few generations, we have an individual with the highest fitnessfitness=best_individual.fitnessgenes=best_individual.genomeforgeneingenes:print(gene.name,gene.value)
释放
- 日期:2020-12-07
- 版本:0.1.1
- 项目
标签: