4

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

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

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

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

尽管我没有找到令人满意的解决方案,但我决定放弃赏金(否则没有人会受益):-((开箱即用的应用程序)

4

4 回答 4

3

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

它是这样工作的:

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

重要的装饰:如果空间有许多局部最大值,并且它们之间有很深的凹陷,除非步长足够大以通过凹陷,否则这种方法会遇到麻烦;但大的步骤使整个事情收敛缓慢。要解决此问题,您需要做两件事:

  1. 进行模拟退火(从大步长开始并逐渐减小它,从而允许步行者尽早在局部最大值之间移动,但稍后将其困在一个区域中以累积精确结果。
  2. 使用几个(如果你能负担得起的话,很多)独立的步行者,这样他们就可以被困在不同的局部最大值中。您使用的越多,输出值的差异越大,您获得最佳最大值的可能性就越大。

如果你知道你只有一个大的、广泛的、表现良好的局部极值,那么这不是必需的。

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


同样,您没有足够的时间来执行很多步骤(尽管如果您有多台计算机,您可以运行单独的实例来获得多个步行者的效果,这将有所帮助),因此您可能会更好地使用某种确定性方法。但这不是我足够了解的主题,无法提供任何建议。

于 2010-03-08T18:24:02.750 回答
1

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

遗传算法 Linux 的谷歌显示了大量的起点。

于 2010-03-07T20:51:50.697 回答
0

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

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

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

事实上,虽然定义明确,但搜索问题通常仍未得到广泛解决,并且是许多不同方向、许多不同领域的积极研究对象。根据领域的具体条件和要求,各种方法提供了不同的成功,这种充满活力和多样化的学术研究和实际应用组合是元启发式和整个优化的共同特征。

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

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

CALIBRA 基于按顺序重复的方法组合。引导搜索和本地优化的结合。

提出 CALIBRA 的论文是 2006 年的。从那时起,对这篇论文和整个 CALIBRA 的引用相对较少。此后,它的两位作者在与运筹学 (OR) 相关的各个学科中发表了其他几篇论文。这可能表明 CALIBRA 尚未被视为突破。

于 2010-03-08T00:12:35.987 回答
0

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

我正在研究用于简化实验设置的 C++ 和 Java 适配器,这需要一些习惯于 SPOT。该项目的名称为InPUT,调整部分的第一个版本将很快推出。

于 2012-11-29T20:34:25.510 回答