【发布时间】:2020-01-20 00:31:34
【问题描述】:
我正在尝试解决一个优化问题,即从点列表中找到最远的点。比如说,在一个有效区域内,找到一个最优的x,使得距离D(x, c1) + D(x, c2) + ... D(x, cn) 是最大的。
我被提示通过随机梯度下降来解决它,所以我完成了如下距离函数:
def distance(loc_x, loc_c):
"""
arg:
loc_x: 1x2 array: decision variable
loc_c: 662x2 array: locations x needs to be away as much as possible
"""
return np.sum(np.power(np.sum(np.power(loc_x - loc_c, 2), axis=1), 1/2))
但我不知道如何以编程方式进行。数学上我知道我想计算距离的导数并在derivative = 0时得到x_opt
【问题讨论】:
标签: python optimization gradient-descent