软件来调整/校准启发式algorithm的属性

今天我读了一个名为WinCalibra的软件(向下滚动),它可以把一个带有属性的文本文件作为input。

然后该程序可以根据algorithm的输出值优化input属性。 有关更多信息,请参阅本文或用户文档(请参阅上面的链接;可悲的是,doc是压缩的exe文件)。

你知道其他软件可以做到这一点,在Linux下运行? (最好是开源)

编辑 :因为我需要这个Java应用程序:我应该把我的研究投资在像高卢或制表师的 Java库吗? 问题是我不想推出我自己的解决scheme,也没有时间这样做。 你有没有像Calibra这样的开箱即用的应用程序的指针? (互联网search不成功;我只find库)

我决定放弃赏金(否则没有人会有好处),虽然我没有find一个令人满意的解决scheme:-((开箱即用的应用程序)

Solutions Collecting From Web of "软件来调整/校准启发式algorithm的属性"

在这种情况下,某种( Metropolis算法类似的)概率选择随机游走是一种可能性。 也许用模拟退火来改善最终的选择。 虽然您提供的计时参数对于以这种方式获得非常好的结果并不是最佳选择。

它是这样工作的:

  1. 你从某个角度开始 使用你现有的数据来选择一个看起来很有前途的数据(比如你拥有的最高价值)。 将o设置为此时的输出值。
  2. 您在输入空间中提出一个随机选择的步骤,将输出值分配给n
  3. 接受步骤(即更新工作位置)如果1) n>o或2)新值较低,但是对于某些单调增加的f()在[0,1)上的随机数小于f(n/o) f()与范围和域[0,1)。
  4. 重复步骤2和步骤3,只要您能负担得起,在每一步收集统计数据。
  5. 最后计算结果。 在你的情况下,所有点的平均值可能就足够了。

重要的褶皱:如果这个空间有很多局部最大值,而且它们之间深陷,那么这个方法就会遇到麻烦, 除非这个步长足够大, 但是大的步骤使整个事情变得缓慢。 要解决这个问题,你需要做两件事:

  1. 做模拟退火(从一个大的步长开始逐渐减小,这样就可以让步行者在早期的局部最大值之间移动,但是在稍后的一个区域捕捉它来累积精确的结果。
  2. 使用几个(许多如果你能负担得起)独立步行者,以便他们可以被困在不同的当地最大值。 你使用的越多,输出值的差异就越大,你就越有可能得到最好的最大值。

如果你知道你只有一个大的,宽阔的,恰到好处的本地极端,这是没有必要的。

最后,选择f() 。 你可以使用f(x) = x ,但是如果使用f(x) = exp(-(1/x)) ,你会得到最优收敛。


再一次,你没有足够的时间来完成很多步骤(尽管如果你有多台计算机,你可以运行单独的实例来获得多重步行者的效果,这将有所帮助),所以你可能会更好一些确定性做法。 但是这不是我知道足够提供任何建议的主题。

有很多基于遗传算法的软件可以做到这一点。 在十年或二十年前写了一篇关于PHD的文章。

一个用于遗传算法的谷歌Linux显示了一个起点的负载。

受到这个问题的影响,我在开源和Linux世界中做了一些探索,试图更好地理解CALIBRA的性质,学术界的地位以及类似软件项目的存在。 如果我的断言不完整,不准确,甚至是不正确的,可能的情况下请善待(并请直接编辑,或者建议编辑)。 在相关领域工作的时候,我不是一个运营研究(OR)权威!

[算法]参数调整问题是一个相对明确的问题,通常被定义为解决方案搜索问题之一,其中所有可能的参数值的组合构成解决方案空间,并且参数调整逻辑的目的是“导航”[部分]这个空间寻找最佳(或局部最优)参数集合。
给定解决方案的最优性以各种方式进行衡量,而这些衡量指标有助于指导搜索。 在参数调整问题的情况下,给定解的有效性直接或通过函数从算法的输出(即被调整的算法而不是调谐逻辑的算法)被测量。

框架作为一个搜索问题,算法参数调整的规则没有明显区别于其他解决方案搜索问题,其中解决方案空间是由给定算法的参数定义的。 但是因为它适用于本身就是各种解决方案的算法,所以这个学科有时被称为Metaheuristics或Metasearch。 (一个metaheuristics的方法可以适用于各种算法)
当然,与其他优化应用相比,参数整定问题有许多具体的特点,但是就解决方案搜索本身而言 ,方法和问题一般是相同的。

事实上,虽然定义明确 ,但是搜索问题总体上仍然没有得到广泛的解决 ,并且是许多不同领域积极研究的对象。 各种方法取决于领域的具体条件和要求而取得了不同的成功,而这种充满活力和多样性的学术研究和实际应用的组合是Metaheuristics和优化的共同特征。

所以…回到CALIBRA …从自己的作者的承认,Calibra有几个限制

  • 限制5个参数,最大值
  • 要求[一些]参数的一系列值
  • 当参数是相对独立的(但是…等等,那么情况就不是整个搜索问题更容易;-))

CALIBRA是基于多种方法的组合,这些方法按顺序重复。 引导搜索和本地优化的组合。

CALIBRA提交的论文是2006年。从那以后,对这篇论文和CALIBRA的参考资料相对较少。 其两位作者已经发表了多篇有关运筹学(OR)的不同学科的其他论文。 这可能表明CALIBRA并未被视为突破。

该领域的最新进展(“参数调整”,“算法配置”)是R中的SPOT包 。您可以使用您选择的语言连接外部适应度函数。 它真的很强大。

我正在为例如C ++和Java的适配器工作,以简化实验设置,这需要一些在SPOT中习惯。 该项目名为InPUT ,第一版的调整部分将很快上线。