Skip to content

Graph-Based (M)ILP Problem Specification Tool

License

Notifications You must be signed in to change notification settings

Echtzeitsysteme/gips

Repository files navigation

GIPS

GIPS is an open-source framework for Graph-Based (M)ILP Problem Specification.

Installation (development)

  • Install AdoptOpenJDK 21 (HotSpot JVM) or newer.
  • Install eMoflon::IBeX as described here.
  • Install at least one of the supported (M)ILP solvers:
    • Install Gurobi in version 12.0.0 and activate a license for your computer.
      • Currently, Gurobi is the default (M)ILP solver used in GIPS because of the great performance.
    • Install GLPK in the newest version (4.6.5) and add it to your path.
      • GLPK is an open-source (M)ILP solver that can be used without a charge.
      • For Windows-based systems, follow these steps to install GLPK:
        • Download winglpk.
        • Extract the archive, e.g., to C:\Program Files\GLPK\glpk-4.65.
        • Add C:\Program Files\GLPK\glpk-4.65\w64 to the system-wide environment variable path.
        • Restart your Eclipse IDE.
    • Install CPLEX in version 22.1.1 and activate a license for your computer (if neccessary).
      • CPLEX is a commercial alternative to the other (M)ILP solvers implemented in GIPS.
  • Clone this Git repository to your local machine and import it into your Eclipse development workspace: File -> Import -> General -> Existing Projects into Workspace. Import all projects. You can use your eMoflon::IBeX development workspace for this, i.e., there is no need to start a runtime workspace for the GIPS development projects.
    • As an alternative, you can use this PSF file for the import.
  • Inside the Eclipse development workspace ...
    • ... Run Run all GIPS MWE2 files.launch from org.emoflon.gips.core/launch with right click Run As -> Build all GIPS MWE2 files.
      • In case any error warning pops up, simply click Proceed.
    • ... build all projects (Project -> Clean... -> Clean all projects) to trigger code generation.
  • Launch a runtime workspace (while using a runtime Eclipse) as stated in the eMoflon::IBeX installation steps to start using GIPS.

A good start point to verify your installation is to run some of the GIPS examples or the GIPS tests.

Code-Style

This project uses the built-in code-style and code-formatter of Eclipse. Before contributing, please set-up your Eclipse code-style settings as follows:

  • Window -> Preferences -> Java
    • -> Code Style -> Clean Up -> Active profile: -> "Eclipse [built-in]" (default)
    • -> Code Style -> Formatter -> Active profile: -> "Eclipse [built-in]" (default)
    • -> Code Style -> _Organize Imports: -> "java, javax, org, com" (default)
    • -> Editor -> _Save Actions:
      • Check "Perform the selected actions on save"
      • Check "Format source code"
      • Check "Format all lines"
      • Check "Organize imports"
      • Check "Additional actions"

By using this settings, you should be unable to commit unformatted code.

Installation (user)

  • Install AdoptOpenJDK 21 (HotSpot JVM) or newer.
  • Install eMoflon::IBeX as described here.
  • Install at least one of the supported (M)ILP solvers:
    • Install Gurobi in version 12.0.0 and activate a license for your computer.
      • Currently, Gurobi is the default (M)ILP solver used in GIPS because of the great performance.
    • Install GLPK in the newest version (4.6.5) and add it to your path.
      • GLPK is an open-source (M)ILP solver that can be used without a charge.
    • Install CPLEX in version 22.1.1 and activate a license for your computer (if neccessary).
      • CPLEX is a commercial alternative to the other (M)ILP solvers implemented in GIPS.
  • Install GIPS from the public Eclipse update site: https://echtzeitsysteme.github.io/gips-updatesite/snapshot/updatesite/
  • Launch a runtime workspace (while using a runtime Eclipse) as stated in the eMoflon::IBeX installation steps to start using GIPS.

Environment variables

When using GIPS within the Eclipse IDE, the following environment variables may be necessary for your runtime configuration:

# Linux/macOS
GRB_LICENSE_FILE=/home/mkratz/gurobi.lic
GUROBI_HOME=/opt/gurobi1200/linux64/
LD_LIBRARY_PATH=/opt/gurobi1200/linux64/lib/:/opt/ibm/ILOG/CPLEX_Studio2211/cplex/bin/x86-64_linux/
PATH=/opt/gurobi1200/linux64/bin/:/opt/ibm/ILOG/CPLEX_Studio2211/cplex/bin/x86-64_linux/:$PATH

# Windows
GRB_LICENSE_FILE=C:\Users\mkratz\gurobi.lic
GUROBI_HOME=C:\gurobi1200\win64
LD_LIBRARY_PATH=C:\gurobi1200\win64\lib;C:\Program Files\IBM\ILOG\CPLEX_Studio2211\cplex\bin\x64_win64\
PATH=C:\gurobi1200\win64\bin;C:\Program Files\IBM\ILOG\CPLEX_Studio2211\cplex\bin\x64_win64\

Usage (running simulations)

Please refer to the GIPS examples reposiory.

Tests

Please refer to the GIPS tests repository.

License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for more details.