首页 > 其他分享 >每日总结

每日总结

时间:2023-10-21 19:44:40浏览次数:28  
标签:总结 结点 每日 子结构 问题 算法 最优 贪心

分治法

将其分解为k个规模较小的子问题,这些子问题互相独立且与原问题形式相同,递归地解这些子问题,然后将各子问题的解合并,得到原问题的解

使用条件

(1)缩小规模可以解决
(2)具有最优子结构性质
(3)子问题解可以合并
(4)子问题相互独立

二分搜索法,合并排序,快排,循环日程比赛

贪心策略

1.最优化问题

求一个问题的可行解(符合条件的解决方案)和最优解(使优化函数取得最佳值的可行解,可以是多个)的问题

2.贪心法采用逐步构造最优解的方法向给定的目标前进

3.在每个局部阶段,都做出一个看上去最优的决策(即某种意义下的、或某个标准下的局部最优解),并期望通过每次所做的局部最优选择产生出一个全局最优解。

4.做出贪心决策的依据称为贪心准则(策略)

5.贪心算法不能对所有问题都得到整体最优解,它所作出的选择只是在某种意义上的局部最优选择,贪心法一般需要对原始数据预处理(排序)

6.最优化度量的选择是贪心算法的关键

7.最优子结构

当一个问题的最优解包含其子问题的最优解时,称此问题具有最优子结构性质(动态规划、贪心的关键)

8.贪心算法通常以自顶向下的方式进行,是否具有贪心选择性质,必须证明每一步所作的贪心选择最终导致问题的整体最优解

9.一般可以通过对算法步数的归纳或通过对问题规模的归纳来证明贪心法的正确性

动态规划

1.动态规划是用来解决多阶段决策过程最优化的一种数量方法

2.多阶段决策问题

是动态决策问题的一种特殊形式,每个阶段都要进行决策

3.动态规划方法的关键

基本的递推关系式和恰当的边界条件(简称基本方程)

4.最优化原理

一个最优策略的子策略也是最优的

5.最优子结构

问题的最优解包含着其子问题的最优解
同一个问题可以有多种方式刻划它的最优子结构,有些表示方法的求解速度更快

6.子问题的重叠性质

递归算法求解问题时,每次产生的子问题并不总是新问题,有些子问题被反复计算多次

7.动态规划基本步骤

找出最优解的性质,并刻划其结构特征。
递归地定义最优值。
以自底向上的方式计算出最优值。
根据计算最优值时得到的信息,构造最优解。

回溯法

1.回溯和分枝限界法是比较常用的对候选解进行系统检查两种方法.通常能够用来求解规模很大的问题

具有限界函数的深度优先生成法称为回溯法

2.结点

  • 扩展结点(E-结点,Expansion Node)
    一个正在产生儿子的结点称为扩展结点
  • 活结点(L-结点,Live Node)
    一个自身已生成但其儿子还没有全部生成的节点称做活结点
  • 死结点(D-结点,Dead Node)
    一个所有儿子已经产生的结点称做死结点

3. 解空间

对于问题的一个实例,解向量满足显式约束条件的所有多元组,至少包含问题的一个(最优)解同一问题可有多种表示

4.基本步骤

(1)针对所给问题,定义问题的解空间;
(2)确定易于搜索的解空间结构;
(3)以深度优先方式搜索解空间,并在搜索过程中用剪枝函数避免无效搜索。

标签:总结,结点,每日,子结构,问题,算法,最优,贪心
From: https://www.cnblogs.com/syhxx/p/17779418.html

相关文章

  • 2023-2024-1 20231314许城铭 《计算机基础与程序设计》第4周学习总结
    这个作业属于哪个课程<班级的链接>(https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP)这个作业要求在哪里<作业要求的链接>(2022-2023-1计算机基础与程序设计第4周作业(https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP/homework/13000))这个作业的目......
  • go 总结
    (4).总结:引用顺序是:main.go->add.go->b.go编译顺序是:main.go<-add.go<-b.go a.先执行b.go的全局变量初始化、init函数. b.再执行add.go的全局变量初始化、init函数. c.再执行main.go的全局变量初始化、init函数.上面add.go和b.go都有Age,会不会产生覆盖?......
  • git 命令操作总结
    公共技术:H5、C3:基本上公共;后台会看懂,前端会精通,精通到纳米级别;Sql:数据库;前端CRUD;后端查询、存储过程分库分表等等;linux:前后端要会了解基本的命令;用的最多的运维;上线了,运作+维护12306git:公共的技术点;git命令操作总结git:分布式版本控制工具(项目代码的维护管理......
  • 汇编 & 寄存器 总结
    栈为什么从高地址向地址增长,因为更好的利用内存,一个从高往低,一个从低往高,最终内存被充分利用pop与push指令都是堆栈顶指针的操作pop栈顶指针esp增加,弹出栈中内存数据到寄存器push栈顶指针esp减小,将寄存器(或许指定的数据)中的数据写入到栈内存......
  • 2023-2024-1 20231317《计算机基础与程序设计》第四周学习总结
    作业信息这个作业属于哪个课程<班级的链接>(如2023-2024-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2023-2024-1计算机基础与程序设计第四周作业)这个作业的目标<《C语言程序设计第三章》>作业正文...本博客链接https://www.cnblogs.com/......
  • 2023-2024-1 20231404高伟光 《计算机基础与程序设计》第四周学习总结
    作业信息所属班级计算机基础与程序设计作业要求要求作业目标学习并总结课本,通过测试作业正文本博客教材学习内容总结1.学习了门与电路的相关知识,了解了相关运算与图解2.知道大多计算机为冯-诺伊曼体系3.学习了强转,了解计算机赋值逻辑和晕算符号教材学......
  • 操作系统之部分知识点总结
    1、计算机在一个指令周期的过程中,为从内存读取指令操作码,首先要将程序计数器的内容送到地址总线上;2、当有进程运行时,其他进程访问信号量,信号量就会执行-1操作;3、各种周期时钟周期--也称为震荡周期,定义为时钟脉冲的倒数,是计算机中最基本、最小的时间单位;指令周期--是执行一条指......
  • 操作系统之相关习题总结(个人认为需要总结的)
    例题一例题二例题三......
  • LearnOpenGL 2D游戏breakout总结
    Breakout​ 简介-LearnOpenGLCN(learnopengl-cn.github.io)​ 2D游戏BreakOut实现以及对OpenGL一些知识点的总结。1.项目结构game类:用于管理所有游戏和渲染代码,提供初始化、游戏重置、键盘输入、更新游戏状态、渲染、碰撞检测、生成更新游戏道具的函数。resource_manage......
  • 部分算法总结
    小部分算法总结部分题目请见:https://github.com/ZhangFirst1/Algorithm-problem-code异或运算a^=b相当于a=a^b,将十进制数字转化为二进制进行运算,相同为0,相异为1,0和任何数异或运算都是原来的那个数。可以用来判断数组中哪个数字只出现过一次(通过将所有数与0进行异或运算)快......