我将使用遗传算法训练一些机器人玩一个简单的游戏。我想用一个常量元组来表示每个基因,理想情况下每个基因运行如此(伪代码):
#robot
genes = [(4,5,2,...),...]
actions = (move_left,move_forward...)
data = [my_x,my_y]
memory = [6,5,9,-2,...]
cpr = ('>','<','==')
agn = ('+=','-=','=')
def execute_gene(gene):
if (data+memory)[gene[0]] cpr[gene[1]] (data+memory)[gene[2]]:
if gene[3] >= 0: memory[gene[4]] agn[gene[5]] (data+memory+[1,2,3])
exc = (genes+actions)[gene[6]]
if type(exc) == 'tuple': execute_gene(exc)
else: exc()
当然,这很奇怪我会尝试比较并使用字符串而不是运算符来分配我的变量。那么我可以在哪些方面操纵表达式以及如何操作?