小编Ale*_*exo的帖子

朱莉娅边缘的条件总和

我有一个复杂的问题,我必须从先前构建的图形中评估边缘的总和.朱莉娅似乎没有处理带边的条件和.

这是一个类似于我想要解决的问题的简单问题:

module EssaiModule

using LightGraphs, MetaGraphs

g = DiGraph(6)
mg = MetaDiGraph(g, 1.0)
add_vertex!(mg)
add_edge!(mg,1,2)
add_edge!(mg,1,3)
add_edge!(mg,1,4)
add_edge!(mg,2,4)
add_edge!(mg,2,5)
add_edge!(mg,3,5)
add_edge!(mg,5,6)
add_edge!(mg,4,6)

set_props!(mg,3,Dict(:port=>1,:vessel=>2))
set_props!(mg,1,Dict(:port=>1,:vessel=>0))
set_props!(mg,2,Dict(:port=>1,:vessel=>0))
set_props!(mg,4,Dict(:port=>1,:vessel=>2))
set_props!(mg,5,Dict(:port=>0,:vessel=>2))
set_props!(mg,6,Dict(:port=>0,:vessel=>0))

SI = sum(1 for e in edges(mg);get_prop(g,dst(e),:vessel)==2 && get_prop(g,dst(e),:port)==1)

println(SI)

end
Run Code Online (Sandbox Code Playgroud)

当我测试它时,我得到了错误

#LoadError: MethodError: no method matching dst(::Irrational{:e})
Run Code Online (Sandbox Code Playgroud)

我真的需要弄清楚如何与条件求和,因为在我的实际问题中,我将这个和放在一个约束中,就像这样,边ed和和x变量之和:

@constraint(model, cM[e in edges(g)], x[e] + sum(x[ed] for ed in edges(g) ; fn1(ed) == 2 && fn2(ed) == 1) <= 1 + y)
Run Code Online (Sandbox Code Playgroud)

我有错误信息说

#LoadError: UndefVarError: ed not …
Run Code Online (Sandbox Code Playgroud)

list-comprehension julia

1
推荐指数
1
解决办法
209
查看次数

标签 统计

julia ×1

list-comprehension ×1