Calculating the faithful representation of the braid group

braid-groupsgroup-presentationgroup-theoryrepresentation-theorysoft-question

The braid group has the following presentation $B_n:\{s_1,…s_{n-1} : s_is_j = s_js_i \text{ for } |i-j|>1, s_is_{i+1}s_i=s_{i+1}s_is_{i+1} \}$

It was shown at some point that this group is linear, i.e., there exist a faithful group homomorphism $\gamma: B_n \rightarrow GL(n,\mathbb{R})$

Recently, I have needed to tell when two words in the braid group represent the same braid, that is, that the words are related by applying the braid relations a finite number of times. One very effective way to do this would be to calculate the image of $\gamma$ for each of the words: since $\gamma$ is faithful (one to one) words that represent different braids will be sent to different matrices.

Does anyone references to any papers, computer code, java applet's, anything that will help me to calculate the image of a braid word under $\gamma$?

Thank you.

Best Answer

The Lawrence-Krammer representation is readily implemented in any high-level programming language. I think it took me 20 minutes to write it up in MatLab, back in 2000.

The Wikipedia page gives a description suitable for software implementation:

https://en.wikipedia.org/wiki/Lawrence%E2%80%93Krammer_representation

There is one small mistake in your question. The representation has the form

$$B_n \to GL_{n \choose 2} \mathbb Z[p^\pm, q^\pm]$$

If you embed the Laurant polynomial ring in $\mathbb C$ you can think of this as complex matrices. Either way, the dimension is quadratic in $n$.

IMO this is a good way to solve the word problem, in that it is robust (if implemented correctly) and efficient-enough for reasonable-sized computations.

You can of course implement canonical forms as suggested, but I find working with group presentations can be frustrating -- especially when debugging.

Related Question