ParticleSwarmTopology Structure

Represents the topology used in Particle Swarm Optimization.

Definition

Namespace: Numerics.NET.Optimization
Assembly: Numerics.NET (in Numerics.NET.dll) Version: 9.1.0
C#
public readonly struct ParticleSwarmTopology
Inheritance
Object  →  ValueType  →  ParticleSwarmTopology

Remarks

The topology in Particle Swarm Optimization (PSO) defines how particles in the swarm communicate with each other. The choice of topology can significantly affect the performance of the optimization process.

The following topologies are available:

  • Global: Each particle is influenced by every other particle. Promotes rapid convergence but may lead to premature convergence in multimodal problems.
  • Ring(Int32): Each particle is influenced by its neighbors in a ring structure. Promotes exploration and maintains diversity, suitable for multimodal problems.
  • Random(Int32, Int32): Each particle is influenced by a random subset of particles. Promotes diverse exploration, suitable for complex search spaces.
  • VonNeumann: Each particle is influenced by its neighbors in a grid structure. Balances exploration and exploitation, suitable for multimodal problems.

To decide which topology to use, the following guidelines are a good starting point:

  1. For simple, unimodal problems where rapid convergence is desired, use Global.
  2. For multimodal problems where maintaining diversity is crucial, use Ring(Int32) or VonNeumann.
  3. For complex search spaces where dynamic exploration is needed, use Random(Int32, Int32).

These guidelines are general recommendations and may not be suitable for all optimization problems. It is advisable to experiment with different topologies to determine the most effective one for your specific use case.

Properties

Global Returns the global topology where each particle is influenced by every other particle.
VonNeumann Returns the Von Neumann topology where each particle is influenced by its neighbors in a grid structure.

Methods

EqualsIndicates whether this instance and a specified object are equal.
(Inherited from ValueType)
GetHashCodeReturns the hash code for this instance.
(Inherited from ValueType)
GetTypeGets the Type of the current instance.
(Inherited from Object)
Random Returns the random topology where each particle is influenced by a random subset of particles.
Ring Returns the ring topology where each particle is influenced by its neighbors in a ring structure.
ToStringReturns the fully qualified type name of this instance.
(Inherited from ValueType)

See Also