图的连通性——通路和回路

Abstract

声明:本文只为我闲暇时候学习所做笔记,仅供我无聊时复习所用,若文中有错,误导了读者,敬请谅解!!!
图的同构参见我的语雀:图论:https://www.yuque.com/jhongtao/mai/gu9wdo

1. 通路和回路

  • 为什么会有通路和回路

image.png

1.2 通路和回路的概念和定义

image.png

1.3 回路通路举例

image.png

1.4 回路记号简化

image.png

2. 通路数量

image.png

2.1 通路数量的计算

image.png

2.2 通路计算数学归纳法证明

image.png

2.3 通路数量计算案例

image.png

2.3.1 无向图的通路数计算

image.png

2.3.2 有向图通路数的计算

image.png

### 哈密尔顿回路的概念 在离散数学中,哈密尔顿回路是指经过图(可以是有向图或无向图)中的所有顶点恰好一次并且回到起始顶点的路径[^2]。这种类型的回路对于理解特定结构下的连通性遍历性质非常重要。 具体来说,在一个给定的图G=(V,E),如果存在一条闭合路径P使得它通过每一个节点v∈V正好一次,则这条路径被称为哈密尔顿回路;而当这样的路径不是封闭形式而是开放的形式时称为哈密尔顿通路。值得注意的是,并非所有的图形都含有哈密尔顿回路通路,那些确实拥有至少一个哈密尔顿回路的图被特别命名为哈密尔顿图。 ### 旅行商问题(TSP) 旅行商问题是组合优化领域内的经典难题之一,其目标是在加权完全无向图里找到权重总最小化的哈密尔顿回路[^1]。这意味着TSP不仅关注于寻找能够访问每个城市(即图中的顶点)刚好一次再返回出发城市的路线,而且还强调这些边上的成本之要尽可能低。 因此,解决TSP实际上就是在求解满足上述条件的最佳哈密尔顿回路。由于涉及到了计算复杂度理论NP难类的问题特性,所以尽管原理简单明了,但在实际应用中却极具挑战性。 ### 关联分析 两者之间的联系在于它们共同围绕着同一个核心——即如何有效地构建覆盖整个网络/地图上各个位置而不重复的一条或多条路径。然而,区别也很明显: - **哈密尔顿回路**更侧重于拓扑属性的研究,探讨哪些种类的图具备这样独特的循环特征; - 而**旅行商问题**则聚焦于实用场景下最优解决方案的选择,特别是在考虑距离或其他衡量标准的情况下怎样规划最经济实惠的行程安排。 综上所述,虽然二者有着不同的侧重点,但是从本质上讲都是基于相同的基础概念展开讨论的不同方面。 ```python def is_hamiltonian_path(graph, path): """判断给定路径是否为哈密尔顿路径""" visited = set() for i in range(len(path)): vertex = path[i] if vertex in visited: return False visited.add(vertex) if i + 1 < len(path) and not graph.has_edge(vertex, path[i + 1]): return False return True def tsp_brute_force(graph): """暴力法求解旅行商问题""" import itertools nodes = list(graph.nodes()) min_cost = float('inf') best_route = None for perm in itertools.permutations(nodes[1:], len(nodes)-1): route = [nodes[0]] + list(perm) + [nodes[0]] cost = sum([graph.get_weight(route[j], route[(j+1)%len(route)]) for j in range(len(route))]) if cost < min_cost: min_cost = cost best_route = route return (best_route, min_cost) # 注意:以上代码仅为示意用途,未针对效率做任何优化处理。 ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值