@@ -60,14 +60,14 @@ $(TYPEDSIGNATURES)
6060"""
6161function MMAPModel (instance:: UAIInstance ; marginalized, openvertices = (), optimizer = GreedyMethod (), simplifier = nothing ):: MMAPModel
6262 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
6464 )
6565end
6666
6767"""
6868$(TYPEDSIGNATURES)
6969"""
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 = (),
7171 fixedvertices = Dict {LT, Int} (),
7272 optimizer = GreedyMethod (), simplifier = nothing ,
7373 marginalize_optimizer = GreedyMethod (), marginalize_simplifier = nothing
@@ -77,7 +77,7 @@ function MMAPModel(vars::AbstractVector{LT}, factors::Vector{<:Factor{T}}; margi
7777 if ! isempty (setdiff (iy, vars))
7878 error (" Marginalized variables should not contain any output variable." )
7979 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 )... ]
8181 size_dict = OMEinsum. get_size_dict (all_ixs, all_tensors)
8282
8383 # detect clusters for marginalize variables
0 commit comments