@@ -60,14 +60,14 @@ $(TYPEDSIGNATURES)
60
60
"""
61
61
function MMAPModel (instance:: UAIInstance ; marginalized, openvertices = (), optimizer = GreedyMethod (), simplifier = nothing ):: MMAPModel
62
62
return MMAPModel (
63
- 1 : (instance. nvars), instance. factors; marginalized, fixedvertices = Dict (zip (instance. obsvars, instance. obsvals)), optimizer, simplifier, openvertices
63
+ 1 : (instance. nvars), instance. cards, instance . factors; marginalized, fixedvertices = Dict (zip (instance. obsvars, instance. obsvals)), optimizer, simplifier, openvertices
64
64
)
65
65
end
66
66
67
67
"""
68
68
$(TYPEDSIGNATURES)
69
69
"""
70
- function MMAPModel (vars:: AbstractVector{LT} , factors:: Vector{<:Factor{T}} ; marginalized, openvertices = (),
70
+ function MMAPModel (vars:: AbstractVector{LT} , cards :: AbstractVector{Int} , factors:: Vector{<:Factor{T}} ; marginalized, openvertices = (),
71
71
fixedvertices = Dict {LT, Int} (),
72
72
optimizer = GreedyMethod (), simplifier = nothing ,
73
73
marginalize_optimizer = GreedyMethod (), marginalize_simplifier = nothing
@@ -77,7 +77,7 @@ function MMAPModel(vars::AbstractVector{LT}, factors::Vector{<:Factor{T}}; margi
77
77
if ! isempty (setdiff (iy, vars))
78
78
error (" Marginalized variables should not contain any output variable." )
79
79
end
80
- all_tensors = [[ones (T, 2 ) for _ in 1 : length (vars)]. .. , getfield .(factors, :vals )... ]
80
+ all_tensors = [[ones (T, cards[i] ) for i in 1 : length (vars)]. .. , getfield .(factors, :vals )... ]
81
81
size_dict = OMEinsum. get_size_dict (all_ixs, all_tensors)
82
82
83
83
# detect clusters for marginalize variables
0 commit comments