
南开大学复习
文章平均质量分 71
南开大学在校课程期末复习
Ritannn
这个作者很懒,什么都没留下…
展开
-
南开大学软件学院2021年秋季学期研究生算法课程(复习)算法设计思想和状态空间
可计算性与可计算问题判定问题Decision problem:判断一个问题的解是否存在 优化问题Optimization problem:找到问题的最优解 组合优化问题 连续优化问题 一个重要的转化:任何优化问题都可以表示为一个判定问题算法求解问题的一系列数学或计算机操作(输入➡算法➡输出)状态与状态空间状态State:对可计算问题的一种建模状态转移State transition:问题中不同状态的转化关系状态空间State space:状态(点)和状态转移(边)构造原创 2021-12-19 19:47:19 · 669 阅读 · 0 评论 -
南开大学软件学院2021年秋季学期研究生算法课程(复习)非确定算法:随机与近似
非确定算法:随机与近似确定性算法Deterministic algorithms对于给定的输入,算法的输出和运行时间不变非确定性算法Non-deterministic algorithms对于给定的输入,算法的输出或运行时间是不确定的启发式算法Heuristic algorithms 利用输入数据的特征和信息对问题进行求解 尽全力逼近最优解,但是无法得知和最优解的差距 近似算法Approximation algorithms 对问题给出一个近似最优解(数据无关) 可以原创 2021-12-25 14:32:43 · 891 阅读 · 0 评论 -
南开大学软件学院2021年秋季学期研究生算法课程(复习)
为什么要学习算法?在有限时间和内存下,编写程序正确地或有效地解决问题。计算Fibonacci数列的第n项算法一:递归函数int F(int n){ if(n<=2) return 1; return F(n-1)+F(n-2);}算法二:递推循环int F(int n){ if(n<=2) return 1; int f1=1, f2=1; for(int i=3;i<=n;i++){ int temp原创 2021-12-19 18:55:30 · 421 阅读 · 0 评论 -
南开大学软件学院2021年秋季学期研究生算法课程(复习)总结
翻转开关:状态压缩:用二进制表示状态埃及分数:将搜索深度也作为状态的一部分八数码:从初始状态和目标状态同时进行广度优先搜索数字三角形:注意状态转移,记忆化搜索爬楼梯、斐波那契数列、传球游戏:矩阵快速幂优化最长上升子序列:注意状态定义和状态转移每一次求f(i)都要查询i之前的所有f(j),答案也要查询一遍所有的f(i)最长回文子序列:注意状态转移回文子序列的个数:注意状态转移最优矩阵链乘法:状态转移f(i,j)需要查询一遍i,j之间的所有的f(i,k)和f(k+1,j)原创 2021-12-28 11:57:17 · 793 阅读 · 0 评论 -
南开大学软件学院2021年秋季学期研究生算法课程(复习)贪心分治之贪心
贪心二分查找二分答案二分不一定要在有序序列上进行,亦可是单调函数砍木头将n根长度不同木头砍成至少m段,要求砍完后每段木头的长度相等。问砍完后每段木头最长有多长?暴力搜索解优化问题?貌似没什么突破口 优化转为判定问题?判断一个长度是否组成至少m段,很好判断,并且长度最小为1,最大为木头最大长度 暴力枚举长度吗?不必,随着每段长度增加,段数减少,变成找满足条件的最大值,故二分每段长度,二分答案将一个复杂的优化问题转化成一个可行性判定问题,本质是枚举答案判定可行,不过可行性.原创 2021-12-21 19:46:16 · 260 阅读 · 0 评论 -
南开大学软件学院2021年秋季学期研究生算法课程(复习)动态规划
动态规划数字三角形如上图所示,请找出一条自顶向下路径,使得该路径上所有数字的和最大。如何定义状态?第i行第j个数 如何进行搜索?DFS枚举所有路径即可(回溯法) 时间复杂度?若共有n层,时间复杂度O(2^n)是否可以减少不必要的搜索(规避不必要的状态转移)了呢?注意第3行第2个数 若价值函数定义恰当,则只需搜过一次即可:记忆化搜索动态规划Dynamic programming,DP在搜索过程中,对于已经搜索过、且价值函数不会再度更新(或变优)的状态,则可以通过记忆化的方式,原创 2021-12-19 20:46:49 · 432 阅读 · 0 评论 -
南开大学软件学院2021年秋季学期研究生算法课程(复习)贪心分治之分治(包含快速傅里叶变换)
状态空间中的算法状态空间:状态(点)+状态转移(边)+价值函数(点权)求解过程的抽象模型 暴力搜索和动态规划都是一类算法框架(或算法思想),本质都是在状态空间中寻找解 二者都需要准确地用最少的状态变量建模 而对于动态规划,还需要定义正确的价值函数和转移更新分治:子问题互不重叠,但最优子结构需考虑全部子问题贪心:子问题互不重叠,但最优子结构仅考虑极少子问题若认为动态规划算法的状态空间是有向无环图的话,对于分治和贪心,其状态空间通常可以建模成树,分治需要评估整个树,贪心则是树上的几条链原创 2021-12-20 19:47:44 · 539 阅读 · 0 评论 -
南开大学软件学院2021年秋季学期研究生计算机网络课程(复习)
一、ARPANET核心解决的问题是什么?ARPANET研究的核心:通信网络方案的设计两个基本问题:网络拓扑结构:分布式网络结构 数据传输方式:分组交换二、不同的拓扑结构的特点?集中式网络结构(唯一中央交换节点):所有节点都与中央交换节点相连,所有数据都要发给中央节点,再通过它发送到目的节点。如果中央节点受到损坏或工作不正常,所有通信就会完全中断。 非集中式网络结构(多个中央交换节点):使用了若干个中央节点,相当于许多集中式网络连接起来,固有的缺点仍然无法避免。 分布式网络结构(无中央交换原创 2021-12-22 15:53:24 · 2890 阅读 · 1 评论