Note
Go to the end to download the full example code.
Combinatorial generators¶
In this example we are going to expose the various design of experiments that allow one to generate all the integer collections satisfying a given combinatorial constraint:
The Tuples generator, which allows one to generate all the elements of a Cartesian product .
The total number of generated points is .
The K-permutations generator, which allows one to generate all the injective functions from into
The total number of generated points is .
The Combinations generator, which allows one to generate all the subsets of size of
The total number of generated points is .
import openturns as ot
ot.Log.Show(ot.Log.NONE)
Tuples¶
experiment = ot.Tuples([2, 3, 5])
print(experiment.generate())
[[0,0,0],[1,0,0],[0,1,0],[1,1,0],[0,2,0],[1,2,0],[0,0,1],[1,0,1],[0,1,1],[1,1,1],[0,2,1],[1,2,1],[0,0,2],[1,0,2],[0,1,2],[1,1,2],[0,2,2],[1,2,2],[0,0,3],[1,0,3],[0,1,3],[1,1,3],[0,2,3],[1,2,3],[0,0,4],[1,0,4],[0,1,4],[1,1,4],[0,2,4],[1,2,4]]#30
K-permutations¶
experiment = ot.KPermutations(3, 4)
print(experiment.generate())
[[0,1,2],[0,2,1],[1,0,2],[1,2,0],[2,0,1],[2,1,0],[0,1,3],[0,3,1],[1,0,3],[1,3,0],[3,0,1],[3,1,0],[0,2,3],[0,3,2],[2,0,3],[2,3,0],[3,0,2],[3,2,0],[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]#24
Combinations¶
experiment = ot.Combinations(4, 6)
print(experiment.generate())
[[0,1,2,3],[0,1,2,4],[0,1,2,5],[0,1,3,4],[0,1,3,5],[0,1,4,5],[0,2,3,4],[0,2,3,5],[0,2,4,5],[0,3,4,5],[1,2,3,4],[1,2,3,5],[1,2,4,5],[1,3,4,5],[2,3,4,5]]#15