随机选取含噪声集上元素的一种算法

2024-05-17 05:06:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我想找到一个方法(例如在python中),它给定一个排序的列表,选择带有一些错误epsilon的顶层元素

一种方法是用概率p<;1,然后是第2个带p'<;p等指数衰减

理想情况下,虽然我想一个方法,考虑到一些噪音的顶部元素的获胜保证金。即:

给定一个列表[a,b,c,d,e,…],其中a是最大的元素,b是第二大的元素,依此类推

用概率p<;选择顶部元素;1,其中p取决于a-b的值,p'取决于b-c的值,依此类推


Tags: 方法保证金lt元素列表排序错误情况
2条回答

你不能完全做到这一点,因为如果你有n个元素,那么在连续的元素之间只有n-1个差异。做类似事情的标准方法是fitness proportionate selection(link提供java和ruby的代码,应该很容易翻译成其他语言)

对于这个想法的其他变体,可以在选择操作符中查找遗传算法(有多种)

一种方法是选择元素k,其概率与exp(-(x[k] - x[0])/T)成正比,其中x[0]是最小的元素,T是自由参数,类似于温度。这是受到热力学类比的启发,在热力学中,低能(小x[k])态更有可能,高能(大x[k])态有可能,但可能性较小;温度的影响是集中在最可能的状态(T接近零)或以几乎相等的概率从所有元素中选择(大的T

模拟退火的方法就是基于这个类比,也许你能从中得到一些启示

编辑:请注意,此方法对值几乎相等的元素给出了几乎相等的概率;根据你的描述,听起来这是你想要的

第二次编辑:我把它倒过来了;我在上面写的使得较小的值更有可能。与exp(-(x[n - 1] - x[k])/T)成比例的概率,其中x[n - 1]是最大值,使得更大的值更可能

相关问题 更多 >