vOptSolver / vOptGeneric.jl

Solver of multiobjective linear optimization problems (MOMIP, MOLP, MOIP, MOCO): generic part
https://voptsolver.github.io/vOptSolver/
MIT License
22 stars 8 forks source link
multi-objective-optimization

vOptGeneric: part of vOptSolver for non-structured problems

Build Status codecov.io Coverage Status

vOptSolver is a solver of multiobjective linear optimization problems (MOMIP, MOLP, MOIP, MOCO). This repository concerns vOptGeneric, the part of vOptSolver devoted to multiobjective non-structured problems. With vOptGeneric, the problem is expressed using JuMP algebraic language extended to multiple objectives. vOptGeneric runs on macOS, linux-ubuntu, and windows. We suppose you are familiar with vOptSolver; if not, read first this presentation.

IMPORTANT (Feb-2023):

vOptGeneric.jl has been fully redesigned, and reimplemented. It becomes MultiObjectiveAlgorithms.jl (MOA), a collection of algorithms for multi-objective optimization integrated to JuMP and MathOptInterface. MOA comes with an enriched list of multi-objective algorithms, especially for solving problems with 3 objectives. Examples are available here:

Consequently vOptGeneric.jl is no longer under active development. It will remain available on Github at this URL. From February 2023, the JuMP-dev organization will continue to maintain the MOA package and transition development over the long term.

Instructions

For a local use, a working version of:

Run Julia

On linux:

On macOS:

Installation Instructions

Before your first use,

  1. run Julia and when the terminal is ready with the prompt julia on screen,
  2. add as follow the mandatory packages to your Julia distribution:
julia> using Pkg
julia> Pkg.add("vOptGeneric")
julia> Pkg.add("JuMP")
julia> Pkg.add("GLPK")

That's all folk; at this point, vOptGeneric is properly installed.

Usage Instructions

When vOptGeneric is properly installed,

  1. run Julia and when the terminal is ready with the prompt julia on screen,
  2. invoke vOptGeneric, JuMP and the MILP solver to activate in typing in the console:
    julia> using vOptGeneric
    julia> using JuMP
    julia> using GLPK

    vOptGeneric is ready. See examples for further informations and have fun with the solver!

Problems available

Problem Description Output Method Parameter (if required) Name
2-IP bi-objective Integer Linear Program Y_N :epsilon step = realValue ϵ-constraint
2-IP bi-objective Integer Linear Program Y_N :chalmet or :Chalmet step = realValue Chalmet
2-IP bi-objective Integer Linear Program Y_{SN} :dicho or :dichotomy (none) Aneja & Nair
p-MIP multi-objective Mixed Integer Linear Program Y_{lex} :lex or :lexico (none) Lexicographic

Examples

The folder examples provides source code of problems ready to be solved.

Validation

Tested the

with

on