FindCycle
FindCycle[g]
找出图 g 的一个圈.
FindCycle[g,k]
找出图 g 中长度最多为 k 的圈.
FindCycle[g,{k}]
找出长度恰好为 k 的圈.
FindCycle[g,{kmin,kmax}]
找出长度介于 kmin 和 kmax 之间的圈.
FindCycle[g,kspec,s]
找出最多 s 个圈.
FindCycle[{g,v},…]
找出包含顶点 v 的圈.
FindCycle[{vw,…},…]
用规则 vw 指定图 g.
背景
- FindCycle 试图找出图中的一个或多个不同的圈. 圈以一系列边列表的形式返回,若不存在任何圈则返回 {}. 图的圈(若该圈被显式路径标明且路径由特定端点组成,则更适合被称为环路)是由不同边组成的一个连续序列,头尾两条边的端点是重合的. 圈的枚举可用于规划许多情况下的环路(地铁、公路旅行等等),计算电子电路中的电压或电流,或者发现计算机程序中的无限循环.
- 一般来说,FindCycle[g,kspec,s] 试图找出 s 个长度为 kspec 的圈. 计数要求 s 可以被省略(在这种情况下它取值为 1),可以是一个正整数,或者是 All. 长度要求 kspec 可以是一个正整数 k(在这种情况下它表示圈长度小于或等于 k),可以是 Infinity,可以是有一个正整数的列表 {k}(在这种情况下它表示圈长度正好等于 k),或者是有两个正整数的列表 {kmin,kmax}(在这种情况下它表示圈长度从 kmin 到 kmax).
- 对于 FindCycle[g,{3}] 返回 {} 的图被称为无三角形图;对 FindCycle[g,{4}] 返回 {} 的图被称为无正方形图. 长度为 n 的环被称为哈密顿环,其中 n 是图的顶点数,拥有这种环的图被称为哈密顿图.
- 不包含任何圈的图被称为无圈图并可用 AcyclicGraphQ 检测.
- FindCycle 返回的是简单的圈,而 FindHamiltonianCycle、FindEulerianCycle 和 FindFundamentalCycles 返回的是特殊类型的圈. FindPath 可被用于寻找两个指定顶点之间的路径(两端端点不重合的边的集合),返回值是沿着路径的连续顶点组成的集合.
范例
打开所有单元关闭所有单元范围 (12)
应用 (4)
属性和关系 (3)
用 FindHamiltonianCycle 找出访问每个顶点恰好一次的圈:
EdgeCycleMatrix 给出了所有的圈的基:
从 FindCycle 找出全部的圈:
FindCycle 对无向图给出空列表:
可能存在的问题 (1)
FindCycle 忽略了自圈:
文本
Wolfram Research (2014),FindCycle,Wolfram 语言函数,https://reference.wolfram.com/language/ref/FindCycle.html (更新于 2015 年).
CMS
Wolfram 语言. 2014. "FindCycle." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2015. https://reference.wolfram.com/language/ref/FindCycle.html.
APA
Wolfram 语言. (2014). FindCycle. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/FindCycle.html 年