rustworkx.graph_token_swapper#
- graph_token_swapper(graph, mapping, /, trials=None, seed=None, parallel_threshold=50)#
本模块执行一种近似最优的代币交换算法。 支持对缺失代币的图进行部分映射(即非置换)。
基于论文: Miltzow等人(2016)的代币交换近似方法与复杂性 ArXiV: https://arxiv.org/abs/1602.05150
输入包括一个要在交换中实现的部分
mapping映射,以及执行该映射的trials试验次数。这是在多次试验中最小化的。它返回一个代表要执行的交换操作的元组列表。
- Parameters:
graph (PyGraph) – 输入图
dict[int – int] mapping: 节点与令牌的映射关系
trials (int) – 运行的试验次数
seed (int) – 用于生成随机整数以选择接下来要处理哪些节点的随机种子
parallel_threshold (int) – 图中节点的数量阈值,当达到该值时将触发使用并行线程。如果图中节点数量小于该值,将以单线程运行。默认值为50。
此函数是多线程的,默认会启动一个线程池,线程数量等同于CPU的核心数。您可以通过
RAYON_NUM_THREADS环境变量来调整线程数量。例如,设置RAYON_NUM_THREADS=4会将线程池限制为4个线程。- Returns:
一个元组列表,这些元组代表要应用于映射以重新排列标记的交换操作。
- Return type: