我有一个系统,它从一个17×17的网格中选取15个点作为输入(顺序无关),并生成一个标量作为输出。这个系统无法用正式的函数来表示。
目标是找到最优的15个点,使输出的标量最小。通过穷举法解决这个问题需要花费太多的时间,每次运行需要14秒,这不切实际。
我已经开始在线学习机器学习课程。但这个问题似乎相当简单,我想知道是否有人能指导我正确的方向。任何帮助都将不胜感激!
回答:
使用模拟退火。我认为这在这里会接近最优解。
因此,从15个点的随机分布开始。然后,在每次迭代中改变一个点,如果生成的标量值更低,则接受新状态。如果更高,则以一定概率(玻尔兹曼因子)接受。最终,你需要尝试一小部分随机选择的初始状态,然后接受最低值。