You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
multirow/lifting/README.md

53 lines
1.8 KiB

lifting
=======
This package contains the source code for the paper **The (not so) Trivial
Lifting in Two Dimensions**, by Ricardo Fukasawa, Laurent Poirrier and Álinson
S. Xavier.
Required Tools and Libraries
----------------------------
To produce the tables in the paper, the following tools and libraries were
used. Different versions may produce slightly different outputs.
- GNU Make, version 3.81
- CMake, version 3.7.2
- GCC, the GNU Compiler Collection, version 6.3.0
- Ruby, version 2.4.0
- IBM® ILOG® CPLEX®, version 12.6
Build instructions
------------------
1. Navigate to the folder `../build`
2. Run `cmake ..` followed by `make lifting-benchmark.run`
3. Two binaries (`lifting-benchmark.run` and `liblifting.a`) will be generated
Running the experiments
-----------------------
1. Build the project, following the instructions above.
2. Navigate to the folder `lifting/benchmark` and execute
./run_experiments.sh
3. Two CSV files will be generated inside the folder `lifting/benchmark/tables`,
corresponding to the two tables that appear in the paper.
Modifying the instances
-----------------------
In order to run the experiments with a different set of instances,
the file `lifting/benchmark/instances/filtered/all.txt` should be modified.
Each line in this file describes the origin `f` and a lattice-free set `B`.
The set `B` is described by the coordinates of its vertices. Since the
benchmark code only deals with maximal lattice-free sets, it is also necessary
to specify the lattice-points that belong to each facet of `B`.
If `n` is the number of facets, `v` is an n-by-2 matrix of doubles corresponding
to the vertices and l is an n-by-2 matrix of doubles corresponding to the
lattice-points, then each line of the file should be written as
f[0] f[1] n v[0][0] v[0][1] ... v[n-1][0] v[n-1][1] n l[0][0] l[0][1] ... l[n-1][0] l[n-1][1]