3 条题解
-
2
数学严格证明
在一维情境中,假设我们有一组点 ,我们想找到一个点 使得总距离 最小化。
思考过程
-
代价函数: 设距离总和函数为 。
-
单调性: 当我们从左向右移动点 ,即增加 的值时,离 左侧的点 的距离 增加,离 右侧的点 的距离 减少。
-
关键点:考虑 跨过某个点 时的函数变化。特别在 时,所有小于等于 的点 减小或不变,所有大于 的点 增加。若 从 (一个小量 ) 移动到 ,如果左边点的数量多于右边点的数量, 的值将增加;反之则减少。因此,将 置于左右点数量相等的地方(或尽可能平衡的地方)是有利的。
断点
由于 是 V 形,其最小值发生在 时,因此寻找最小化 的点就是寻找中位数
严谨证明
要使 达到最小,关键在于 的选择。考虑下面的两种情况:
- 当 是奇数时,中位数存在且唯一,设为 。在 处,距其左侧的点数等于距其右侧的点数。
- 当 是偶数时,有两个中位数 和 。在此范围内任何 使得损失函数不变,即所有这些点都可以作为最小化曼哈顿距离的解。
对于两种情况,选择中位数 (或中位数区间任意一个点) 显然最小化了从 到所有点 的曼哈顿距离。
引用:
- 如果将 移动到既非左中位数也非右中位数的其他位置,则至少有一侧将有更多的点会导致距离之和增加,因为距离增加部分无法通过另一侧距离减少来完全抵消。
通过以上证明,中位数是曼哈顿距离问题中最优解的关键所在。对于二维问题(曼哈顿距离中),该结论可以分别在 轴和 轴独立应用。因此,对于 ,分别求 和 的中位数即为最优解。
-
信息
- ID
- 934
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 9
- 标签
- 递交数
- 510
- 已通过
- 57
- 上传者