Algorithm 计算依赖项列表,给定多个子依赖项列表
我有一个元素列表:a,B,C。。。 然后,我创建了多个依赖项列表,例如:B->C->H->X,A->C->I 根据前面的信息,我想计算所有元素的依赖项列表 问题是,解决方案可能不是没有冲突的(它们应该很少!)。例如,给定这些列表:A->B,B->A,A->B,我希望解决方案是A->B,因为错误小于B->A 我考虑了以下算法:Algorithm 计算依赖项列表,给定多个子依赖项列表,algorithm,Algorithm,我有一个元素列表:a,B,C。。。 然后,我创建了多个依赖项列表,例如:B->C->H->X,A->C->I 根据前面的信息,我想计算所有元素的依赖项列表 问题是,解决方案可能不是没有冲突的(它们应该很少!)。例如,给定这些列表:A->B,B->A,A->B,我希望解决方案是A->B,因为错误小于B->A 我考虑了以下算法: 计算排名,如公式1所示:每个列表都是一场比赛,因此:第一名得到一定数量的分数,第二名得到更少的分数,以此类推。问题是如何加权和规范化这些点。。。我不知道该怎么做才对 也许
- 计算排名,如公式1所示:每个列表都是一场比赛,因此:第一名得到一定数量的分数,第二名得到更少的分数,以此类推。问题是如何加权和规范化这些点。。。我不知道该怎么做才对
- 也许像网球的ATP等级;)但是,更多的事件最终会导致更多的权重,这并不能给出好的结果。因为例如:A->C,A->C,A->C,A->B,B->C应该导致A->B->C。ATP算法可能会给C一个高排名,所以解决方案可能是A->C->B,这不是我想要的
- 存储O(n^2)关系和出现次数。例如,给定以下列表:A->B->C,存储A->B(1),A->C(1),B->C(1)。然后,如果添加了第二个列表:B->C,那么结果数据将是a->B(1)、a->C(1)、B->C(2)。使用这些信息,计算排名。我认为这样我就有了最完整的可用信息,现在的问题是“只”计算所有元素的依赖列表:)缺点当然是必须存储的数据量
- 所选择的依赖项不是完全随机的。这比随机投票更严格。这些依赖关系实际上应该收敛到一个单一的解决方案,其中冲突很少。所以,阿罗的不可能定理在这里不适用100%(thx@Heuster)
- 预期元素数:少于100
- 列表的预期数量:随着时间的推移缓慢增长,不到1000个
- 依赖项列表的最大长度:小于100
- 所有元素都包含在列表中