From e57553e5b4e541e05e6c18d3a36d090acf4bdb5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Legat?= Date: Fri, 9 May 2025 12:26:30 +0200 Subject: [PATCH 1/2] Use the new API to access nodes and adjacency matrix --- .../functions/nonlinear/graph/graphs/directed_tree.jl | 8 ++++---- src/eago_optimizer/functions/nonlinear/graph/utilities.jl | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/eago_optimizer/functions/nonlinear/graph/graphs/directed_tree.jl b/src/eago_optimizer/functions/nonlinear/graph/graphs/directed_tree.jl index 13dc8ac7..57baa5ac 100644 --- a/src/eago_optimizer/functions/nonlinear/graph/graphs/directed_tree.jl +++ b/src/eago_optimizer/functions/nonlinear/graph/graphs/directed_tree.jl @@ -229,9 +229,9 @@ user_multivariate_operator(g::DAT, i) = g.user_operators.registered_multivariate function DirectedTree(aux_info, d, op::OperatorRegistry, sub_sparsity::Dict{Int,Vector{Int}}, subexpr_linearity, parameter_values, is_sub, subexpr_indx) - nd = copy(d.nodes) - adj = copy(d.adj) - const_values = copy(d.const_values) + nd = copy(MOI.Nonlinear.expression(d).nodes) + adj = copy(MOI.Nonlinear.adjacency_matrix(d)) + const_values = copy(MOI.Nonlinear.expression(d).values) sparsity, dependent_subexpressions = _compute_sparsity(d, sub_sparsity, is_sub, subexpr_indx) dependent_subexpression_dict = Dict{Int,Int}() @@ -243,7 +243,7 @@ function DirectedTree(aux_info, d, op::OperatorRegistry, sub_sparsity::Dict{Int, rev_sparsity[s] = i end - nodes = _convert_node_list(aux_info, d.nodes, op) + nodes = _convert_node_list(aux_info, MOI.Nonlinear.expression(d).nodes, op) lin = linearity(nd, adj, subexpr_linearity) DirectedTree(nodes = nodes, variables = rev_sparsity, diff --git a/src/eago_optimizer/functions/nonlinear/graph/utilities.jl b/src/eago_optimizer/functions/nonlinear/graph/utilities.jl index 21302ab1..cd3d95c0 100644 --- a/src/eago_optimizer/functions/nonlinear/graph/utilities.jl +++ b/src/eago_optimizer/functions/nonlinear/graph/utilities.jl @@ -48,7 +48,7 @@ sparsity(d::MOIRAD._FunctionStorage) = d.grad_sparsity function _compute_sparsity(d::MOIRAD._FunctionStorage, sparse_dict::Dict{Int,Vector{Int}}, is_sub, subexpr_indx) dep_subexpression = Int[] variable_dict = Dict{Int,Bool}() - for n in d.nodes + for n in MOI.Nonlinear.expression(d).nodes if n.type == MOINL.NODE_VARIABLE if !haskey(variable_dict, n.index) variable_dict[n.index] = true @@ -74,7 +74,7 @@ end function _compute_sparsity(d::MOIRAD._SubexpressionStorage, sparse_dict::Dict{Int,Vector{Int}}, is_sub, subexpr_indx) dep_subexpression = Int[] variable_dict = Dict{Int,Bool}() - for n in d.nodes + for n in MOI.Nonlinear.expression(d).nodes if n.type == MOINL.NODE_VARIABLE if !haskey(variable_dict, n.index) variable_dict[n.index] = true From 06be9fd48f09511c1d80668c5eea04fdad94050b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Legat?= Date: Fri, 9 May 2025 12:31:18 +0200 Subject: [PATCH 2/2] Checkout MOI branch --- .github/workflows/ci.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d51e3320..daa7f00a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,6 +28,13 @@ jobs: version: ${{ matrix.version }} arch: ${{ matrix.arch }} - uses: julia-actions/cache@v1 + - name: MOI + shell: julia --project=@. {0} + run: | + using Pkg + Pkg.add([ + PackageSpec(name="MathOptInterface", rev="bl/expression_adj"), + ]) - uses: julia-actions/julia-buildpkg@v1 - uses: julia-actions/julia-runtest@v1 - uses: julia-actions/julia-processcoverage@v1