一、算法步骤
1.使用配置权重初始化每个实例的当前权重,并计算出权重和 sum; |
2.选择实例中当前权重最大的实例进行调用,将其权重减去 sum ,并记录各个实例的对应权重 Wi`; |
3.分别将每个实例的权重Wi`与对应的配置权重求和作为新的当前权重; |
4.循环执行步骤2、3; |
二、下面以A、B、C三个实例,对应的配置权重为5、2、1举个例子;
序号 | A | B | C | sum | A` | B` | C` | 调用 | |||
1 | 5 | 2 | 1 | 8 | -3 | 2 | 1 | A | |||
2 | 2 | 4 | 2 | 8 | 2 | -4 | 2 | B | |||
3 | 7 | -2 | 3 | 8 | -1 | -2 | 3 | A | |||
4 | 4 | 0 | 4 | 8 | -4 | 0 | 4 | A | |||
5 | 1 | 2 | 5 | 8 | 1 | 2 | -3 | C | |||
6 | 6 | 4 | -2 | 8 | -2 | 4 | -2 | A | |||
7 | 3 | 6 | -1 | 8 | 3 | -2 | -1 | B | |||
8 | 8 | 0 | 0 | 8 | 0 | 0 | 0 | A | |||
9 | 5 | 2 | 1 | 8 | -3 | 2 | 1 | A |
从表格中可以看出,8次调用中,A、B、C分别被调用了5、2、1次,且不会出现在某一时间段一直被调用的问题;