Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/GAP/pkg/sgpviz/doc/   (Algebra von RWTH Aachen Version 4.15.1©)  Datei vom 30.7.2024 mit Größe 13 kB image not shown  
\n

Quelle  drawings.xml   Sprache: XML

 
<?xml version="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
0\">0\">
><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\n
0\">0\"><\
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>


    </Section>


    <Section>
       <Heading>Schützenberger graphs</Heading>

       <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>

91%


¤ Dauer der Verarbeitung: 0.15 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

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.