Code Monkey home page Code Monkey logo

Comments (3)

tasseff avatar tasseff commented on May 31, 2024

What do you think about having some notion of the inequality relaxation of the head loss constraint when describing the problem type? For example, in the current "development" branch, I now have essentially five formulations.

  1. The full non-convex MINLP (without the relaxation).
  2. The relaxed (convex) version of the above MINLP.
  3. A MILP using a piecewise linear approximation with equality constraints (where I successfully use PiecewiseLinearOpt.jl).
  4. A MILP using a piecewise outer approximation with inequality constraints.
  5. An NLP, which currently assumes that flow directions must be fixed.

Numbers (1) - (4) also include corresponding constraints for the fixed-direction cases. Anyway, the essential difference between (1) and (2) is the relaxation from equality to inequality, and the difference between (3) and (4) is also the relaxation from equality to inequality. Sure, there are some additions of variables and constraints to accomplish this, but nothing else changes.

Furthermore, I think it's sort of deceiving to give a formulation its own name when it's not solving the equality-constrained problem. Something like RMINLP (relaxed MINLP) makes more sense to me since it specifically calls out that a relaxation has been performed. Similarly, we could then call the relaxed MILP RMILP without any loss of consistency in naming.

Anyway, I don't really know the convention for this sort of thing, so I am deferring to @rb004f and @ccoffrin!

from watermodels.jl.

rb004f avatar rb004f commented on May 31, 2024

It sounds like your are looking for a name for 2? Usually for these we give it the name of the underlying relaxation, i.e. MIQP would be mixed integer quadratic and miscop would be mixed integer second order cone. Our convention is not explicitly use relaxation in the name, the fact that there exists a non convex form implies that the convex forms are a relaxation of the original.

We will want to carefully document the differences between 3 and 4. It looks like 3 is an approximation whereas 4 is a relaxation. We've never done something like 3 for the other models (at least not yet).

from watermodels.jl.

ccoffrin avatar ccoffrin commented on May 31, 2024

The current convention is motivated in Code Block 5 in this paper, https://arxiv.org/abs/1711.01728.

My goal is that the underlying problem you are trying to solve remains the same and relaxation / approximation of that underlying master problem is encoded in the formulation parameter.

I imagine a user who always wants to solve the master problem, but from time to time resorts to a relaxation (quality bound or infeasibility proof) or an approximation (master NLP is too hard).

from watermodels.jl.

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.