Defined in sims.hpp.
This class is a helper for Sims1, calling the word_graph member function attempts to find a right congruence, represented as an WordGraph, with the minimum possible number of nodes such that the action of the semigroup or monoid defined by the presentation consisting of its presentation on the nodes of the WordGraph corresponds to a semigroup of size target_size.
If no such WordGraph can be found, then an empty WordGraph is returned (with 0 nodes and 0 edges).
|
|
| MinimalRepOrc () |
| | Default constructor.
|
| MinimalRepOrc & | init () |
| | Reinitialize an existing MinimalRepOrc object.
|
| size_t | target_size () const noexcept |
| | Get the current target size.
|
| MinimalRepOrc & | target_size (size_t val) noexcept |
| | Set the target size.
|
| Sims1::word_graph_type | word_graph () const |
| | Get the word graph.
|
| | SimsSettings () |
| MinimalRepOrc & | add_excluded_pair (Iterator1 first1, Iterator2 last1, Iterator3 first2, Iterator4 last2) |
| | Add an excluded pair via iterators.
|
| MinimalRepOrc & | add_excluded_pair_no_checks (Iterator1 first1, Iterator2 last1, Iterator3 first2, Iterator4 last2) |
| | Add an excluded pair via iterators (no checks).
|
| MinimalRepOrc & | add_included_pair (Iterator1 first1, Iterator2 last1, Iterator3 first2, Iterator4 last2) |
| | Add an included pair via iterators (no checks).
|
| MinimalRepOrc & | add_included_pair_no_checks (Iterator1 first1, Iterator2 last1, Iterator3 first2, Iterator4 last2) |
| | Add an included pair via iterators.
|
| MinimalRepOrc & | add_pruner (Func &&func) |
| | Add a pruner to the search tree.
|
| MinimalRepOrc & | cbegin_long_rules (std::vector< word_type >::const_iterator it) |
| | Set the beginning of the long rules (iterator).
|
| MinimalRepOrc & | clear_excluded_pairs () |
| | Clear the set of excluded words.
|
| MinimalRepOrc & | clear_included_pairs () |
| | Clear the set of included pairs.
|
| MinimalRepOrc & | clear_long_rules () |
| | Clear the set of long rules.
|
| MinimalRepOrc & | clear_pruners () |
| | Clear the set of pruners.
|
| std::vector< word_type > const & | excluded_pairs () const noexcept |
| | Get the set of pairs that must be excluded from every congruence.
|
| size_t | idle_thread_restarts () const noexcept |
| | Get the idle thread restart attempt count.
|
| std::vector< word_type > const & | included_pairs () const noexcept |
| | Get the set of pairs that must be included in every congruence.
|
| MinimalRepOrc & | init () |
| | Reinitialize an existing SimsSettings object.
|
| MinimalRepOrc & | long_rule_length (size_t val) |
| | Set the length of a long rule.
|
|
size_t | number_of_long_rules () const noexcept |
| | Returns the number of rules marked as long rules.
|
| MinimalRepOrc & | number_of_threads (size_t val) |
| | Set the number of threads.
|
| SimsSettings & | operator= (SimsSettings const &that) |
| MinimalRepOrc & | presentation (Presentation< word_type > const &p) |
| | Set the presentation over which the congruences produced by an instance are defined.
|
| auto const & | pruners () const noexcept |
| | Get all active pruners of the search tree.
|
| SimsSettings const & | settings () const noexcept |
| SimsStats & | stats () const noexcept |
| | Get the current stats object.
|
| void | throw_if_letter_not_in_alphabet (Iterator1 first, Iterator2 last) const |
| | Throws if any letter in a range is out of bounds.
|
This function attempts to find a right congruence, represented as an WordGraph, with the minimum possible number of nodes such that the action of the semigroup or monoid defined by its presentation on the nodes of the WordGraph corresponds to a semigroup of size target_size.
If no such WordGraph can be found, then an empty WordGraph is returned (with 0 nodes and 0 edges).
The algorithm implemented by this function repeatedly runs:
size_t target_size() const noexcept
Get the current target size.
Definition sims.hpp:2237
For computing small degree transformation representations of a finite semigroup or monoid.
Definition sims.hpp:1990
RepOrc & max_nodes(size_t val) noexcept
Set the maximum number of nodes.
Definition sims.hpp:2092
RepOrc & target_size(size_t val) noexcept
Set the target size.
Definition sims.hpp:2122
Sims1::word_graph_type word_graph() const
Get the word_graph.
RepOrc & min_nodes(size_t val) noexcept
Set the minimum number of nodes.
Definition sims.hpp:2063
where best is initially target_size, until the returned WordGraph is empty, and then the penultimate WordGraph is returned (if any).
- Returns
- A value of type WordGraph<uint32_t>.
- Exceptions
- This function guarantees not to throw a LibsemigroupsException.
- Warning
- The return value of this function is recomputed every time it is called.
-
If the return value of number_of_threads is greater than
1, then the value returned by this function is non-deterministic, and may vary even for the same parameters.