2 穷举搜索寻线人

“高效算法的关键在于信息。”这是Drecker教授的口头禅,在每一堂警用算法课的开始,他都会冲学员厉声强调这句话,Frank对这句话的印象如此强烈,以至于将它永久封存在了自己的记忆中:“一个好的算法取决于发现数据中的结构并善加利用。而这取决于信息。”

回忆至此,Frank暗地里微微一笑,此时他走在了三比特街巷,这是一条坑坑洼洼的泥土路,两旁交相排列着破旧的酒吧和高档的咖啡厅。他冲两位路过的骑士礼貌地点点头,骑士们身着盔甲走过时还发出锵锵的响声。Frank暗自盘算着,待会儿在离开之前,必须要来杯三倍特浓的意式咖啡。首先,他需要的是信息,来帮助指导搜索。他很确切地知道要从哪里开始。

“玻璃箱”Billy此时一定在某处静静地坐着,倾听着屋内飘荡的每一段对话。人们并非成心想在Billy身边说这说那的,其实是压根没注意到他的存在。Billy被赐予了一种特别值得一提的天赋,那就是彻彻底底的不显眼。不管做什么,Billy身上总有一种东西,能让人们注意不到他。或许是他的白皮肤或小身板,或许是他对穿着分外平庸的品味。不管是什么,Billy早已决定,要充分发挥他的天赋,窃听并收集信息,再卖给任何愿意收购的人。

Frank打量着三比特巷上挤在一块儿的八个店面,琢磨着Billy会选其中哪一个。他在脑中思考了半打的搜索算法,但一无所获,没有任何信息可以用来确定Billy的位置。Billy有可能在其中任意一家酒吧或咖啡馆中。

他不得不采用穷举搜索了——索性试遍所有的可能性,直到他找到Billy。这其实不太适合他。多年的侦探和私人调查经历已经让他明白,几乎所有算法都优于穷举搜索算法,而他厌恶诉诸如此低效的方式。

Frank一边抱怨,一边开始了搜索。他走进了街上的第一家酒吧,名字叫Absolute Value。

酒保是一个名叫Abe的粗暴男人,从Frank一进门便瞪着他,目的明确地把手放到满是划痕的吧台下面。信息很明确:“我正握着武器,至于是哪种,你猜去吧。但如果你找我麻烦,我会让你尝尝滋味的。”

“我不是来找茬的,Abe,”Frank说道,举起双手,“我只是来这儿见Billy的。”

“那好,Billy不在这儿。”酒保说道。

Frank几乎如释重负地一笑,说道:“那我就撤了。”

Abe草草地点了点头,看着Frank离开,手仍然留在吧台下面。

Frank做了几下深呼吸,在微凉的空气中摇摇头。Abe记仇的时间比Frank见过的其他任何人都长。不过话又说回来,Frank已经逮走了Abe的四个兄弟姐妹。

街上的下一个店面是Brazen Boolean,这是一间现代化的咖啡厅,拥有典型的布尔类型风格——鲜明的黑白两色。布尔市的居民素以狂热倾心于逻辑的绝对概念而闻名,在他们眼中,一切事物要么为真,要么为假。他们是很称职的目击者。作为镇上唯一的布尔咖啡厅,Brazen Boolean是那些背井离乡者的避风港。毕竟,在布尔人眼中只有两种人:布尔人和其他人。

Frank把头伸进门内,向在场的所有人问道:“Billy在这儿吗?”沉默了一会,20双眼睛仔细地扫视了咖啡馆内的每一个角落。如非绝对肯定,布尔人是不会回答问题的。

“不在。”传来了确切的答复。

Frank继续他的穷举搜索。

第三和第四家店铺的经历虽然明显更令人愉快,但同样无果而终。第三家店Constant Const的酒保热情地欢迎了Frank,并邀请他一道怀念过去的美好岁月,不过Frank上个月刚认识他,所以这样说显得有点怪怪的。而第四家店Daring Double里的人们则是一群出了名吵闹的集会巫师,每当有新人到场他们都会欢呼,并举着热气腾腾的杯子欢快地高歌。

Frank在第五家店铺Exponentiated Expresso里找到了Billy。这是迄今为止大街上最喧闹、最俗气的咖啡馆,却凭借其含有三倍咖啡因的咖啡豆,成功招揽到了最忠实的粉丝们。生意好的日子里,每桌都会挤满絮絮叨叨的人,他们似乎认为一场愉快交谈的关键在于说话的音量。

今早,Exponentiated Expresso里的客人不那么喧闹,只有少数几张桌子有人,而其中大多数都是孤身一人的咖啡客,他们晃动着身体轻声哼唱。

Billy在中间的一张桌子坐下,扭曲着身子努力听着身旁的谈话。似乎没人注意到他。Frank在第一次扫视屋内时,甚至看漏了Billy。

“Billy!”Frank叫道。

Billy怀有愧疚感地跳了起来。“Frank?”他咧嘴笑了起来,很高兴有人对他打招呼,然后又坐了回去,“拉把椅子过来呗。”

“我正在找一些信息,”Frank一边解释,一边在Billy对面坐了下来。

“说不准我有呢,”Billy说,“不过,最近我觉得有些事情想起来挺吃力的。”Billy说道,同时朝一个空了很久的杯子瞧着,估计并不是他的。

Frank示意咖啡师很快在桌上放了一杯啤酒。“记得任何有关警局失窃案的事吗?”Frank问Billy。

Billy睁大眼睛,畏缩了。“你是说……抢劫?”他心虚地问道。他的双眼扫视着屋内,但一如既往,并没人留意他。

Frank在桌上放了两枚金币,并努力让自己不要心疼这两枚金币。他花不起这钱,尤其当他不知道自己花钱买的是线索还是闲话时。但他清楚,让Billy提供信息不会便宜的。他俯身凑近一些:“前天晚上,”他悄然说道,“一大堆文件被贼偷走了。”

“听起来不像是容易想起来的事情啊。”Billy说,他盯着金币,“恐怕你问错人了,Frank。”

“这可是金子啊!”Frank咆哮道。

“抱歉,我帮不到你。”Billy说,他再次环视一下屋内,然后补充道,“即便我知道一些关于失窃的事,我也会努力忘掉的。或许我知道一些小事,比如是谁帮忙运走了文件,但这不值得冒险,免得我睡醒一睁眼发现自己的鞋里塞满了牛粪。”

Frank瞪大了眼睛,但Billy沉默不语了。作为一个靠分享信息过活的人,Billy不肯透露这件事情的行为显得非常奇怪。“牛粪?”Frank问。

Billy点点头,但不再多说。

“你就不能再具体点吗?”Frank问道,“是说北方或南方的牦牛吗?”

“这重要吗?”Billy问,“问题在于,即使知道是谁安排的运输,我也不会记住的。如果那些人碰巧在镇外大约五英里处拥有一个大农场,在那儿可以轻易地让某人消失,那我就更不会记住了。而如果那座农场的主人有着非法活动的历史记录和危险的幽默感,那我就加倍更不会记住了。在这种情况下,记住任何事情都是绝对不明智的。”