23 最佳优先搜索:侦探最值得信赖的工具(第3/4页)
Frank一脸茫然地盯着警长。这会不会就是Vinettee提到的那个联盟?如果真是的话,那么他怎么会把自己牵扯到这种事情中来。于是Frank脑中又萌生出了另一种假设。
“攻击城堡!会不会和Ann公主返回有关?”Frank说,“如果她在调查Unnecessary Complexity联盟,他们有可能会报复她。”
“我们已经想到了这一点,”警长说,“当Ann公主回来时,我会调派一百多个警察去保护她。虽然这会使军械库、监狱和警局的警力减少,但我们绝不能让Ann公主有任何闪失。”
“那魔法面具呢?有人会利用面具潜入安保人员的队伍。”
“是的,这是一个溜进城堡的绝好机会,”警长承认道,“即使没戴面具,在增加了一百多个新的警察后,我们也很难在人群中找出他们。但是我们采取了措施,皇家巫师Marcus创造了一种有魔法的身份徽章分配给那些城堡的安保人员。身份徽章是无法伪造的,一旦佩戴的人与徽章上的照片或者名字不一样,徽章就会发出红色的光。”
Frank努力思考是否还有其他的安全隐患。
“你再想想,”警长说,“你还有没有发现别的问题?”
Frank飞速地思考着,回忆他们在TCP Flyer号船上发生的事,以及他们在Mudwall和Frayed Cable岛上的搜索。他描述了监狱中遇到的袭击和公文被烧毁的经过,最终,他从调职记录中找到了更多线索。
“这也是为什么你想了解Notation的原因吧,”警长说,“她是刚从警察学院调过来的。”
“确实,”Frank承认,“她的名字在我的搜索范围之内。”
警长想了想后说道:“我不认为她是这种人,我的直觉告诉我,她是一个好警官,但是我不确定我现在应该相信谁。不管怎样她是不应该去调查这个案子的,这并不是她的任务。”
“谢谢你。”Frank说道。
“还有没有其他新调来的人需要去特别关注的?”
Frank摇摇头:“新调来的警察们分布在不同的犯罪现场,但是没有规律,没有任何一人与两个以上的盗窃案相关,除非一整个班都是叛徒才有可能,所以我认为这行不通。”
“你调查得很好,Frank。”警长说道,“这是我这么多年来见过的能把最佳优先搜索用到极致的案例之一。”
Frank笑了,即使在警队,也很少有人会知道这种类型的调查需要使用最佳优先搜索。多数人只会说“我正在调查”或是“这些线索我正在跟进”。
尽管对其认知不足,最佳优先搜索仍是警官们办案必备法宝之一,它就像记事本或者是一双舒服的鞋子一样重要。在最佳优先搜索中,你需要时刻维护一个线索列表,每次从中选择最可靠的一个线索去调查,调查完毕后,再从列表中选出下一个最可靠的线索继续调查。当然如果在调查的过程中发现了新的线索,就将其及时加入到列表中。这种方法对于查案很有帮助。
Frank摇摇头。
“那好,”警长说,“继续调查。如果Unnecessary Complexity联盟真的存在,而且一直在背后操纵这个案子,那么我们已经深陷危机之中了。注意安全,Frank。”
“我一向很谨慎。”Frank回答,他站了起来,又停住了,“最后一个问题,你知道Notation是如何知道Array Cart的吗?”
“我不知道,”警长回答道,“为什么不直接问问她呢,她现在似乎正站在我的办公室门口。”
警用算法导论:最佳优先搜索
节选自Drecker教授讲义
假如你在这门课程中只记住了一个算法,那么你一定要记住最佳优先搜索这个算法,它将是你警队生涯中最有用的工具。也许所有的案件到最后你都需要使用这个算法。
最佳优先搜索是基于某种估值分数或者评价函数来选择接下来探索哪个状态的算法。每一个新发现的状态也都将被赋予一个分数,这个分数就是算法对这个新发现状态的估值。例如,我们可以为每一个状态标记上一个值,可能是目标状态的概率(如果这个概率可以被估计的话)或者是在调查中线索的重要程度。其实最佳优先搜索就是在每时每刻维护着一个带有估值分数的状态列表,每次从这个有序列表取出下一个估值分数最高的状态去探索。