Supporting at-most-one constraint for One Hot encoding
[satune.git] / src / Tuner / tunable.h
index 22660fb30c72e29e4cf296b09fa55d78e6761d97..fc7ef8a00624e58c0900b098e114f4eba274d399 100644 (file)
@@ -2,6 +2,7 @@
 #define TUNABLE_H
 #include "classlist.h"
 #include "common.h"
+#define SEQ_COUNTER_GROUP_SIZE 3
 
 class Tuner {
 public:
@@ -38,14 +39,15 @@ public:
 
 static TunableDesc onoff(0, 1, 1);
 static TunableDesc offon(0, 1, 0);
-static TunableDesc proxyparameter(1, 5, 2);
+static TunableDesc proxyparameter(1, 5, 1);
 static TunableDesc mustValueBinaryIndex(0, 6, 3);
 static TunableDesc NodeEncodingDesc(ELEM_UNASSIGNED, BINARYINDEX, ELEM_UNASSIGNED);
-static TunableDesc NaiveEncodingDesc(ONEHOT, BINARYINDEX, BINARYINDEX);
+static TunableDesc NaiveEncodingDesc(ONEHOT, BINARYINDEX, ONEHOT);
 static TunableDesc boolVarOrderingDesc(CONSTRAINTORDERING, REVERSEORDERING, REVERSEORDERING);
+static TunableDesc OneHotAtMostOneDesc(ONEHOT_BINOMIAL, ONEHOT_SEQ_COUNTER, ONEHOT_SEQ_COUNTER);
 
 enum Tunables {DECOMPOSEORDER, MUSTREACHGLOBAL, MUSTREACHLOCAL, MUSTREACHPRUNE, OPTIMIZEORDERSTRUCTURE, ORDERINTEGERENCODING, PREPROCESS, NODEENCODING, EDGEENCODING, MUSTEDGEPRUNE, ELEMENTOPT,
-                                                        ENCODINGGRAPHOPT, ELEMENTOPTSETS, PROXYVARIABLE, MUSTVALUE, NAIVEENCODER, VARIABLEORDER};
+                                                        ENCODINGGRAPHOPT, ELEMENTOPTSETS, PROXYVARIABLE, MUSTVALUE, NAIVEENCODER, VARIABLEORDER, ONEHOTATMOSTONE};
 typedef enum Tunables Tunables;
 
 const char *tunableParameterToString(Tunables tunable);