PytLab / gaft

A Genetic Algorithm Framework in Python (not for production level)
http://gaft.readthedocs.io/
GNU General Public License v3.0
739 stars 218 forks source link

sum_fit maybe is 0 that causes error:ZeroDivisionError: float division by zero #48

Closed wkailiu closed 5 years ago

wkailiu commented 5 years ago

roulette_wheel_selection.py line 34: sum_fit = sum(fit) wheel = list(accumulate([i/sum_fit for i in fit]))

wkailiu commented 5 years ago

my solution:

sum_fit = sum(fit) if sum_fit != 0.0: wheel = list(accumulate([i/sum_fit for i in fit])) else: wheel = [0.0 for i in fit] wheel[len(wheel) - 1] = 1.0

gongyongq commented 5 years ago

my solution:

sum_fit = sum(fit) if sum_fit != 0.0: wheel = list(accumulate([i/sum_fit for i in fit])) else: wheel = [0.0 for i in fit] wheel[len(wheel) - 1] = 1.0

这个框架好Low,功能单一,速度还贼慢,远远不及pymoo等权威框架。我折腾了很久,弃坑了。说多了都是泪啊。

xeden3 commented 4 years ago

我也发现这个大坑了,只要是fit回来的值都是一样的,sum_fit就是zero