无限/(动态)宇宙字母数字元素集中的子集计算

发布于 2024-10-31 05:01:08 字数 739 浏览 1 评论 0原文

给定字母数字元素的无限集合/宇宙 (U) 和 (U) 子集的族 (F)。

计算/分组 (F) 中的所有相关子集,其中所有元素都被覆盖或更少,请参见示例。

宇宙并不是真正无限的,但非常大,大约有 5900 万个元素,并且还在不断增长。族 (F) 子集也不是恒定的,大约有 1300 万个元素,并且还在不断增长。

示例:

U = {9b3745e9,ab70de17,1c410139,44038bbf,9c610bb, ...,N}

F1 = {9b3745e9,07ee0220}

F2 = {9b3745e9,ab70de17,99b5d738}

F3 = {99b5d738,07ee0220}

F4 = {9b3745e9,ab70de17,1c410139}

F4计算()={F2(2),F1( 1)}

当然,你可以通过残酷的迭代来做到这一点,但随着时间的推移,它不是最佳解决方案(NP 完全问题)。

有什么想法可以更有效地解决这个问题吗?对子集进行编码,同时使用大于 Universe 的元素/向量密码本,例如 70Mil 或 100Mil。但我不确定计算。

Given a infinite set/Universe (U) of alphanumeric elements and a family (F) of subsets of (U).

Calculate/Group all related subsets in (F), where all elements are covered or less, see example.

The Universe is not really infinite, but very large, approximately 59Mil elements and growing. Family (F) subsets, are not constant either, approximately 13Mil elements and growing as well.

Example:

U = {9b3745e9,ab70de17,1c410139,44038bbf,9c610bb,...,N}

F1 = {9b3745e9,07ee0220}

F2 = {9b3745e9,ab70de17,99b5d738}

F3 = {99b5d738,07ee0220}

F4 = {9b3745e9,ab70de17,1c410139}

F4calculate()={F2(2),F1(1)}

Of cause you can do it on brutal iteration, but over time it is not the optimal solution (NP-complete problem).

Any ideas how this can be solved more efficient? Encoding subsets, while using a element/vector Codebook that is larger than Universe, for instance 70Mil or 100Mil. But I'm not sure about calculation.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

滿滿的愛 2024-11-07 05:01:08

根据该示例,“相关”子集似乎是包含至少一个公共元素的子集。在示例中,F4 有两个共享元素:0x9b3746e9(与 F1 共享)以及与 F2 共享的 0xab70de17 和 0x9b3746e9。括号中的数字表示共享元素的数量(F2(2) = 2 个与 F2 共享的元素)。假设这样的解释:

这显然不是NP完全的
问题只是一个简单的索引情况。
在哈希表中,链接每个元素
U (59 * 106) 到列表
包含它们的子集(例如
0x9b3746e9-> {F1,F2,F4})。什么时候
找到给定的相关子集
子集,迭代元素
U 在子集中,并查找
每个元素的哈希表。迭代
通过列表,你会发现
相关子集。这是一个快速
操作后什么也没有
其中 NP 完全。

然而,对该问题的另一种解释是,这是 SET COVER 组合优化问题的一个实例。这确实是NP完全的。

It seems based on the example that "related" subsets are subsets that contain at least one common element. In the example, F4 has two shared elements, 0x9b3746e9 (shared with F1) and 0xab70de17 and 0x9b3746e9 shared with F2. The numbers in parentheses denote the number of shared elements (F2(2) = 2 shared elements with F2). Assuming this intepretation:

This is obviously not an NP-complete
problem but a simple case of indexing.
In a hash table, link every element of
U (59 * 106) to a list of
subsets that contain them (e.g.
0x9b3746e9 -> { F1, F2, F4 } ). When
finding the related subsets of a given
subset, iterate through the elements
of U in the subset, and lookup the
hash table for every element. Iterate
through the lists, and you find the
related subsets. This is a fast
operation and there's nothing
NP-complete in it.

However another interpretation of the question is that this is an instance of SET COVER combinatorial optimization problem. This is indeed NP-complete.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文