Code Monkey home page Code Monkey logo

Comments (5)

svigerske avatar svigerske commented on July 18, 2024

@matbesancon You know what this legacy vs non-legacy interfaces is about?

from scip.

matbesancon avatar matbesancon commented on July 18, 2024

there was a change in the nonlinear API of JuMP. But it shouldn't change anything here if the user is just interacting with the CLI version of SCIP

from scip.

stumarcus314 avatar stumarcus314 commented on July 18, 2024

I provided the two .nl files in the original post. Have you confirmed the behavior that I observed in your versions of SCIP? I run SCIP by submitting the .nl files to COAP. https://www.coap.online/ When I submit the non-legacy .nl file to NEOS Knitro, Knitro seems to recognize the initial solution, as per the output below: "The initial point provided for the root node relaxation is feasible for the MIP and has obective value 1.020425e+04."

Artelys Knitro 14.0.0

concurrent_evals: 0
datacheck: 0
hessian_no_f: 1
numthreads: 4
Knitro changing mip_method from AUTO to 1.
Knitro changing mip_rootalg from AUTO to 1.
Knitro changing mip_lpalg from AUTO to 3.
Knitro changing mip_branchrule from AUTO to 2.
Knitro changing mip_selectrule from AUTO to 2.
Knitro changing mip_mir from AUTO to 2.
Knitro changing mip_clique from AUTO to 0.
Knitro changing mip_zerohalf from AUTO to 0.
Knitro changing mip_liftproject from AUTO to 0.
Knitro changing mip_knapsack from AUTO to 2.
Knitro changing mip_gomory from AUTO to 0.
Knitro changing mip_cut_flowcover from AUTO to 2.
Knitro changing mip_cut_probing from AUTO to 1.
Knitro changing mip_rounding from AUTO to 3.
Knitro changing mip_heuristic_strategy from AUTO to 1.
Knitro changing mip_heuristic_feaspump from AUTO to 1.
Knitro changing mip_heuristic_misqp from AUTO to 0.
Knitro changing mip_heuristic_mpec from AUTO to 1.
Knitro changing mip_heuristic_diving from AUTO to 0.
Knitro changing mip_heuristic_lns from AUTO to 0.
Knitro changing mip_heuristic_localsearch from AUTO to 1.
Knitro changing mip_pseudoinit from AUTO to 1.

Problem Characteristics ( Presolved)

Objective goal: Minimize
Objective type: general
Number of variables: 50 ( 50)
bounded below only: 0 ( 0)
bounded above only: 0 ( 0)
bounded below and above: 16 ( 16)
fixed: 0 ( 0)
free: 34 ( 34)
Number of binary variables: 16 ( 16)
Number of integer variables: 0 ( 0)
Number of constraints: 34 ( 34)
linear equalities: 34 ( 34)
quadratic equalities: 0 ( 0)
gen. nonlinear equalities: 0 ( 0)
linear one-sided inequalities: 0 ( 0)
quadratic one-sided inequalities: 0 ( 0)
gen. nonlinear one-sided inequalities: 0 ( 0)
linear two-sided inequalities: 0 ( 0)
quadratic two-sided inequalities: 0 ( 0)
gen. nonlinear two-sided inequalities: 0 ( 0)
Number of nonzeros in Jacobian: 578 ( 578)
Number of nonzeros in Hessian: 51 ( 51)

Knitro using Branch and Bound method with 4 threads.

Initial points

The initial point provided for the root node relaxation is feasible for the MIP and has obective value 1.020425e+04.
No primal point provided for the MIP.

from scip.

svigerske avatar svigerske commented on July 18, 2024

The .nl reader of SCIP needs to reformulate a nonlinear objective function into a constraint, since SCIP does not support nonlinear objective functions. For that, it introduces a new variable, nlobjvar. Unfortunately, it does not calculate a value for this variable for the initial solution. I will take a look whether that is possible.

The legacy and non-legacy model seem to be very different - different variables and different constraints. I suppose they only equivalent after aggregating the continuous variables.
In the legacy model, the objective function is already reformulated as constraints, and I suppose a corresponding initial value has been set for the continuous variable that has been introduced for that purpose.

from scip.

odow avatar odow commented on July 18, 2024

Yes, ignore the "legacy" stuff. It has nothing to do with this issue. (See discussion https://discourse.julialang.org/t/legacy-vs-non-legacy-jump-nonlinear-model-nl-files-with-initial-solution/115442)

since SCIP does not support nonlinear objective functions. For that, it introduces a new variable, nlobjvar. Unfortunately, it does not calculate a value for this variable for the initial solution

This sounds right and matches up with the error message:

 [nonlinear] <objcons>: ((1*(<x0>*<x0>)+1*(<x17>*<x17>)+(-0.5)))^2+((1*(<x1>*<x1>)+1*(<x18>*<x18>)+(-0.5)))^2+((1*(<x2>*<x2>)+1*(<x19>*<x19>)+(-0.5)))^2+((1*(<x3>*<x3>)+1*(<x20>*<x20>)+(-0.5)))^2+((1*(<x4>*<x4>)+1*(<x21>*<x21>)+(-0.5)))^2+((1*(<x5>*<x5>)+1*(<x22>*<x22>)+(-0.5)))^2+((1*(<x6>*<x6>)+1*(<x23>*<x23>)+(-0.5)))^2+((1*(<x7>*<x7>)+1*(<x24>*<x24>)+(-0.5)))^2+((1*(<x8>*<x8>)+1*(<x25>*<x25>)+(-0.5)))^2+((1*(<x9>*<x9>)+1*(<x26>*<x26>)+(-0.5)))^2+((1*(<x10>*<x10>)+1*(<x27>*<x27>)+(-0.5)))^2+((1*(<x11>*<x11>)+1*(<x28>*<x28>)+(-0.5)))^2+((1*(<x12>*<x12>)+1*(<x29>*<x29>)+(-0.5)))^2+((1*(<x13>*<x13>)+1*(<x30>*<x30>)+(-0.5)))^2+((1*(<x14>*<x14>)+1*(<x31>*<x31>)+(-0.5)))^2+((1*(<x15>*<x15>)+1*(<x32>*<x32>)+(-0.5)))^2+((1*(<x16>*<x16>)+1*(<x33>*<x33>)+(-0.5)))^2-<nlobjvar> <= 0;
violation: right hand side is violated by 10204.25
all 1 solutions given by solution candidate storage are infeasible

from scip.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.