Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
(Python)计算加权完美匹配的代码?_Python_Math_Graph Theory - Fatal编程技术网

(Python)计算加权完美匹配的代码?

(Python)计算加权完美匹配的代码?,python,math,graph-theory,Python,Math,Graph Theory,如果这个问题更适合mathoverflow或其他姐妹网站,请原谅我 我对计算平面图(不一定是二部图)中完美匹配的加权和感兴趣。这是一个标准问题;它经常使用。我想找到一些Python代码来解决这个问题(我并不急于自己编写,因为算法有点复杂) 如果做不到这一点,是否有其他(相对主流)语言的代码可用 下面的用户sabbahillel建议我列出一些我发现不起作用的软件,以避免重复工作。为此目的: 似乎仅适用于未加权的图形,且为Gforth by Knuth(!)仅适用于未加权二部图,并且在CWEB中

如果这个问题更适合mathoverflow或其他姐妹网站,请原谅我

我对计算平面图(不一定是二部图)中完美匹配的加权和感兴趣。这是一个标准问题;它经常使用。我想找到一些Python代码来解决这个问题(我并不急于自己编写,因为算法有点复杂)

如果做不到这一点,是否有其他(相对主流)语言的代码可用

下面的用户sabbahillel建议我列出一些我发现不起作用的软件,以避免重复工作。为此目的:

  • 似乎仅适用于未加权的图形,且为Gforth
  • by Knuth(!)仅适用于未加权二部图,并且在CWEB中
  • 需要Maple并且是Emacs模式(?!);既不支持加权图也不支持非二部图

    • 谷歌是你的朋友。我发现一个sourceforge项目在FORTH中实现了这一点

      描述:该项目提供了FKT的一个实现 计算平面图中完美匹配数的算法。 源代码是用第四种语言编写的,需要Gforth 跑计算可以通过命令行工具以及 通过Gforth可用的库

      我是sourceforge项目的作者。FKT确实支持加权图。FKT安装一个命令行程序,该程序将图形的ASCII描述作为输入,并在标准输出上输出计算出的匹配数。该接口允许与其他编程语言(如Python)轻松集成。当然,您需要在系统上安装Gforth,但这应该不是问题,所有主流Linux发行版的存储库中都有Gforth软件包

      FKT在有限域上以整数算法进行所有计算(取所选整数N的模)。该整数N的宽度限制为31或63位,具体取决于您的操作系统。如果需要更长的结果,您可以使用不同的(共)素数N_1..N_k多次调用FKT,然后使用来确定图模N_1*..N_k的匹配的实际加权计数


      请注意,FKT算法不确定匹配和的实际符号。它只保证所有匹配都用相同的符号求和。因此,FKT输出-m或m(mod N),应用中国剩余定理后,输出为-m或m(mod N_1*…*N_k)。通常情况下,你对你的图形了解得足够多,可以知道什么符号可以例外。

      谢谢,我也发现了,但是(1)它是用于未加权的图形,以及(2)它是用Gforth表示的。@Bill Bradley好的,我想如果合适的话,我会提到它。您可能希望提及您发现的不适用于节省时间的其他内容。第四个包似乎明确支持加权图。阅读代码。