evox.algorithms.so.pso_variants.sl_pso_us

模块内容

SLPSOUS

基本的粒子群优化社会学习 PSO 使用均匀采样进行演示选择 (SLPSOUS) 算法。

API

class evox.algorithms.so.pso_variants.sl_pso_us.SLPSOUS(pop_size: int, lb: torch.Tensor, ub: torch.Tensor, social_influence_factor: float = 0.2, demonstrator_choice_factor: float = 0.7, device: torch.device | None = None)[源代码]

基础: evox.core.Algorithm

基本的粒子群优化社会学习 PSO 使用均匀采样进行演示选择 (SLPSOUS) 算法。

Class Methods

  • __init__: 使用给定的参数(种群大小、惯性权重、认知权重和社会权重)初始化SLPSOGS算法。

  • setup:初始化 SLPSOGS 算法,设置粒子位置的下界和上界,并建立初始种群、速度以及用于跟踪最佳局部和全局位置及适应度值的缓冲区。

  • step: 使用粒子群优化 (SLPSOGS) 执行单个优化步骤,更新局部最佳位置和适应度值,并根据惯性、认知和社交成分调整速度和位置。

请注意,evaluate方法在此类中未定义,它是由工作流设置的Problem.evaluate的代理函数;因此,它无法在除step之外的类方法中使用。

初始化

用给定的参数初始化 SLPSOUS 算法。

参数:
  • pop_size -- 种群大小。

  • lb -- 粒子位置的下界。必须是一个一维张量。

  • ub -- 粒子位置的上界。必须是一个一维张量。

  • w -- 惯性权重。默认值为0.6。

  • phi_p -- 认知权重。默认为 2.5。

  • phi_g -- 社会权重。默认值为 0.8。

  • device -- 设备的使用者(设备用于存放张量的硬件)。默认为 None。

init_step()[源代码]
step()[源代码]

执行一个使用 SLPSOUS 的正常优化步骤。