#AEAI05004. 风险约束下的动作价值选择

风险约束下的动作价值选择

题目描述

具身智能部的机器人在执行关键动作前,会同时查看动作价值、风险阈值和安全停止方案。你需要从候选动作中选出可执行且风险不超限的最佳动作;若当前状态已经终止,或最佳动作不值得冒险,则输出安全停止方案。

候选动作带有类型字符串。类型为 STOP 的动作不参与普通动作选择;类型为 RETREAT 的动作一旦被选中,输出决策也必须是 RETREAT

输入格式

第一行输入:

s V A

表示当前状态编号、当前状态价值估计和候选动作数。

第二行输入:

Rmax stop_id stop_value cons terminal

其中 Rmax 为最大允许风险,stop_idstop_value 描述安全停止动作,cons 为保守余量,terminal 表示当前状态是否已经终止。

接下来 A 行,每行输入:

aid q feasible risk priority type

表示动作编号、动作价值、是否可执行、风险、优先级和动作类型。

状态和动作编号均为 1-based。

输出格式

若输出安全停止,且 stop_id != -1,输出:

stop_id stop_value STOP

若需要停止但没有可用停止动作,输出:

-1

若输出普通动作,格式为:

aid q decision

其中 q 保留 6 位小数,decisionEXECUTEWAIT_OR_REOBSERVERETREAT

判定规则

普通候选动作必须同时满足:feasible = 1risk <= Rmaxtype != STOP

最佳普通动作按以下顺序比较:q 更大者优先,风险更小者优先,priority 更大者优先,动作编号更小者优先。

terminal = 1、没有普通候选动作,或最佳普通动作的 q <= stop_value,输出安全停止。

否则,若最佳动作类型为 RETREAT,输出 RETREAT;若 q <= V + cons,输出 WAIT_OR_REOBSERVE;其余情况输出 EXECUTE

使用标准输出比较,所有浮点数保留 6 位小数。

数据范围与测试提示

  • 正式测试会覆盖样例没有出现的边界输入,请不要依赖样例规模或样例顺序写特判。
  • 输出只包含题目要求的字段,不要输出调试信息;浮点结果按题面要求保留 6 位小数。
  • 候选动作可能全部因风险或合法性被筛掉,也可能多个动作价值完全并列。
  • 风险约束、价值比较和动作编号排序要分开处理;输出字段顺序固定。
  • STOP 类型不参与普通动作选择;风险等于上限可选,最佳价值不超过停止阈值时必须停止。

样例

输入样例 1

1 4 3
0.5 9 0 0.5 0
1 5 1 0.2 1 EXECUTE
2 6 1 0.8 2 EXECUTE
3 4 0 0.1 3 RETREAT

输出样例 1

1 5.000000 EXECUTE

输入样例 2

1 5 2
1 6 3 0.5 0
1 2 1 0.2 1 EXECUTE
2 1 1 0.1 2 RETREAT

输出样例 2

6 3.000000 STOP