3. Drawings of semigroups

There are some pictures that may give a lot of information about a semigroup. This is the case of the egg-box picture of the D-classes, the right Cayley graph of a finite monoid and the Schutzenberger graphs of a finite inverse monoid.

3.1 Drawing the D-class of an element of a semigroup

3.1-1 DrawDClassOfElement
> DrawDClassOfElement( arg )( function )

This function takes as arguments a semigroup followed by a transformation which is the element whose D-class will be drawn. Optionally we can then specify n lists of elements and the elements of each list will be drawn in different colours. Finally, we may specify a string name the file that will be used to write the drawing of the class (in PostScript format) and if the last argument is the integer 1 then the elements will appear as transformations, otherwise they will appear as words. The idempotents will be marked with a * before them.


gap> DrawDClassOfElement(poi3, Transformation([1,4,3,4]));
gap> DrawDClassOfElement(poi3, Transformation([1,4,3,4]),1);
gap> DrawDClassOfElement(poi3, Transformation([1,4,3,4]),
 [Transformation( [ 2, 3, 4, 4 ] )],1);
gap> DrawDClassOfElement(poi3, Transformation([1,4,3,4]),
 [Transformation( [ 2, 3, 4, 4 ] ), Transformation( [ 2, 4, 3, 4 ] )],
 [Transformation( [ 2, 4, 3, 4 ] )],1);
gap> DrawDClassOfElement(poi3, Transformation([1,4,3,4]), 
 [Transformation( [ 2, 4, 3, 4 ] )],"Dclass",1);
      

This is the image produced by the first command in the previous example:




This is the image produced by the fourth command in the previous example:




This is the image produced by the last command in the previous example:




3.2 Drawing the D-classes of a semigroup

3.2-1 DrawDClasses
> DrawDClasses( arg )( function )

This function is similar to the previous one, except that this one draws all the D-classes of the semigroup given as the first argument. It then takes optionally n lists of elements and the elements of each list will be drawn in different colours. It also accepts a string specifying the name of the file in which the drawing will be written and the last, optional, argument, the integer 1, to specify whether the elements will appear as words or as transformations as in the previous function. The idempotents will be marked with a * before them.


gap> DrawDClasses(poi3,"DClasses");
gap> DrawDClasses(poi3, [Transformation( [ 2, 3, 4, 4 ] ),
  Transformation( [ 2, 4, 3, 4 ] )],
  [Transformation( [ 2, 4, 3, 4 ] )],1);
      

This is the image produced by the first command in the previous example:




This is the image produced by the second command in the previous example:




3.3 Cayley graphs

3.3-1 DrawRightCayleyGraph
> DrawRightCayleyGraph( S )( function )

Draws the right Cayley graph of a finite monoid or semigroup S.

3.3-2 DrawCayleyGraph
> DrawCayleyGraph( S )( function )

This function is a synonym of DrawRightCayleyGraph (3.3-1).

For example, the command DrawCayleyGraph(b21); would produce the following image:


3.4 Schutzenberger graphs

3.4-1 DrawSchutzenbergerGraphs
> DrawSchutzenbergerGraphs( S )( function )

Draws the Schutzenberger graphs of the inverse semigroup S.

For example, DrawSchutzenbergerGraphs(poi3); would produce the following:






generated by GAPDoc2HTML