gips

Graph-Based (M)ILP Problem Specification Tool

https://github.com/echtzeitsysteme/gips

Science Score: 52.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
    Organization echtzeitsysteme has institutional domain (www.es.tu-darmstadt.de)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.9%) to scientific vocabulary

Keywords

eclipse-modeling-framework emf emoflon gips graph-transformation gt ilp integer-linear-programming mdse model model-driven-software-engineering modeling pattern-matching pm simulation virtual-network-embedding vne
Last synced: 4 months ago · JSON representation ·

Repository

Graph-Based (M)ILP Problem Specification Tool

Basic Info
  • Host: GitHub
  • Owner: Echtzeitsysteme
  • License: gpl-3.0
  • Language: Java
  • Default Branch: master
  • Homepage: https://gips.dev
  • Size: 95.4 MB
Statistics
  • Stars: 5
  • Watchers: 2
  • Forks: 3
  • Open Issues: 26
  • Releases: 0
Topics
eclipse-modeling-framework emf emoflon gips graph-transformation gt ilp integer-linear-programming mdse model model-driven-software-engineering modeling pattern-matching pm simulation virtual-network-embedding vne
Created about 4 years ago · Last pushed 4 months ago
Metadata Files
Readme License Citation

README.md

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.3 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.2 and activate a license for your computer (if necessary).
      • 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.3 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.2 and activate a license for your computer (if necessary).
      • 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

GRBLICENSEFILE=/home/mkratz/gurobi.lic GUROBIHOME=/opt/gurobi1203/linux64/ LDLIBRARYPATH=/opt/gurobi1203/linux64/lib/:/opt/ibm/ILOG/CPLEXStudio2212/cplex/bin/x86-64linux/ PATH=/opt/gurobi1203/linux64/bin/:/opt/ibm/ILOG/CPLEXStudio2212/cplex/bin/x86-64_linux/:$PATH

macOS

GRBLICENSEFILE=/Users/mkratz/gurobi.lic GUROBIHOME=/Library/gurobi1203/macosuniversal2/ LDLIBRARYPATH=/Library/gurobi1203/macosuniversal2/lib/:/Applications/CPLEXStudio2212/cplex/bin/arm64osx/ PATH=/Library/gurobi1203/macosuniversal2/bin/:/Applications/CPLEXStudio2212/cplex/bin/arm64osx/:$PATH

Windows

GRBLICENSEFILE=C:\Users\mkratz\gurobi.lic GUROBIHOME=C:\gurobi1203\win64 LDLIBRARYPATH=C:\gurobi1203\win64\lib;C:\Program Files\IBM\ILOG\CPLEXStudio2212\cplex\bin\x64win64\ PATH=C:\gurobi1203\win64\bin;C:\Program Files\IBM\ILOG\CPLEXStudio2212\cplex\bin\x64_win64\ ```

Usage (running simulations)

Please refer to the GIPS examples repository.

Tests

Please refer to the GIPS tests repository.

Counting GIPSL lines of code

gipsl-cloc.txt is a language configuration file for cloc which can help to count lines of code (without comments, empty lines, etc.). After installing cloc on your system, run the following command to count the lines of a file Model.gipsl:

$ cloc --read-lang-def=gipsl-cloc.txt Model.gipsl

License

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

Owner

  • Name: Real-Time Systems Lab
  • Login: Echtzeitsysteme
  • Kind: organization

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use GIPS in your research, please cite it using these metadata."
abstract: GIPS is an open-source framework for Graph-Based (M)ILP Problem Specification.
authors:
  - family-names: Ehmes
    given-names: Sebastian
    orcid: https://orcid.org/0000-0001-8001-6827
  - family-names: Kratz
    given-names: Maximilian
    orcid: https://orcid.org/0000-0001-7396-7763
title: Graph-Based (M)ILP Problem Specification Tool
version: 1.5.0
date-released: 2025-07-04
repository-code: "https://github.com/Echtzeitsysteme/gips"
keywords:
  - "virtual network embedding"
  - "model-driven software engineering"
  - simulation
  - "eclipse modeling framework"
  - pattern-matching
  - model
  - metamodel
  - "integer linear programming"
  - "mixed integer linear programming"
  - emoflon
  - "graph transformation"
  - "optimization"
license: "GPL-3.0"

GitHub Events

Total
  • Issues event: 97
  • Watch event: 1
  • Delete event: 59
  • Member event: 1
  • Issue comment event: 59
  • Push event: 259
  • Pull request review event: 12
  • Pull request event: 108
  • Fork event: 1
  • Create event: 65
Last Year
  • Issues event: 97
  • Watch event: 1
  • Delete event: 59
  • Member event: 1
  • Issue comment event: 59
  • Push event: 259
  • Pull request review event: 12
  • Pull request event: 108
  • Fork event: 1
  • Create event: 65

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 74
  • Total pull requests: 79
  • Average time to close issues: 9 months
  • Average time to close pull requests: 23 days
  • Total issue authors: 2
  • Total pull request authors: 4
  • Average comments per issue: 0.34
  • Average comments per pull request: 0.28
  • Merged pull requests: 57
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 45
  • Pull requests: 62
  • Average time to close issues: 7 days
  • Average time to close pull requests: 1 day
  • Issue authors: 2
  • Pull request authors: 4
  • Average comments per issue: 0.2
  • Average comments per pull request: 0.32
  • Merged pull requests: 43
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • maxkratz (73)
  • arg0n1s (1)
Pull Request Authors
  • maxkratz (61)
  • MarkBeB (13)
  • arg0n1s (4)
  • j-mastr (1)
Top Labels
Issue Labels
enhancement (37) bug (36) validator (7) still broken (7) documentation (4) redesign-todo (1)
Pull Request Labels
enhancement (44) bug (22) documentation (9)