DQN constructor
DQN({})
Implementation
DQN({
required this.nActions,
required List<int> netLayers,
this.memoryCapacity = 1000,
this.epsilon = 0.1,
this.gamma = 0.99,
this.targetUpdateSteps = 100,
bool useTarget = true,
int? seed,
}) : _rand = seed != null ? Random(seed) : Random(),
network = ANN(layers: netLayers, seed: seed) {
if (netLayers.isEmpty) throw ArgumentError('netLayers required');
// Ensure the network parameters are initialized before serializing/cloning.
// ANN initializes lazily on predict(), so force a lightweight predict.
network.predict([List<double>.filled(network.layers[0], 0.0)]);
if (useTarget) {
_targetNetwork = ANN.fromMap(network.toMap(), seed: seed);
}
}