当前位置: 首页 > news >正文

2.凸包优化求解

1.减而治之(Decrease and Conquer)

插入排序

典型的减而治之算法就是插入排序方法

插入排序法: 在未排序中选择一个元素,插入到已经排序号的序列中

将凸包也采用减而治之的方法

2.In-Convex-Polygon Test

怎么判断引入的极点存在于多边形里面还是外面?

也就是需要区分出6,7,9 和 8。

判断上述的核心就是判断引入的点在凸包里面还是在外面

上述过程,先排序,再做二分算法,最后做In-Triangle test。

上述算法的问题:凸包并不是静态、一层不变的

如果采用插入排序法算法复杂度并不会降低,因为如果采用vector来存在,会存在失效的情况。实际情况复杂度还是n*n

还是采用朴素元素的方法

进而采用 to-left test 判断一个点是在内部还是外部,算法的复杂度是n*n

3.Support Line

如何将极点增加到现有的凸包上面去?

确定support line

st这一段就是Support Line/tangent

怎么确定s和t定点

4.Pattern Of Turns

s的特征:所有顶点都在它的左侧

t的特征:所有点点都在它的右侧

5.Exterior/Interior

6. Selection Sort与凸包

采用类似于选择排序算法的方式,用在凸包寻找极点,缩小查找的范围

如何在当前已有的极边查找下一个极点?

可以通过角度来确定下一个极点,但是这种做法并不明智。采用 to-left-test 更加机智

起始点如何确定?

lowest-then-leftmost。 高度最低,然后最左边的点

实现

确认起点

output Sensitivity

h代表在凸包上需要行驶的步数

相关文章:

  • 突破速率瓶颈:毫米波技术如何推动 5G 网络迈向极限?
  • 【刷题Day20】TCP和UDP
  • 在STM32的定时器外设中,选择使用哪个外部时钟配置函数
  • 【C++算法】65.栈_删除字符中的所有相邻重复项
  • MOPSO实现无人机多目标路径规划(Matlab完整源码和数据)
  • package.json ^、~、>、>=、* 详解
  • 【java实现+4种变体完整例子】排序算法中【计数排序】的详细解析,包含基础实现、常见变体的完整代码示例,以及各变体的对比表格
  • 【大模型】 LangChain框架 -LangChain用例
  • [matlab]南海地形眩晕图代码
  • Spring Boot + Caffeine:打造高性能缓存解决方案
  • Elasticsearch:使用 ES|QL 进行搜索和过滤
  • 【AI提示词】物理学家
  • 栈(c++)
  • 【java实现+4种变体完整例子】排序算法中【选择排序】的详细解析,包含基础实现、常见变体的完整代码示例,以及各变体的对比表格
  • 【现代深度学习技术】循环神经网络04:循环神经网络
  • ArcGIS及其组件抛出 -- “Sorry, this application cannot run under a Virtual Machine.“
  • 基于 Linux 环境的办公系统开发方案
  • pytorch 51 GroundingDINO模型导出tensorrt并使用c++进行部署,53ms一张图
  • 大数据建模与评估
  • Linux `init 4` 相关命令的完整使用指南
  • 央媒关注微短剧如何探索精品化之路:从“悬浮”落回“现实”
  • 不降息就走人?特朗普试图开先例罢免美联储主席,有无胜算
  • 工作坊|早期左翼文学的多重张力与历史回响
  • 九部门:将符合条件的家政从业人员纳入公租房等保障范围
  • 上海浦东打造全新开放平台,年内实现基本功能落地运行
  • 塞尔维亚新政府宣誓就职