# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE’S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid “” msgstr “” “Project-Id-Version: test 1.0.0\n” “POT-Creation-Date: 2009-04-17 09:27+0900\n” “PO-Revision-Date: 2009-04-17 09:27+0900\n” “Last-Translator: FULL NAME \n” “Language-Team: LANGUAGE \n” “MIME-Version: 1.0\n” “Content-Type: text/plain; charset=UTF-8\n” “Content-Transfer-Encoding: 8bit\n” “Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n”
acts_as_state_machine :initial => :pending state :passive state :pending, :enter => :make_activation_code state :active, :enter => :do_activate state :suspended state :deleted, :enter => :do_delete
iPodの大ヒットを見ても分かるように、これからの一般消費者に向けたサービスではアップル的な「垂直統合」が非常に重要だと思います。あのマイクロソフトも音楽配信においては「Plays For Sure」による水平統合がうまくいかず、「Zune」などによる垂直統合へと方針を変えたようです。デバイス製品単体だけではなく、その周囲にあるコンテンツ・ネットサービス・実店舗などを一体化したユーザー体験を提供していく企業こそ、今後のデジタルライフスタイル時代では消費者に受け入れられるのだと思います。そういう意味で、Kindleというデバイスが出てきたことは非常に興味深いと考えます。
class fWrapper:
def __init__(self,function,child_count,name,params,type):
self.function = function
self.child_count = child_count
self.name = name
self.params = params
self.type = type
paramsとtypeを指定して、パラメタ、戻り値の型を指定できるように修正。
def make_random_tree(pc,max_depth=4,fpr=0.5,ppr=0.6,type='object'):
if random() < fpr and max_depth > 0:
f = choice(flist[type])
children = [make_random_tree(pc,max_depth-1,fpr,ppr,type=t) for t in f.params]
return node(f,children)
elif random() < ppr and type == 'int':
return paramNode(randint(0,pc-1))
elif type == 'object':
return constNode(choice(['','fizz','buzz','fizzbuzz',randint(0,100)]));
elif type == 'string':
return constNode(choice(['','fizz','buzz','fizzbuzz']))
else:
return constNode(randint(0,100))
こちらもchildrenを作成するときに戻り値の型を指定するように修正。
mutateとcrossoverも同様の修正をしています。
定数ノードではfizz,buzz,fizzbuzzの文字を発生させる様に修正してます。
本当は文字列もランダムで発生させたかったのですが、進化にかかる時間が増えるので少し手抜きしました。
def write_jpeg(tree):
stack = [tree]
g = pydot.Dot()
root = True
while len(stack) > 0:
node = stack.pop()
parent_node = pydot.Node(node.name+"_"+str(id(node)))
parent_node.set_label(node.name)
if root:
g.add_node(parent_node)
root = False
if hasattr(node,"children"):
for child in node.children:
stack.append(child)
child_node = pydot.Node(child.name+"_"+str(id(child)))
child_node.set_label(child.name)
g.add_node(child_node)
g.add_edge(pydot.Edge(parent_node,child_node))
g.write_jpeg('tree.jpg',prog='dot')