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.
For a local use, a working version of:
- Julia must be ready; instructions for the installation are available here
- your favorite MIP solver must be ready (GLPK is suggested); instructions for the installation are available here
On linux:
- open a console on your computer
- when the prompt is ready, type in the console
julia
On macOS:
- locate the application
julia
and - click on the icon, the julia console comes to the screen
Before your first use,
- run Julia and when the terminal is ready with the prompt
julia
on screen, - 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.
When vOptGeneric is properly installed,
- run Julia and when the terminal is ready with the prompt
julia
on screen, - 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!
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 |
The folder examples
provides source code of problems ready to be solved.
Tested the
- 22-Jul-2021
with
- Julia 1.6.2
- JuMP 0.21.8
- GLPK 4.65
- Gurobi 9.1.2
on
- Linux ubuntu 18.04.5 LTS
- macOS 11.4 (Big Sur)
- Windows 10