Pattern-Guided k-Anonymity ILP implementation
---------------------------------------------

Prerequisites (tested on Ubnuntu 12.04, 12.10 and Debian 6.0):

cmake
libboost
ILOG CPLEX
gcc

Compile with:
export CPLEX_DIR="/opt/ILOG/CPLEX_Studio_AcademicResearch122" #set to your CPLEX location
cmake .
make

Input matrix format:
- csv file
- encoded in ASCII or UTF-8 (no CRLF line terminators)

Pattern vectors file format:
- csv file
- "*" or "0" to suppress entry and "_" or "1" to keep it

Examplary pattern vectors file:  
*,_,_,_
_,*,_,_
_,_,*,_
_,_,_,*
*,*,*,*

Usage: patternILP [options] input-file
Allowed options:
  -? [ --help ]                produce help message
  -v [ --version ]             print version string
  -k [ --anonymity ] arg (=5)  degree k of anonymity (default=5)
  -p [ --pattern-vectors ] arg pattern vectors file
  -o [ --outlier-detection ]   also allow few completely suppressed rows

If no pattern vectors file is specified, then the application generates
all possible pattern vectors.


Example:

./patternILP datamatrix.csv
./patternILP -p=pattern.csv -k=2 datamatrix.csv

License:
GNU GENERAL PUBLIC LICENSE, Version 3 (see COPYING file)