Description of all MPCKMeans options:

java -classpath ./weka.jar weka.clusterers.MPCKMeans \
        -D <data arff file, e.g., iris.arff> \
        -C <constraints file, e.g., iris.constraints> \
        -O <file were final cluster assignments are output, e.g., iris.assignments> \
        -K <class index (unspecified => last attribute, -1 => no class attribute in data)> \
        -X <not seedable if specified>\
        -T <trainable, e.g., 4 (1=NONE, 2=EXTERNAL, 4=INTERNAL)> \
        -M <metric, e.g., weka.core.metrics.WeightedEuclidean (WeightedEuclidean/WeightedDotP/KL)> \
        -L <metriclearner, e.g., weka.clusterers.metriclearners.WEuclideanLearner (WEuclideanLearner/DotPGDLearner/KLGDLearner)> \
        -G <regularizer, e.g., weka.clusterers.regularizers.Rayleigh (Rayleigh/L1)> \
        -A <assigner, e.g., weka.clusterers.assigners.SimpleAssigner (SimpleAssigner/RandomAssigner/SortedAssigner/LPAssigner/RMNAssigner)> \
        -I <initializer, e.g., weka.clusterers.initializers.WeightedFFNeighborhoodInit (WeightedFFNeighborhoodInit/RandomPerturbInitializer)> \
        -U <use multiple metrics (one per class) if specified)
        -N <num clusters: by default, read from classes in datasets> \
        -R <random number seed, e.g., 42> \
        -l <logtermweight, e.g., 0.01> \
        -r <regularizertermweight, e.g.,  0.001> \
        -m <weight of must-link weights, e.g., 1> \
        -c <weight of cannot-link weights, e.g., 1> \
        -i <maximum number of clustering iterations, e.g., 200> \
        -B <maximum number of blank iterations, e.g., 20> \
        -V <don't take transitive closure of constraints if specified> \
        -H <output file for dumping incoherence values in each iteration>

Notes: 

1. Only -D option is required, all others are optional. 

