匹配的边缘对于特定图形不是唯一的.
有没有办法找到所有最大匹配?
对于以下示例,下面的所有边可以是最大匹配:
{1: 2, 2: 1}或{1: 3, 3: 1}或{1: 4, 4: 1}
import networkx as nx
import matplotlib.pyplot as plt
G = nx.MultiDiGraph()
edges = [(1,3), (1,4), (1,2)]
nx.is_bipartite(G)
True
nx.draw(G, with_labels=True)
plt.show()
Run Code Online (Sandbox Code Playgroud)
不幸,
nx.bipartite.maximum_matching(G)
Run Code Online (Sandbox Code Playgroud)
只返回
{1: 2, 2: 1}
Run Code Online (Sandbox Code Playgroud)
有没有办法可以获得其他组合?
我有一个自动生成方程的脚本.
使用交感符号构造方程.
我想知道这些是否是一种检查方程在某些变量方面是否是线性的方法.
例如.
a, b, c, d = sympy.symbols('a, b, c, d')
eq1 = c*b*a + b*a + a + c*d
Run Code Online (Sandbox Code Playgroud)
检查以下内容:就eq1线性而言a,是d?
True
Run Code Online (Sandbox Code Playgroud) 我正在使用打开一个程序 subprocess.Popen
import subprocess
prog = subprocess.Popen(['myprog', args], shell=True)
我想监视进程'myprog'并等待它直到我的代码继续之前它终止.
我面临的问题是prog.pidshell的PID而不是'myprog',我不知道如何获得'myprog'的PID.我试图用来psutil找到子进程prog.pid:
parent = psutil.Process(prog.pid)
children = parent.children(recursive=True)
但是返回一个空列表.
不幸的是,如果没有shell,我无法启动'myprog'.当我运行该命令时,shell=False我收到以下错误消息:
FileNotFoundError: [WinError 2] The system cannot find the file specified
我搜索网络的高低,但所有有前途的线索都是针对非Windows用户的.
我正在求解大型方程组,但可以使用雅可比矩阵。
我决定使用 scipy.optimize.root (接受其他建议),在这里我可以将雅可比作为额外的可调用对象传递。唯一的问题是我的雅可比包含额外的常量,例如。
对于本例,需要求解 y、z,k 是一个常数
import scipy.optimize
def fun(x, k):
[y, z]= x
return [k*y**2 + z**2 - 25, k*z*y ]
def jacobian(x, k):
[y, z] = x
j = [[2*k*y, 2*z],
[ k*z, k*y]]
return j
solution = scipy.optimize.root(fun, [x1, x2], jaco=(jacobian, value_for_k))
Run Code Online (Sandbox Code Playgroud) python ×3
graph-theory ×1
math ×1
networkx ×1
python-3.x ×1
scipy ×1
shell ×1
subprocess ×1
sympy ×1
windows ×1