一类最优化问题的通用解法
有这样一类问题:给你若干个元素 ,选出一些,要求它们的 满足一些条件,使得 最小(大)。
通用解法:把每种选择方案看成坐标系上的一个点 。则就是拿一个反比例函数去切,最小的能切到点的反比例函数就是答案。
不难发现最优解一定在下凸包上。考虑如何快速求出这个凸包:先找出 最小的点,它们肯定在凸包上。
考虑一个分治过程。当前要找端点 之间在凸包上的点:
蓝色为 的法向量。如果 在凸包上,那么它在法向量上的投影一定小于 。所以只需要找到投影最小的点,如果它等于 或 就说明 之间没有在凸包上的点。
求出 过后向两边递归分治下去即可。
凸包的期望点数是 级别的,所以这种算法通常很快。
本文作者:zqs2020
本文链接:https://www.cnblogs.com/stinger/p/16907063.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步