# SCIP.jl: how to add a new parameter?

**URL:** <https://discourse.julialang.org/t/scip-jl-how-to-add-a-new-parameter/113246>\
**Category:** Optimization (Mathematical)\
**Tags:** question\
**Created:** [April 19, 2024, 3:44pm UTC](https://discourse.julialang.org/t/scip-jl-how-to-add-a-new-parameter/113246 "2024-04-19T15:44:40Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Maxime](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/maxime/32/45122_2.png) [@Maxime](https://discourse.julialang.org/u/Maxime)\
**Post date:** [April 19, 2024, 3:44pm UTC](https://discourse.julialang.org/t/scip-jl-how-to-add-a-new-parameter/113246/1 "2024-04-19T15:44:40Z")

</div>

Hello,

I am trying to use SCIP.jl with a custom branch of SCIP (exact-rational branch). I managed to compile this branch and to pass the install dir to SCIP.jl in my ENV[“SCIPOPTDIR”]. As indicated on the Readme of the branch (see [GitHub - scipopt/scip at exact-rational](https://github.com/scipopt/scip/tree/exact-rational)), it is required to set the parameter `exact/exact_enabled`.

However, when I try to set the parameter with `set_attribute(model, "exact/exact_enabled", "TRUE")`

I obtain:

```julia
ERROR: LoadError: Unrecognized parameter: exact/exact_enabled
Stacktrace:
  [1] error(s::String)
    @ Base ./error.jl:35
  [2] set_parameter(scipd::SCIP.SCIPData, name::String, value::String)
    @ SCIP ~/.julia/packages/SCIP/S9mBb/src/scip_data.jl:123
  [3] set
    @ ~/.julia/packages/SCIP/S9mBb/src/MOI_wrapper.jl:179 [inlined]
  [4] set
    @ ~/.julia/packages/MathOptInterface/gBojA/src/Bridges/bridge_optimizer.jl:955 [inlined]
  [5] set(model::MathOptInterface.Utilities.CachingOptimizer{MathOptInterface.Bridges.LazyBridgeOptimizer{SCIP.Optimizer}, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}, attr::MathOptInterface.RawOptimizerAttribute, value::String)
    @ MathOptInterface.Utilities ~/.julia/packages/MathOptInterface/gBojA/src/Utilities/cachingoptimizer.jl:1059
  [6] set(m::Model, attr::MathOptInterface.RawOptimizerAttribute, value::String)
    @ JuMP ~/.julia/packages/JuMP/as6Ji/src/optimizer_interface.jl:794
  [7] set_attribute
    @ ~/.julia/packages/JuMP/as6Ji/src/optimizer_interface.jl:1023 [inlined]
  [8] set_attribute
    @ ~/.julia/packages/JuMP/as6Ji/src/optimizer_interface.jl:1032 [inlined]
  [9] iabtree_throughput(G::MetaDiGraph{Int64, Float64}, json_comm::Vector{Any}, gap::Float64, continuous_ue_links::Bool, maxtime::Float64, scaling_caps::Int64)
    @ Main /home/IABEnergySavingJournal/solver/model.jl:70
 [10] macro expansion
    @ ./timing.jl:279 [inlined]
 [11] main(method::String, data::Dict{String, Any}, result_name::String)
    @ Main /home/IABEnergySavingJournal/solver/test_json.jl:75
 [12] top-level scope
    @ /home/IABEnergySavingJournal/solver/test_json.jl:107
in expression starting at /home/IABEnergySavingJournal/solver/test_json.jl:107

```

I also tried `set_attribute(model, "exact/exact_enabled", true)` and `set_attribute(model, "exact/exact_enabled", 1)` with the same outcome. I suspect I need to implement something regarding this parameter within SCIP.jl but am unsure what to change.

---

<div class="post-metadata">

**Author:** ![gdalle](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gdalle/32/27854_2.png) [@gdalle](https://discourse.julialang.org/u/gdalle)\
**Post date:** [April 21, 2024, 12:56pm UTC](https://discourse.julialang.org/t/scip-jl-how-to-add-a-new-parameter/113246/2 "2024-04-21T12:56:44Z")

</div>

@mbesancon ?

---

<div class="post-metadata">

**Author:** ![mbesancon](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mbesancon/32/6528_2.png) [@mbesancon](https://discourse.julialang.org/u/mbesancon)\
**Post date:** [April 21, 2024, 1:16pm UTC](https://discourse.julialang.org/t/scip-jl-how-to-add-a-new-parameter/113246/3 "2024-04-21T13:16:48Z")

</div>

The way you call the interface seems correct. Looking at the source code of the rational branch, it seems the parameter is now named:  
`exact/enabled` instead of `exact/exact_enabled`, with the README lagging behind. I’ll notify this to the exact team, thank you for the feedback!
