Skip to content

Graph-Based (M)ILP Problem Specification Tool

License

Notifications You must be signed in to change notification settings

Echtzeitsysteme/gips

Folders and files

NameName
Last commit message
Last commit date

Latest commit

3af61fd · Jan 11, 2025
Dec 17, 2024
Jan 9, 2025
Jan 9, 2025
Jul 28, 2022
Jun 14, 2024
Dec 10, 2024
Jan 11, 2025
Nov 7, 2024
Oct 15, 2024
Jan 12, 2022
Oct 15, 2024
Mar 15, 2022
Jan 3, 2025
Mar 27, 2023

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.