Python 使用可用库求解最小集合覆盖

Python 使用可用库求解最小集合覆盖,python,algorithm,Python,Algorithm,我想解一个极小值的例子。作为一种可能性,是否有某种方法将问题表述为二部图并使用networkx 评论中建议使用dlx(舞蹈链接)进行更新。有人能给出一个小的工作示例,说明如何使用dlx解决最小集合覆盖问题吗?集合覆盖可以映射到图形上的任何NP完全问题,但这并不意味着您能够有效地解决它。你有没有理由不直接关注手头的问题(例如,设置掩护) 可能是这样的: 这可以使用:pip install dlx或easy_install dlx安装。对于所有在Python中使用dlx库的人,我准备了一个小示例 使

我想解一个极小值的例子。作为一种可能性,是否有某种方法将问题表述为二部图并使用networkx


评论中建议使用dlx(舞蹈链接)进行更新。有人能给出一个小的工作示例,说明如何使用dlx解决最小集合覆盖问题吗?

集合覆盖可以映射到图形上的任何NP完全问题,但这并不意味着您能够有效地解决它。你有没有理由不直接关注手头的问题(例如,设置掩护)

可能是这样的:


这可以使用:pip install dlx或easy_install dlx安装。对于所有在Python中使用
dlx
库的人,我准备了一个小示例


使用
pip install dlx安装
,然后按照我在中指定的操作,它附带了几个示例实例。享受吧

如何将最小集合覆盖问题映射到二部图上?@PatriciaShanahan我从维基上获取了这个信息,它说集合覆盖等价于击中集合问题。通过观察集合覆盖的实例可以很容易地看出这一点,集合覆盖可以被视为任意二部图,集合由左侧的顶点表示,宇宙由右侧的顶点表示,边表示集合中元素的包含。然后,任务是找到覆盖所有右顶点的左顶点的最小基数子集。“集合覆盖可以映射到图上的任何NP完全问题,但这并不意味着您能够有效地解决它。您不直接关注手头的问题(即集合覆盖)有何原因?可能是:@TomSwifty这看起来是个不错的选择。谢谢。如果你把它作为一个答案添加进来,我会在几个小时内接受它,如果我能想出如何安装它。你能给出一个它使用的最简单的工作示例吗?谢谢。我看不到手册。你能给出一个dlx的最简单的工作示例吗?@felix图书馆是包含文档字符串的所有400行代码,并在
\uuuuu main\uuuuuu
块中包含一个示例。事实上,即使我可以让它工作,您如何使用它来解决最小集合覆盖率问题?