我遇到了以下问题:

Exact2is= {g完全有2个独立集}

假设给定图g我可以找到一个独立的集合,如何检查g是否有2个独立集合。

(我可以检查图表是否包含在O(1)中的独立设置,并在O(1)中找到一些独立的设置

我在想找到一些独立的set(如果有的话)大小k,然后从集合中删除一个顶点并检查图是否仍然具有独立的大小k - 在我检查时,我完全按照它返回图形的顶点。

问题我的想法才检查图g是否包含至少2个独立集而不是完全的。

任何人都有一个想法,我如何检查图表是否完全是2个独立集(在多项式时间中,并且给出了查找和检查是否有独立集的事实是O(1))?

任何线索或想法都会受到赞赏:) 谢谢

有帮助吗?

解决方案

首先,如果可以确定图 $ g $ 包含一个独立的大小集 $ k $ ,那么您还可以有效地找到这样的设置。这被称为“搜索到决策减少”。这是基本的想法。选择任意顶点 $ V $ ,然后删除它。如果图表仍然具有独立的大小 $ k $ ,则继续进行。否则,所有独立的大小集 $ k $ 包含 $ v $ 。因此,删除 $ v $ 和所有邻居,并找到一个独立的大小 $ k-1 $ 在剩下的图表中。通过这种方式,您可以恢复独立的大小集 $ k $

第二,如何检查图表是否包含至少两个独立的大小 $ k $ ,假设 $ k \ geq 2 $ 。首先,您确定是否包含至少一个。假设它确实如此,例如 $ i $ 。如果 $ j $ 是任何其他独立集,那么 $ i \ setminus j $ $ j \ setminus i $ 都是非空的(因为 $ | i |= | j | $ )。特别是,如果 $ x \ In i \ setMinus j $ $ y $ 是任何其他顶点 $ i $ ,即使添加边缘 $(x,y)$ ,set $ j $ 将构成一个独立的集合。

这导致以下算法:对于每对顶点 $ x,y \在i $ 中,检查 $ g +(x,y)$ 包含一个独立的大小集 $ k $ 。如果是这样,这种独立集必须与 $ i $ 不同。相反,如果一个独立的大小 $ k $ 不同于 $ i $ 存在,那么必然会在 $ g +(x,y)$ for for some $ x,y \中,在i $

三,如何检查图表是否包含完全两个独立的大小集 $ k $ 。这与检查图形是否包含至少三个独立集。我认为此时,如果您尝试将上述参数从两组从两组概括为更好。你可能会被困,但你不会知道,直到你尝试。

其他提示

如果您被允许查找 a尺寸 $ k $ $ \Mathcal O(1)$ ,那么您所写的内容是几乎解决方案。只需两次发现一个大小 $ k $ ,后检查是否仍然存在另一个。

但通常,对于Oracle机器,您不允许找到(在此示例中)在 $ \ mathcal o(1)$ 时间,以及您仅允许检查 $ \ mathcal o(1)$

中的

我希望这有助于!

许可以下: CC-BY-SA归因
不隶属于 cs.stackexchange
scroll top