Table of Contents

1 Dominance Programming Solver

1.1 Publications:

  • Benjamin Negrevergne, Anton Dries, Tias Guns, and Siegfried Nijssen. Dominance programming for itemset mining. In International Conference on Data Mining (ICDM), 2013.

1.3 Compile

1.3.1 Without Gecode installed (default)

make install

1.3.2 with Gecode installed

If you already have Gecode 4 installed on your system, you can avoid compilation time by using it. To do so, follow this procedure:

set the environement variable to GECODE_LIBRARIES to your gecode lib dir and the GECODE_INCLUDES to your gecode include dir.


./configure GECODE_LIBRARIES=/path/to/gecode-4.0.0/lib GECODE_LIBRARIES=/path/to/gecode-4.0.0/include


make install

For more advanced setups, see ./configure –help

1.4 Specifying models

Models for itemset mining can be found in the src/main.cpp file.

Thanks to the new syntax, specifying a "dominance program" is quite simple. For example the complete program for closed itemset mining looks like this:

#include "common.h"					        // core functionality
#include "pattern_mining.h"					// macros and constraints for pattern mining

OperatorChain closed(int argc, char* argv[]) {
    LOAD_DATA;							// initializes tdb0, tdb1, nr_i, nr_t0, nr_t1
    LOAD_FREQ;							// initializes freq

    return OperatorChain()
    << DefineOperator("items", 0, 1, nr_i)			// define "items" variable
    << DefineOperator("cover", 0, 1, nr_t)			// define "cover" variable
    << CoverConstraint("items", "cover", tdb)			// apply cover constraint
    << FrequencyConstraint("items", "cover", tdb, freq);	// apply frequency constraint
    << DominanceOperator( Preorder("items", GEQ) &		// apply closedness constraint
                                 Preorder("cover", EQ) )
    << OutputOperator(cout,					// specify output formatting
                OutSpec(OutSpecType::ARR2SET, "items") &
                OutSpec(OutSpecType::CONSTANT, "| ") &
                OutSpec(OutSpecType::SETSIZE, "cover"));

int main(int argc, char* argv[]) {
    closed(argc,argv).solve();					// solve the algebra expression

See src/README doc/userguide.html and src/main.cpp for more information.

1.5 Report BUGs

Report bugs to Benjamin Negrevergne or Anton Dries at:


Author: Benjamin Negrevergne

Created: 2017-01-04 Wed 14:56

Emacs 24.5.1 (Org mode 8.1.2)