一気につくろうと思うと気が遠くなるとおもいましたので、小分けにしてしてつくろうと思います。
まず最初に作るのは、遺伝子の設計です。
遺伝子は構想の時も書いたともうのですが、もう一度整理して書きます。
まず個体数は任意です。(仮に50としておきます。)
それぞれの個体に遺伝子を持たせるのですが、
一つの遺伝子で売り買いを両方共コントールするのは難しいと思いましたので、
1個体に2つの遺伝子をもたせます。
遺伝子はそれぞれ売りと買いをコントロールします。
どんな遺伝子をもたせるかというと、
0日前と1日前の上がり下がり、
1日前と2日前の上がり下がり、
.
.
.
34日前と55日前の上がり下がり、
55日前と89日前の上がり下がり、
を上がったら1下がったら0とします。
結局のところは0と1の配列を2つ作ります。
これがそれぞれ活性化したら売り、または買いを発動させるのですが、
それはまた評価関数を作るところで見ていこうと思います。
今回はここまでを作ります。
import random
def main():
#遺伝子の初期化
popSize = 50 #個体数
geanLength = 10 #遺伝子長さ
pop = [] #個体
popGroup = []
kaiGean = [] #買い遺伝子
uriGean = [] #売り遺伝子
enki = 0 #0or1
for i in range(popSize):
for j in range(geanLength):
enki = random.randint(0,1)
kaiGean.append(enki)
for j in range(geanLength):
enki = random.randint(0,1)
uriGean.append(enki)
pop.append(list(kaiGean))
pop.append(list(uriGean))
kaiGean =[]
uriGean = []
popGroup.append(list(pop))
pop =[]
print popGroup
#遺伝子の初期化
if __name__ == '__main__':
main()
これで遺伝子を2つ持つ個体が50個できたと思います。
では次回は肝心な評価関数をつくろうと思います。
0 件のコメント:
コメントを投稿