算法:线性时间选择_大数据 | 大数据基础算法之亚线性时间算法:计算图的平均度算法一...

本文探讨图的平均度计算问题,从定义、分析到提出线性时间复杂度的算法,通过分组和随机采样方法进行估算。虽然算法简洁,但存在潜在问题,将在后续文章中改进。
摘要由CSDN通过智能技术生成

爱的读者朋友大家晚上好,前几篇文章我们介绍了点集合的直径和连通分量的数量等几个问题,这次我们来分析图的平均度的计算,这个问题的定义非常简单。

定义

已知

:平均度

假设:是简单图,没有平行边和自环;由邻接链表和存储度数的数组表示,如图中的所示。

d47cc42cd73df43e2db3dba0d52481dc.png

分析

对于一些特殊的图,如,就是说这个图就是一个长度为的环,这样的图的平均度就是2。对于,也就是图中的一个局部完全子图,比如说,它的平度,这个计算非常简单,请自行进行推导。

但是对于一个通常的图就需要一个通用的方法,最简单的可以用随机采样的方法,也就是在图中随机选择个点,求这些点的度的平均值,就是最后的估计值。当然了方法很简单,但是算出的结果也很粗糙。

下面我们来看一个看起来比较正常的算法,算法的idea是这样的:将具有相似或者相同度数的节点分组,然后估算每个分组的平均度数。

首先我们来将所有的点进行分桶,分成个桶,第个桶里的点集合为,其中是超参数。

于是中的点的总度数有上下界如公式所示:。

进一步地的总度数可以表示为:。

于是我们可以得到:。

经过这样的转化,我们就将问题转化成了对的估计,计算的算法如下。

算法

  1. 从取出样本集合
  2. 返回

算法的思想其实很简单,将理解为一种概率,就是随机选一个点,这个点属于的概率,这样理解算法就很简单了。

评价

算法的思想和计算都很简单,只是进行了一个非常巧妙的转化,但是这个算法仍然是有问题的,这将会在下周一的文章中指出并提出新的算法来解决问题,敬请期待。

- END -
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值