algorithm - 寻找位置 "closest"到另外两个地方的好的目标函数是什么?

标签 algorithm optimization graph graph-algorithm nonlinear-optimization

我试图通过谷歌搜索找到答案,但我无法取得任何真正的进展(可能是因为我不知道谷歌到底是什么)。

我想要解决的问题是这样的:假设我住在 A 地点,我的 friend 住在 B 地点。我们想找到一家对我们来说都不会“太远”的餐厅。什么是一个好的目标函数,只考虑餐厅与 A 和 B 的距离并捕获一些“公平”的概念,以便在最小化可能的餐厅集合上的函数时,我们到达的位置不是不公平地远(或关闭)仅适用于一个人。

我考虑了距离之和,但这对于连接 A 和 B 的线上的所有点给出了相同的结果。直观上,似乎“公平”函数应该为中点附近的点给出较低的值。然后我考虑了距离平方和,但我不确定这是一个好主意。

另一种可能性是考虑中点到餐厅的距离,但这有一些实际问题。由于各种其他原因(例如单向道路、中点周围的封闭道路等),如果我们只考虑距中点的距离,我们可能会得到一个糟糕的解决方案。这就是我希望目标函数仅将 A 和 B 的距离作为输入(而不是任何其他点)的原因。

最佳答案

与生活中的许多事情一样,担心“公平”会导致解决方案不理想。

我建议最好的解决方案是最小化 MAX( dist(A) , dist(B) )

如果距离B最近的餐厅距离A更近,那么这将是“不公平”的,但你真的想选择一家距离双方都较远的餐厅吗只是为了确保A支付他“公平”份额的烦恼?

如果有几家餐厅得分相同,我建议最小化 MIN( dist(A), dist(B) ) 以打破平局,因为与较大的总恶化相比,这更喜欢较小的总恶化。这意味着,如果 B 必须走得更远,但有两个候选者与 B 的距离相同,那么 B 应该选择那个最接近A。毕竟,AB 应该是 friend ,对吧?如果你的 friend 仅仅因为他们的痛苦是不可避免的而想让你受苦,你会非常生气。 (我确信我们都有一个这样的 friend :-)

请注意,最小化平方和和最小化最大值都是具有不同指数的“p-范数”的实例:https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm

平方和是 L_2 范数,它更喜欢平均更好但单个组件较差的解决方案,而最小化最大值是 L_infinity 范数,它完全由最差的单个组件主导。

我认为所有 p 范数都是您问题的合理答案。

关于algorithm - 寻找位置 "closest"到另外两个地方的好的目标函数是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50669772/

相关文章:

python - 提高纯 Numpy/Scipy 卷积神经网络实现的速度

php - 排除选择的算法

algorithm - 使用分而治之是否会提高在数组中查找最大值和最小值的时间复杂度

c - 此优化代码中调用的内容

java - 如何使用 Hibernate 以最佳方式更新对象中的单个属性?

javascript - 根据节点数量,通过电荷/重力属性优化 d3 力导向布局

java - 我该如何修复重复的 QuickSort 算法

optimization - GCC热属性语义

algorithm - 构建常规网络的邻接矩阵

algorithm - 图 - 顶点权重的最短路径