run:
  experiment_name: lost-cities-deep-cfr-opponent-network-512x3-1000iter
  seed: 79
  max_iterations: 1000
  max_minutes: null
  device: cuda
  use_amp: false

rules:
  n_colors: 5
  n_ranks: 9
  min_rank: 2
  n_handshakes: 3
  hand_size: 8
  expedition_penalty: -20
  bonus_threshold: 8
  bonus_amount: 20

encoding:
  derived_playability: true
  slot_aware_playability: true

network:
  hidden_size: 512
  num_layers: 3
  activation: relu

traversal:
  traversals_per_player: 2
  traversals_per_player: 70
  max_depth: null
  max_nodes_per_traversal: 10000
  max_nodes_per_traversal: 1000
  regret_matching_epsilon: 0.0001
  outcome_sampling_epsilon: 0.2
  outcome_sampling_value_clip: 500.0
  outcome_unsampled_regret: zero
  cutoff_value_mode: score_diff
  cutoff_rollouts: 0
  cutoff_rollout_policy: random
  cutoff_rollout_max_steps: 300
  opponent_policy: network
  strategy_sample_interval: 1
  store_strategy_on_traverser_nodes: true
  store_strategy_on_opponent_nodes: false
  num_workers: 8
  worker_chunk_size: 4
  worker_chunk_size: 8
  progress_every_traversals: 10
  endpoint_depth_bucket_width: 100
  endpoint_depth_bucket_max: 1000

regret_matching:
  all_negative_fallback: argmax_tiebreak

training_weighting:
  mode: none

self_play:
  snapshot_every: 1
  max_snapshots: 0
  anchor_probability: 0.0
  current_weight: 1.0
  recent_weight: 0.0
  older_weight: 0.0
  anchor_weight: 0.0
  recent_window: 5

optimization:
  advantage_updates_per_iteration: 1
  strategy_updates_per_iteration: 1
  advantage_batch_size: 1024
  strategy_batch_size: 1024
  advantage_updates_per_iteration: 512
  strategy_updates_per_iteration: 512
  learning_rate: 0.00003
  weight_decay: 0.0001
  grad_clip: 1.0

memory:
  advantage_capacity: 2000000
  strategy_capacity: 2000000

checkpoint:
  save_latest: true
  save_every: 100
  progress_interval_seconds: 20.0
  exact_resume: false

evaluation:
  eval_every: 5
  games: 100
  opponents:
    - random
    - passive_discard
    - safe_heuristic
    - safe_heuristic_loose
    - safe_heuristic_strict
    - noisy_safe
  max_steps: 10000
  on_max_steps: score_diff
  batch_size: 64
  device: trainer
  num_workers: 4
