evox.algorithms.so.pso_variants.clpso¶
模块内容¶
类¶
基本的CSO算法。 |
API¶
- class evox.algorithms.so.pso_variants.clpso.CLPSO(pop_size: int, lb: torch.Tensor, ub: torch.Tensor, inertia_weight: float = 0.5, const_coefficient: float = 1.5, learning_probability: float = 0.05, device: torch.device | None = None)[源代码]¶
基础:
evox.core.Algorithm基本的CSO算法。
Class Methods
__init__: 初始化 CLPSO 算法,使用给定的静态参数,包括粒子位置的下限和上限。setup: 初始化 CLPSO 算法,并设置初始种群、速度以及用于跟踪最佳局部和全局位置及适应度值的缓冲区。单步优化 (
step): 使用CLPSO执行单步优化,更新个人最佳位置和适应值,根据惯性、认知和社会组件调整速度和位置。
请注意,
evaluate方法在此类中未定义,它是由工作流设置的Problem.evaluate的代理函数;因此,它无法在除step之外的类方法中使用。初始化
用给定的静态参数初始化 CLPSO 算法。
- 参数:
pop_size -- 种群大小。
lb -- 粒子位置的下界。必须是一个一维张量。
ub -- 粒子位置的上界。必须是一个一维张量。
inertia_weight -- 惯性权重 (w)。默认值为 0.5。
const_coefficient -- 认知权重(c)。默认为1.5。
learning_probability -- 社会权重 (P_c)。默认为 0.05。
device -- 设备的使用者(设备用于存放张量的硬件)。默认为 None。