Setting environment variables for a package "SCIP"

hello there,

I need to set the environment variable for SCIP package
I am wokring on windows 10…so I opened:
Advanced system Settings…Advanced…Environment Variables
I created a new variable and added the path as:
C:\Program Files\SCIPOptSuite 7.0.1\bin\libscip.dll
but building the package after that in Julia says that the environment variable SCIPOPTDIR needs to be set

Error: Error building `SCIP`: 
│ ERROR: LoadError: AssertionError: Environment variable `SCIPOPTDIR` not set!

What can be the problem ?

You need to exit Julia and restart it for the new environment variables to take effect.

I thought I am adding the extension for the wrong file… which file exactly do I need to add its path ?
With what extension is this file ? @odow

I have so many folders in the installation path with different extensions…like
.dll and .lib
so which of these should I point at its location?

Try

ENV["SCIPOPTDIR"] = "C:\\Program Files\\SCIPOptSuite 7.0.1"
] build SCIP
1 Like
julia> ENV["SCIPOPTDIR"] = "C:\Program Files\SCIPOptSuite 7.0.1"
ERROR: syntax: invalid escape sequence

@odow

Please see the double backslash in my previous answer.

Error: Error building `SCIP`: 
│ ERROR: LoadError: None of the selected providers can install dependency libcsip.
│ Use BinDeps.debug(package_name) to see available providers

Okay I edited it but I still get this :cry:

What is the output of ] st? You probably need SCIP.jl v0.9.5.

@odow

I tried to install this version and it showed successful build

(@v1.4) pkg> add SCIP@v0.9.5

then I added the environment

ENV["SCIPOPTDIR"] = "C:\\Program Files\\SCIPOptSuite 7.0.1"

then I build the solver

(@v1.4) pkg> build SCIP@v0.9.5

It showed successful build

Now I am trying to use it

using SCIP
using JuMP

optimizer = SCIP.Optimizer()
MOI.set(optimizer, SCIP.Param("display/verblevel"), 0)
MOI.set(optimizer, SCIP.Param("limits/gap"), 0.05)
m = Model(with_optimizer(optimizer, print_level=0))`

but it does not work

The syntax is

model = Model(SCIP.Optimizer)
set_optimizer_attribute(model, "display/verblevel", 0)
set_optimizer_attribute(model, "limits/gap", 0.05)
1 Like

I tried it now and it worked…Thank you so much
@odow

1 Like

Hello @odow , can you tell me what does that mean pls ?

LoadError: InitError: SCIP is installed at version 7.0.1, supported are 6.0.0 up to (including) 7.0.0.
during initialization of module SCIP
in expression starting at D:\M A S T E R S S S S S S\chapter_4\work\codes\a-SCIP\ML-scip.jl:1
error(::String) at error.jl:33
__init__() at init.jl:16
_include_from_serialized(::String, ::Array{Any,1}) at loading.jl:697
_require_search_from_serialized(::Base.PkgId, ::String) at loading.jl:781
_require(::Base.PkgId) at loading.jl:1006
require(::Base.PkgId) at loading.jl:927
require(::Module, ::Symbol) at loading.jl:922

The next time, I ran the program, The error changes to…

LoadError: Unexpected quadratic expression 0 in nonlinear expression. Quadratic expressions (e.g., created using @expression) and nonlinear expressions cannot be mixed. in expression starting at D:\

It looks like 7.0.1 was only recently released, and SCIP.jl hasn’t been released with support. But you can get something working with ] add SCIP#master.

The second error is a JuMP message. Use @NLexpression instead of @expression when making nonlinear constraints. Here are the NLP docs for JuMP: Nonlinear Modeling · JuMP.

I will add the master now and tell you what happened
I use a combination of both in fact
NL expressions and expression
Let me show it
too

I use a combination of both in fact

Yes, hence the error.

You cannot use @expression in the nonlinear macros @NLxxx. Use @NLexpression instead.

Ok…I am trying now
in 5 minutes, I will update you

I added the master branch

but
m = Model(SCIP.Optimizer)
then this line returns an error

 Model not defined

I think…they need JuMP. before it