645. NeurIPS 2024 - Lux AI Season 3 | lux-ai-season-3
首先,我要感谢所有组织本次比赛的人、所有参与者,以及我的队友 @kibuna @cnumber @kawattataido @yukiokumura1。
以下是我们团队的解决方案。
GitHub 仓库:https://github.com/kuto5046/kaggle-luxai-s3
感谢 Frog Parade 团队。
OWN_UNIT_ENERGY 和 UNIT_MOVE_COST 都表示能量值,并使用共同的尺度进行归一化)。
| 变量名 | 描述 |
|---|---|
TILE_TYPE |
当前瓦片的类型 (UNKNOWN = -1, EMPTY = 0, NEBULA = 1, ASTEROID = 2) |
NEXT_TILE_TYPE |
下一步瓦片的类型 |
ENERGY |
(估计) 瓦片上的能量量 |
NEBULA_ENERGY_REDUCTION |
(估计) 星云瓦片造成的能量减少 |
SENSOR_MASK |
传感器可见区域 |
RELICS |
遗迹节点的位置 |
POINTS |
(估计) 遗迹节点附近可以获得分数的节点 |
ENTROPY |
估计的 POINTS 的熵 |
OWN_UNIT_COUNT |
每个单元格己方单位的数量 |
OWN_UNIT_ENERGY |
每个单元格己方单位的能量 |
OPP_UNIT_COUNT |
(估计) 每个单元格对手单位的数量 |
OPP_UNIT_ENERGY |
每个单元格对手单位的能量 |
VISIT_COUNT |
当前比赛中每个瓦片被访问的次数 |
SAP_AVAILABLE_AREA |
可以使用 SAP 的区域 |
| 变量名 | 描述 |
|---|---|
MATCH_STEPS |
当前比赛已进行的步数 |
MATCH_COUNT |
当前比赛场次 |
TEAM_POINTS |
团队获得的分数 (己方分数 - 对手分数) |
TEAM_WINS |
团队获胜的比赛场数 (己方胜场 - 对手胜场) |
UNIT_MOVE_COST |
单位移动的能量成本 |
UNIT_SAP_COST |
SAP 动作的能量成本 |
UNIT_SAP_RANGE |
可以使用 SAP 的范围 |
UNIT_SENSOR_RANGE |
单位的传感器范围 |
NEBULA_TILE_VISION_REDUCTION_MEAN |
星云瓦片造成的视野减少均值 |
NEBULA_TILE_VISION_REDUCTION_SIGMA |
星云瓦片造成的视野减少标准差 |
ENERGY_NODE_DRIFT_SPEED_MEAN |
能量节点移动速度均值 |
ENERGY_NODE_DRIFT_SPEED_SIGMA |
能量节点移动速度标准差 |
NEBULA_TILE_ENERGY_REDUCTION_MEAN |
星云瓦片造成的能量减少均值 |
NEBULA_TILE_ENERGY_REDUCTION_SIGMA |
星云瓦片造成的能量减少标准差 |
UNIT_SAP_DROPOFF_FACTOR_MEAN |
SAP 动作的能量衰减因子均值 |
UNIT_SAP_DROPOFF_FACTOR_SIGMA |
SAP 动作的能量衰减因子标准差 |
每场比赛随机变化的未知环境参数和隐藏状态使用以下方法进行估计:
NEXT_TILE_TYPE
ENERGY
POINTS
OPP_UNIT_COUNT
NEBULA_TILE_VISION_REDUCTION
ENERGY_NODE_DRIFT_SPEED
NEBULA_TILE_ENERGY_REDUCTION
UNIT_SAP_DROPOFF_FACTOR
(14, n_stack, 24,24)(16, n_stack)n_stack 是输入过去多少步状态的参数,我们使用 n_stack=4。这意味着过去 4 步的状态作为特征输入到模型中。(6,24,24)
CENTER = 0, UP = 1, RIGHT = 2, DOWN = 3, LEFT = 4, SAP = 5(1,24,24)
SAP_AVAILABLE_AREA 是训练目标,因为目标是稀疏的,并且采用 Focal Tversky Loss 来应对稀疏目标。CENTER = 0, UP = 1, RIGHT = 2, DOWN = 3, LEFT = 4, SAP = 5action = np.random.choice(range(6), p=policy)
cost = 1 - sap_policy[y,x] * policy[5],否则 cost = 1 - policy[action_idx]cost = 1 - unit_policy[action_idx] 并为移动到已占用单元格添加惩罚成本。

luxai_runner 以在锦标赛设置中显示胜率和 p 值。