图形对于模拟现实世界的现象和关系非常有用。
从广义上讲,图形数据结构和算法分为两类:
但是,在我能想到的每种情况下,真实世界的图表都很稀疏。例如:
(注意"少数"与总站点数/人/元素/道路/等相比。)
但是,我从来没有找到密集图的算法和数据结构的用例。
我记得遇到的每一张图都变得很稀疏。
请注意:是的,我知道每个人彼此认识的一小群人会形成一个密集的图表,但那种不是那种我问的问题,因为:
这意味着我也不会寻找愚蠢的例子,例如"稀疏图的补充"无论是。
是的,那些是密集的,但除非你能给我一个实际感兴趣的问题的例子,并且不用原始的稀疏图来合理解决,那就不行了回答我的问题。
答案 0 :(得分:0)
稀疏图的补充是密集的(想想给定网页没有链接到的所有网站)。所以有一个开始。
脱离我的头顶......
更一般地说,如果您想要更密集的图表,请尝试放宽某些旅行限制。
答案 1 :(得分:0)
嗯,图表越密集,它越接近完整,并且带有加权边缘的完整图形通常更容易表示并且仅仅作为方形矩阵思考,可能有一些无穷大或负无穷大分散到代表缺失"边缘"。或者,它可以变得接近完整的二分图,其也可以表示为矩阵(只是沿着两个轴使用不同标签集的矩阵)。 Assignment Problem通常表示为关于矩阵的问题,而不是关于密集边缘加权的二分图。
我认为使用密集图算法的一个原因是为了保证密集图上的良好最坏情况行为。
还有一些问题与图形的补码上的其他问题有关 - 即图形中每对顶点之间都有边缘,如果它们之间没有边缘的话。原版的。例如。如果你在一个图表中寻找最大集团,其中包含超过30%的可能边缘(真的在这里猜测),你认为这个集团会很大,你可能会更好创建补图,然后寻找它的minimum vertex cover,因为补图中这样的顶点覆盖的补集将是原始图中的一个集团。虽然这两个问题都是NP难的,但是当存在小覆盖时,最小顶点覆盖要快得多,将O(1.2378 ^ k * n ^ O(1))用于大小为k的覆盖(对应于大小为nk的集团)。 O(1.1888 ^ n)代表最大集团。
答案 2 :(得分:0)
我能想到的一个例子是加密货币,其中每种货币都可以转换为其他所有货币。为了在市场波动时跟踪所有转化率,您需要一个密集的图形表示和算法。