用于启发式算法的调整/校准属性的软件

时间:2010-03-07 20:47:00

标签: linux algorithm optimization heuristics calibration

今天我读到有一个名为WinCalibra的软件(向下滚动一下),可以将带有属性的文本文件作为输入。

然后,该程序可以根据算法的输出值优化输入属性。有关详细信息,请参阅this paper或用户文档(请参阅上面的链接;遗憾的是doc是压缩的exe文件)。

你知道其他可以在Linux下运行的软件吗? (首选开源)

编辑:因为我需要这个用于Java应用程序:我应该将我的研究投入到gaulwatchmaker等Java库中吗?问题是我不想推出自己的解决方案,也没有时间这样做。你有指向像Calibra这样开箱即用的应用程序的指针吗? (互联网搜索不成功;我只找到了库)

我决定放弃赏金(否则没有人会有好处)虽然我没有找到满意的解决方案:-((开箱即用的应用程序)

4 个答案:

答案 0 :(得分:3)

在这种情况下,某种类型的(Metropolis algorithm - )概率选择随机游走是可能的。也许用模拟退火来改善最终选择。虽然您提供的时序参数不是最佳的,但却能以这种方式获得非常好的结果。

它的工作原理如下:

  1. 你从某个时刻开始。使用您现有的数据来选择一个看起来很有前途的数据(比如您获得的最高价值)。此时将o设置为输出值。
  2. 您建议在输入空间中随机选择一个步骤,将输出值分配到n
  3. 接受步骤(即更新工作位置),如果1)n>o或2)新值较低,但[0,1)上的随机数小于f(n/o)在[0,1)上有一些单调增加f()范围和域名。
  4. 只要你能负担得起,重复步骤2和3,在每一步收集统计数据。
  5. 最后计算结果。在你的情况下,所有点的平均值可能就足够了。
  6. 重要的褶边:如果空间有很多局部最大值并且它们之间存在深度下降,则此方法会出现问题除非步长大到足以超过逢低;但是大步骤会使整个事情变得缓慢。要解决这个问题,你需要做两件事:

    1. 进行模拟退火(以较大的步长开始并逐渐减小它,从而允许助行器在早期在局部最大值之间移动,但稍后将其捕获在一个区域中以累积精确结果。
    2. 使用几个(很多,如果你能负担得起)独立的步行者,以便他们可以被困在不同的局部最大值。您使用的越多,输出值的差异越大,您获得最佳最大值的可能性就越大。
    3. 如果您知道自己只有一个大的,广泛的,表现良好的局部极端,那么这不是必需的。

      最后,选择f()。您可以只使用f(x) = x,但如果使用f(x) = exp(-(1/x)),您将获得最佳收敛。


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

答案 1 :(得分:1)

有很多基于遗传算法的软件可以做到这一点。在十年或两年前写了一篇关于它的博士。

google for Genetic Algorithms Linux显示了一大堆起点。

答案 2 :(得分:0)

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

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

作为搜索问题,算法参数调整的规则与其他解决方案搜索问题没有显着差异,其中解决方案空间由给定算法的参数定义。但是因为它适用于本身就是各种解决方案的算法,所以这个学科有时被称为Metaheuristics或Metasearch。 (元启发式方法可以应用于各种算法)
当然,与其他优化应用程序相比,参数调整问题有许多特定功能,但对于搜索 per-se 的解决方案,方法和问题通常是相同的。

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

所以...回到CALIBRA ...... 从其作者的承认,Calibra有几个限制

  • 限制5个参数,最大值
  • [某些?]参数
  • 的一系列值的要求
  • 当参数相对独立时效果更好(但......等等,在这种情况下,不是整个搜索问题更容易;-))

CALIBRA基于一系列方法,这些方法按顺序重复。引导式搜索和本地优化的混合。

CALIBRA的论文发表于2006年。从那时起,对本文和CALIBRA的参考文献相对较少。此后,它的两位作者发表了与运筹学(OR)相关的各种学科的其他几篇论文。 这可能表明CALIBRA并未被视为突破。

答案 3 :(得分:0)

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

我正在处理适配器,例如简化实验设置的C ++和Java,需要一些人习惯于SPOT。该项目名称为InPUT,调整部分的第一版即将推出。