#AEAI06006. 多约束目标指代消歧
多约束目标指代消歧
题目描述
用户说“把那个红色小零件拿过来”时,机器人不能只看一个分类标签。具身智能部会把语言指代拆成类别、颜色、尺寸范围、所在区域、相对关系和是否需要抓取等约束,再结合置信度、可达性、抓取分和风险判断目标是否能直接执行。
一个物体先要满足语言约束:类别、颜色相同,尺寸在闭区间 [min_size, max_size] 内,区域和相对关系相同。满足语言约束后,还必须满足 conf >= conf_thr、reachable=1、风险 risk <= risk_thr,若 need_grasp=1 还要求 grasp_score >= grasp_thr,才算可执行。
若恰好一个物体可执行,直接输出它。若多个物体可执行,需要继续验证,并选择排序键 (-conf, risk, oid) 最小的物体作为提示对象。若没有可执行物体且验证预算 budget>0,可以尝试恰好一次验证动作:动作会提高某物体置信度、设置可达性、提高抓取分并改变风险;置信度和抓取分最高截到 1.0,风险不能超过阈值。若某个动作后恰好只有一个可执行物体,选择 (目标编号, 动作编号) 字典序最小的方案。若仍不能唯一确定,则在所有语言匹配物体中按 (-conf, risk, oid) 选择一个要求验证;若没有语言匹配物体,则无可行目标。
输入格式
第一行输入 target_cat target_color。第二行输入:
min_size max_size target_area target_rel need_grasp
第三行输入 conf_thr risk_thr grasp_thr。第四行输入验证预算 budget。第五行输入物体数 n。
接下来 n 行,每行输入:
oid cat color size area rel conf reachable grasp_score risk
随后一行输入验证动作数 r。接下来 r 行,每行输入:
aid oid dconf reach_set dgrasp drisk
当 reach_set >= 0 时,验证后把可达性设为该值;否则保持不变。
输出格式
按判定结果输出下列之一:
TARGET oidNEED_VERIFY oidVERIFY_THEN_TARGET aid oidNO_FEASIBLE_TARGET
数据范围与测试提示
- 正式测试会覆盖样例没有出现的边界输入,请不要依赖样例规模或样例顺序写特判。
- 输出只包含题目要求的字段,不要输出调试信息;浮点结果按题面要求保留 6 位小数。
- 可能没有语言匹配物体、恰好一个可执行物体或多个可执行物体并列。
- 验证预算只允许恰好一次验证尝试;置信度和抓取分要截到
1.0,风险不能超过阈值。 - 多个可执行目标不是直接选定,而是输出
NEED_VERIFY;唯一化验证方案按(目标编号, 动作编号)选择。
样例
输入样例 1
cup red 1 5 2 LEFT 1
0.6 0.5 0.5
1
3
1 cup red 2 2 LEFT 0.8 1 0.9 0.2
2 cup red 3 2 LEFT 0.4 1 0.9 0.2
3 box red 2 2 LEFT 0.9 1 0.9 0.1
0
输出样例 1
TARGET 1
输入样例 2
cup red 1 5 2 LEFT 1
0.6 0.5 0.5
0
2
1 cup red 2 2 LEFT 0.8 1 0.9 0.2
2 cup red 3 2 LEFT 0.7 1 0.9 0.1
0
输出样例 2
NEED_VERIFY 1