该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

7. t:=φ(fk+1(xk+1),vk(xk,uk)); {基本方程(9)式}

if t比fk(xk)更优 then fk(xk):=t; {计算fk(xk)的最优值}

end;

9. t:=一个极值; {∞或-∞}

for 每一个x1∈X1 do

11. if f1(x1)比t更优 then t:=f1(x1); {按照10式求出最优指标}

12. 输出t;

但是,实际应用当中经常不显式地按照上面步骤设计动态规划,而是按以下几个步骤进行:

(1)分析最优解的性质,并刻划其结构特征。

(2)递归地定义最优值。

(3)以自底向上的方式或自顶向下的记忆化方法(备忘录法)计算出最优值。

(4)根据计算最优值时得到的信息,构造一个最优解。

步骤(1)~(3)是动态规划算法的基本步骤。在只需要求出最优值的情形,步骤(4)可以省略,若需要求出问题的一个最优解,则必须执行步骤(4)。此时,在步骤(3)中计算最优值时,通常需记录更多的信息,以便在步骤(4)中,根据所记录的信息,快速地构造出一个最优解。【问题】 凸多边形的最优三角剖分问题

问题描述:多边形是平面上一条分段线性的闭曲线。也就是说,多边形是由一系列首尾相接的直线段组成的。组成多边形的各直线段称为该多边形的边。多边形相接两条边的连接点称为多边形的顶点。若多边形的边之间除了连接顶点外没有别的公共点,则称该多边形为简单多边形。一个简单多边形将平面分为3个部分:被包围在多边形内的所有点构成了多边形的内部;多边形本身构成多边形的边界;而平面上其余的点构成了多边形的外部。当一个简单多边形及其内部构成一个闭凸集时,称该简单多边形为凸多边形。也就是说凸多边形边界上或内部的任意两点所连成的直线段上所有的点均在该凸多边形的内部或边界上。

通常,用多边形顶点的逆时针序列来表示一个凸多边形,即P=表示具有n条边v0v1,v1v2,…,vn-1vn的一个凸多边形,其中,约定v0=vn 。

若vi与vj是多边形上不相邻的两个顶点,则线段vivj称为多边形的一条弦。弦将多边形分割成凸的两个子多边形和。多边形的三角剖分是一个将多边形分割成互不重迭的三角形的弦的**T。图1是一个凸多边形的两个不同的三角剖分。

(a) (b)

图1 一个凸多边形的2个不同的三角剖分

在凸多边形P的一个三角剖分T中,各弦互不相交且弦数已达到最大,即P的任一不在T中的弦必与T中某一弦相交。在一个有n个顶点的凸多边形的三角刮分中,恰好有n-3条弦和n-2个三角形。

凸多边形最优三角剖分的问题是:给定一个凸多边形P=以及定义在由多边形的边和弦组成的三角形上的权函数ω。要求确定该凸多边形的一个三角剖分,使得该三角剖分对应的权即剖分中诸三角形上的权之和为最小。

可以定义三角形上各种各样的权函数ω。例如:定义ω(△vivjvk)=| vivj |+| vivk |+| vkvj |,其中,| vivj |是点vi到vj的欧氏距离。相应于此权函数的最优三角剖分即为最小弦长三角剖分。

(1)最优子结构性质

凸多边形的最优三角剖分问题有最优子结构性质。事实上,若凸(n+1)边形P=的一个最优三角剖分T包含三角形v0vkvn,1≤k≤n-1,则T的权为3个部分权的和,即三角形v0vkvn的权,子多边形的权和的权之和。可以断言由T所确定的这两个子多边形的三角剖分也是最优的,因为若有或的更小权的三角剖分,将会导致T不是最优三角剖分的矛盾。

(2)最优三角剖分对应的权的递归结构

首先,定义t[i,j](1≤i的最优三角剖分所对应的权值,即最优值。为方便起见,设退化的多边形具有权值0。据此定义,要计算的凸(n+1)边多边形P对应的权的最优值为t[1,n]。

计算机乘积函数讲解,计算机函数算法7相关推荐

  1. strstr函数详解 看这一篇就够了-C语言(函数讲解、函数实现、使用用法举例、作用、自己实现函数 )

    strstr()函数用于:查找子字符串 目录 函数介绍 用法示例 函数讲解 实现函数 事例展示 函数介绍 函数声明:char *strstr(const char *str1, const char ...

  2. strtok函数详解 看这一篇就够了-C语言(函数讲解、函数实现、使用用法举例、作用)

    strtok()函数用于: 将字符串拆分为标记 函数介绍 函数声明:char * strtok ( char * str, const char * delimiters ); 头  文  件:#in ...

  3. 计算机二级access操作题函数讲解,计算机二级数据库access操作题答案讲解学习

    <计算机二级数据库access操作题答案讲解学习>由会员分享,可在线阅读,更多相关<计算机二级数据库access操作题答案讲解学习(7页珍藏版)>请在人人文库网上搜索. 1.计 ...

  4. 计算机vf的讲解,计算机二级vf重点知识讲解.doc

    计算机二级vf重点知识讲解 谢谢浏览 一.算法的基本概念 算法是指解题方案的准确而完整的描述.注意:算法不等于程序,也不等于计算方法. 算法的基本特征:1)可行性 2)确定性 3)有穷性 4)拥有足够 ...

  5. 计算机vf的讲解,计算机二级《VFP》知识点讲解:查询和视图

    计算机二级<VFP>知识点讲解:查询和视图 2017年9月计算机等级考试时间9月23日-26日,目前进入了备考的阶段.本文是百分网小编搜索整理的关于计算机二级<VFP>知识点讲 ...

  6. 计算机设备操作与讲解,计算机组成与操作系统简介

    计算机的五大组成部分 控制器.运算器.存储器.输入设备.输出设备 控制器:是计算机的指挥系统,负责控制计算机其他硬件的工作 运算器:负责数学运算与逻辑运算 控制器+运算器=CPU=====>人的 ...

  7. 计算机数学基础 视频讲解,计算机数学基础课件

    <计算机数学基础课件>由会员分享,可在线阅读,更多相关<计算机数学基础课件(37页珍藏版)>请在人人文库网上搜索. 1.计算机科学的数学基础,第一章:语言与正规语言,1.1 符 ...

  8. 计算机组装过程讲解,计算机组装过程解析.doc

    <计算机组装与维护>实训操作报告 学院名称: 专 业: 班 级: 学 号: 姓 名: 指导教师姓名: 二〇一三 年 九 月 一.硬件配置清单 硬件名称硬件型号主要特性数量主板华硕P8B75 ...

  9. memmove函数详解 看这一篇就够了-C语言(函数讲解、函数实现、使用用法举例、作用、自己实现函数 )

    memmove()函数用于:移动内存块 函数介绍 函数声明:void * memmove ( void * destination, const void * source, size_t num ) ...

最新文章

  1. 你不知道的18个Python高效编程技巧
  2. python好找工作吗2017-2017,再来聊一聊Python,未来发展怎样?
  3. linux安装Python2.7
  4. oracle 备份与恢复学习总结
  5. nodejs实现的高性能服务器编程,使用NodeJS搭建自己的接口服务器,提交APP的开发效率...
  6. MySQL 5.6.5之前版本不支持多条DEFAULT CURRENT_TIMESTAMP和ON UPDATE CURRENT TIMESTAMP
  7. hbase删除表失败的解决方法
  8. [Bugku][Web][CTF] 9-15 write up
  9. android网页省略分页器,Android轻量级网页风格分页器
  10. STM32H743+CubeMX-串口重定向printf
  11. 十大经典排序算法最强总结(含JAVA代码实现),大厂 HR 如何面试
  12. 不要安排看代码的工作
  13. 软件工程论文注意事项
  14. Web前端课程设计-疫情解读网页
  15. 内存模型与C++ 内存序
  16. 用户帐户控制---为了对电脑进行保护,已经阻止此应用。---管理员已阻止你运行此应。有关详细信息,请与管理员联系。
  17. BGP、MPLS综合实验
  18. 【新手教程】51Sim-One Cloud 2.0如何接入被测算法
  19. 时隔4年,翟天临怒怼网友:论文写不过是你能力不行...
  20. P and V

热门文章

  1. cuSPARSE库:(十七)cusparseStatus_t 返回信息
  2. Linux环境使用命名空间编写一个简单的容器应用程序:namespace,container,cgroups
  3. Python库:Pyinstaller库、pip工具、pip指定安装源和版本
  4. vue ueditor 生成word文档_word目录制作技巧:快速生成文档总目录和章节下子目录...
  5. Java实现二分查找算法
  6. python--(pickle)文件读写
  7. linux大数据命令操作
  8. c语言学习-自定义并调用函数求三个数的最小公倍数
  9. 【Unity新闻】Unity发布白皮书《11种有效的玩家参与策略》
  10. Unity URP一分钟实现遮挡透视