Python 位置优化

Python 位置优化,python,algorithm,optimization,graph,scipy,Python,Algorithm,Optimization,Graph,Scipy,问题: 我有多个几何图形,可能相互连接,也可能不连接。每个连接都有一个值。我想通过重新定位图形来最小化连接。为了更好地理解,您可以将其想象为具有多个节点的无向图: 我不想搜索最短路径,而是想重新定位节点以最小化所有边的总和。具有节点彼此不相交的约束。边的权重不仅仅是距离中心的欧几里德距离。首先,在我的具体问题中,距离是从“质心”开始测量的。第二,正如我之前所说,节点可以是任何几何图形。图形不能旋转,因此唯一的变量是节点的x、y位置 我所拥有的: 我有一个碰撞功能,可以检测节点是否相交。我有一个

问题:

我有多个几何图形,可能相互连接,也可能不连接。每个连接都有一个值。我想通过重新定位图形来最小化连接。为了更好地理解,您可以将其想象为具有多个节点的无向图:

我不想搜索最短路径,而是想重新定位节点以最小化所有边的总和。具有节点彼此不相交的约束。边的权重不仅仅是距离中心的欧几里德距离。首先,在我的具体问题中,距离是从“质心”开始测量的。第二,正如我之前所说,节点可以是任何几何图形。图形不能旋转,因此唯一的变量是节点的x、y位置

我所拥有的:

我有一个碰撞功能,可以检测节点是否相交。我有一个函数,它根据节点的位置计算所有边的和

我需要什么:

我需要一个合适的算法通过重新定位节点来最小化边的总和。我不认为这个问题有贪婪算法,因为节点的位置会相互阻塞。但是请纠正我。基本上我有一个动态约束的优化问题,每次迭代都会改变。现在我给函数添加了一个很高的惩罚值,如果图形发生冲突。我不想使用神经网络。我使用python进行计算。因此,目前我正在使用scipy.optimize.minimize函数,但我对所有这些算法都不太熟悉


如有必要,请询问清楚的行动。

您能展示/描述两个具有不同目标函数的职位吗?请尝试用数学方法来表述目标函数、状态空间和约束条件。在我看来,它就像一个图,每个节点都有一个(x,y)坐标,对目标函数/边值和可能的约束都有影响。对于图,它是一个非常流行的库。有关定位节点的许多方法,请参见its。通常,使用弹簧布局算法。在javascript中,有,它支持拖动和动画重置。见例。