发布问题的原因:我的编程经验介于业余和中等之间(但此时我很生疏)。我可能会使用C ++,但我愿意切换到Python。我有一些基本的排序/搜索算法的经验,如二进制,M,A *等。我听说A *可以是一个非常有效的搜索算法,但是当多个搜索目标开始被期望有一些大的损失时与其他算法相比,A *的效率。我正在研究具有多维问题空间的多个搜索/优化问题,因此效率确实开始变得重要。
我见过的大多数多搜索算法都被称为字符串搜索算法。我想询问这些算法在其他类型的问题上的效果如何,或者可能为我提供的场景提供其他更有效算法的建议。我承认我需要做更多的研究来理解优化和多搜索算法之间的区别,但我目前的想法似乎与多搜索算法一起使用。我正在研究潜在的能量表面并找到局部最小值的粗略近似值。
想象一下像丘陵般的表面。现在让我们在任意x和y位置填充物体的势能的3D图,作为两个位置坐标的函数。我有兴趣在这个表面的定义范围内找到所有局部最小值。我需要算法允许我以某种分辨率对表面进行采样,然后开始搜索最低点以获得局部最小值。本质上,我正在考虑使用某种受约束的广度优先搜索来创建低分辨率网格,然后使用另一种智能算法来增加较低值点处网格的分辨率。理想情况下,算法将使用多线程,但它们需要能够支持任意维PES。我有一个黑盒评估功能,提供潜在的能量。这是下面的2 + 1维图解。
设想红线是初始采样网格尺寸的1,它实际上是在局部最小值附近穿过。然后,算法将在选择该区域的最低值之前开始在谷周围增加网格分辨率几步。然后它会转到另一个低点。
答案 0 :(得分:3)
您正在尝试解决全局优化问题。
http://en.wikipedia.org/wiki/Global_optimization是一个很好的参考,它有许多指向用于解决此问题的方法的链接。我以前成功地使用过模拟退火,但解决问题的方法确实会降低问题空间的大小和复杂性。