FPTG-Library
This project was created to supply a library for parametrized graph problems that can be easily extended.
So far we added the following features:
- Adjacency-list based implementations for directed and undirected graphs
- An API to solve (Integer) Linear Programs with SCIP via OR-Tools
- VisualisationAPI for graphs
- Multiple layout algorithms to position vertexes based on forces
- Efficient external solvers for graph algorithms
- and much more
We have used this library to participate in the PACE 2022 challenge: https://gitlab.informatik.uni-bremen.de/grapa/java/pace-2022-dfvs-solver
Usage
Add the following maven dependency to your project:
<dependency>
<groupId>de.uni.bremen.grapa</groupId>
<artifactId>FPTG-Library</artifactId>
<version>main-SNAPSHOT</version>
</dependency>
This package is published in a registry, where you can also find more information about how to setup both the registry and the dependency
Dependencies
This project incorporates multiple open-source dependencies. Notable dependencies are
- Google OR-Tools
- Quick Cliques adapted from the original to allow reading and writing on standard io-streams
- WeGotYouCovered
Whereas OR-Tools are included as maven dependency, Quick Cliques and WeGotYouCovered are directly included as binaries in src/main/resources
, where Quick Cliques corresponds to mce_solver
and WeGotYouCovered corresponds to vc_solver
.
Their licenses are included in the same directory and with similar names.
Those binaries are built to be run on optil.io, where GLIBCv2.23 is the newest available GLIBC.
License
This project is available under the GPLv3 license, see ./license.md. Tell us, if you need a different license on our code (you would need to replace the GPLv3 licensed dependencies).