# {py:mod}`evox.algorithms.mo.nsga3` ```{py:module} evox.algorithms.mo.nsga3 ``` ```{autodoc2-docstring} evox.algorithms.mo.nsga3 :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`NSGA3 ` - ```{autodoc2-docstring} evox.algorithms.mo.nsga3.NSGA3 :summary: ``` ```` ### Functions ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`_get_table_row_inner ` - ```{autodoc2-docstring} evox.algorithms.mo.nsga3._get_table_row_inner :summary: ``` * - {py:obj}`_select_from_index_by_min_inner ` - ```{autodoc2-docstring} evox.algorithms.mo.nsga3._select_from_index_by_min_inner :summary: ``` * - {py:obj}`_get_extreme_inner ` - ```{autodoc2-docstring} evox.algorithms.mo.nsga3._get_extreme_inner :summary: ``` ```` ### Data ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`vmap_get_table_row ` - ```{autodoc2-docstring} evox.algorithms.mo.nsga3.vmap_get_table_row :summary: ``` * - {py:obj}`vmap_select_from_index_by_min ` - ```{autodoc2-docstring} evox.algorithms.mo.nsga3.vmap_select_from_index_by_min :summary: ``` * - {py:obj}`vmap_get_extreme ` - ```{autodoc2-docstring} evox.algorithms.mo.nsga3.vmap_get_extreme :summary: ``` ```` ### API ````{py:function} _get_table_row_inner(bool_ref_candidate: torch.Tensor, upper_bound: torch.Tensor) :canonical: evox.algorithms.mo.nsga3._get_table_row_inner ```{autodoc2-docstring} evox.algorithms.mo.nsga3._get_table_row_inner ``` ```` ````{py:data} vmap_get_table_row :canonical: evox.algorithms.mo.nsga3.vmap_get_table_row :value: > 'vmap(...)' ```{autodoc2-docstring} evox.algorithms.mo.nsga3.vmap_get_table_row ``` ```` ````{py:function} _select_from_index_by_min_inner(group_id: torch.Tensor, group_dist: torch.Tensor, idx: torch.Tensor) :canonical: evox.algorithms.mo.nsga3._select_from_index_by_min_inner ```{autodoc2-docstring} evox.algorithms.mo.nsga3._select_from_index_by_min_inner ``` ```` ````{py:data} vmap_select_from_index_by_min :canonical: evox.algorithms.mo.nsga3.vmap_select_from_index_by_min :value: > 'vmap(...)' ```{autodoc2-docstring} evox.algorithms.mo.nsga3.vmap_select_from_index_by_min ``` ```` ````{py:function} _get_extreme_inner(norm_fit: torch.Tensor, w: torch.Tensor) :canonical: evox.algorithms.mo.nsga3._get_extreme_inner ```{autodoc2-docstring} evox.algorithms.mo.nsga3._get_extreme_inner ``` ```` ````{py:data} vmap_get_extreme :canonical: evox.algorithms.mo.nsga3.vmap_get_extreme :value: > 'vmap(...)' ```{autodoc2-docstring} evox.algorithms.mo.nsga3.vmap_get_extreme ``` ```` `````{py:class} NSGA3(pop_size: int, n_objs: int, lb: torch.Tensor, ub: torch.Tensor, selection_op: typing.Optional[typing.Callable] = None, mutation_op: typing.Optional[typing.Callable] = None, crossover_op: typing.Optional[typing.Callable] = None, data_type: typing.Optional[torch.dtype] = None, device: torch.device | None = None) :canonical: evox.algorithms.mo.nsga3.NSGA3 Bases: {py:obj}`evox.core.Algorithm` ```{autodoc2-docstring} evox.algorithms.mo.nsga3.NSGA3 ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} evox.algorithms.mo.nsga3.NSGA3.__init__ ``` ````{py:method} init_step() :canonical: evox.algorithms.mo.nsga3.NSGA3.init_step ```{autodoc2-docstring} evox.algorithms.mo.nsga3.NSGA3.init_step ``` ```` ````{py:method} step() :canonical: evox.algorithms.mo.nsga3.NSGA3.step ```{autodoc2-docstring} evox.algorithms.mo.nsga3.NSGA3.step ``` ```` ````{py:method} _get_extreme(norm_fit: torch.Tensor, w: torch.Tensor) :canonical: evox.algorithms.mo.nsga3.NSGA3._get_extreme ```{autodoc2-docstring} evox.algorithms.mo.nsga3.NSGA3._get_extreme ``` ```` ````{py:method} _compute_distances(fit: torch.Tensor, ref: torch.Tensor) :canonical: evox.algorithms.mo.nsga3.NSGA3._compute_distances ```{autodoc2-docstring} evox.algorithms.mo.nsga3.NSGA3._compute_distances ``` ```` `````