<?xmlversion="1.0"encoding="UTF-8"?>
<Chapter>
<Heading>
Drawings of semigroups
</Heading>
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 Schützenberger graphs
of a finite inverse monoid.
<Section>
<Heading>
Drawing the D-class of an element of a semigroup
</Heading>
<ManSection>
<Func Arg="arg" Name="DrawDClassOfElement" />
<Description>
This function uses <Ref Func="DotForDrawingDClassOfElement" /> to compute the dot code to produce the image that is then displayed. It 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, if the last argument is the integer <C>1</C> then the elements will appear as transformations, otherwise they will appear as words. The idempotents will be marked with a * before them.
<P/>
This last optional argument may also be the integer <C>2</C> and in this case
the elements will appear as integers, where <C>i</C> represents the element <C>Elements(S)[i]</C>.
</Description>
</ManSection>
<Example><![CDATA[
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);
]]></Example>
This is the image produced by the first command in the previous example:
<Alt Only="LaTeX">
\begin{center}
\includegraphics[width=0.35\textwidth]{images/dclass1.png}
\end{center}
</Alt>
<Alt Only="HTML">
<br><center><img src="images/dclass1.png"></center><br>
</Alt>
This is the image produced by the fourth command in the previous example:
<Alt Only="LaTeX">
\begin{center}
\includegraphics[width=0.5\textwidth]{images/dclass2.png}
\end{center}
</Alt>
<Alt Only="HTML">
<br><center><img src="images/dclass2.png"></center><br>
</Alt>
This is the image produced by the last command in the previous example:
<Alt Only="LaTeX">
\begin{center}
\includegraphics[width=0.5\textwidth]{images/dclass3.png}
\end{center}
</Alt>
<Alt Only="HTML">
<br><center><img src="images/dclass3.png"></center><br>
</Alt>
<ManSection>
<Func Arg="arg" Name="DotForDrawingDClassOfElement" />
<Description>
This function computes the dot code that can be used to produce a drawing for the D-class of an element of a semigroup. This can be done by using the function <Ref Func="DrawDClassOfElement" /> (if the system is properly configured) or by the user in some independent way. The arguments and options are the same than those of <Ref Func="DrawDClassOfElement" />.
</Description>
</ManSection>
<Example><![CDATA[
gap> DotForDrawingDClassOfElement(poi3,Transformation([1,4,3,4])); "digraph DClassOfElement {\ngraph [center=yes,ordering=out];\nnode [shape=pla\
intext];\nedge [color=cornflowerblue,arrowhead=none];\n1 [label=<\n<TABLE BORD\
ER=\"0\" CELLBORDER=\"0\" CELLPADDING=\"0\" CELLSPACING=\"0\" PORT=\"1\">\n<TR\
><TD BORDER=\"0\"><TABLE CELLSPACING=\"0\"><TR><TD BGCOLOR=\"white\" BORDER=\"\
0\">*abc
<\
TD BGCOLOR=\"white\" BORDER=\"0\">*cab</TD></TR>\n</TABLE></TD></TR>\n</TABLE>\
>];\n}\n"
]]></Example>
By using Print (or PrinTo, if one wants to print to a file) the string is displayed as follows:
<Example><![CDATA[
gap> Print(last);
digraph DClassOfElement {
graph [center=yes,ordering=out];
node [shape=plaintext];
edge [color=cornflowerblue,arrowhead=none];
1 [label=<
<TABLE BORDER="0" CELLBORDER="0" CELLPADDING="0" CELLSPACING="0" PORT="1">
<TR><TD BORDER="0"><TABLE CELLSPACING="0"><TR><TD BGCOLOR="white" BORDER="0">*\
abc</TD></TR>
</TABLE></TD><TD BORDER="0"><TABLE CELLSPACING="0"><TR><TD BGCOLOR="white" BOR\
DER="0">a</TD></TR>
</TABLE></TD><TD BORDER="0"><TABLE CELLSPACING="0"><TR><TD BGCOLOR="white" BOR\
DER="0">ab</TD></TR>
</TABLE></TD></TR>
<TR><TD BORDER="0"><TABLE CELLSPACING="0"><TR><TD BGCOLOR="white" BORDER="0">b\
c</TD></TR>
</TABLE></TD><TD BORDER="0"><TABLE CELLSPACING="0"><TR><TD BGCOLOR="white" BOR\
DER="0">*bca</TD></TR>
</TABLE></TD><TD BORDER="0"><TABLE CELLSPACING="0"><TR><TD BGCOLOR="white" BOR\
DER="0">b</TD></TR>
</TABLE></TD></TR>
<TR><TD BORDER="0"><TABLE CELLSPACING="0"><TR><TD BGCOLOR="white" BORDER="0">c\
</TD></TR>
</TABLE></TD><TD BORDER="0"><TABLE CELLSPACING="0"><TR><TD BGCOLOR="white" BOR\
DER="0">ca</TD></TR>
</TABLE></TD><TD BORDER="0"><TABLE CELLSPACING="0"><TR><TD BGCOLOR="white" BOR\
DER="0">*cab</TD></TR>
</TABLE></TD></TR>
</TABLE>>];
}
]]></Example>
</Section>
<Section>
<Heading>
Drawing the D-classes of a semigroup
</Heading>
<ManSection>
<Func Arg="arg" Name="DrawDClasses" />
<Description>
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, as an optional argument, the integer <C>1</C>, 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.
<P/>
The dot code is computed by <Ref Func="DotForDrawingDClasses"/>.
<P/>
This last optional argument may also be the integer <C>2</C> and in this case
the elements will appear as integers, where <C>i</C> represents the element <C>Elements(S)[i]</C>.
</Description>
</ManSection>
<Example><![CDATA[
gap> DrawDClasses(poi3);
gap> DrawDClasses(poi3, [Transformation( [ 2, 3, 4, 4 ] ),
Transformation( [ 2, 4, 3, 4 ] )],
[Transformation( [ 2, 4, 3, 4 ] )],1);
]]></Example>
This is the image produced by the first command in the previous example:
<Alt Only="LaTeX">
\begin{center}
\includegraphics[width=0.4\textwidth]{images/dclasses1.png}
\end{center}
</Alt>
<Alt Only="HTML">
<br><center><img src="images/dclasses1.png"></center><br>
</Alt>
This is the image produced by the second command in the previous example:
<Alt Only="LaTeX">
\begin{center}
\includegraphics[width=0.4\textwidth]{images/dclasses2.png}
\end{center}
</Alt>
<Alt Only="HTML">
<br><center><img src="images/dclasses2.png"></center><br>
</Alt>
<ManSection>
<Func Arg="arg" Name="DotForDrawingDClasses" />
<Description>
This function computes the dot code that can be used to produce a drawing for the D-class of an element of a semigroup. This can be done by using the function <Ref Func="DrawDClasses" /> (if the system is properly configured) or by the user in some independent way. The arguments and options are the same than those of <Ref Func="DrawDClasses" />.
</Description>
</ManSection>
<Example><![CDATA[
gap> Print(DotForDrawingDClasses(poi3));
digraph DClasses {
graph [center=yes,ordering=out];
node [shape=plaintext];
edge [color=cornflowerblue,arrowhead=none];
## ... many more lines ...
</TABLE></TD></TR>
</TABLE>>];
4:4 -> 3:3;
3:3 -> 2:2;
2:2 -> 1:1;
}
]]></Example>
</Section>
<Section>
<Heading>Cayley graphs</Heading>
<ManSection>
<Func Arg="S" Name="DrawRightCayleyGraph" />
<Description>Draws the right Cayley graph of a finite monoid or semigroup <Arg>S</Arg>.
</Description>
</ManSection>
<ManSection>
<Func Arg="S" Name="DrawCayleyGraph" />
<Description>This function is a synonym of
<Ref Func="DrawRightCayleyGraph" />.
</Description>
</ManSection>
For example, the command <C>DrawCayleyGraph(b21);</C> would produce the following image
(where state <C>i</C> represents the element <C>Elements(S)[i]</C>, the neutral element is
coloured in "light blue" and all other idempotents are coloured in "light coral"):
<Alt Only="LaTeX">
\begin{center}
\includegraphics[width=0.4\textwidth]{images/cgb21.png}
\end{center}
</Alt>
<Alt Only="HTML">
<br><center><img src="images/cgb21.png"></center><br>
</Alt>
<ManSection>
<Func Arg="S" Name="DotForDrawingRightCayleyGraph" />
<Description>This function computes the dot code that is used by the previous function and can also be used by the reader in some independent way.
</Description>
</ManSection>
<ManSection>
<Func Arg="S" Name="DrawSchutzenbergerGraphs" />
<Description>Draws the Schützenberger graphs of the inverse
semigroup <Arg>S</Arg>.</Description>
</ManSection>
For example, <Code>DrawSchutzenbergerGraphs(poi3);</Code> would produce
the following:
<P />
<Alt Only="LaTeX">
\begin{center}
\includegraphics[width=0.45\textwidth]{images/schutzenberger.pdf}
\end{center}
</Alt>
<Alt Only="HTML">
<br><center><img src="images/schutzenberger.png"></center><br>
</Alt>
<ManSection>
<Func Arg="arg" Name="DotForDrawingSchutzenbergerGraphs" />
<Description>
This function computes the dot code that can be used to produce a drawing for the Schutzenberger Graphs of an inverse semigroup. This can be done by using the function <Ref Func="DrawSchutzenbergerGraphs" /> (if the system is properly configured) or by the user in some independent way. The argument is an inverse semigroup.
</Description>
</ManSection>
<Example><![CDATA[
gap> DotForDrawingSchutzenbergerGraphs(poi3); "digraph SchutzenbergerGraphs{\ncompound=true;\nsubgraph cluster4{\n1 [shape=\
circle];\n}\nsubgraph cluster3{\n2 -> 4 [label=\"a\",color=red];\n3 -> 2 [labe\
l=\"c\",color=green];\n4 -> 3 [label=\"b\",color=blue];\n2 [shape=circle];\n3 \
[shape=circle];\n4 [shape=circle];\n}\nsubgraph cluster2{\n5 -> 5 [label=\"b\"\
,color=blue];\n5 -> 6 [label=\"c\",color=green];\n6 -> 5 [label=\"a\",color=re\
d];\n6 -> 7 [label=\"c\",color=green];\n7 -> 7 [label=\"a\",color=red];\n7 -> \
6 [label=\"b\",color=blue];\n5 [shape=circle];\n6 [shape=circle];\n7 [shape=ci\
rcle];\n}\nsubgraph cluster1{\n8 -> 8 [label=\"a\",color=red];\n8 -> 8 [label=\
\"b\",color=blue];\n8 -> 8 [label=\"c\",color=green];\n8 [shape=circle];\n}\n1\
-> 2 [lhead=cluster3,ltail=cluster4,color=cornflowerblue];\n2 -> 5 [lhead=clu\
ster2,ltail=cluster3,color=cornflowerblue];\n5 -> 8 [lhead=cluster1,ltail=clus\
ter2,color=cornflowerblue];\n}\n"
]]></Example>
By using Print (or PrinTo, if one wants to print to a file) the string is displayed as follows:
<Example><![CDATA[
gap> Print(last);
digraph SchutzenbergerGraphs{
compound=true;
subgraph cluster4{
1 [shape=circle];
}
subgraph cluster3{
2 -> 4 [label="a",color=red];
3 -> 2 [label="c",color=green];
4 -> 3 [label="b",color=blue];
2 [shape=circle];
3 [shape=circle];
4 [shape=circle];
}
subgraph cluster2{
5 -> 5 [label="b",color=blue];
5 -> 6 [label="c",color=green];
6 -> 5 [label="a",color=red];
6 -> 7 [label="c",color=green];
7 -> 7 [label="a",color=red];
7 -> 6 [label="b",color=blue];
5 [shape=circle];
6 [shape=circle];
7 [shape=circle];
}
subgraph cluster1{
8 -> 8 [label="a",color=red];
8 -> 8 [label="b",color=blue];
8 -> 8 [label="c",color=green];
8 [shape=circle];
}
1 -> 2 [lhead=cluster3,ltail=cluster4,color=cornflowerblue];
2 -> 5 [lhead=cluster2,ltail=cluster3,color=cornflowerblue];
5 -> 8 [lhead=cluster1,ltail=cluster2,color=cornflowerblue];
}
]]></Example>
</Section>
</Chapter>
¤ Dauer der Verarbeitung: 0.15 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.