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

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

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

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

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

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

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

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

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

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

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

  • 广度优先搜索是一种用于图的查找算法,可以解决两类问题
  • 从节点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. WEB-文件包含漏洞详解

    title date tags layout 文件包含漏洞(File Include) 2018-10-12 post 产生原因: 由于在编写代码时避免麻烦就需要把公用的一段代码写到一个单独的文件里面 ...

  2. 104)PHP,目录树状输出

    使用特定数量的缩进达到树状目的! 核心问题,计算需要缩进的数量! 缩进级别,与递归调用深度保持一致.每当执行一级递归操作,所找到的文件的缩进级别+; 语法实现: 增加一个参数,表示当前函数调用的深度级 ...

  3. 对TD tree的使用体验及建议

    TDtree与QQ空间有着相似的功能,你可以在里面发表自己的感受与心情,也可以存储照片或者给喜欢的说说点赞.发表评论等,可以说这是一个将QQ空间从QQ里独立出来的软件.作为一个娱乐性的软件,它的功能还 ...

  4. python后端面试第六部分:git版本控制--长期维护

    ################## git版本控制 ####################### 1,git常见命令作用 2,某个文件夹中的内容进行版本管理:进入文件夹,右键git bash 3, ...

  5. IPC|同族专利|专利法|Soopat|专利之星|derwent innovations index|espacenet|j-piatpat|

    信息检索: 同族专利是基于同一优先权文件,在不同国家或地区,以及地区间专利组织多次申请.多次公布或批准的内容相同或基本相同的一组专利文献.同族专利检索用于同一个专利在其他国家的申请情况,查看类似专利的 ...

  6. python3下scrapy爬虫(第六卷:利用cookie模拟登陆抓取个人中心页面)

    之前我们爬取的都是那些无需登录就要可以使用的网站但是当我们想爬取自己或他人的个人中心时就需要做登录,一般进入登录页面有两种 ,一个是独立页面登陆,另一个是弹窗,我们先不管验证码登陆的问题 ,现在试一下 ...

  7. mysql配置白名单

    1. 测试是否允许远程连接 $ telnet 192.168.1.8 3306 host 192.168.1.4 is not allowed to connect to this mysql ser ...

  8. linux下文件夹归置方式

    /bin:二进制可执行命令./dev:设备特殊文件./etc:系统管理和配置文件./etc/rc.d:启动的配 置文件和脚本./home:用户主目录的基点,比如用户user的主目录就是/home/us ...

  9. 吴裕雄--天生自然 python开发学习笔记:一劳永逸解决绘图出现中文乱码问题方法

    import numpy as np import matplotlib.pyplot as plt x = np.random.randint(0,20,10) y = np.random.rand ...

  10. Qt unsigned char *与QString之间的相互转换

    //unsiged char *转QString unsigned char  *str = "fdd" ; char *str1 = (char *)str; QString s ...