今天看到有一个软件叫WinCalibra(向下滚动一点)它可以将具有属性的文本文件作为输入。
然后,该程序可以根据算法的输出值优化输入属性。看这张纸或用户文档以获取更多信息(请参阅上面的链接;遗憾的是 doc 是一个压缩的 exe)。
您知道在 Linux 下运行的其他可以执行相同操作的软件吗? (最好是开源)
EDIT:因为我需要这个 java 应用程序:我应该将我的研究投入到 java 库中吗?gaul or 钟表匠?问题是我不想推出自己的解决方案,也没有时间这样做。您是否有指向像 Calibra 这样的开箱即用应用程序的指导? (互联网搜索不成功;我只找到了图书馆)
我决定放弃赏金(否则没有人会受益),尽管我没有找到令人满意的解决方案:-((开箱即用的应用程序)
一些 (大都会算法-like)概率选择随机游走在这种情况下是一种可能性。也许通过模拟退火来改善最终的选择。尽管您提供的计时参数对于以这种方式获得真正好的结果来说并不是最佳的。
它的工作原理如下:
- 你从某个时刻开始。使用您现有的数据来选择一个看起来有希望的数据(例如您获得的最高值)。放
o
到此时的输出值。
- 您在输入空间中提出一个随机选择的步骤,将输出值分配给
n
.
- 如果 1) 则接受该步骤(即更新工作位置)
n>o
或 2) 新值较低,但 [0,1) 上的随机数小于f(n/o)
对于一些单调递增的f()
范围和域在 [0,1) 上。
- 只要您有能力,就重复步骤 2 和 3,并在每一步收集统计数据。
- 最后计算结果。在你的情况下,所有点的平均值可能就足够了。
重要的装饰:如果空间有许多局部最大值并且它们之间有很深的凹陷,那么这种方法就会遇到麻烦unless步幅足够大,可以越过低谷;但大的步骤会让整个事情变得缓慢。要解决这个问题,你需要做两件事:
- 进行模拟退火(从较大的步长开始,然后逐渐减小它,从而允许步行者早期在局部最大值之间移动,但稍后将其捕获在一个区域中以积累精度结果。
- 使用几个(如果你能负担得起的话,可以使用多个)独立的步行者,这样它们就可以陷入不同的局部最大值。使用的越多,输出值的差异越大,获得最佳最大值的可能性就越大。
如果你知道你只有一个大的、广泛的、表现良好的局部极端,那么这是没有必要的。
最后,选择f()
. You can只需使用f(x) = x
,但是如果使用的话,您将获得最佳收敛f(x) = exp(-(1/x))
.
同样,您没有足够的时间来执行很多步骤(尽管如果您有多台计算机,您可以运行单独的实例来获得多个步行者效果,这将有所帮助),因此您可能会更好地使用某种确定性方法。但这不是我足够了解的主题,无法提供任何建议。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)