【572→算法】算法思想精髓

1本质

1)算法和人做事最核心的差异是对明确性的要求不同,算法对明确性有着极其严苛的要求。

2)算法的优势在于模型化,模型化让算法能在不同领域之间快速迁移。

3)算法本身没有好坏,背后体现的都是人的思想。

2复杂度

1)时间复杂度是工具,可以衡量、比较不同算法的效率。

2)时间复杂度也是一种指标,能够督促算法工程师不断改进算法,降低复杂度,提高效率。

3)想要降低时间复杂度,我们可以用“空间换时间”和“分治”的办法。

3启发

1)成功地建立贴近现实的模型,同时保持问题的可解性,是评价数学模型巧妙的一个重要角度。

2)很多问题输入规模大到计算机也没法处理。这时我们需要谨慎地取舍,把问题规模降低到算法可以处理的范围。

3)算法经常采用迭代的方法逐步逼近问题答案。如何保证收敛和收敛效率体现了算法设计时的巧妙。

4反思

1)算法不能对问题负责。算法是工具,就像手里的锤子,锤子能钉钉子,但锤子不知道钉钉子要解决什么问题。

2)算法不能对数据负责。如果数据就是垃圾,算法再好用也白搭。

3)算法不能对解释负责。算法科学家有事宁可放弃一定的准确性,也会去选择那些更容易被解释和接受的算法。

5算法蓝图

算法解决问题的基本蓝图:

1)明确问题,不明确问题会导致在算法设计中走很多不必要的弯路。

2)建立模型,数学模型是对现实问题的近似和抽象,能够建立起计算机算法和问题之间的桥梁,为算法的效果进行预先估计。

3)选择算法,达成目标的好坏和时间复杂度决定了算法的选择。

6建立模型

1)建模就是把复杂的现实问题,转化成数学语言的过程。

2)算法工程师会遵循三个步骤,不断迭代找出最合适的模型:

第一,确定假设,找到核心变量和关系,舍弃不重要的细节,把模糊的问题,明确化、定量化。

第二,验证模型,不断和现实问题做比较,验证模型是否足够贴合现实问题。

第三,权衡可行性,找到一个又能准确描述现实,又能有效求解的模型。

7算法选择

1)我们强调了算法和模型不是一一对应的关系,建模不等于就可以完成算法选择。

2)在选择算法的时候,最重要的就是对质量和效率两个关键指标的权衡。

3)更进一步,优秀的算法工程师还会考虑数据对算法的影响,更加偏好那些数据敏感度低,限制条件少,对数据依赖小的算法。

8迭代

1)迭代,是一步一步重复某个固定操作,逐步接近答案的策略。

2)迭代算法能有效运行,有两个条件必须满足:一个是算法必须收敛,一个是不动点必须唯一。

3)迭代算法的运算速度快,是因为它放弃了一点点解决问题的质量,换来了大幅的速度提升。

9分治

1)分治算法是通过回溯,不断分解同样的问题,直到问题小得可以直接解决,再把小问题的解合并成原来问题解的算法策略。

2)确保要解决的问题能分解成与原问题类似的子问题,并且这些子问题之间相互独立,这时分治策略才能奏效。

3)如果分解问题和合并结果计算不复杂,分治策略能减小算法的复杂度。

4)分治策略开启了并行计算的大门,利用多CPU硬件上的优势,可以减少算法的运行时间。

10动态规划

1)动态规划指的既是多步骤的决策优化问题,也是解决这类问题的算法方法。

2)动态规划算法是在多步骤的决策优化问题满足最优子结构的时候,用以终为始、以小建大的方向解决问题的算法策略。

3)动态规划的效率会受“维度爆炸”的影响。

11分支界定

1)组合优化是一类特别难解决的问题,它的搜索空间大,我们很难确定谁是最优解。

2)分支定界法是把分支、定界、剪枝三个过程结合在一起,减小搜索空间,保证找到组合优化问题最优解的算法策略。

3)要让分支定界法高效,从根本上是要进行有效的剪枝。为了进一步提升分支定界法的效率,我们可以使用提前停止的策略。

12启发式

1)遇到特别复杂的组合优化问题时,如果找不到最优解,我们可以转而使用启发式算法,找到不错的可行解。

2)启发式算法是人们通过对问题的理解,以某一套规则制定出来的一类算法。

3)元启发式算法是通过人们对自然或者人类解决问题时通用逻辑的观察和模拟,总结出来的一系列通用启发式算法。

13蒙特卡罗

1)对问题中的随机事件进行取样,为有限个样本进行独立计算,最后把每个样本结果进行统计的策略叫蒙特卡罗方法。

2)蒙特卡罗方法最适用于随机变量多,计算逻辑复杂的问题。

3)随机模拟不是万能的。它会占用大量计算资源,依赖于参数的正确性,并且对揭示问题本质没有太大帮助。

14机器学习

1)机器学习算法是一系列让计算机自主学习的算法。它们最适合用在人类没法用明确规则进行解决的问题上。

2)机器学习学到了很多人类没教过、自己也不懂的事物细节。

3)机器学习学到的是事物之间的复杂关系。

15学习策略

1)机器学习模拟了不同的学习模式,学习模式不同,学到的知识也不一样,但也许能解决的问题是一致的。

2)机器学习得到的知识传回给人类并不容易,但又很必要,我们还在探索更好的传回的方法。

16算法思维

1)很多人关注的是眼下问题的特定结果,而算法工程师更在意通用方案,解决更多更广泛的问题。

2)学会拿数据和算法工程师沟通。数据越多,质量越高,算法工程师对你要解决问题的兴趣也越高。

3)和算法工程师最好的互动方式,就是一起在抽象模型和现实场景当中来回转换。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,063评论 6 510
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,805评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,403评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,110评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,130评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,877评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,533评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,429评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,947评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,078评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,204评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,894评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,546评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,086评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,195评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,519评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,198评论 2 357

推荐阅读更多精彩内容