Braid Move Calculator#
AUTHORS:
Dinakar Muthiah (2014-06-03): initial version
- class sage.combinat.root_system.braid_move_calculator.BraidMoveCalculator(coxeter_group)[source]#
Bases:
object
Helper class to compute braid moves.
- chain_of_reduced_words(start_word, end_word)[source]#
Compute the chain of reduced words from
stard_word
toend_word
.INPUT:
start_word
,end_word
– two reduced expressions for the long word
EXAMPLES:
sage: from sage.combinat.root_system.braid_move_calculator import BraidMoveCalculator sage: W = CoxeterGroup(['A',5]) sage: B = BraidMoveCalculator(W) sage: B.chain_of_reduced_words((1,2,1,3,2,1,4,3,2,1,5,4,3,2,1), # not tested ....: (5,4,5,3,4,5,2,3,4,5,1,2,3,4,5))
>>> from sage.all import * >>> from sage.combinat.root_system.braid_move_calculator import BraidMoveCalculator >>> W = CoxeterGroup(['A',Integer(5)]) >>> B = BraidMoveCalculator(W) >>> B.chain_of_reduced_words((Integer(1),Integer(2),Integer(1),Integer(3),Integer(2),Integer(1),Integer(4),Integer(3),Integer(2),Integer(1),Integer(5),Integer(4),Integer(3),Integer(2),Integer(1)), # not tested ... (Integer(5),Integer(4),Integer(5),Integer(3),Integer(4),Integer(5),Integer(2),Integer(3),Integer(4),Integer(5),Integer(1),Integer(2),Integer(3),Integer(4),Integer(5)))
- put_in_front(k, input_word)[source]#
Return a list of reduced words starting with
input_word
and ending with a reduced word whose first letter isk
.There still remains an issue with 0 indices.
EXAMPLES:
sage: from sage.combinat.root_system.braid_move_calculator import BraidMoveCalculator sage: W = CoxeterGroup(['C',3]) sage: B = BraidMoveCalculator(W) sage: B.put_in_front(2, (3, 2, 3, 1, 2, 3, 1, 2, 1)) ((3, 2, 3, 1, 2, 3, 1, 2, 1), (3, 2, 3, 1, 2, 1, 3, 2, 1), (3, 2, 3, 2, 1, 2, 3, 2, 1), (2, 3, 2, 3, 1, 2, 3, 2, 1)) sage: B.put_in_front(1, (3, 2, 3, 1, 2, 3, 1, 2, 1)) ((3, 2, 3, 1, 2, 3, 1, 2, 1), (3, 2, 1, 3, 2, 3, 1, 2, 1), (3, 2, 1, 3, 2, 3, 2, 1, 2), (3, 2, 1, 2, 3, 2, 3, 1, 2), (3, 1, 2, 1, 3, 2, 3, 1, 2), (1, 3, 2, 1, 3, 2, 3, 1, 2)) sage: B.put_in_front(1, (1, 3, 2, 3, 2, 1, 2, 3, 2)) ((1, 3, 2, 3, 2, 1, 2, 3, 2),)
>>> from sage.all import * >>> from sage.combinat.root_system.braid_move_calculator import BraidMoveCalculator >>> W = CoxeterGroup(['C',Integer(3)]) >>> B = BraidMoveCalculator(W) >>> B.put_in_front(Integer(2), (Integer(3), Integer(2), Integer(3), Integer(1), Integer(2), Integer(3), Integer(1), Integer(2), Integer(1))) ((3, 2, 3, 1, 2, 3, 1, 2, 1), (3, 2, 3, 1, 2, 1, 3, 2, 1), (3, 2, 3, 2, 1, 2, 3, 2, 1), (2, 3, 2, 3, 1, 2, 3, 2, 1)) >>> B.put_in_front(Integer(1), (Integer(3), Integer(2), Integer(3), Integer(1), Integer(2), Integer(3), Integer(1), Integer(2), Integer(1))) ((3, 2, 3, 1, 2, 3, 1, 2, 1), (3, 2, 1, 3, 2, 3, 1, 2, 1), (3, 2, 1, 3, 2, 3, 2, 1, 2), (3, 2, 1, 2, 3, 2, 3, 1, 2), (3, 1, 2, 1, 3, 2, 3, 1, 2), (1, 3, 2, 1, 3, 2, 3, 1, 2)) >>> B.put_in_front(Integer(1), (Integer(1), Integer(3), Integer(2), Integer(3), Integer(2), Integer(1), Integer(2), Integer(3), Integer(2))) ((1, 3, 2, 3, 2, 1, 2, 3, 2),)