Output space design for goto/aimTo #19

Closed
opened 2026-08-17 16:58:04 +02:00 by SirStone · 1 comment
Owner

Parent map: #18

Question

What are the exact output dimensions, ranges, and activation functions for the new action space?

Key sub-questions:

  • goto(x, y): absolute battlefield coordinates. What range? Battlefield is bounded — does the network output raw values scaled to battlefield dimensions (e.g. sigmoid × width/height)? Or unbounded with clamping?
  • aimTo(angle): 0–360° absolute gun angle. How encoded — single value with modular arithmetic? Two values (sin, cos) to avoid the 359°→0° discontinuity?
  • Fire dims: stay as-is (dim 3 = threshold, dim 4 = sigmoid × 2.9 + 0.1)?
  • Total output dimensionality: 5 or 6?
Parent map: #18 ## Question What are the exact output dimensions, ranges, and activation functions for the new action space? Key sub-questions: - `goto(x, y)`: absolute battlefield coordinates. What range? Battlefield is bounded — does the network output raw values scaled to battlefield dimensions (e.g. sigmoid × width/height)? Or unbounded with clamping? - `aimTo(angle)`: 0–360° absolute gun angle. How encoded — single value with modular arithmetic? Two values (sin, cos) to avoid the 359°→0° discontinuity? - Fire dims: stay as-is (dim 3 = threshold, dim 4 = sigmoid × 2.9 + 0.1)? - Total output dimensionality: 5 or 6?
SirStone added the wayfinder:grilling label 2026-08-17 16:58:04 +02:00
Author
Owner

Resolution

6-dimensional continuous action space:

Dim Output Encoding
0 goto x sigmoid × battlefield width
1 goto y sigmoid × battlefield height
2 aimTo x sigmoid × battlefield width
3 aimTo y sigmoid × battlefield height
4 fire decision tanh → fire if ≥ 0
5 fire power sigmoid × 2.9 + 0.1

Key decisions:

  • goto(x, y) and aimTo(x, y) both use absolute battlefield coordinates, sigmoid-bounded to field dimensions. No off-field outputs possible.
  • aimTo is a point, not an angle — avoids circular encoding discontinuity (sin/cos) and keeps output at 2 dims not 3. Controller computes gun angle via arctan2.
  • Fire decision and fire power remain explicit per-tick outputs — firing is a tactical decision the network must learn.
  • Total dims: 6 (was 5). The extra dim comes from aimTo being (x,y) instead of a single angle.
## Resolution **6-dimensional continuous action space:** | Dim | Output | Encoding | |-----|--------|----------| | 0 | goto x | sigmoid × battlefield width | | 1 | goto y | sigmoid × battlefield height | | 2 | aimTo x | sigmoid × battlefield width | | 3 | aimTo y | sigmoid × battlefield height | | 4 | fire decision | tanh → fire if ≥ 0 | | 5 | fire power | sigmoid × 2.9 + 0.1 | **Key decisions:** - `goto(x, y)` and `aimTo(x, y)` both use absolute battlefield coordinates, sigmoid-bounded to field dimensions. No off-field outputs possible. - `aimTo` is a point, not an angle — avoids circular encoding discontinuity (sin/cos) and keeps output at 2 dims not 3. Controller computes gun angle via arctan2. - Fire decision and fire power remain explicit per-tick outputs — firing is a tactical decision the network must learn. - Total dims: 6 (was 5). The extra dim comes from aimTo being (x,y) instead of a single angle.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: SirStone/SirRoboGarage#19