- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在处理一个(不是那么)大的图,它有大约 38 万条边。我写了一个程序来计算图中 3-cliques 的数量。一个简单的例子:
List of edges:
A - B
B - C
C - A
C - D
List of cliques:
A - B - C
MySQL 表结构:
+-------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------+------+-----+---------+-------+
| v1 | bigint(20) | YES | MUL | NULL | |
| v2 | bigint(20) | YES | MUL | NULL | |
+-------+------------+------+-----+---------+-------+
3 团只不过是图中的一个三角形。目前,我正在使用 PHP+MySQL 执行此操作。正如预期的那样,它不够快。有没有办法在纯 MySQL 中做到这一点? (也许是一种将所有 3 组插入到表中的方法?)
最佳答案
SELECT T1.v1, T2.v1, T3.v1 FROM TableName T1, TableName T2, TableName T3
WHERE T1.v1 < T1.v2 AND T2.v1 < T2.v2 AND T3.v1 < T3.v2
AND T1.v1 = T3.v1 AND T1.v2 = T2.v1 AND T2.v2 = T3.v2
应该可以解决问题。我在那里所做的是确保 v1 小于 v2 对于所有考虑的边缘,只是为了删除重复项。然后通过起点/终点连接边缘是一件简单的事情。返回每对中的第一个点。
如果您有从一个节点返回到同一节点的边,您可能需要酌情添加额外的检查。
编辑:感谢 Legend 进行了更改。提醒我我们需要确保 T3 中的边与 T1 中的边相匹配,因此我们必须将每个边中的第一个链接在一起!最初我在 where 子句的第一行中有 T3.v1 > T3.v2 但为了减少混淆而更改了它,但是忘记更改第二部分了!
关于php - 图中的 3 团计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2842423/
我有很多观点想要与另一种观点进行交流。我们将另一个 View 称为“主视图”。我想要做的是让“许多其他 View ”能够向“主视图”发送添加 subview 的方法。我会创建一个委托(delegate
在 Smalltalk 中(更具体地说在 Pharo 中)进行委派的最佳方式是什么?我知道 doesNotUnderstand 策略,但它不会委托(delegate) subclassResponsa
我的问题 是否有一个有效的算法来找到最大权重(或最小权重)k- clique在一个完整的 k-partite 图中(根据 wikipedia,顶点相邻当且仅当它们属于不同的 partite 集时)?
我是一名优秀的程序员,十分优秀!