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

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

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

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

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

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

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

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

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

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

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

  • 广度优先搜索是一种用于图的查找算法,可以解决两类问题
  • 从节点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. python之urllib模块和requests模块

    一.urllib模块 python标准库自带的发送网络请求的模块. # 用python怎么打开浏览器,发送接口请求 import urllib from urllib.request import u ...

  2. linux清除cache的方法

    1  Linux下内存占用多的原因 当linux第一次读取一个文件运行时,一份放到一片内存中cache起来,另一份放入运行程序的内存中,正常运行,当程序运行完,关闭了,cache中的那一分却没有释放, ...

  3. Self-examination

    第一次参加省赛,算是真正感受到比赛的残酷.拿到好成绩,需要平时大量的积累,甚至也需要一点运气,然后我还做的不够,但我觉得我可以做得更好. 我之前是没有任何基础,大一才刚刚从知码开门入门.然后刚开始一直 ...

  4. android记帐本、涂鸦、仿腾讯新闻、仿bilibili、Markdwon便签、资讯APP等源码

    Android精选源码 kotlin版仿哔哩哔哩动画Android客户端源码 android实现图片涂鸦效果源码 Android 开源记账本项目源码 android高仿腾讯新闻app源码 androi ...

  5. 项目中docker swarm实践

    docker swarm 集群服务通信 前置要求 服务需要在同一个docker swarm集群中 服务需要处于同一个overlay网络上 服务需要暴露容器端口 有2个以上服务名不同的服务 服务部署流程 ...

  6. hibernate多表查询sql,以及所得对象的处理

    String sql ="SELECT id FROM tea WHERE tea.name=? "; SQLQuery query = this.getSession().cre ...

  7. python之操作数据库

    一.操作mysql 首先,python3操作mysql.需要安装第三方模块pymysql,在python2中则使用的是pysqldb.这里使用pymysql. 直接使用pip install pymy ...

  8. django的orm介绍以及静态文件介绍

    1 django中app的概念 大学:----------------- 项目 信息学院 ----------app01 物理学院-----------app02*强调:创建了app,要在配置文件中注 ...

  9. iOS天气动画、高仿QQ菜单、放京东APP、高仿微信、推送消息等源码

    iOS精选源码 TYCyclePagerView iOS上的一个无限循环轮播图组件 iOS高仿微信完整项目源码 想要更简单的推送消息,看本文就对了 ScrollView嵌套ScrolloView解决方 ...

  10. highcharys去掉x轴,y轴轴线和刻度

    x轴 xAxis: { lineWidth :,//去掉x轴线 tickWidth:,//去掉刻度 labels: { enabled: false },//去掉刻度数字 }, y轴 yAxis: { ...