def boundary(pop, lb, ub): # 防止粒子跳出范围,除学习率之外 其他的都是整数 pop = [int(pop[i]) if i > 0 else pop[i] for i in range(len(lb))] for i in range(len(lb)): if pop[i] > ub[i] or pop[i] < lb[i]: if i == 0: pop[i] = (ub[i] - lb[i]) * np.random.rand() + lb[i] else: pop[i] = np.random.randint(lb[i], ub[i]) return pop
时间: 2023-06-23 18:08:50 浏览: 170
sentence-boundary-detection:使用机器学习检测句子边界
这是一个防止粒子跳出范围的函数,输入参数包括pop(一个列表,代表一个粒子的位置)、lb(一个列表,代表每个位置的下限)、ub(一个列表,代表每个位置的上限)。该函数会将pop中除了第一个元素(学习率)以外的其他元素转换成整数,并且如果pop中的某个元素超出了下限或上限,则将其随机移动到下限和上限之间。如果pop中的第一个元素超出了下限或上限,则将其随机移动到下限和上限之间。最后返回pop。
阅读全文