集合知プログラミング5章のサンプルプログラム修正パッチ
4章に続いて5章でも、サンプルプログラムをそのまま起動させるとエラーが発生してしまうので、修正パッチを作成しました。
とはいっても、遺伝的アルゴリズムの部分だけですが…。
diff --git a/ColIntel/chapter5/optimization.py b/ColIntel/chapter5/optimization.py index 3d00174..90b8419 100755 --- a/ColIntel/chapter5/optimization.py +++ b/ColIntel/chapter5/optimization.py @@ -12,7 +12,7 @@ people = [('Seymour','BOS'), destination='LGA' flights={} -# +# Read flight schedule file for line in file('schedule.txt'): origin,dest,depart,arrive,price=line.strip().split(',') flights.setdefault((origin,dest),[]) @@ -156,6 +156,8 @@ def geneticoptimize(domain,costf,popsize=50,step=1, return vec[0:i]+[vec[i]-step]+vec[i+1:] elif vec[i]<domain[i][1]: return vec[0:i]+[vec[i]+step]+vec[i+1:] + else: + return vec # Crossover Operation def crossover(r1,r2):
ざっくりな解説
mutate関数ではNoneを返してはならないのに、random.random()<0.5かつvec[i]