python闭环最短路径_gold-miner/introduction-to-graph-theory-network-analysis-python-codes.md at master · ja...

基于 Python 的图论和网络分析

引论

“一张照片包含了万千信息”,这句话常常被人们引用。但是一张图能表达的信息要更多。以图的形式可视化数据,帮助我们获得了更可行的见解,并基于此作出更好的数据驱动的决策。

但是,为了真正理解图到底是什么,以及为什么我们要使用它,我们还需要知道图论的概念。知道了这个,可以帮助我们更好的编程。

如果你之前曾经学习过图论,你一定知道你需要学习成千上万的公式和枯燥的理论概念。所以我们决定写这篇博客。我们会首先解释概念然后提供说明示例,方便你跟上我们的进度,并直观的理解函数是如何运作的。本篇博客会写的很详细,因为我们相信,提供正确的解释,是一种比只给出简单定义更受欢迎的选择。

在本篇文章中,我们会了解图是什么,它的应用,以及一些图的历史。同时文章中也会涵盖一些图论概念,然后我们会学习一个基于 Python 的示例,来巩固理解。

准备好了吗?那我们开始进入学习吧!

目录

图及图的应用

图的历史以及我们为什么选择图?

你需要知道的术语

图论基础概念

熟悉 Python 中的图

基于数据集的分析

图及图的应用

让我们先来观察一个如下所示的简单的图,从而帮助理解概念:

设想这个图代表了城市中人们经常会光顾的不同地点,然后一位城市游客按照这个路径行进。我们设定 V 表示地点,E 表示地点之间的路径

V = {v1, v2, v3, v4, v5}

E = {(v1,v2), (v2,v5), (v5, v5), (v4,v5), (v4,v4)}

边 (u,v) 和边 (v,u) 是一样的 —— 它们是无序数对。

具体来讲 —— 图是一种用来学习对象间和实体间配对关系的数学结构。它是离散数学的一个分支,并且在计算机科学、化学、语言学、运筹学、社会学等多个领域有广泛的应用。

数据科学和分析领域也同样使用图来模拟不同的结构和问题。作为一个数据学的科学家,你应该能够以高效的方法来解决问题,而在很多场景下,图就可以提供这样高效的机制,因为数据被以一种特别的方式组织了起来。

正式来讲:

图由两个集合组成。G = (V,E)。V 是一个顶点集合。E 是一个边的集合。E 是 V 中元素对组合而来的(无序对)。

有向图也是集合的配对。D = (V,A)。V 是顶点的集合。A 是弧的集合。A 是 V 中元素配对组合(有序对)。

如果是有向图,那么 (u,v) 和 (v,u) 就是有区别的。这时,边被称为弧,来表明方向的概念。

R 和 Python 中有很多用图论来分析数据的库。在本篇文章中,我们将会使用 Networkx Python 包来简单的学习一些这方面的概念,并做一些数据分析。

from IPython.display import Image

Image('images/network.PNG')

Image('images/usecase.PNG')

在上面的例子中可以很清晰的看出,图在数据分析中的应用非常广泛。我们来看几个案例:

市场分析 —— 图能够用于找出社交网中最具有影响力的人。广告商和营销人员能够通过将信息引导至社交网络中最有影响力的人那里,来试图获取最大的营销效益。

银行交易 —— 图能够用于找出不同寻常的交易者,帮助减少欺诈交易。曾经在很多案例中,恐怖分子的活动都被国际银行网络中货币流分析监测到了。

供给链 —— 图能帮助找出运送货物的最优路线,还能帮助选定仓库和运送中心的位置。

制药 —— 制药公司可以使用图论来优化推销员的路线。这样可以帮助推销员降低成本,并缩短旅途时间。

电信 —— 电信公司通常会使用图(Voronoi 图)来计算出信号塔的数量和位置,并且还能够保证最大覆盖面积。

图的历史以及我们为什么选择图?

图的历史

如果你想知道图的理论是如何被建立起来的 —— 继续读下去吧!

图论的起源可以追溯到七桥(Konigsberg bridge)问题(大约在 1730 年左右)。这个问题提出,哥尼斯堡城里的七座桥是否能够在满足以下条件的前提下全部被走过一遍:

路径无重复

路径结束的地方恰好就是你开始的位置

这个问题等同于,有四节点和七边的图是否能拥有一个欧拉圆(欧拉圆指的是,一个开始点和终止点相同的欧拉路径。而欧拉路径指的是,在图中恰好通过每一条边一次的路径。更多的术语将在下文介绍)。这个问题引出了欧拉图的概念。而关于哥尼斯堡桥问题,答案是不能,第一个回答出这个问题的人正是欧拉,你一定已经猜到了。

在 1840 年,A.F Mobius 给出了完全图和二分图的概念,同时 Kuratowski 通过 recreational 问题证明了它们都是平面图。树的概念(无环全连接图)则在 1845 被 Gustav Kirchhoff 提出,并且他在计算电网或电路中的电流时使用了图论的思想。

在 1852 年,Thomas Gutherie 创建了著名的四色问题。而后在 1856 年,Thomas. P. Kirkman 和 William R.Hamilton 共同在多面体上研究圆环,并通过研究如何找出通过指定的每个点仅一次的路径,创建了哈密顿图的概念。1913 年,H.Dudeney 也提到了一个难题。尽管四色问题很早就被提出,而在一个世纪后才被 Kenneth Appel 和 Wolfgang Haken 解答。这个时间才被认为是图论的诞生时间。

Caley 研究了微分学的特定分析形式,从而研究树结构。这在理论化学上已经有了很多应用。这也激发了枚举图论的创建。而在 1878 年,Sylvester 在“量子不变量”与代数和分子图的协变量之间进行了类比时,使用了“图”这个术语。

在 1941 年,Ramsey 研究了着色问题,从而引出了图论另一个分支的定义,即极值图论。在 1969 年,四色问题被 Heinrich 通过计算机解决。渐进图的学习也连带着激发了随机图论的发展。图论和拓扑学的历史同样紧密相关,它们之间有很多共同的概念和理论。

Image('images/Konigsberg.PNG', width = 800)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值