不均匀圆盘的最佳覆盖

2024-04-28

What kind of algorithm can I use to search for an optimal (minimum area) covering of a limited region of the XY plane with n discs ( xj, yj, rj ) ?

我发现了许多关于固定半径圆盘的研究,但没有关于可变半径的研究。

n是固定的,但圆盘可以自由放置(它们不在指定的位置,并且它们的中心不需要在该区域内)。该区域通常是非连通且非单连通的(可以由多个部分组成并且可以有孔)。在我的具体情况下,是由多个闭合多边形定义的(使用奇偶填充规则)。

回顾一下:

Input:

  • XY 平面的有限区域(例如,描述为具有奇偶填充规则的闭合多边形的集合)

  • 一个整数n > 0

Output:

  • 的列表n由中心描述的光盘x[i], y[i]和半径r[i]使得该区域的每个点都包含在至少一个圆盘中

最小化:

  • 圆盘并集所覆盖的平面面积

Example

在此示例中,输入是“A”形状。手动放置十个点,并计算覆盖该区域与 Voronoi 单元相交的最小圆。

I'm currently investigating the approach based on just looking for the centers x[i], y[i] and computing the radiuses r[i] with this algorithm (search space is reduced by ℝn and always produces an acceptable solution).


这是一个非常酷的问题!我很高兴我偶然发现了这个。我完全意识到这已经有一年多了,所以你可能不再关心它了,但我会以任何一种方式回答它,因为我喜欢谜语,而且这是一个有趣的谜语(假设我的解决方案甚至有效!)。

我要做的似乎与 Voronoi 图建议类似:

  1. 从问题的层次聚类解决方案开始。它不会有最小的面积,但它会用 N 个磁盘覆盖所有内容。

    A。注意:我不会使用 K 均值,因为 K 均值很容易陷入局部最小值。

  2. 然后,您可能可以使用梯度下降来移动圆盘的中心(损失是每个圆盘的总面积——计算为到该“簇”内的点的混合距离)以获得更优化的解决方案。

我认为这里需要注意的是,如果你有一些孤立的点,它们可能会导致一些不良的解决方案。

显然没有证据表明这会起作用。你怎么认为?另外,你最后用的是什么?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

不均匀圆盘的最佳覆盖 的相关文章

  • 矩阵向量变换

    我正在编写一个代码来制作软件蒙皮器 骨骼 皮肤动画 并且我正处于 优化 阶段 蒙皮器工作得很好 并且在 Core 上 1 09 毫秒内对 4900 个三角形网格与 22 个骨骼进行蒙皮Duo 2 Ghz 笔记本 我需要知道的是 1 有人可以
  • 反转二进制网络

    如何反转二元方程 以便找到哪些输入将产生给定的输出 Example Inputs i0 through i8 Outputs o0 through o8 Operators XOR AND 二元方程 1 i0 1 i1 0 i2 1 i3
  • Three.js :face4 生成三角形而不是正方形

    我正在尝试使用 tree js 自定义几何图形生成一个正方形 但是这段代码 var cubeGeo new THREE Geometry cubeGeo vertices push new THREE Vector3 25 25 25 cu
  • 小数除以小数并得到零

    为什么当我这样做时 select CAST 1 AS DECIMAL 38 28 CAST 1625625 AS DECIMAL 38 28 我得到 0 吗 但是当我得到 0 时 select CAST 1 AS DECIMAL 20 10
  • 按百分比减少多边形面积

    我有一个由点 x y 组成的多边形 我想做的是将其减少一个百分比 请记住 我不想只是扩大规模 多边形应该有一种内部边界 其宽度取决于百分比 该内部边界被多边形切断 谁知道可以实现这一目标的算法 输入 点数组 百分比 输出 点数组 你所寻求的
  • 计算序言中列表的排列

    在 序言艺术 第二版中有一个问题 您应该定义一个谓词 Even permutation Xs Ys 和类似的奇数排列 当您查询时 例如 Even permutation 1 2 3 2 3 1 和 odd permutation 1 2 3
  • 使用数学符号注释 Adob​​e Reader PDF

    我阅读的许多数学教科书和其他文献都是 PDF 格式 因此我经常使用 Adob e Reader 注释工具对它们进行注释 我确实找到了一个有用的指南 http cjasn asnjournals org site misc annotatin
  • 用 Java 创建迷宫求解算法

    我被分配了用 Java 创建迷宫求解器的任务 这是任务 Write an application that finds a path through a maze The maze should be read from a file A
  • 如何生成随机凸多边形?

    我正在尝试设计一种生成随机二维凸多边形的方法 它必须具有以下属性 坐标应该是整数 多边形应位于角为 0 0 和 C C 的正方形内 其中 C 已给出 多边形的顶点数量应接近给定数量 N 例如 生成具有 10 个顶点并位于正方形 0 100
  • 我有*很多*源文件要添加到 git 存储库,如何使其快速

    我在看here https git scm com docs git fast import寻找更快地将批量文件导入 git 存储库的灵感 但不确定是不是这样 基本上情况是 我有超过 1 亿个文件想要提交到 git 存储库 我已将它们分解为
  • 使到 n 个点的集合的欧氏距离之和最小的点

    我有一组点W x1 y1 x2 y2 xn yn 在 2D 平面上 你能找到一种算法 将这些点作为输入并返回一个点 x y 在 2D 平面上 距以下点的距离之和最小W 换句话说 如果 di Euclidean distance x y xi
  • 使用FFT算法计算

    给定在平面上的点 1 0 2 0 n 0 上发现的一组 n 个粒子电荷载流子 在 i 0 点发现的粒子电荷记为 Qi 作用在粒子上的力由以下公式给出 C is a Coulomb s constant 给出一个算法来计算 Fi 对于总复杂度
  • 在 O(n) 时间内找到 n x n 矩阵中的局部最小值

    所以 这不是我的家庭作业问题 而是取自 coursera 算法和数据结构课程的未评分作业 现已完成 You are given an n by n grid of distinct numbers A number is a local m
  • 如何高效地在屏幕上精确绘制N个点?

    这听起来是一个简单的问题 但我发现要获得良好的性能是非常棘手的 我提出的第一个算法是随机绘制点 从一组中检查是否已绘制 否则绘制 如果我们只绘制几个点 那么这种方法效果很好 但当我们接近填满屏幕时 速度会灾难性地减慢 我想出的最好的方法是构
  • 在 C# 中存储矩阵值的快速且有用的方法

    我需要用 C 为 3D 引擎创建一个 4x4 矩阵类 我见过一些其他引擎将矩阵值存储在单个浮点成员变量 字段中 如下所示 float m11 m12 m13 m14 float m21 m22 m23 m24 float m31 m32 m
  • 返回值的复制省略和 noexcept

    我有一个这样的函数模板 template
  • 如何为 CUDA 内核选择网格和块尺寸?

    这是一个关于如何确定CUDA网格 块和线程大小的问题 这是对已发布问题的附加问题here https stackoverflow com a 5643838 1292251 通过此链接 talonmies 的答案包含一个代码片段 见下文 我
  • 缩小 ASP.NET 生成的 Javascript 的最佳方法是什么?

    在 ASP NET 3 5 运行时缩小 ASP NET 生成的 Javascript 例如由 webresource axd 提供的 Javascript 的最佳方法是什么 我尝试使用Mb压缩 http mbcompression code
  • 点集子集的最小周长凸包

    给定平面上的 n 个点 没有 3 个共线 给定数字 k 找到 k 个点的子集 使得 k 个点的凸包在 k 个点的子集的任何凸包中具有最小周长 我可以想到一个简单的方法 运行时间为 O n k k log k 找到大小为 k 的每个子集的凸包
  • 黑色左/右三角形大小不同

    我使用黑色左指三角形 右左指三角形几何形状作为网站上的链接 并使用它们的 HTML 代码 和 9664 9654 由于某种原因 即使我在没有其他元素的空白页面上使用三角形 它们也不会以相同的大小显示 在 Chrome 上 向左指向的位置比向

随机推荐

  • Symfony 4 和 Doctrine 2 从集合中删除(第一个)项目后序列化导致转换为 JSON 对象而不是数组

    我在序列化已删除第一个元素的集合时遇到很多麻烦 我有 CompaniesCollection 实体 与 Company 实体有 Many2Many 关系 ORM ManyToMany targetEntity App Entity Comp
  • 在 Xcode 4 中锁定文件

    我有一个简单的问题 在 Xcode 3 中 我可以通过单击每个文件顶部的小锁图标来锁定文件 我在 Xcode 4 中缺少这个功能 我想我只是盲目的 你能帮助我吗 该功能在 Xcode 4 中被 部分 终止 即使您可以从 文件 菜单解锁锁定的
  • WPF调整大小完成

    所以我需要按程序生成网格的背景图像 只需要 0 1 秒 因此 我可以连接到 SizeChanged 事件 但是当您调整图表大小时 它会每秒触发该事件 30 次 因此调整大小事件会明显滞后 有谁知道连接到调整大小事件并测试天气是否已完成调整大
  • (简单)boost thread_group 问题

    我正在尝试编写一个相当简单的线程应用程序 但我对 boost 的线程库很陌生 我正在开发的一个简单的测试程序是 include
  • 从 CIImage 获取 UIImage 无法正常工作

    我在从 CIImage 获取 UIImage 时遇到问题 下面的代码行在 iOS6 上运行良好 输出图像是 CIImage self imageView UIImage imageWithCIImage outputImage or sel
  • 命名 Docker 卷以共享构建而不更新

    我工作的公司的开发人员要求我用 Docker 做一些不同的事情 然后我也被使用了 目标是拥有 2 个具有以下职责的容器 容器A 节点容器将构建前端 React 应用程序并将捆绑包放入名为的目录中app dist 完成后 容器将停止运行 容器
  • 在 Python 中通过 TCP 套接字发送文件

    我已经成功地将文件内容 图像 复制到新文件 然而 当我通过 TCP 套接字尝试同样的事情时 我遇到了问题 服务器循环未退出 客户端循环在到达 EOF 时退出 但服务器无法识别 EOF 这是代码 Server import socket Im
  • 验证来自两个不同 URL 的 Keycloak 令牌

    我有一个Docker compose具有后端和前端组件的基于系统 后端写的是Python Flask并在多个 docker 容器中运行 前端编写为TypeScript with Angular 前端通过Restful API与后端进行通信
  • java SWT透明复合背景

    我有复合对象 Composite composite new Composite shell SWT NONE composite setBounds new Rectangle 10 10 100 100 我如何使这个组合具有透明背景 我
  • 无法启动 Android Studio 模拟器

    我正在使用 Android Studio 这是 Android 的新官方 IDE 我永远无法让模拟器运行 出现一个黑色的模拟器屏幕 其中包含闪烁的 android 一词 并且几分钟内没有任何变化 我已经等了30多分钟了 没有任何变化 我必须
  • 在元素的单击事件上添加类

    我是 Angular Js 的新手 我需要在元素的单击事件上添加一个类 我尝试了以下代码 但它不起作用 div p data na p div
  • 在 SQLite.swift 中找不到 SQLite/SQLite-Bridging.h

    我正在使用 SQLite swit https github com stephencelis SQLite swift https github com stephencelis SQLite swift 来开发应用程序 我按照 Pod
  • HTML 解析和删除锚标记,同时使用 Jsoup 保留内部 html

    我必须解析一些html并删除锚标记 但我需要保留锚标记的innerHTML 例如 如果我的 html 文本是 String html div p some text a href some link text a p div 现在我可以解析
  • 对“组件”类型的引用声明它是在“系统”中定义的

    尝试在 UWP 应用程序中获取一些 WMI 对象 在 net 4 6 上运行 VS2015 我收到 ForEach 和方法调用错误 指出 引用类型 组件 声明它是在 系统 中定义的 错误为 CS7069 using System using
  • 导入 pygame.font 失败

    import pygame对我来说效果很好 但是import pygame font失败并出现错误 ImportError dlopen Library Frameworks Python framework Versions 2 7 li
  • 如何使用 VS2010 在开发服务器上测试将 ASP.NET Web 应用程序作为 64 位进程运行?

    我的任务很简单 我需要在我的开发计算机上的 64 位环境中测试我的 ASP NET Web 应用程序 此时 我什至不询问如何通过调试器运行它 我所需要的只是在 64 位进程中运行它 因此 我在 Visual Studio 2010 中创建了
  • CSS 100% 高度布局

    我知道这是一个常见问题 我查找了一些解决方案 但找不到我想要的东西 我想转换this http pastehtml com view av6fb8bir html到无表布局 注意 页眉和页脚必须设置为固定高度 以像素为单位 50px 即可
  • mysql非空字段计数

    我想计算 mysql 中特定字段集有多少字段为空 我找到了一些示例 但它们都遍历整个表 基本上我有8个字段 listing photo 1 到listing photo 8 我想知道其中有多少个被填充 I tried result mysq
  • 哪些 .NET 依赖注入框架值得研究? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 不均匀圆盘的最佳覆盖

    What kind of algorithm can I use to search for an optimal minimum area covering of a limited region of the XY plane with