Algorithm 具有不精确比较的不完全排序算法 总结

Algorithm 具有不精确比较的不完全排序算法 总结,algorithm,sorting,graph-algorithm,Algorithm,Sorting,Graph Algorithm,我正在寻找一种对对象进行排序的算法。可以比较两个对象。然而,这些比较是现实世界中可能存在缺陷的比较。此外,我更关心的是找出最好的对象,而不是找出最差的对象 为了激励: 我认为我是在科学地评估材料。我结合了两种材料。我想为深入测试找到最好的工作材料。所以,我不在乎那些没有希望的材料。然而,每项测试都可能是假阳性,或者在这两种材料之间存在异常 精确问题: 有一个无限的对象池 两个对象可以相互比较。比较两个对象需要耗费大量资源 考虑一个附加的对象是非常昂贵的。因此,一个对象只有在能够完全排名的情况下才

我正在寻找一种对对象进行排序的算法。可以比较两个对象。然而,这些比较是现实世界中可能存在缺陷的比较。此外,我更关心的是找出最好的对象,而不是找出最差的对象

为了激励: 我认为我是在科学地评估材料。我结合了两种材料。我想为深入测试找到最好的工作材料。所以,我不在乎那些没有希望的材料。然而,每项测试都可能是假阳性,或者在这两种材料之间存在异常

精确问题:
  • 有一个无限的对象池
  • 两个对象可以相互比较。比较两个对象需要耗费大量资源
  • 考虑一个附加的对象是非常昂贵的。因此,一个对象只有在能够完全排名的情况下才应该包括在评估中
  • 在测试对象池中找到最好的对象是非常重要的。如果一个物体在下半部,找出它在下半部的位置并不重要。找出准确的等级的重要性是一个梯度,而顶部更为重要
  • 大多数情况下,如果A>B和B>C,可以安全地假设A>C。有时会出现误报。有时A>B和B>C和C>A。这不是一个抽象的数学空间,而是真实世界的度量
  • 一开始,不知道允许进行多少比较。该算法被授予进行另一次比较的权限,直到没有进行比较为止。因此,必须决定是否包括一个附加对象或测试更多已测试对象
  • 要更深入地激励员工: 假设你的任务是雇佣一队拳击手。你不知道如何评价拳击手,但可以让两个拳击手互相打斗。世界上拳击手的数量是无限的。但是飞进去要花很多钱。理想情况下,你想雇佣n名最好的拳击手。事实上,你不知道拳击手是否会接受你的提议。另外,你不知道其他拳击俱乐部的出价有多高。您将只向最好的n名拳击手报价,但必须准备好知道下一个n名拳击手将向谁报价。你不太可能只得到最差的拳击手

    一些方法 我可以想到以下方法。然而,它们都有缺点。我觉得应该有更好的方法

  • 使用传统的排序算法
  • 可以使用传统的排序算法

    缺点: -假阳性可能严重影响算法的正确性。 -排序算法将花费一半的时间对包的下半部分进行排序,这并不重要。 -排序算法从所有项目开始。有了这个问题,我们可以做第一个测试,不知道是否可以做第二个测试。我们最终可能只能做两次测试。或者我们可能被允许做一百万次测试

  • 使用竞赛算法 比赛有一些算法。例如,每个人都有第一场比赛。第一场比赛的获胜者进入下一轮。有各种各样的比赛策略可以解释人们在第一场比赛中遇到糟糕的一天或与冠军搭档的原因
  • 缺点: -这似乎很有希望。困难在于找到一个允许一次增加一个玩家的方法,因为我们可以进行更多的比较。似乎应该有一个比标准锦标赛算法更好的高度专业化的解决方案

  • 二进制搜索 我们可以从两个物体开始。每次添加一个对象时,我们都可以使用二进制搜索来查找它在排名中的位置。因为顶部更重要,我们可以使用加权二进制搜索。例如,它不是测试中点,而是测试顶部1/3处的点
  • 缺点: -该算法无法纠正误报。如果早期顶部出现假阳性,则可能会影响其余的测试

  • 统计胜负 胜负是可以统计的。该算法将根据损失最少的优先级和赢得最多的第二优先级来选择测试对象。这将集中于测试最好的对象。如果一个对象的损失为零,它将成为测试的焦点。它要么会很快失去优先权,要么会得到更多的测试,因为它很可能是首选
  • 缺点: -这种方法非常好,因为它可以纠正误报。它还允许轻松地向测试池添加更多对象。然而,它并不认为胜过一个顶级目标胜过战胜一个底部对象。因此,比较是浪费的

  • 图表 所有对象都可以添加到图形中。图形可以展平
  • 缺点: -我不知道如何展平这样一个混乱的图形,它可能有循环和模糊的结束节点。可能存在多个未被击败的对象。在这样一张混乱的图表中,人们如何选择赢家?你怎么知道哪种比较最有价值

  • 得分 由于胜负取决于失败者的级别,因此可以给胜负打分。假设A>B,意味着A得1分。如果C>A,C得2分,因为A得1分。最后,根据对象的点数对对象进行排序
  • 缺点 -这种方法似乎很有希望,因为它很容易将新对象添加到测试对象池中。它还考虑到对顶级对象的胜利应该更重要。我想不出一个确定分数的好方法。第一次比较,得1分。一旦10000件物品进入池中,平均赢取5000分。两项测试的奖励应该大致相等。后来的比较压倒了先前的比较,使它们在不应该被忽略的时候被忽略

    有人有解决这个问题的好办法吗?

    I wo