使用write_dimacs python库的方法有问题:
由于一些我不明白的原因,当我尝试使用它时,我得到了错误:KeyError: 'Attribute does not exist' (参见下面的完整输出)。
下面是一个在我的系统上重现错误的示例代码片段(mac x 10.10.5,python 3.5.1,python-igraph-0.7.1.post6):
from igraph import *
g = Graph.Read_Edgelist("graph3.txt")
print(g)
# This works fine
g.write_a
我不知道该用什么术语来搜索(我已经搜索过“映射算法”和“一对一算法”),我想不出一个更简单(更规范)的公式。
我有两套,比如说
A B C D E
和
L M N O P
给我一张一对多的地图。
A --> L, M, N, P
B --> M
C --> M, N, O
D --> N
E --> O, L
什么是最简单和/或最快的算法,它可以告诉地图的一个一对一的“子集”是否可以覆盖所有的项目?例如,上面确实存在这样一个“子集”:
A --> P
B --> M
C --> O
D --> N
E --> L
我不需要知道子集映射
我正在尝试确定最佳的算法来解决一个分配课程的要求。要求有一定数量的学分,才能被视为满足。课程有很多学分,当被录取的时候。因此,数据结构看起来类似于:
export class Course {
constructor(public id:number,
public credits:number) {
}
}
export class Requirement {
constructor(public id:number,
public name:string,
public credits:nu
给定一个参数k,我试图从有向图中删除k个边,这样最大流就会尽可能地减少。这个图有一个源和一个接收器t,每个边的容量是一个。图可能包含循环,也可能不包含循环。
我建议的解决方案是首先对图执行拓扑排序,使用“宽恕”循环的算法--也许是通过忽略将我们带回源的边缘。然后(假设k >= 1):
i = 0
for each vertex u order by topological(u)
for each edge (u, v) order by topological(v) descending
if topological(v) > topological(u) th