#AEAI06006. 多约束目标指代消歧

多约束目标指代消歧

题目描述

用户说“把那个红色小零件拿过来”时,机器人不能只看一个分类标签。具身智能部会把语言指代拆成类别、颜色、尺寸范围、所在区域、相对关系和是否需要抓取等约束,再结合置信度、可达性、抓取分和风险判断目标是否能直接执行。

一个物体先要满足语言约束:类别、颜色相同,尺寸在闭区间 [min_size, max_size] 内,区域和相对关系相同。满足语言约束后,还必须满足 conf >= conf_thrreachable=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 oid
  • NEED_VERIFY oid
  • VERIFY_THEN_TARGET aid oid
  • NO_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