我有一个模拟退火算法,我有一个像
result = w1*x1 + w2*x2 + ... + wn*xn
当w
选择新值时,模拟退火的每个循环如何确保总和w
等于1并且没有单个w
值小于0?
非常感谢大家!
使用NumPy.
那样,而不是result = w1*x1 + w2*x2 + ... + wn*xn
你能做到的result = np.dot(w, x)
.
你想要的条件w
似乎可能来自:
non_negative_w = np.abs(w) sum_w = np.sum(non_negative_w) normalized_non_negative_w = non_negative_w / sum_w