Skip to content

Commit a4cd4a0

Browse files
committed
python/doc/source/benchmarks.inc.rst: Add 9d and 10d to ndsort section.
1 parent a66ef6b commit a4cd4a0

1 file changed

Lines changed: 18 additions & 9 deletions

File tree

python/doc/source/benchmarks.inc.rst

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,9 @@ For dimensions larger than 3, :func:`moocore.is_nondominated` uses the
6868
best-known :math:`O(n\log^{m-2} n)` algorithm. `fast-pareto`_ claims to be
6969
using a :math:`O(n\log^{m-2} n)` algorithm, but the benchmarks suggest that it
7070
uses a :math:`O(m n^2)` algorithm, although slower than most other packages and
71-
almost 100 times slower than `moocore`_. The following plots with ``keep_weakly=True`` show that `moocore`_ is at
72-
least 10 times faster than the other packages, even for 10D.
71+
almost 100 times slower than `moocore`_. The following plots with
72+
``keep_weakly=True`` show that `moocore`_ is at least 10 times faster than the
73+
other packages, even for 10D.
7374

7475
|wndom_bench-sphere-4d| |wndom_bench-convex-4d|
7576

@@ -117,19 +118,21 @@ Nondominated Sorting (Pareto ranking)
117118

118119
Nondominated sorting (or Pareto ranking) assigns a rank to each point according
119120
to Pareto-optimality. It can be used to split a set of points into layers of
120-
nondominated fronts. For more details, see :func:`moocore.pareto_rank`. This
121+
nondominated fronts. For more details, see :func:`moocore.pareto_rank`. This
121122
function in `moocore`_ uses a :math:`O(n \log n)` algorithm for 2 dimensions
122-
and a :math:`O(k\cdot n\log n)` algorithm for 3 dimensions. As the plots show,
123-
this makes `moocore`_ significantly faster than `paretoset`_, `pymoo`_ and
124-
`DESDEO`_. With higher dimensions, `moocore`_ uses the naive :math:`O(k m
125-
n^2)` algorithm, similar to `paretoset`_ and `DESDEO`_ (if the latter are
126-
compiled with `Numba`_). In these benchmarks points are sampled uniformly at
127-
random within the hyper-cube.
123+
and a :math:`O(n^2\log n)` algorithm for 3 dimensions. As the plots show, this
124+
makes `moocore`_ significantly faster than `paretoset`_, `pymoo`_ and
125+
`DESDEO`_. With higher dimensions, `moocore`_ uses a :math:`O(n^2\log^{m-2}n)`
126+
algorithm instead of the :math:`O(n^3)` algorithm in `paretoset`_ and `DESDEO`_
127+
(latter is compiled with `Numba`_). In these benchmarks points are sampled
128+
uniformly at random within the hyper-cube.
128129

129130
|ndsort_bench-ran-2d| |ndsort_bench-ran-3d|
130131

131132
|ndsort_bench-ran-4d| |ndsort_bench-ran-5d|
132133

134+
|ndsort_bench-ran-9d| |ndsort_bench-ran-10d|
135+
133136
.. |ndsort_bench-ran-2d| image:: _static/bench/ndsort_bench-ran-2d-time.png
134137
:width: 49%
135138

@@ -142,6 +145,12 @@ random within the hyper-cube.
142145
.. |ndsort_bench-ran-5d| image:: _static/bench/ndsort_bench-ran-5d-time.png
143146
:width: 49%
144147

148+
.. |ndsort_bench-ran-9d| image:: _static/bench/ndsort_bench-ran-9d-time.png
149+
:width: 49%
150+
151+
.. |ndsort_bench-ran-10d| image:: _static/bench/ndsort_bench-ran-10d-time.png
152+
:width: 49%
153+
145154

146155
.. _bench-hv:
147156

0 commit comments

Comments
 (0)