假设你居住在旧金山,要从双子峰前往金门大桥。你想乘公交车前往,并希望换乘最少。可乘坐的公交车如下。

为找出换乘最少的乘车路线,你将使用什么样的算法?

一步就能到达金门大桥吗?下面突出了所有一步就能到达的地方。

金门大桥未突出,因此一步无法到达那里。两步能吗?

金门大桥也未突出,因此两步也到不了。三步呢?

金门大桥突出了!因此从双子峰出发,可沿下面的路线三步到达金门大桥。

还有其他前往金门大桥的路线,但它们更远(需要四步)。这个算法发现,前往金门大桥的最短路径需要三步。这种问题被称为最短路径问题(shorterst-path problem)。你经常要找出最短路径,这可能是前往朋友家的最短路径,也可能是国际象棋中把对方将死的最少步数。解决最短路径问题的算法被称为广度优先搜索。

要确定如何从双子峰前往金门大桥,需要两个步骤。

  • 使用图来建立问题模型。
  • 使用广度优先搜索解决问题。

下面介绍什么是图,然后再详细探讨广度优先搜索。

results matching ""

    No results matching ""