| products/Sources/formale Sprachen/GAP/pkg/sgpviz/doc/chap3_mj.html |
 |
<?xml version= "1.0" encoding= "UTF-8"?>
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
< html xmlns= "http://www.w3.org/1999/xhtml" xml:lang= "en">
< head>
< script type= "text/javascript"
src= "https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</ script>
< title>GAP (SgpViz) - Chapter 3:
Drawings of semigroups
</ title>
< meta http-equiv= "content-type" content= "text/html; charset=UTF-8" />
< meta name= "generator" content= "GAPDoc2HTML" />
< link rel= "stylesheet" type= "text/css" href= "manual.css" />
< script src= "manual.js" type= "text/javascript"></ script>
< script type= "text/javascript">overwriteStyle();</ script>
</ head>
< body class= "chap3" onload= "jscontent()">
< div class= "chlinktop">< span class= "chlink1">Goto Chapter: </ span>< a href= "chap0_mj.html">Top< /a> <a href="chap1_mj.html">1</a> <a href="chap2_mj.html">2</a> <a href="chap3_mj.html">3</a> <a href="chap4_mj.html">4</a> <a href="chapBib_mj.html">Bib</a> <a href="chapInd_mj.html">Ind</a> </div>
<div class="chlinkprevnexttop"> <a href="chap0_mj.html">[Top of Book]</a> <a href="chap0_mj.html#contents">[Contents]</a> <a href="chap2_mj.html">[Previous Chapter]</a> <a href="chap4_mj.html">[Next Chapter]</a> </div>
<p id="mathjaxlink" class="pcenter"><a href="chap3.html">[MathJax off]</a></p>
<p><a id="X826F747F81441D2E" name="X826F747F81441D2E"></a></p>
<div class="ChapSects"><a href="chap3_mj.html#X826F747F81441D2E">3 <span class="Heading">
Drawings of semigroups
</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3_mj.html#X7F71117D7F0259B8">3.1 <span class="Heading">
Drawing the D-class of an element of a semigroup
</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3_mj.html#X87448A11856B0F2D">3.1-1 DrawDClassOfElement</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3_mj.html#X78DC47A785011D84">3.1-2 DotForDrawingDClassOfElement</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3_mj.html#X81CCF2BB81C4DF6F">3.2 <span class="Heading">
Drawing the D-classes of a semigroup
</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3_mj.html#X7BDBEDA37ADCAADE">3.2-1 DrawDClasses</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3_mj.html#X84B611718473E019">3.2-2 DotForDrawingDClasses</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3_mj.html#X789D5E5A8558AA07">3.3 <span class="Heading">Cayley graphs</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3_mj.html#X7EB36DB07C6F58A0">3.3-1 DrawRightCayleyGraph</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3_mj.html#X86798CC9823D1DB2">3.3-2 DrawCayleyGraph</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3_mj.html#X8487357A85497320">3.3-3 DotForDrawingRightCayleyGraph</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3_mj.html#X79B26A588771144F">3.4 <span class="Heading">Schützenberger graphs</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3_mj.html#X7B7B58B77EA25719">3.4-1 DrawSchutzenbergerGraphs</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3_mj.html#X7884329D82F6C65B">3.4-2 DotForDrawingSchutzenbergerGraphs</a></span>
</div></div>
</div>
<h3>3 <span class="Heading">
Drawings of semigroups
</span></h3>
<p>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.</p>
<p><a id="X7F71117D7F0259B8" name="X7F71117D7F0259B8"></a></p>
<h4>3.1 <span class="Heading">
Drawing the D-class of an element of a semigroup
</span></h4>
<p><a id="X87448A11856B0F2D" name="X87448A11856B0F2D"></a></p>
<h5>3.1-1 DrawDClassOfElement</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; DrawDClassOfElement</code>( <var class="Arg">arg</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>This function uses <code class="func">DotForDrawingDClassOfElement</code> (<a href="chap3_mj.html#X78DC47A785011D84"><span class="RefLink">3.1-2</span></a>) 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 <code class="code">1</code> then the elements will appear as transformations, otherwise they will appear as words. The idempotents will be marked with a * before them.</p>
<p>This last optional argument may also be the integer <code class="code">2</code> and in this case the elements will appear as integers, where <code class="code">i</code> represents the element <code class="code">Elements(S)[i]</code>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">DrawDClassOfElement(poi3, Transformation([1,4,3,4]));</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">DrawDClassOfElement(poi3, Transformation([1,4,3,4]),1);</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">DrawDClassOfElement(poi3, Transformation([1,4,3,4]),</span>
[Transformation( [ 2, 3, 4, 4 ] )],1);
<span class="GAPprompt">gap></span> <span class="GAPinput">DrawDClassOfElement(poi3, Transformation([1,4,3,4]),</span>
[Transformation( [ 2, 3, 4, 4 ] ), Transformation( [ 2, 4, 3, 4 ] )],
[Transformation( [ 2, 4, 3, 4 ] )],1);
<span class="GAPprompt">gap></span> <span class="GAPinput">DrawDClassOfElement(poi3, Transformation([1,4,3,4]), </span>
[Transformation( [ 2, 4, 3, 4 ] )],"Dclass",1);
</pre></div>
<p>This is the image produced by the first command in the previous example: <br><center><img src="images/dclass1.png"></center><br> This is the image produced by the fourth command in the previous example: <br><center><img src="images/dclass2.png"></center><br> This is the image produced by the last command in the previous example: <br><center><img src="images/dclass3.png"></center><br></p>
<p><a id="X78DC47A785011D84" name="X78DC47A785011D84"></a></p>
<h5>3.1-2 DotForDrawingDClassOfElement</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; DotForDrawingDClassOfElement</code>( <var class="Arg">arg</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>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 <code class="func">DrawDClassOfElement</code> (<a href="chap3_mj.html#X87448A11856B0F2D"><span class="RefLink">3.1-1</span></a>) (if the system is properly configured) or by the user in some independent way. The arguments and options are the same than those of <code class="func">DrawDClassOfElement</code> (<a href="chap3_mj.html#X87448A11856B0F2D"><span class="RefLink">3.1-1</span></a>).</p>
<div class="example"><pre>
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></TR>\n</TABLE></TD><TD BORDER=\"0\"><TABLE CELLSPACING=\"0\"><TR\
><TD BGCOLOR=\"white\" BORDER=\"0\">a</TD></TR>\n</TABLE></TD><TD BORDER=\"0\"\
><TABLE CELLSPACING=\"0\"><TR><TD BGCOLOR=\"white\" BORDER=\"0\">ab</TD></TR>\
\n</TABLE></TD></TR>\n<TR><TD BORDER=\"0\"><TABLE CELLSPACING=\"0\"><TR><TD BG\
COLOR=\"white\" BORDER=\"0\">bc</TD></TR>\n</TABLE></TD><TD BORDER=\"0\"><TABL\
E CELLSPACING=\"0\"><TR><TD BGCOLOR=\"white\" BORDER=\"0\">*bca</TD></TR>\n</T\
ABLE></TD><TD BORDER=\"0\"><TABLE CELLSPACING=\"0\"><TR><TD BGCOLOR=\"white\" \
BORDER=\"0\">b</TD></TR>\n</TABLE></TD></TR>\n<TR><TD BORDER=\"0\"><TABLE CELL\
SPACING=\"0\"><TR><TD BGCOLOR=\"white\" BORDER=\"0\">c</TD></TR>\n</TABLE></TD\
><TD BORDER=\"0\"><TABLE CELLSPACING=\"0\"><TR><TD BGCOLOR=\"white\" BORDER=\"\
0\">ca</TD></TR>\n</TABLE></TD><TD BORDER=\"0\"><TABLE CELLSPACING=\"0\"><TR><\
TD BGCOLOR=\"white\" BORDER=\"0\">*cab</TD></TR>\n</TABLE></TD></TR>\n</TABLE>\
>];\n}\n"
</pre></div>
<p>By using Print (or PrinTo, if one wants to print to a file) the string is displayed as follows:</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">Print(last);</span>
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>>];
}
</pre></div>
<p><a id="X81CCF2BB81C4DF6F" name="X81CCF2BB81C4DF6F"></a></p>
<h4>3.2 <span class="Heading">
Drawing the D-classes of a semigroup
</span></h4>
<p><a id="X7BDBEDA37ADCAADE" name="X7BDBEDA37ADCAADE"></a></p>
<h5>3.2-1 DrawDClasses</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; DrawDClasses</code>( <var class="Arg">arg</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>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 <code class="code">1</code>, 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>
<p>The dot code is computed by <code class="func">DotForDrawingDClasses</code> (<a href="chap3_mj.html#X84B611718473E019"><span class="RefLink">3.2-2</span></a>).</p>
<p>This last optional argument may also be the integer <code class="code">2</code> and in this case the elements will appear as integers, where <code class="code">i</code> represents the element <code class="code">Elements(S)[i]</code>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">DrawDClasses(poi3);</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">DrawDClasses(poi3, [Transformation( [ 2, 3, 4, 4 ] ),</span>
Transformation( [ 2, 4, 3, 4 ] )],
[Transformation( [ 2, 4, 3, 4 ] )],1);
</pre></div>
<p>This is the image produced by the first command in the previous example: <br><center><img src="images/dclasses1.png"></center><br> This is the image produced by the second command in the previous example: <br><center><img src="images/dclasses2.png"></center><br></p>
<p><a id="X84B611718473E019" name="X84B611718473E019"></a></p>
<h5>3.2-2 DotForDrawingDClasses</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; DotForDrawingDClasses</code>( <var class="Arg">arg</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>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 <code class="func">DrawDClasses</code> (<a href="chap3_mj.html#X7BDBEDA37ADCAADE"><span class="RefLink">3.2-1</span></a>) (if the system is properly configured) or by the user in some independent way. The arguments and options are the same than those of <code class="func">DrawDClasses</code> (<a href="chap3_mj.html#X7BDBEDA37ADCAADE"><span class="RefLink">3.2-1</span></a>).</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">Print(DotForDrawingDClasses(poi3));</span>
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;
}
</pre></div>
<p><a id="X789D5E5A8558AA07" name="X789D5E5A8558AA07"></a></p>
<h4>3.3 <span class="Heading">Cayley graphs</span></h4>
<p><a id="X7EB36DB07C6F58A0" name="X7EB36DB07C6F58A0"></a></p>
<h5>3.3-1 DrawRightCayleyGraph</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; DrawRightCayleyGraph</code>( <var class="Arg">S</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Draws the right Cayley graph of a finite monoid or semigroup <var class="Arg">S</var>.</p>
<p><a id="X86798CC9823D1DB2" name="X86798CC9823D1DB2"></a></p>
<h5>3.3-2 DrawCayleyGraph</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; DrawCayleyGraph</code>( <var class="Arg">S</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>This function is a synonym of <code class="func">DrawRightCayleyGraph</code> (<a href="chap3_mj.html#X7EB36DB07C6F58A0"><span class="RefLink">3.3-1</span></a>).</p>
<p>For example, the command <code class="code">DrawCayleyGraph(b21);</code> would produce the following image (where state <code class="code">i</code> represents the element <code class="code">Elements(S)[i]</code>, the neutral element is coloured in "light blue" and all other idempotents are coloured in "light coral"): <br><center><img src="images/cgb21.png"></center><br></p>
<p><a id="X8487357A85497320" name="X8487357A85497320"></a></p>
<h5>3.3-3 DotForDrawingRightCayleyGraph</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; DotForDrawingRightCayleyGraph</code>( <var class="Arg">S</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>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.</p>
<p><a id="X79B26A588771144F" name="X79B26A588771144F"></a></p>
<h4>3.4 <span class="Heading">Schützenberger graphs</span></h4>
<p><a id="X7B7B58B77EA25719" name="X7B7B58B77EA25719"></a></p>
<h5>3.4-1 DrawSchutzenbergerGraphs</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; DrawSchutzenbergerGraphs</code>( <var class="Arg">S</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Draws the Schützenberger graphs of the inverse semigroup <var class="Arg">S</var>.</p>
<p>For example, <code class="code">DrawSchutzenbergerGraphs(poi3);</code> would produce the following:</p>
<p><br><center><img src="images/schutzenberger.png"></center><br></p>
<p><a id="X7884329D82F6C65B" name="X7884329D82F6C65B"></a></p>
<h5>3.4-2 DotForDrawingSchutzenbergerGraphs</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">an style='color: green'>8227; DotForDrawingSchutzenbergerGraphs</code>( <var class="Arg">arg</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>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 <code class="func">DrawSchutzenbergerGraphs</code> (<a href="chap3_mj.html#X7B7B58B77EA25719"><span class="RefLink">3.4-1</span></a>) (if the system is properly configured) or by the user in some independent way. The argument is an inverse semigroup.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">DotForDrawingSchutzenbergerGraphs(poi3);</span>
"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"
</pre></div>
<p>By using Print (or PrinTo, if one wants to print to a file) the string is displayed as follows:</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">Print(last);</span>
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];
}
</pre></div>
<div class="chlinkprevnextbot"> <a href="chap0_mj.html">[Top of Book]</a> <a href="chap0_mj.html#contents">[Contents]</a> <a href="chap2_mj.html">[Previous Chapter]</a> <a href="chap4_mj.html">[Next Chapter]</a> </div>
<div class="chlinkbot"><span class="chlink1">Goto Chapter: </span><a href="chap0_mj.html">Top</a> <a href="chap1_mj.html">1</a> <a href="chap2_mj.html">2</a> <a href="chap3_mj.html">3</a> <a href="chap4_mj.html">4</a> <a href="chapBib_mj.html">Bib</a> <a href="chapInd_mj.html">Ind</a> </div>
<hr />
<p class="foot">generated by <a href="https://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc">GAPDoc2HTML</a></p>
</body>
</html>
¤ Dauer der Verarbeitung: 0.11 Sekunden
¤
*© Formatika GbR, Deutschland
|
|