
算法笔记
RONGE-KUTA
本科就读数学系,研究生转投计算机,
在传统企业IT行业从事技术预研5年,后在从事云计算开发1年
现在一家互联网公司从事广告系统开发工作
在数学建模/分布式系统/算法/大数据系统有浓厚的兴趣
展开
-
算法笔记(XIII) 对话进化算法
开篇语:这部分问答来自于Zhang老师,Tang老师以及小组内讨论的记录整理而来,并加入自己的思考,重新整理,主题是关于进化算法的相关内容,并附加如一些关于计算机学科的基本认识以及机器学习的认识(说法不严谨,待考证)。编辑这篇问答的目的在于整理自己的思路,为下一步打下基础,同时有些思想也值得其他相关领域已借鉴。 (1)进化计算发展这么多年,你有什么看法?答:原创 2017-05-10 10:05:58 · 1387 阅读 · 0 评论 -
算法笔记(XII) 遗传算法与TSP问题
我从没想过要再看遗传算法的,本科毕业设计时搞得我焦头烂额,现在很难会在想起看遗传算法的问题,虽然以前很有兴趣。但,现在又轮到下一届的学弟学妹们做毕业设计,我想我们学校就是缺乏交流尽管很多人,每一届都受制与开始入门的难度,而后期的突破就更困难了,我想到我当时近乎无助的状态,很感激有很多的同学给了我帮助,不管是细节也好,思想也好,都是我最终得以完成任务的后盾,我很感激他们。闲话就不多说:以下原创 2017-05-10 09:54:35 · 464 阅读 · 0 评论 -
算法笔记(XI) 算法分析与勒贝格积分
放在前面的后记:这篇小文简单记录了自己的一个小小发现,也就是勒贝格积分和算法分析方法上的一个等同点:其实现在我已经比以前更清楚的看到计算机科学与数学中的相贯通的地方,这也是我看了《算法导论》《具体数学》的部分内容后才清晰的。如果非要说破的话,我觉得分析算法和积分是一个道理,都是一个求和的过程,只不过算法分析可以只求一个上界就可以了,而积分的本质便是求和,勒贝格积分将离散以及连续的两种情况作原创 2017-05-10 09:51:38 · 2194 阅读 · 0 评论 -
算法笔记(X) 模拟与仿真
以前做过仿真模拟的内容,大约是在交通流问题中初次借助模拟完成对高速公路流量的分析。后来主要对模拟形成了一种固定的看法,当然也是最为直觉的看法,下面我们简单说一说:我们在现实生活中,往往是基于时间为轴去看待 事物 之变化,所以说 时间是变化的一种形式。于是在以往的模拟思路上我们大约遵循一下模式:STEP 0:初始化起始时间|STEP 1:判断时间有未越界?原创 2017-05-10 09:48:40 · 747 阅读 · 0 评论 -
算法笔记(IX) 一个随机数生成问题
我们在启发式乃至计算机模拟中都要产生大量的随机数,而随机数的产生并非像大家想想的那样的简单,以下就是一个简单的随机数产生问题,相信做过启发式算法以及模拟的同学都可能遇到:例如我们求解一个优化问题,而问题的变量要求其和等于1,即:X1+X2+X3+...+X10 = 1;要求X1...X10符合均匀分布。 这个随机数产生问题解法并不唯一,但产生的结果却原创 2017-05-10 09:46:16 · 621 阅读 · 0 评论 -
算法笔记(VIII) 拼图游戏与深度优先搜索
原题:题目2:拼图游戏 Time Limit: 1000ms, Special Time Limit:2500ms, Memory Limit:32768KBProblem description你要将一些图形拼成一个正方形,图形的个数从1到5。如下图所示,图形个数是4,图形不能旋转,拼的时候不能重叠,拼完后的正方形里面不能有空隙。所有给原创 2017-05-10 09:43:19 · 1042 阅读 · 0 评论 -
算法笔记(VII) X算法与十字链表
最近毕业论文吃紧,自然上线的时间少了许多。本来想在上个星期做一下关于的Donald Knuth的algorithm X with Dancing link的,不过本着实践第一的原则,直到编完了整个程序,我才想写一写关于这个算法,抑或仅仅是一个编程技巧的dancing link。第一听说dancing link(由于其数据结构过于巧妙,使得数据结构成为了算法的名字)是从做ACM的师弟那里听到原创 2017-05-10 09:32:45 · 843 阅读 · 0 评论 -
算法笔记(VI) 模式匹配
题目有点大了,如果是命题作文的话,绝对是吃力不讨好的活。说得有点形而上学,但正如爱情公寓中的经典台词:“话粗理不粗”… 那么引用滑稽剧团Python的开场词吧:请看一场前所未有的表演! 计算机科学中处处有模式匹配,不仅从计算理论以及到实际工程应用,模式匹配都是一项重要的研究点和有用技术。简单的来说模式匹配,是在目标串 中寻找 模式串的过程,因此也可以将模式匹配的问题转化成为搜索或原创 2017-05-09 21:02:48 · 1572 阅读 · 0 评论 -
算法笔记(IV) 字典
字典在计算机中指信息及其索引,也可以理解成Key-Value的关联数组或者map(本质上是key与value构成的笛卡尔积的子集,不同于数学中的映射,其可以是一对多的关系)。key可以是数字、字符串或更复杂的结构等。实现字典的常用数据结构有:hash表、字典树(trie)、二叉树、B树等,它们的优缺点各异,适用不同的场景,在一些场景中,为了节省空间开销或者是加快检索的速度,甚至可以组合适用。原创 2017-05-09 20:47:35 · 439 阅读 · 0 评论 -
算法笔记(III) 状态空间搜索
动态规划在一般的算法书中,动态规划总是一个复杂的算法设计技巧。在几种普遍涉及的算法设计技巧:穷举、贪心、回溯、分治、动态规划中,动态规划往往是最复杂技巧性最强的一个技巧,但是常常最有效的算法,甚至在一些看似简单的算法中,都蕴含着动态规划的深刻思想,例如最短路径的floyd算法。理解动态规划往往需要过程,既要阅读书本理解最优子问题结构、马尔可夫性这两个理论要点,同时也要编写程序,理解原创 2017-05-09 20:45:52 · 8055 阅读 · 0 评论 -
算法笔记(II) 数据结构
众所周知,线性与非线性是数据结构分类的一个标准。对于线性数据结构来说,其数据的关系简单一致,因此也呈显一种表的表现形式,按照其数据的存储形式分为顺序表和链表;顺序表一般是就是我们常用的数组,因此考察数组操作是每一个计算机专业学生的基本功,数组是一种最为简单的线性结构,利于索引访问,但是不利于查找等操作。对于存储顺序并非有序的链表来说,其无法采用索引让计算机寻址操作,但是其操作灵活多变。同时,与数学原创 2017-05-09 20:45:10 · 606 阅读 · 0 评论 -
算法笔记(I) 分类
首先,我们打开任何一本算法书,来看看一本算法书是怎样展开的,这样的书很常见,我眼下就有一本:《算法基础》(Gilles Brassard * Pau Bratley),很抱歉,我的英文很差,这是一本译本。我们来一起总结一下一本合格的算法书该怎样写?1. 按常理,作者在第一部分应该做一个预备知识,其实主要是离散数学的一些东西,如基础逻辑、集合论、渐进式等,如果作者有兴趣,可以写一写计算机科学原创 2017-05-09 20:42:28 · 579 阅读 · 0 评论 -
读书笔记(V) 编程珠玑
编程珠玑是著名的算法手册,两本书都很薄,但真正做到了字字珠玑,以前买书就像买白菜一样求大而全,读完了之后,却味同嚼蜡,收获甚少。这两本书慕名买了很久,却没有去细读它,最近项目结束,有了闲暇,读了几篇,立刻让我如同发现了新大陆,因为上次做项目用到的一些优化技巧,这本书几乎都涉及到了,就在一句话的简短描述中。说实话,除了编程珠玑外,我还忽略了一部书,也就是高德纳的计算机程序设计艺术,至少是在以前我原创 2017-05-10 10:10:56 · 912 阅读 · 0 评论