实现基于流行度的优先级图

时间:2015-11-25 17:43:00

标签: algorithm graph graph-algorithm weighted-average

我想实现一个图表,其中节点是项目,而外边缘是下一个项目的受欢迎程度。 (例如,我已完成此任务,之后执行的最常用任务是什么?)我的初始算法只是在每次遍历时增加了一个流行度关系,但这会产生三个问题:

首先,可能有多达(100,000+)个项目,最多10-15个Unicode字符,我希望尽可能减少总空间。其次,每个(关系)数字都存在溢出的风险,并且每当值接近边缘时将流行度除以2是耗时的并且就其他项目的流行度的差异而言损失很多准确性。

(即假定a-4-> b和a-5-> c和a-255-> d。对于一个字节,a-255-> d将在下一个增量处溢出,但是除以2之间的关系将给出:a-2-> b和a-2-> c和a-127-> d)

第三,它使较不受欢迎的边缘难以普及。

我还考虑过类似队列的结构,其中每个转换都将下一个项目入队,并在队列满时将最旧的转发入队列。但是,如果队列太小而占用大量空间,即使队列只有10个元素,这也会产生过于动态的问题。

有关解决此问题的算法/数据结构的任何想法?

0 个答案:

没有答案