离散数学·图的着色

着色

在这里插入图片描述

色数

在这里插入图片描述

  • k -着色 —— 用k个颜色上色的
  • 色数 —— 最少需要的颜色数
  • k -色图 —— 最少需要的色 的图
  • χ(……) —— 相应 色数

在这里插入图片描述

性质

  • χ(G)点色数=1 —— 为零图 全是孤立点
  • χ(Kn)=n
  • χ(G)=2 —— G为非零图二部图 二部图:一个图的点集可以分为2个互不相交的点集A,B的并,并且在G中的每一条边的2个端点,其中一个在A,另一个在B。

在这里插入图片描述

  • G可2 -着色 —— G是二部图 —— G中无奇圈

χ(G)的上界、Brooks定理

在这里插入图片描述
在这里插入图片描述

色多项式

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

边着色、Vizing定理

在这里插入图片描述

在这里插入图片描述

当然,这道题出现在边着色下方,所以用到 边着色 的建模,但是实际上自己想的话挺难想到的🥠🥠🥠

在这里插入图片描述

练习

求色多项式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

有点看不懂,尽量看看吧,实在不会也无所谓了

第3题

在这里插入图片描述
在这里插入图片描述
这题不难,但是主要是当2个图组合在一起时,用乘法缔结起来
递推公式用 加法

8题

在这里插入图片描述
在这里插入图片描述
前2问
看看就行了,有点概念即可,不必强求了

证明题

在这里插入图片描述
在这里插入图片描述
看看就行

14

在这里插入图片描述
在这里插入图片描述

### 关于离散数学中的着色多项式 #### 定义与基本概念 在论中,着色问题是研究如何给定一个无向G=(V,E),使得相邻顶点具有不同颜色所需的最少颜色数。对于任意简单无向\( G \),其对应的着色多项式 \( P(G,k) \) 表示当有 k 种可用的颜色时,能够对该进行有效着色的方式总数[^1]。 #### 性质描述 该多项式的根被称为临界指数,在某些特定条件下可以揭示有关形结构的重要信息。例如,如果两个同构,则它们拥有相同的着色多项式;反之则不一定成立。此外,着色多项式还满足递推关系:设 e 是 E 中的一条边,则存在如下公式: \[P(G,λ)=P(G-e,λ)-P(G*e,λ)\] 这里,“-e”表示删除边 e 后得到的新,“*e”代表收缩这条边后的所得新[^2]。 #### 应用场景举例 着色多项式不仅限于理论探讨,在实际应用方面也有广泛用途。比如在网络规划领域内可以帮助解决频率分配问题——即怎样安排无线通信频道才能使干扰最小化;又或是地绘制过程中确保邻近区域不会被涂上相同色彩等问题都可以借助这一工具得到有效处理[^3]。 ```python def chromatic_polynomial(graph, colors): """ A simple recursive function to demonstrate the concept of calculating a chromatic polynomial. :param graph: An adjacency list representation of an undirected graph. :type graph: dict[int, set[int]] :param colors: The number of available colors (k). :type colors: int :return: Number of ways to color the given graph using `colors` distinct colors such that no two adjacent vertices have same color. :rtype: int """ def count_ways(node, colored_nodes): if node >= len(graph): return 1 options = colors - sum(neighbor in colored_nodes for neighbor in graph[node]) result = 0 for option in range(options): new_colored = {node} | colored_nodes result += count_ways(next_unvisited_node(new_colored), new_colored) return result def next_unvisited_node(colored_set): unvisited = [v for v in range(len(graph)) if v not in colored_set] return min(unvisited or [-1]) visited = set() total_options = 0 while True: start_vertex = next_unvisited_node(visited) if start_vertex == -1: break total_options += count_ways(start_vertex, frozenset()) visited.add(start_vertex) return total_options ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值