【计算几何3】博物馆问题和相关证明

news2024/11/6 9:40:07

                (  gallery problem or museum problem )

Art gallery problem - Wikipedia

一、说明

        画廊问题是一个基本的计算几何问题,最现实的反映是,到底对一个场景监视会用到几个摄像头。更深刻的层次是,如何对场景生成地图,或机器人对地理环境的理解。本文将叙述一个简单经典问题的提出和解决,用于增强理论修养。

二、博物馆问题简述

        艺术画廊问题或博物馆问题是计算几何中一个经过充分研究的可见性问题。它源于以下现实世界的问题:

        “在一个艺术馆里,最少有多少守卫可以一起观察整个画廊?”在问题的几何版本中,美术馆的布局由一个简单的多边形表示,每个守卫由多边形中的一个点表示。一套如果对于每个点,则称点 S 保护多边形p 在多边形中,有一些∈q\in S 使得线段之间和q 不离开多边形。

        当人工智能 (AI) 需要根据周围环境执行动作时,美术馆问题可以应用于多个领域,例如机器人技术。应用此问题的其他领域包括图像编辑、舞台照明问题或用于自然灾害预警的基础设施安装。

        原始问题有许多变体,也称为美术馆问题。在某些版本中,守卫被限制在周边,甚至是多边形的顶点。一些版本只需要保护周边或周边的子集。

        解决必须在顶点上放置守卫且只需要守卫顶点的版本,相当于解决多边形可见图上的支配集问题。

三、关于三角剖分

3.1 三角剖分:triangulation argigoth

        顾名思义,三角剖分(triangulation)就是对给定的平面点集,生成三角形集合的过程。考虑平面点集P={ p1...pk },我们希望得到三角形集合T=在{ t1...ts },满足:

  • a)所有三角形的端点恰好构成集合P。
  • b)任意两个三角形的边不相交(要么重合,要么没有交点)。
  • c)所有三角形的合集构成P的凸包(convex hull)。

3.2 三角剖分不唯一

        一般来说给定一个点集,往往存在不止一个三角剖分。以下图为例,我们只要把第一个三角剖分中的两个相邻三角形的公共边做一次翻转,就可以得到一个新的三角剖分。

         三角刨分不唯一。

四、回到博物馆问题

4.1 博物馆问题

        左边博物馆的守卫可以从他的位置看到所有的点。毫无疑问,若博物馆地图有N个顶点,部署N个守卫肯定能监视博物馆全部地界。然而,能否用最少的守卫监视整个博物馆?因此,引出一个多边形的三角抛分问题。

           

        经过三角抛分后,每个三角形取出一个顶点就可以监视全部博物馆,因此,守卫人数可以少于N/3个完成监视任务。  

                                     

4.2 涂色问题

        下图是一个三角抛分后的涂色问题

4.3 证明问题

        1975 年,Chvatal 发表的论文 [1] 表明画廊问题可以通过 n 3 个哨兵来完整监视,且有时 n 3 个哨兵是必要的。但是其证明非常冗长,且难以实现。

        三年后, Fisk 发表的论文 [2] 提供了一种极大简化了的证明,通过简单多边形的三角剖分 及三染色优美地解决了这个问题。 Fisk 的证明虽然优美,但是依赖于简单多边形 三角剖分的存在性及简单多边形无洞的事实。

        如何将一个简单多边形进行三角剖 分?Chazelle [3] 1990 年证明,简单多边形可以在线性时间内得到三角剖分,但 是这个算法太过复杂,几乎没有人去实现。更常见的做法 [4] 是采用两步:(1) 将 简单多边形分解为若干个单调多边形;(2) 对每个单调多边形进行三角剖分。本次 project,我们将采用 [4] 中的两步方法,也即课上教的方法,对简单多边形进行三 角剖分,具体包括

  •  简单多边形分解成单调多边形;
  •  单调多边形的三角剖分;
  •  利用 Fisk 方法进行染色,生成 n3 个哨兵的监视方案;
  • 三角剖分测例生成与正确性验证;
  •  简单直观易用的图形界面(手动创建多边形、算法流程可视化)。

4.4 Steve Fisk 的证明

        Steve Fisk 的证明是如此简短和优雅,以至于它被选为包含在 THE BOOK 的证明中。 [4]证明如下:

        首先,对多边形进行三角剖分(不添加额外的顶点),这是可能的,因为在某些经过验证的条件下证明了三角剖分的存在。生成的三角剖分图的顶点可能是三色的。[a] 显然,在三色下,每个三角形都必须具有所有三种颜色。具有任何一种颜色的顶点构成一个有效的保护集,因为多边形的每个三角形都由具有该颜色的顶点保护。由于这三种颜色划分了多边形的 n 个顶点,因此具有最少顶点的颜色定义了一个有效的守卫集,最多n/3警卫。

        


                

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/428821.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C生万物 | 十分钟带你学会位段相关知识

结构体相关知识可以先看看这篇文章 —— 链接 一、什么是位段 位段的声明和结构是类似的,有两个不同: 位段的成员必须是 int、unsigned int 或signed int位段的成员名后边有一个冒号和一个数字 在下面,我分别写了一个结构体和一个位段&…

嵌入式51单片机01-开发版介绍与LED流水灯系列

文章目录1. STC89C52单片机介绍2. 单片机预备知识3. LED灯操作系列1. 点亮LED(1)LED原理图连接方式(2) proteus接线图(3)keil代码2. LED灯闪烁(1)实验电路图(2&#xff0…

每日一题104——转置矩阵

给你一个二维整数数组 matrix, 返回 matrix 的 转置矩阵 。 矩阵的 转置 是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出:[[1,4,7],[2,5,8],[3,6,9]] 示…

大佬们隔空互怼

阅读本文大概需要 1.14 分钟。1、最近国内各大互联网公司都在掀起一股大模型热潮,要想让这股热潮变得更持久更精彩,离不开互联网大佬们的添砖加瓦。比如上周搜狗的王小川跟百度的肖阳,两位互联网大佬隔空互怼的场景,一度让大家觉得…

时序分析 49 -- 贝叶斯时序预测(一)

贝叶斯时序预测(一) 时序预测在统计分析和机器学习领域一直都是一个比较重要的话题。在本系列前面的文章中我们介绍了诸如ARIMA系列方法,Holt-Winter指数平滑模型等多种常用方法,实际上这些看似不同的模型和方法之间都具有千丝万缕…

SpringBoot中处理日期的两种方式(消息转换器)

在Spring Boot中,我们通常会使用Jackson来序列化和反序列化Java对象到JSON。在进行日期序列化时,我们需要指定日期格式,否则Jackson会使用默认格式,这可能不是我们想要的。要指定日期格式,有两种方式: 如果没有处理按照默认的结果如下图: 所以我们需要通过一些手段来对日期进行…

总结一下Redis的缓存雪崩、缓存击穿、缓存穿透

缓存是提高系统性能的一种常见手段,其中Redis是一种常用的高性能缓存数据库。但是在使用缓存时,可能会遇到一些问题,比如缓存击穿、缓存穿透、缓存雪崩等问题,本文将介绍这些问题的概念、原因以及解决方案。 缓存击穿 缓存击穿指…

Jenkins——用户管理、授权策略配置以及Jenkins安全配置管理

这里写目录标题一、Jenkins用户管理1、进入系统管理界面2、创建用户3、编辑用户信息4、编辑用户信息5、删除用户信息二、Jenkins授权策略配置1、授权策略插件2、安装插件:Role-based Authorization Strategy3、管理角色a、全局角色 Global rolesb、项目角色 Item rolesc、节点角…

CVPR | 达摩院开源自监督学习框架CoKe, 单机8卡可训练

团队模型、论文、博文、直播合集,点击此处浏览 一、论文 论文链接: Unsupervised Visual Representation Learning by Online Constrained K-Means 代码链接:https://github.com/idstcv/CoKe 二、背景 虽然基于instance的自监督学习方法在ImageNet上…

注册claude AI账号 slack工作区账号

Claude 是建立在 slack工作区的一个AI人工助手,更像是将chatgpt集成到了会议模式,一个账号实际上拥有了你的会议室和你的AI助手,你可以让你的朋友和同事进入你的房间体验。 Claude是不是openai的产物?目前还不知道,不…

RS232/RS485/RS422 接线说明

RS232/RS485/RS422 接线 文章目录RS232/RS485/RS422 接线RS232RS485422RS232 设备A 和 设备B 没有硬件流控 设备A设备BTXDRXDRXDTXDGNDGND 设备A 和 设备B 使用RTS/CTS 做硬件流控 一般使用RTS/CTS都会由232芯片自动控制, 比如XR21V1414, 需要设备gpio mode 为00…

Docker安装+利用docker安装MySQL(保姆级教程)

前言:本文基于docker安装MySQL,如果还没安装docker的童鞋,点击这里(超大声)安装卸载老版本docker(超详细) 一、在docker仓库搜你想要的镜像版本 docker镜像仓库 打开官网,在搜索框…

Docker 镜像制作 服务编排 私有仓库

DockerNginx部署Redis部署Dockerfile镜像制作容器转为镜像dockerfileDocker服务编排Docker ComposeDocker Compose安装使用docker compose编排nginxspringboot项目Docker私有仓库私有仓库搭建将镜像上传至私有仓库Nginx部署 案例:需求 在Docker容器中部署Nginx&…

【ARMv8 异常模型入门及渐进2 - 系统寄存器访问方法:op1,CRn,CRm,op2】

文章目录1.1 ARMv8 系统寄存器访问概要1.1.1 系统寄存器访问级别1.1.2 ARMv8 系统寄存器编码1.1 ARMv8 系统寄存器访问概要 ARMv8中,取消了协处理器,之前协处理器实现的功能,全部由系统寄存器来是实现。对于系统寄存器的访问,使用…

javaweb在校大学生贷款管理系统ns08a9

1系统主要实现:学生注册、填写详细资料、申请贷款、学校审核、银行审核、贷后管理等功能, (1) 学生注册:学生通过注册用户,提交自己的详细个人资料,考虑现实应用中的安全性,资料提交后不可修改;…

Springboot + MySQL+ JPA Ⅲ delete方法详解

一、deleteById(Id id) 和 delete(T entity) 为什么要把这两个方法放在一起呢?我们先看源码再说 deleteById源码(通过id进行删除) Transactional Override public void deleteById(ID id) {Assert.notNull(id, ID_MUST_NOT_BE_NULL);delet…

@爱打游戏的你,当游戏测试是什么感觉?

爱打游戏的你,当游戏测试是一种什么感觉? 去年《宝可梦朱紫》大火的那段时间,想必各位爱好游戏的友友们都刷到过这样的图吧:(量子纠缠)(天怎么黑了)(弹簧巨怪&#xff09…

手敲Mybatis(九)-结果集处理器

1.前言-背景介绍 上节我们处理了参数处理器,本节我们处理结果集处理器,之前我们写了一个DefaultResultSetHandler,我们把返回结果获取对象,填充值什么的写到了一起,流程没有进行解耦,并且只接收了Object的…

不通过鲁大师进行硬件检测

文章目录简介dxdiag系统信息设备管理器任务管理器PowerShelldxdiag系统信息设备管理器任务管理器PowerShellTODO:CPU-ZTODO:Everest参考文献简介 不少二手电脑重装系统后发现是假配置(特别是XP系统),可以使用系统自带…

基于Vue2实现滚动过程中数据懒加载

以下为实现滚动懒加载的过程: 1、在data对象中定义了items数组,用于存放已加载的item,loading状态,当前页数page,每页数量pageSize,以及距离底部的阈值threshold。 2、在mounted钩子函数中,首次…