Table of Contents

Class MADDPGOptions<T>

Namespace
AiDotNet.Models.Options
Assembly
AiDotNet.dll

Configuration options for Multi-Agent DDPG (MADDPG) agents.

public class MADDPGOptions<T> : ReinforcementLearningOptions<T>

Type Parameters

T

The numeric type used for calculations.

Inheritance
MADDPGOptions<T>
Inherited Members

Remarks

MADDPG extends DDPG to multi-agent settings with centralized training and decentralized execution. Critics observe all agents during training.

For Beginners: MADDPG allows multiple agents to learn together in shared environments. During training, agents can "see" what others are doing (centralized critics), but during execution, each agent acts independently (decentralized actors).

Key features:

  • Centralized Training: Critics see all agents' observations and actions
  • Decentralized Execution: Actors only use their own observations
  • Continuous Actions: Based on DDPG for continuous control
  • Cooperative or Competitive: Works for both settings

Think of it like: Team sports where players practice together (centralized) but during the game each player makes their own decisions (decentralized).

Examples: Robot coordination, traffic control, multi-player games

Constructors

MADDPGOptions()

public MADDPGOptions()

Properties

ActionSize

public int ActionSize { get; init; }

Property Value

int

ActorHiddenLayers

public List<int> ActorHiddenLayers { get; init; }

Property Value

List<int>

ActorLearningRate

public T ActorLearningRate { get; init; }

Property Value

T

CriticHiddenLayers

public List<int> CriticHiddenLayers { get; init; }

Property Value

List<int>

CriticLearningRate

public T CriticLearningRate { get; init; }

Property Value

T

ExplorationNoise

public double ExplorationNoise { get; init; }

Property Value

double

NumAgents

public int NumAgents { get; init; }

Property Value

int

Optimizer

The optimizer used for updating network parameters. If null, Adam optimizer will be used by default.

public IOptimizer<T, Vector<T>, Vector<T>>? Optimizer { get; init; }

Property Value

IOptimizer<T, Vector<T>, Vector<T>>

StateSize

public int StateSize { get; init; }

Property Value

int

TargetUpdateTau

public T TargetUpdateTau { get; init; }

Property Value

T

Methods

Validate()

Validates that required properties are set.

public void Validate()