Implements a greedy procedure of reducing a word to its minimal length. More...
#include <WhiteheadAutoSet.h>
Public Member Functions | |
WhiteheadMinimization (int n) | |
Constructor. | |
bool | isMinimal (const Word &w) const |
Test if the word is minimal. | |
Word | findMinimal (const Word &w, ostream *out=NULL) const |
Find a word of the minimal length. | |
const WhiteheadAutoSetType2 & | getSet () const |
Get the Whitehead set of type II. | |
Private Attributes | |
WhiteheadAutoSetType2 | wSet |
Implements a greedy procedure of reducing a word to its minimal length.
Greedy procedure applies automorphisms from a Whitehead set of type II to a word until its length is reduced. If a shorter image is found, procedure is applied to the shorten word. If none of the automorphisms can reduce the length, procedure stops and the shortest word is returned.
Definition at line 238 of file WhiteheadAutoSet.h.
WhiteheadMinimization::WhiteheadMinimization | ( | int | n | ) | [inline] |
Constructor.
A set of Whitehead automorphisms is created in the constructor. May not be applicable when the rank is large.
n | - the rank of a free group. |
Definition at line 246 of file WhiteheadAutoSet.h.
Find a word of the minimal length.
Applies automorphisms from the Whitehead set to find a word of the minimal length in the automorphic orbit of a given word.
w | - initial word. |
w
. const WhiteheadAutoSetType2& WhiteheadMinimization::getSet | ( | ) | const [inline] |
Get the Whitehead set of type II.
Definition at line 271 of file WhiteheadAutoSet.h.
References wSet.
bool WhiteheadMinimization::isMinimal | ( | const Word & | w | ) | const |
Test if the word is minimal.
Applies automorphisms from the Whitehead set to test if a given word has minimal length.
w | - word to be tested. |
true
if w
has the minimal length, false
otherwise. Definition at line 274 of file WhiteheadAutoSet.h.
Referenced by getSet().