.. only:: html
.. note::
:class: sphx-glr-download-link-note
Click :ref:`here ` to download the full example code
.. rst-class:: sphx-glr-example-title
.. _sphx_glr_auto_numerical_methods_general_methods_plot_combinatorial_generator.py:
Combinatorial generators
========================
In this example we are going to expose the various desing of experiments that allow to generate all the integer collections satisfying a given combinatorial constraint:
- The Tuples generator, which allows to generate all the elements of a Cartesian product :math:`E=\{0,\dots,n_0-1\}\times\dots\times\{0,\dots,n_{d-1}-1\}`.
The total number of generated points is :math:`N=\prod_{k=0}^{d-1}n_k`.
- The K-permutations generator, which allows to generate all the injective functions from :math:`\{0,\dots,k-1\}` into :math:`\{0,\dots,n-1\}`
The total number of generated points is :math:`N=\dfrac{n!}{(n-k)!}`.
- The Combinations generator, which allows to generate all the subsets of size :math:`k` of :math:`\{0,\dots,n-1\}`
The total number of generated points is :math:`N=\dfrac{n!}{k!(n-k)!}`.
.. code-block:: default
from __future__ import print_function
import openturns as ot
import openturns.viewer as viewer
from matplotlib import pylab as plt
import math as m
ot.Log.Show(ot.Log.NONE)
Tuples
------
.. code-block:: default
experiment = ot.Tuples([2, 3, 5])
print(experiment.generate())
.. rst-class:: sphx-glr-script-out
Out:
.. code-block:: none
[[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
--------------
.. code-block:: default
experiment = ot.KPermutations(3, 4)
print(experiment.generate())
.. rst-class:: sphx-glr-script-out
Out:
.. code-block:: none
[[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
------------
.. code-block:: default
experiment = ot.Combinations(4, 6)
print(experiment.generate())
.. rst-class:: sphx-glr-script-out
Out:
.. code-block:: none
[[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
.. rst-class:: sphx-glr-timing
**Total running time of the script:** ( 0 minutes 0.001 seconds)
.. _sphx_glr_download_auto_numerical_methods_general_methods_plot_combinatorial_generator.py:
.. only :: html
.. container:: sphx-glr-footer
:class: sphx-glr-footer-example
.. container:: sphx-glr-download sphx-glr-download-python
:download:`Download Python source code: plot_combinatorial_generator.py `
.. container:: sphx-glr-download sphx-glr-download-jupyter
:download:`Download Jupyter notebook: plot_combinatorial_generator.ipynb `
.. only:: html
.. rst-class:: sphx-glr-signature
`Gallery generated by Sphinx-Gallery `_