我目前正在测试两种不同邮件系统的性能,并且有许多影响邮件速率的独立调优和加载参数。我想开发一种自动化方法,在给定硬件上产生每秒最大速率的消息。
常量:
期望的结果:
变量:
目前,性能调整是作为一个迭代过程完成的 - 一次更改一个变量,测量msg / sec,冲洗并重复。
我已经开发了一个可以迭代不同设置的脚本框架,但如果我这样做是一个深度为50级的嵌套循环并迭代每个变量的每个可能值,这个过程将需要数百年才能完成。包括随机因素可能有所帮助,但我想做的是使用神经网络为我的调整变量找到最佳设置。
我发现一些研究论文谈论这种事情,但找不到任何真正的实施。有人做过吗?有关如何进行的任何建议?我没有使用过神经网络,但是在大学里做过数学编程(优化),正常的优化方法需要很长时间来解决这个问题。
答案 0 :(得分:3)
这种问题听起来不太适合神经网络。神经网络可能最常用作具有监督学习的分类器。通常,您必须拥有一个训练集,其中包含已经分类的示例。也有一些无监督的方法,最近最显着的可能是deep neural networks。但这是一个活跃的研究领域,我怀疑有哪些现成的工具可以满足您的需求。
参数空间中存在组合爆炸问题。这种问题通常非常适合用进化算法求解。例如genetic algorithms或simulated annealing。
通过遗传算法,问题解决转向发现
这经常被证明是非常困难的。
然而,您的问题似乎非常适合此方法:
i = [p_1, p_2, ..., p_n]
i_1
和i_2
的交叉:选择1
和n
之间的分割点并交换个人列表的各个部分不能保证您能以这种方式获得最佳解决方案,但它可以帮助您非常有效地对抗组合爆炸。