如何将向量归一化以求和为某个值?
How can I normalize a vector to sum to a certain value?
我一直在尝试寻找解决方案,但没有找到任何有用的东西。我想了解 :
如何规范化一个向量,使其总和为某个值?
我正在尝试重现论文的结果:
设计像人类代理人一样行事的人类代理人:有限理性的行为方法 W.Brian Arthur(1991)。
本文第354页提到了四点,我的疑惑仅限于第四点。我不明白如何计算第 4 个点。
为了方便起见,我将在前面的 3 点之前写下整个第 4 点。
问题描述:
存在 N 个动作集,从 1 到 N。强度向量 S_t 与每个时间 't' 的每个动作相关联。这些强度的当前总和为 C_t(S_t 的分量总和)并且初始向量 S_0 严格为正。概率 p_t 表示代理在时间 t 采取行动 1 到 N 的概率。
在每个时间 t,智能体:
1. 计算概率向量作为与每个动作相关的相对强度。它设置,p_t = (S_t/C_t)
根据概率p_t从集合中选择一个动作并触发该动作。
观察收到的收益并通过将所选动作 j 的收益添加到动作 j 的强度来更新强度。也就是说,在选择动作 j 的情况下,它将强度设置为 S_t + beta。其中,beta = payoff(j)*e_j
(e_j为第j个单位向量)
重新归一化强度以求和为预先选择的时间序列中的值。在这种情况下,它将强度重新归一化为 C_t = C*t。
(其中 t 也可以提高到值 v)
问题:我不明白如何将强度重新归一化为总和?
此外,我已经阅读了这篇discussion:
所以你真的只需要确定向量的分量和是X就可以了,很简单
如果我们有一个向量V = [a, b, c, d]
,它的分量和S
当然是S = a+b+c+d
。如果这必须加起来等于值 X
,那么我们可以简单地将两边乘以 X
得到 S*X = (a+b+c+d)*X
,将 S 移到另一边得到 X = (a+b+c+d)*X/S
。
所以现在我们知道如何得到 X:向量的每一部分都必须与 X 相乘,然后除以当前分量之和:
a' = a*X/S
b' = a*X/S
c' = a*X/S
d' = a*X/S
然后我们得到新的向量V' = [a', b', c', d']
,其分量和将为X
,相对权重不变。
我一直在尝试寻找解决方案,但没有找到任何有用的东西。我想了解 :
如何规范化一个向量,使其总和为某个值?
我正在尝试重现论文的结果: 设计像人类代理人一样行事的人类代理人:有限理性的行为方法 W.Brian Arthur(1991)。
本文第354页提到了四点,我的疑惑仅限于第四点。我不明白如何计算第 4 个点。
为了方便起见,我将在前面的 3 点之前写下整个第 4 点。
问题描述:
存在 N 个动作集,从 1 到 N。强度向量 S_t 与每个时间 't' 的每个动作相关联。这些强度的当前总和为 C_t(S_t 的分量总和)并且初始向量 S_0 严格为正。概率 p_t 表示代理在时间 t 采取行动 1 到 N 的概率。
在每个时间 t,智能体: 1. 计算概率向量作为与每个动作相关的相对强度。它设置,p_t = (S_t/C_t)
根据概率p_t从集合中选择一个动作并触发该动作。
观察收到的收益并通过将所选动作 j 的收益添加到动作 j 的强度来更新强度。也就是说,在选择动作 j 的情况下,它将强度设置为 S_t + beta。其中,beta = payoff(j)*e_j (e_j为第j个单位向量)
重新归一化强度以求和为预先选择的时间序列中的值。在这种情况下,它将强度重新归一化为 C_t = C*t。 (其中 t 也可以提高到值 v)
问题:我不明白如何将强度重新归一化为总和?
此外,我已经阅读了这篇discussion:
所以你真的只需要确定向量的分量和是X就可以了,很简单
如果我们有一个向量V = [a, b, c, d]
,它的分量和S
当然是S = a+b+c+d
。如果这必须加起来等于值 X
,那么我们可以简单地将两边乘以 X
得到 S*X = (a+b+c+d)*X
,将 S 移到另一边得到 X = (a+b+c+d)*X/S
。
所以现在我们知道如何得到 X:向量的每一部分都必须与 X 相乘,然后除以当前分量之和:
a' = a*X/S
b' = a*X/S
c' = a*X/S
d' = a*X/S
然后我们得到新的向量V' = [a', b', c', d']
,其分量和将为X
,相对权重不变。