Coder Social home page Coder Social logo

Add up-for-grabs issues about flips HOT 4 OPEN

gsomix avatar gsomix commented on August 15, 2024
Add up-for-grabs issues

from flips.

Comments (4)

matthewcrews avatar matthewcrews commented on August 15, 2024 3

I'll get on that. I've been considering a massive overhaul and I'll create a punch list of things to fix.

from flips.

AtwoodTM avatar AtwoodTM commented on August 15, 2024 1

Hi @matthewcrews, I am loving the FLIPS library. I would like to extend the FLIPS library to use a quadratic programming solver for portfolio optimization within the investment management realm, similar to choosing "GRG nonlinear" for the solver in the Solver add-in for Excel. I would incorporate this by effectively wrapping the open source Accord .NET library and we would specify the solver... Any thoughts about this idea (like or dislike)?

from flips.

AtwoodTM avatar AtwoodTM commented on August 15, 2024 1

I would love to help out refactoring any way I can! I hope you also think about using the refactoring process as a set of videos with the Fast F# YouTube channel! Please let me and others know where we can contribute!

from flips.

matthewcrews avatar matthewcrews commented on August 15, 2024

I do like this idea. As I mentioned above, Flips needs a massive overhaul. I wrote it before I had much experience with creating libraries and supporting them. There are several mistakes in it that cause far more allocation than should be required, and this becomes burdensome with large models. Flips also went 1.0 well before it should have. It should really be ~0.8 based on how people are versioning their libraries these days.

I have re-written Flips for an internal project at my company, and I have been letting it bake to ensure it's production worthy. I will then migrate these changes into the main branch.

I want to extend Flips to be able to model Quadratic Programs. I would like also to be able to differentiate between LP Models, MIP models, and Quadratic Models. Right now, both LP and MIP models become just a Model type, and only the solver you choose cares about the types of decision variables: Continuous vs. Binary vs. Integer. This can cause confusion on the output for the user because some solvers will take an Integer or Binary decision variable and just treat it as continuous. Google's GLOP solver is an example. This has caused problems with debugging solver output.

I would like the API to cleanly "promote" models from LP or Binary to a MIP and for the Solvers to output an LP Result, Binary Result, or MIP Result. This then provides extra guard rails for non-Mathematical Programming Experts to use the API correctly.

Adding Quadratic Expressions to the solver would open Flips up to being used in more scenarios, and I would like that. It does make the name a bit of a misnomer because Flips stand for F# LInear Programming System. The truth is that the Flips name has always been a misnomer since it supported MIPS models from the beginning.

Perhaps I'm overcomplicating it, though. I could just raise a warning when you are using an LP solver with a non-LP Model.

My dream is for Flips to be an easy-to-use library for mathematical modeling of optimization problems. I do think Quadratic Programming would be a worthwhile addition.

from flips.

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.