如何从LightGraphs和MetaGraphs中保存和加载MetaGraph对象,以便在加载元图时仍具有元数据?现在我有一个mg使用以下方式保存的元数据:
LightGraphs.savegraph("net.lg", mg)
Run Code Online (Sandbox Code Playgroud)
但是尝试重新加载它:
reloaded = LightGraphs.loadgraph("net.lg")
Run Code Online (Sandbox Code Playgroud)
给我以下内容:
BoundsError: attempt to access 2-element Array{SubString{String},1} at index [3]
Run Code Online (Sandbox Code Playgroud)
无论如何,在MetaGaphs软件包中的元数据中有待阅读吗?
我正在Julia 中向一个简单的加权有向图(来自SimpleWeightedDiGraph(),它是LightGraphs包的一部分)添加边。一些弧是“自由的”(空权重)。但是,当指定权重为 0 时,它不会作为新边添加,最短路径问题也不会将其包含在可能的解决方案中。有没有一种简单的方法可以将“自由”边/弧添加到 Julia 中的图形中?
julia LightGraphs中的weakly_connected_components是否应该提供连接组件,如果将DiGraph转换为无向图,那么每个组件应该连接?我试过这个,我没有收到这样的组件?作为一个例子,我在政治博客数据上尝试了这个作为无向网络
data=readdlm(path,',',Int64) #contains edges in each row
N_ = length(unique(vcat(data[:,1],data[:,2]))) ##to get number of vertices
network = LightGraphs.DiGraph(N_)
#construct the network
for i in 1:size(data,1)
add_edge!(network, Edge(data[i,1], data[i,2]))
end
#largest weakly connected component
net = weakly_connected_components(network)[1]
temp_net,vmap = induced_subgraph(network, net)
Run Code Online (Sandbox Code Playgroud)
在获得最大的弱连接组件后,我看到以下内容:
isempty([i for i in vertices(temp_net) if isempty(edges(temp_net).adj[i])])
julia>false
Run Code Online (Sandbox Code Playgroud)
签名一些节点没有传入或传出边缘.可能是什么问题?我使用的是最新版本6,但LightGraphs软件包测试似乎正在运行.