by Michiel Bliemer » Wed Sep 06, 2017 9:06 am
Short answer: No it is not possible to combine ;cond with the default swapping algorithm.
Long answer:
There exist two main algorithms in Ngene, namely (i) a column based swapping algorithm that can always ensure attribute level balance but that cannot handle complex constraints, and (ii) a row based modified Federov algorithm that can handle more complex constraints but cannot guarantee attribute level balance. Each algorithm is designed to work with certain constraints. The swapping algorithm works with ;cond constraints, while the modified Federov algorithm works with ;require and ;reject constraints. It is not possible to combine ;cond and ;require/;reject because the way the algorithms work.
There may be a workaround. It is sometimes possible to reformulate the ;cond constraints into ;reject or ;require constraints. This may require a bit of creativity (maybe I can help) and then use the modified Federov algorithm for which you can set upper and lower bounds on the frequency each attribute level appears (i.e. the degree of attribute level balance).
Michiel