农夫过河问题
经典的农夫过河问题,相冲突的生物之间有连线,每次携带走某几个生物后,要保证剩下的没有连线存在。问船的容量最小是多少呢?
视频:【Numberphile】农夫过桥问题和阿尔昆数

直观的思路就是,找最少需要几只手盖住顶点后能消除所有连线(即最小覆盖):

但有时只有最小顶点覆盖个位置是不够的。
如下面的例子,最小顶点覆盖显然是1,把狼盖住就行了:

但船若只有1个额外位置是不行的,一个来回之后就卡住了:

这就需要再额外增加一个位置,也就是最小顶点覆盖数+1个位置。这时只要总是把狼带在身边,就能用剩下的位置一个个运送其它生物了。
所以最多只需要最小顶点覆盖数+1个位置,而有时只需最小顶点覆盖数个位置即可。关于确定什么时候需要+1是NP难的问题。
农夫过河问题可以归纳成顶点覆盖问题。下面引入顶点覆盖的具体概念,并与团和独立集作对比。

本文通过农夫过河问题介绍图论中的概念,包括点覆盖(最小点覆盖数β)、团(最大团Cl(G))和独立集(最大独立集)。农夫过河问题可以转化为求最小顶点覆盖问题,讨论了何时需要最小顶点覆盖数+1。点覆盖与独立集互为补集,独立集在补图中对应团。文中列举了例子并解释了它们之间的相互联系。
最低0.47元/天 解锁文章
943

被折叠的 条评论
为什么被折叠?



