我有3个动作及其概率:
walk:5
talk:1
run:2
我需要做所有的事。你知道吗
但最重要的行动应该(但不是必须)首先执行,而且只能执行一次。你知道吗
所以在谈话之前,散步有5倍的机会被处死。你知道吗
而且,如果以前从未执行过walk,我也不能跑。你知道吗
我目前的解决方案是昂贵的,但它的工作。现在我编写一个列表,第一个操作将插入列表的开头:
actions_poll = ['walk']*5 + ['run']*2 + ['talk']*1
flow_control= []
while len(flow_control) != 3:
action = roll one action from action pool
if action not in flow_control:
* check if action is run and walk is in flow control
flow_control.append(action)
我猜在actions\u poll中使用一个带有amount的列表不是最好的方法,当walk为5000,talk为1时,循环可以运行很长时间。你知道吗
建议?你知道吗
可以使用
np.random.choice
根据动作的概率对动作进行采样(使用参数p=
),并使用set
检查是否对所有动作进行了采样,如下所示如果您想让您的
flows_decision
成为一个独特决策的列表,只需执行以下操作:相关问题 更多 >
编程相关推荐