dense.cc version 1.0                      -*- coding: iso-8859-1 -*-

The dense.cc program finds geometric tiles, as described in the
publications

    Aristides Gionis, Heikki Mannila, and Jouni K. Seppnen. Geometric
    and combinatorial tiles in 0-1 data. In J.-F. Boulicaut, F. 
    Esposito, F. Giannotti, D. Pedreschi, eds., 8th European
    Conference on Principles and Practice of Knowledge Discovery in
    Databases (PKDD 2004), pp. 173-184, September 20-24, 2004, Pisa,
    Italy. LNAI 3202, Springer.

and

    Jouni K. Seppnen. Using and extending itemsets in data mining:
    query approximation, dense itemsets, and tiles. Doctoral
    dissertation, Department of Computer Science and Engineering,
    Helsinki University of Technology, 2006.

The first publication is available (sadly, not open-access) at
http://www.springerlink.com/link.asp?id=9hdk2ffv37g1xb3h and the
second at http://lib.tkk.fi/Diss/2006/isbn951228202X/

The program is Copyright (C) 2005,2006 Jouni K. Seppnen, and is
distributed under the Boost Software License, Version 1.0. See the
accompanying file LICENSE. If you make use of the software when
composing a scientific publication, you should cite at least one of
the above publications; this is not a requirement of the license but
one of ethical scientific conduct.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
LICENSE file for more details.

COMPILING AND USING
===================

To compile, edit the Makefile to ensure that the settings are
appropriate for your environment, and type "make". You need CBLAS
library, e.g. the ATLAS one. [However, the library is not currently
really used: it would be used for spectral sorting, but there is a bug
in that part of the program, and thus any spectral sorting needs to be
done separately. If you really need to, you can fairly easily remove
the CBLAS dependency from the program.]

To use, format your data as a zero-one matrix prefixed with the number
of rows and the number of columns on a separate line. Then type

    tilings -r 10 -n 20 filename  > output.txt

to obtain a tiling of 20 tiles, each starting from 10 random positions
and choosing the best final position. To restrict the search, you can
add one of the options

    -t   top-down
    -b   bottom-up
    -l   single-level

You can also add

    -g gnuplot.out

and feed the file gnuplot.out to gnuplot to get a visualization of the
tiling.

If you want combinatorial tilings, you can sort your data in Matlab
using the accompanying reorder.m script, find geometric tilings, and
un-sort the tiles using the permutation given by the script.
