在企业集团破产重整中,债务人往往通过错综复杂的控股平台、互保环路和关联交易来隐藏资金的真实流向。这种隐秘的关系网络如果只停留在表格层面,极难被发现。
三函代码利用图论算法,构建了一套用于债务人关系审计的有向图拓扑分析系统。
一、 图模型构建(Graph Modeling)
我们将债务人及其关联方建模为有向图:
- 节点(Vertices):代表自然人、企业实体、金融机构等。
- 有向边(Edges):代表控股关系(含有持股比例)、担保关系(含有担保金额)或资金流向。
通过分析这个有向图的拓扑特征,我们可以用数学方法直接捕获以下两类重大财务异常:
- 有向环(Directed Cycles):代表交叉担保或循环互保环,这在破产清算中会导致连锁债务传染。
- 多层路径穿透:计算出实控人到最末梢子公司的“实际控制链路”与间接持股比例。
二、 Python NetworkX 核心拓扑算法实现
我们使用 Python 的 networkx 库来实现股权穿透与环路检测的核心逻辑:
import networkx as nx
def build_restructuring_graph(relations):
"""
relations: 列表,格式为 [{'source', 'target', 'type', 'weight'}]
"""
G = nx.DiGraph()
for rel in relations:
G.add_edge(
rel['source'], rel['target'],
relation_type=rel['type'],
weight=rel['weight']
)
return G
def detect_guarantee_cycles(G):
"""
寻找图谱中的所有循环担保链(环路)
"""
# 过滤出仅包含担保(Guarantee)类型的子图
guarantee_edges = [
(u, v) for u, v, d in G.edges(data=True)
if d['relation_type'] == 'guarantee'
]
sub_G = G.edge_subgraph(guarantee_edges)
# 查找所有简单环路
cycles = list(nx.simple_cycles(sub_G))
return cycles
def calculate_indirect_shareholding(G,實控人,目標公司):
"""
计算实控人通过多层持股平台到目标公司的累计间接持股比例
"""
all_paths = list(nx.all_simple_paths(G, source=實控人, target=目標公司))
total_percentage = 0.0
for path in all_paths:
path_percentage = 1.0
for i in range(len(path) - 1):
edge_data = G.get_edge_data(path[i], path[i+1])
if edge_data['relation_type'] == 'shareholding':
path_percentage *= edge_data['weight'] # 持股比例相乘
else:
path_percentage = 0.0
break
total_percentage += path_percentage
return total_percentage三、 结果可视化与预警
运行算法后,系统会自动输出一个交互式的网络视图。对于检测出的循环担保链,系统会用红色粗线标出,并自动计算互保总额。 投资人在决定是否参与重整时,可以利用此图谱快速评估这笔投资是否会陷入潜在的连带债务泥潭中,规避重组盲区。