广度优先搜索算法详解地铁路线

北京很大,附上地铁图,不要迷路!!!

作为一个程序员,在北京,你很有可能住在回龙观地区,经常从龙泽上地铁,然后畅游北京。

当有一天,你老家的朋友来北京了,希望你能够带她去天安门玩一玩,你该怎么坐地铁呢?

基本要求,我们乘坐地铁,绿色出行,但希望换乘的最少。

此时,有可能你并不懂广度优先搜索算法,但实际上你已经运用了它。

找出从龙泽到天安门东的最短路径问题,就叫做广度优先搜索

下图列除了部分可以到达的路线:

从龙泽前往天安门东的最短路径需要三步,这种问题被称之为最短路径问题,那么解决最短路径问题的算法被称之为广度优先搜索

是不是这种概念,非常容易理解。

那我们进一步对广度优先搜索进行一个说明:

  • 广度优先搜索是一种用于图的查找算法,可以解决两类问题
  • 从节点A出发,能够到达节点B么!
  • 从节点A出发,前往节点B的路径中,最短的是哪条路径!

举个

金融场景下,借款人A到平台借款,逾期未还,假定我们知道他的朋友中(朋友13)会帮助他还,这个例子可能不是特别的恰当,但可以帮助大家说明问题,并深入理解广度优先搜索

广度优先搜索,不仅查找从借款人A到朋友13的路径,而且找到的是最短路径,为什么要找到最短路径呢,原因是图关系中,越近找到,说明关系越紧密。

如果你懂知识图谱技术的话,那可能直接用最短路径算法,就可以直接获取到。那么不用知识图谱的图计算技术,就可以用到队列的技术来实现

那么这里需要注意一个问题,这个问题就是当执行到朋友1时,要把借款人自己给去除掉,否则就变成了死循环了

最后的总结:

  • 广度优先搜索指出是否有从A到B的路径
  • 广度优先搜索将会找出最短路径
  • 可以先创建图,然后再根据图关系使用广度优先搜索算法来解决问题
  • 你需要按照加入的顺序去检查,否则找到的不是最短路径,因此如果你用的不是知识图谱的图算法技术,那么就必须是队列
  • 对于检查过的人,就不要再检查了,否则会造成死循环

AI广度优先搜索算法,项目实战北京地图/贪心学院的更多相关文章

  1. 10个机器学习人工智能开发框架和AI库(优缺点对比表)/贪心学院

    概述 通过本文我们来一起看一些用于人工智能的高质量AI库,它们的优点和缺点,以及它们的一些特点. 人工智能(AI)已经存在很长时间了.然而,由于这一领域的巨大进步,近年来它已成为一个流行语.人工智能曾 ...

  2. 给缺少Python项目实战经验的人

    我们在学习过程中最容易犯的一个错误就是:看的多动手的少,特别是对于一些项目的开发学习就更少了! 没有一个完整的项目开发过程,是不会对整个开发流程以及理论知识有牢固的认知的,对于怎样将所学的理论知识应用 ...

  3. 百度AI开放平台- API实战调用

    百度AI开放平台- API实战调用 一.      前言 首先说一下项目需求. 两个用户,分别上传了两段不同的文字,要计算两段文字相似度有多少,匹配数据库中的符合条件的数据,初步估计列出来会有60-1 ...

  4. 项目实战——企业级Zabbix监控实战(一)

    项目实战--企业级Zabbix监控实战 实验一:Zabbix监控的搭建 1.实验准备 centos系统服务器3台. 一台作为监控服务器, 两台台作为被监控节点, 配置好yum源. 防火墙关闭. 各节点 ...

  5. 微信小程序项目实战之天气预报

    概述 微信小程序项目实战之天气预报 详细 代码下载:http://www.demodashi.com/demo/10634.html 一.准备工作 1.注册微信小程序 2.注册和风天气账号 3.注册百 ...

  6. (转载)Android项目实战(二十七):数据交互(信息编辑)填写总结

    Android项目实战(二十七):数据交互(信息编辑)填写总结   前言: 项目中必定用到的数据填写需求.比如修改用户名的文字编辑对话框,修改生日的日期选择对话框等等.现总结一下,方便以后使用. 注: ...

  7. 微信小程序入门与实战 常用组件API开发技巧项目实战*全

    第1章 什么是微信小程序? 第2章 小程序环境搭建与开发工具介绍 第3章 从一个简单的“欢迎“页面开始小程序之旅 第4章 第二个页面:新闻阅读列表 第5章 小程序的模板化与模块化 第6章 构建新闻详情 ...

  8. tp5博客项目实战1

    tp5博客项目实战 开发准备:环境wamp,windows系统为例.看实战博客,默认会搭建开发环境并且tp5框架已经至少有一定的基础. tp5的下载与安装 方法一:直接在官网下载拷贝到wamp你的项目 ...

  9. Java 18套JAVA企业级大型项目实战分布式架构高并发高可用微服务电商项目实战架构

    Java 开发环境:idea https://www.jianshu.com/p/7a824fea1ce7 从无到有构建大型电商微服务架构三个阶段SpringBoot+SpringCloud+Solr ...

随机推荐

  1. AOP 总结

    AOP即Aspect oriented Programing, 面向切面编程. 相关术语: 通知(Advice): Advice defineds when to execute what actio ...

  2. php测试使用小的mysql存储过程

    <?php //前提是php.ini里面要开通mysqli的扩展./*$link = mysqli_connect('localhost','root','','chinatupai');  $ ...

  3. getRandomInt getRandomString

    import java.util.concurrent.ThreadLocalRandom; private static final String AB = "ABCDEFGHIJKLMN ...

  4. 吴裕雄--天生自然 JAVASCRIPT开发学习:对象 实例(3)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  5. 从源码看commit和commitAllowingStateLoss方法区别

    Fragment介绍 在很久以前,也就是我刚开始写Android时(大约在2012年的冬天--),那时候如果要实现像下面微信一样的Tab切换页面,需要继承TabActivity,然后使用TabHost ...

  6. 91)PHP,cookie代码展示

    cookie练习的代码: (1)先设置:setcookie('key值‘,’value值’): (2)然后我执行那个文件, (3)获取我的cookie值,用$_cookie['key值’]  cook ...

  7. abrupt|promising

    N-VAR 典礼;(宗教)仪式A ritual is a religious service or other ceremony which involves a series of actions ...

  8. linux上apache的安装

    1.简介 Apache HTTP Server(简称Apache或httpd)是Apache软件基金会的一个开放源代码的网页服务器软件,旨在为unix,windows等操作系统中提供开源httpd服务 ...

  9. 红杉资本的Dropbox上市,国内哪些产品会跟着受益?

    ​ ​每一个估值达到10亿美元以上的互联网.科技独角兽企业,都将上市当做"终极荣光".但事实上,上市只是这些独角兽企业开启全新时代的开端而已.很多气势汹汹且看似前景一片光明的独角兽 ...

  10. console.log添加样式及图片

    console.log在控制台打出css样式的文字及图片 谷歌开发者中心上面关于谷歌浏览器控制台console.log()的文档 Format Specifier %s Formats the val ...