算法
文章平均质量分 87
懂一点的陈老师
多年开发和软件项目管理经验,喜欢用Python写算法,写些小项目,友情客串少儿竞赛培训。
展开
-
数据结构--图的连通
深度优先搜索的一个直接应用就是找出图的所有连通分量,何为连通分量?首先认识几个概念,然后学习相关算法来分析图的连通,此类算法常应用于集群分析,推荐引擎,行为分析等。原创 2024-05-21 14:23:07 · 464 阅读 · 0 评论 -
图算法-网络流的最大流问题
首先认识网络流(network-flows),它是一种类比水流的解决问题方法,与线性规划密切相关。网络流的应用已遍及通讯、运输、电力、工程规划、任务分派、设备更新以及计算机辅助设计等众多领域。最大流问题(maximum flow problem)是网络流图里面一种常见问题,它是一种组合最优化问题,就是要讨论如何充分利用装置的能力,使得运输的流量最大,以取得最好的效果。原创 2024-05-16 09:38:07 · 980 阅读 · 0 评论 -
图搜索算法-最小生成树问题-普里姆算法(prim)
普里姆(Prim)算法也属于贪心算法,它是根据寻找邻近结点最小键值来构成最小生成树,先来认识算法步骤。原创 2024-05-15 11:44:54 · 913 阅读 · 0 评论 -
图搜索算法-最小生成树问题-克鲁斯卡尔算法(kruskal)
最小生成树(Minimum Spanning Tree)问题(下面简称MST)是指给定连接图G具有正的边权重,找到连接所有结点的边的最小权重集。MST应用场景多为网络设计,如光纤网络、燃气管道网络、电缆、道路交通等路线设计,其问题可以用克鲁斯卡尔(kruskal)算法或普里姆(prim)算法求解。使用的克鲁斯卡尔算法核心思想是贪心算法原创 2024-05-15 11:36:27 · 696 阅读 · 0 评论 -
图搜索算法-最短路径算法-贝尔曼-福特算法
贝尔曼-福特算法最大特点是支持负权重的情况,它每次都会从源结点重新出发对每一个结点进行距离计算并更新最小距离,而戴克斯特拉算法是从源结点出发向外扩逐个处理相邻的结点,不会去重复处理结点,从这也可以知道戴克斯特拉算法相对更高效一点。原创 2024-05-14 17:50:13 · 1039 阅读 · 0 评论 -
图搜索算法-最短路径算法-戴克斯特拉算法
自从有了导航,人们再也不怕去陌生地方,说走就走的旅行一点都不困难。打开导航,它总能告诉你怎样去到想要去的地方,并且往往已经是优化了的路线,路程最短或用时最少。社交应用已经占据手机使用的大部分时间了,在微信,英领,QQ等平台上查看朋友简介,平台也会告诉我们谁是大家共同朋友,或者告诉你,某个人和你有共同朋友,要不你们也认识一下。这些都是应用了最短路径算法,通过算法可以快速给出两点之间的最短距离,可以计算两点间成本最低的路线。解决最短路的问题有好几种算法,其中本文介绍戴克斯特拉(Dijkstra)算法原创 2024-05-14 17:31:25 · 978 阅读 · 0 评论 -
如何描述自己的算法?
让我们来一起探讨如何向别人介绍我们的算法。说话很简单,但要把话说清楚,说明白就不那么容易了。同样的道理,能够通俗易懂,直观清晰和严谨地描述一个算法,也是一项具有挑战性的任务。接下来,让我们一起尝试,用生动有趣的方式,让算法的表达更加清晰易懂。原创 2024-05-08 11:05:07 · 1286 阅读 · 0 评论 -
图搜索算法 - 拓扑排序
几乎所有的工程都可分为若干个称作活动的子工程,而这些子工程之间,通常受着一定条件的约束,如其中某些子工程的开始必须在另一些子工程完成之后。对整个工程和系统,人们关心的是两个方面的问题:一是工程能否顺利进行;二是估算整个工程完成所必须的最短时间。这样两个问题都是可以通过对有向图进行拓扑排序和关键路径操作来解决的。当然这里说的工程,泛指一切的项目工程,如指令调度,数据序列化,软件安装包依赖关系,代码编译任务顺序等。原创 2024-05-08 10:35:59 · 725 阅读 · 1 评论 -
图搜索算法 - 广度优先搜索法(BFS)
广度优先搜索法(BFS):从一个顶点出发,把它所有关联的顶点依次访问,然后到下一个顶点(刚才访问的关联顶点)。然后以这个顶点为中心,再次访问所有关联顶点,直到所有顶点被访问。原创 2024-05-07 11:42:31 · 490 阅读 · 0 评论 -
图搜索算法 - 深度优先搜索法(DFS)
深度优先搜索法(DFS):根据字面意思,就是顺着起始顶点访问一个没有访问过的顶点,一直走到没有新的顶点可以访问的时候,才往后退回上一个顶点,看一下有没有新的顶点可以访问,如果有又继续深入,直到所有顶点都被访问。这个过程类似浏览网页,点开新闻原创 2024-05-06 15:10:59 · 568 阅读 · 0 评论 -
启发式搜索算法4 -遗传算法实战:吊死鬼游戏
有一个小游戏叫吊死鬼游戏(hangman),在学习英语的时候,大家有可能在课堂上玩过。老师给定一个英文单词,同学们就猜是什么单词,猜错一次老师就画一笔,如果把吊死鬼画出来就没有机会猜了,游戏结束。现在我们不限猜测的次数,让电脑也来玩一下,看它要多久才能猜中。原创 2024-04-30 10:00:57 · 742 阅读 · 1 评论 -
启发式搜索算法3 -遗传算法
遗传算法(genetic algorithm)是用于解决最优化的搜索算法,是进化算法的一种。遗传算法基于自然选择和遗传学的思想。这是随机搜索的智能化优化,可将搜索引导到解决方案空间中性能更好的区间。其优点是原理和操作简单、通用性强、不受限制条件的约束,全局解搜索能力,而且天生具有并行性,代码很容易放到集群上进行分布式并行处理,它们通常用于优化问题和搜索问题,提供比较有效的解决方案。原创 2024-04-30 09:56:38 · 562 阅读 · 0 评论 -
启发式搜索算法1 - 最佳优先搜索算法
对于复杂问题的盲目搜索,常用广度优先搜索和深度优先搜索这两种盲目搜索算法,极大极小值和Alpha-beta剪枝算法是在盲目搜索过程中,通过剪枝避开一些不可能的结果,从而提高效率。如果搜索能够智能化一点,通过一些特殊的信息能够避免机械式盲目搜索,就可以提高搜索算法的效率,这就是启发式搜索。原创 2024-04-28 10:27:59 · 800 阅读 · 0 评论 -
启发式搜索算法2 - A*算法
最佳优先搜索算法的效果非常依赖估价函数,而估价函数又不是这么容易设置,那么能不能折中一下,添加其他确定性参数来平衡这个估价函数的不确定性,这就是A*算法原创 2024-04-29 10:20:30 · 1012 阅读 · 0 评论