用 AI 检查短码能否读回原意:代码不重样,还不等于没有歧义
给几个图形各分配一个短码,看起来已经一一对应。但当短码连续写下、分隔线被拿掉时,接收者未必能还原原来的图形顺序。让 AI 检查编码,不能只问“有没有重复”,还要问“连写以后能怎样切开”。
AI生成概念示意图:图形与短码的对应关系;图中点线仅为概念装饰,不是正文码表或实测数据。
先找出同一串文字的两种读法
以下图形名称、码表和消息均为原创虚构教学例,没有真实通信系统,也没有做模型实验。约定甲、乙、丙三种图形分别写成0、01、10,消息由这些短码直接串接,不放空格。
三个短码彼此不同,但消息010有两种合法解释:切成0与10,得到甲丙;切成01与0,得到乙甲。两种原消息都符合码表,因此收到010的人没有足够依据决定采用哪一种。
请 AI 把每种解释的分界写出来,并反向串接一次。只要两个不同图形序列得到同一串字符,就已经证明这套连写规则有歧义。无需收集很多长消息,也不能靠“通常会这样读”消除规则上的冲突。
人工可以把三种短码写在纸片上,分别摆出两条路线。这个动作检查的是串接关系。若 AI 给出的某条路线留下了没有使用的字符,它便不算完整解码,不能拿来作为有效的歧义证据。
用前缀关系约束每次停止的位置
一种修订办法是把甲、乙、丙改成0、10、11。这时任何一个完整短码,都不是另一个短码的开头。这里采用的就是无前缀码,它让读者能够从左往右确定每次停在哪里。
读到0就完成甲;读到1则必须再读一个字符,10是乙,11是丙。于是01011依次切成0、10、11,得到甲乙丙。每次停下后都从新码的开头继续,不需要根据故事含义猜测。
为什么不会漏掉另一种切法?第一处遇到完整短码时,不可能还有一个更长短码以它开头;换成更短的切法,也会要求某个短码成为另一个的前缀。确定第一段以后,对剩余部分重复同样的判断即可。
请 AI 逐对检查码表的前缀关系,而不是只生成几条顺利解开的消息。有限样例通过只能检查那些样例,前缀条件才给这套码表的任意有限连写消息提供了直接的解码依据。
分隔符也可以解决问题,但必须保存
另一种办法是保留原码表,同时约定每个短码之间必须有竖线。0|10与01|0就能区分。此时分隔符属于消息的一部分;如果复制、排版或导出时把它删掉,原来的歧义会重新出现。
选择哪一种方案取决于用途。若必须省去分隔符,可以采用前缀约束;若可读性更重要,明确分隔也可能更容易人工检查。前缀条件是一种足够的保证,不能反过来说所有带前缀关系的码表都必然有歧义。
还要区分歧义和损坏。在修订码表中,消息末尾若只剩一个1,它是未完成的短码,应报告缺少字符,不能擅自补成10或11。没有完整解释,与存在两个完整解释,是不同的验收结果。
交付能够往返核对的码表
让 AI 交付码表、分隔约定、编码步骤、解码步骤和失败样本。人工选一个带重复图形的序列,先编码再解码,核对顺序与数量都不变;同时保留010的原始反例,说明修订究竟解决了什么。
这种练习的价值是把“看起来不同”推进到“能确定地读回来”。AI 可以帮助展开切分路径,人来检查每个字符是否恰好使用一次,以及约定是否在实际传递时得到保留。


