什么是通用搜索的外行解释?


13

我正在阅读有关计算机科学主题的书,但缺少一些先决条件。通常,当我碰到术语时,我不理解我只是在查找它们,但是对于通用搜索,我只是无法找到适合没有统计学/计算机科学背景的读者的解释。

我一直在阅读Scholarpedia上有关“ 通用搜索”的文章,该文章似乎涵盖了该主题。对于“ 通用搜索”(或“ 莱文搜索”)的含义,我将不胜感激。

Answers:


15

这样想吧。您输入遇到问题,并且知道找到一个解决方案的方法(例如矩阵的逆矩阵或您想像的任何事物)。x

现在,采用您喜欢的编程语言(例如Python),并创建每个最多包含10个字符的Python程序!然后,使用所有输入运行所有这些程序10秒钟,每个运行在输入。如果它们都不给您答案,那么您将一直进行到11。在输入x上,运行每个程序最多11个字符(当然,包括您已经尝试的字符),每个11秒。如果他们都不给您正确的答案,则继续进行12,依此类推。xx

更正式地讲,在迭代,您运行长度最大为i的所有程序(数量有限,但在i中当然是指数的),每个程序运行i秒(或步长)。iiii

有一个程序,例如,可以在s秒内给出正确的输出。当您进行迭代时,i = max { | P | s },此程序将运行至少s秒,您将同时输出P和解。Psi=max{|P|,s}sP


3

只是为了补充PålGD所说的内容,请记住您正在运行长度为i或更短的所有程序,并让它们最多运行i秒。因此,可能是有一个程序得到了正确答案,该程序的长度为100个字符,但是运行需要120秒。调用程序P。在i = 100时,您将检查此程序,但是运行时间太长,因此您将其丢弃。在检查了所有长度为100的程序之后,您发现没有一个给出正确的答案,因此您尝试使用长度为101的程序以及之前尝试过的所有程序。所以你重试PiiPi=100101 P,该程序(我们知道)将为您提供正确的答案,但是它仍然花费太长时间,因此您将其丢弃。我们继续进行该过程,直到达到为止。然后,我们尝试长度的所有程序120,而当我们到了P,我们让它运行足够长的时间为它得到正确的答案。然后我们停止-我们找到了想要的算法。我们正在进行的迭代是i = 120,因为尽管程序P的长度较小(我们将写| P | = 100),但是我们不得不等到花费的时间为120秒(s = 120)i=120120Pi=120P|P|=100s=120)。所以仅表示程序P的最大长度和运行s所花费的时间。i=max{|P|,s}Ps

Ps |P| si<|P|i<s

注意,只有在有一个答案的情况下,这种搜索方法才能保证得到答案。不能保证找到最短或最快的答案。如果您认为该过程在找到能够给出正确答案的程序后立即终止,则其原因应该很明显。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.