@@ -15,8 +15,8 @@ struct Independence{CT<:EinTypes} <: GraphProblem
1515end
1616
1717function Independence (g:: SimpleGraph ; openvertices= (), optimizer= GreedyMethod (), simplifier= nothing )
18- rawcode = EinCode (([(i,) for i in Graphs. vertices (g)]. .. , # labels for vertex tensors
19- [ minmax (e. src,e. dst) for e in Graphs. edges (g)]. .. ), openvertices) # labels for edge tensors
18+ rawcode = EinCode (([[i] for i in Graphs. vertices (g)]. .. , # labels for vertex tensors
19+ [[ minmax (e. src,e. dst)... ] for e in Graphs. edges (g)]. .. ), collect (Int, openvertices) ) # labels for edge tensors
2020 code = _optimize_code (rawcode, uniformsize (rawcode, 2 ), optimizer, simplifier)
2121 Independence (code)
2222end
@@ -32,7 +32,7 @@ struct MaxCut{CT<:EinTypes} <: GraphProblem
3232 code:: CT
3333end
3434function MaxCut (g:: SimpleGraph ; openvertices= (), optimizer= GreedyMethod (), simplifier= nothing )
35- rawcode = EinCode (([ minmax (e. src,e. dst) for e in Graphs. edges (g)]. .. ,) , openvertices) # labels for edge tensors
35+ rawcode = EinCode ([[ minmax (e. src,e. dst)... ] for e in Graphs. edges (g)], collect (Int , openvertices) ) # labels for edge tensors
3636 MaxCut (_optimize_code (rawcode, uniformsize (rawcode, 2 ), optimizer, simplifier))
3737end
3838
@@ -48,7 +48,7 @@ struct MaximalIndependence{CT<:EinTypes} <: GraphProblem
4848end
4949
5050function MaximalIndependence (g:: SimpleGraph ; openvertices= (), optimizer= GreedyMethod (), simplifier= nothing )
51- rawcode = EinCode (([( Graphs. neighbors (g, v)... , v) for v in Graphs. vertices (g)]. .. ,), openvertices)
51+ rawcode = EinCode (([[ Graphs. neighbors (g, v)... , v] for v in Graphs. vertices (g)]. .. ,), collect (Int, openvertices) )
5252 MaximalIndependence (_optimize_code (rawcode, uniformsize (rawcode, 2 ), optimizer, simplifier))
5353end
5454
@@ -69,8 +69,9 @@ struct Matching{CT<:EinTypes} <: GraphProblem
6969end
7070
7171function Matching (g:: SimpleGraph ; openvertices= (), optimizer= GreedyMethod (), simplifier= nothing )
72- rawcode = EinCode (([(minmax (e. src,e. dst),) for e in Graphs. edges (g)]. .. , # labels for edge tensors
73- [([minmax (i,j) for j in neighbors (g, i)]. .. ,) for i in Graphs. vertices (g)]. .. ,), openvertices) # labels for vertex tensors
72+ rawcode = EinCode (vcat ([[minmax (e. src,e. dst)] for e in Graphs. edges (g)], # labels for edge tensors
73+ [[minmax (i,j) for j in neighbors (g, i)] for i in Graphs. vertices (g)]),
74+ collect (Tuple{Int,Int}, openvertices))
7475 Matching (_optimize_code (rawcode, uniformsize (rawcode, 2 ), optimizer, simplifier))
7576end
7677
@@ -132,9 +133,9 @@ julia> res = best_solutions(gp; all=true)[]
132133"""
133134function set_packing (sets; openvertices= (), optimizer= GreedyMethod (), simplifier= nothing )
134135 n = length (sets)
135- code = EinCode (([(i,) for i= 1 : n]. .. , [( i,j) for i= 1 : n,j= 1 : n if j> i && ! isempty (sets[i] ∩ sets[j])]. .. ), openvertices)
136+ code = EinCode (vcat ([[i] for i= 1 : n], [[ i,j] for i= 1 : n,j= 1 : n if j> i && ! isempty (sets[i] ∩ sets[j])]), collect (Int, openvertices) )
136137 Independence (_optimize_code (code, uniformsize (code, 2 ), optimizer, simplifier))
137138end
138139
139140_optimize_code (code, size_dict, optimizer:: Nothing , simplifier) = code
140- _optimize_code (code, size_dict, optimizer, simplifier) = optimize_code (code, size_dict, optimizer, simplifier)
141+ _optimize_code (code, size_dict, optimizer, simplifier) = optimize_code (code, size_dict, optimizer, simplifier)
0 commit comments