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:

EdgeList