# {py:mod}`evox.algorithms.so.pso_variants.pso` ```{py:module} evox.algorithms.so.pso_variants.pso ``` ```{autodoc2-docstring} evox.algorithms.so.pso_variants.pso :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`PSO ` - ```{autodoc2-docstring} evox.algorithms.so.pso_variants.pso.PSO :summary: ``` ```` ### API `````{py:class} PSO(pop_size: int, lb: torch.Tensor, ub: torch.Tensor, w: float = 0.6, phi_p: float = 2.5, phi_g: float = 0.8, device: torch.device | None = None) :canonical: evox.algorithms.so.pso_variants.pso.PSO Bases: {py:obj}`evox.core.Algorithm` ```{autodoc2-docstring} evox.algorithms.so.pso_variants.pso.PSO ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} evox.algorithms.so.pso_variants.pso.PSO.__init__ ``` ````{py:method} step() :canonical: evox.algorithms.so.pso_variants.pso.PSO.step ```{autodoc2-docstring} evox.algorithms.so.pso_variants.pso.PSO.step ``` ```` ````{py:method} init_step() :canonical: evox.algorithms.so.pso_variants.pso.PSO.init_step ```{autodoc2-docstring} evox.algorithms.so.pso_variants.pso.PSO.init_step ``` ```` `````