<h3>16 <span class="Heading">
Visualising semigroups and elements
</span></h3>
<p>There are two operations <code class="func">TikzString</code> (<a href="chap16_mj.html#X7F0971F678B4FC66"><span class="RefLink">16.3-1</span></a>) and <code class="func">DotString</code> (<a href="chap16_mj.html#X7F51F3CD7E13D199"><span class="RefLink">16.1-1</span></a>) in <strongclass="pkg">Semigroups</strong> for creating LaTeX and <code class="code">dot</code> (also known as GraphViz) format pictures of the Green's class structure of a semigroup and for visualising certain types of elements of a semigroup. There is also a function Splash (Digraphs: Splash) for automatically processing the output of TikzString (16.3-1) and DotString (16.1-1) and opening the resulting pdf file.
<p>In this section, we describe the operations in <strong class="pkg">Semigroups</strong> for creating pictures in <code class="code">dot</code> format.</p>
<p>The operations described in this section return strings, which can be written to a file using the function <code class="func">FileString</code> (<a href="http://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc/doc/chap6_mj.html#X7E14D32181FBC3C3"><span class="RefLink">GAPDoc: FileString</span></a>) or viewed using <code class="func">Splash</code> (<a href="https://gap-packages.github.io/io/doc/chap9_mj.html#X83B3318784E78415"><span class="RefLink">Digraphs: Splash</span></a>).</p>
<p>If the argument <var class="Arg">S</var> is a semigroup, and the optional second argument <var class="Arg">options</var> is a record, then this operation produces a graphical representation of the partial order of the \(\mathscr{D}\)-classes of the semigroup <var class="Arg">S</var> together with the eggbox diagram of each \(\mathscr{D}\)-class. The output is in <code class="code">dot</code> format (also known as <code class="code">GraphViz</code>) format. For details about this file format, and information about how to display or edit this format see <span class="URL"><a href="https://www.graphviz.org">https://www.graphviz.org</a></span>.</p>
<p>The \(\mathscr{D}\)-classes are shown as eggbox diagrams with \(\mathscr{L}\)-classes as rows and \(\mathscr{R}\)-classes as columns; group \(\mathscr{H}\)-classes are shaded gray and contain an asterisk. The \(\mathscr{L}\)-classes and \(\mathscr{R}\)-classes within a \(\mathscr{D}\)-class are arranged to correspond to the normalization of the principal factor given by <code class="func">NormalizedPrincipalFactor</code> (<a href="chap10_mj.html#X86C6D777847AAEC7"><span class="RefLink">10.4-8</span></a>). The \(\mathscr{D}\)-classes are numbered according to their index in <code class="code">GreensDClasses(<var class="Arg">S</var>)</code>, so that an <code class="code">i</code> appears next to the eggbox diagram of <code class="code">GreensDClasses(<var class="Arg">S</var>)[i]</code>. A line from one \(\mathscr{D}\)-class to another indicates that the higher \(\mathscr{D}\)-class is greater than the lower one in the \(\mathscr{D}\)-order on <var class="Arg">S</var>.</p>
<p>If the optional second argument <var class="Arg">options</var> is present, it can be used to specify some options for output.</p>
<dl>
<dt><strong class="Mark">number</strong></dt>
<dd><p>if <code class="code"><var class="Arg">options</var>.number</code> is <code class="keyw">false</code>, then the \(\mathscr{D}\)-classes in the diagram are not numbered according to their index in the list of \(\mathscr{D}\)-classes of <var class="Arg">S</var>. The default value for this option is <code class="keyw">true</code>.</p>
</dd>
<dt><strong class="Mark">maximal</strong></dt>
<dd><p>if <code class="code"><var class="Arg">options</var>.maximal</code> is <code class="keyw">true</code>, then the structure description of the group \(\mathscr{H}\)-classes is displayed; see <code class="func">StructureDescription</code> (<a href="../../../doc/ref/chap39_mj.html#X8199B74B84446971"><span class="RefLink">Reference: StructureDescription</span></a>). Setting this attribute to <code class="keyw">true</code> can adversely affect the performance of <codeclass="code">DotString</code>. The default value for this option is <code class="keyw">false</code>.</p>
</dd>
<dt><strong class="Mark">normal</strong></dt>
<dd><p>if <code class="code"><var class="Arg">options</var>.normal</code> is <code class="keyw">false</code>, then the \(\mathscr{L}\)- and \(\mathscr{R}\)-classes within each \(\mathscr{D}\)-class arranged to correspond to <code class="func">PrincipalFactor</code> (<a href="chap10_mj.html#X86C6D777847AAEC7"><span class="RefLink">10.4-8</span></a>). If <code class="code"><var class="Arg">options</var>.normal</code> is <code class="keyw">true</code>, they are instead arranged to correspond to <code class="func">NormalizedPrincipalFactor</code> (<a href="chap10_mj.html#X86C6D777847AAEC7"><span class="RefLink">10.4-8</span></a>). Setting this attribute to <codeclass="keyw">false</code> may improve the performance of <code class="code">DotString</code> as it avoids the computation of <code class="func">InjectionNormalizedPrincipalFactor</code> (<a href="chap10_mj.html#X7EBB4F1981CC2AE9"><span class="RefLink">10.4-7</span></a>). The default value for this option is <code class="keyw">true</code>.</p>
<p>If <var class="Arg">digraph</var> is a <code class="func">Digraph</code> (<a href="https://gap-packages.github.io/io/doc/chap3_mj.html#X834843057CE86655"><span class="RefLink">Digraphs: Digraph</span></a>) in the category <code class="func">IsCayleyDigraph</code> (<a href="https://gap-packages.github.io/io/doc/chap3_mj.html#X7E749324800B38A5"><span class="RefLink">Digraphs: IsCayleyDigraph</span></a>), then <code class="code">DotString</code> returns a graphical representation of <var class="Arg">digraph</var>. The output is in <code class="code">dot</code> format (also known as <code class="code">GraphViz</code>) format. For details about this file format, and information about how to display or edit this format see <span class="URL"><a href="https://www.graphviz.org">https://www.graphviz.org</a></span>.</p>
<p>This function produces a graphical representation of the semilattice of the idempotents of an inverse semigroup <var class="Arg">S</var> where the elements of <var class="Arg">S</var> have a unique semigroup inverse accessible via <code class="func">Inverse</code> (<a href="../../../doc/ref/chap31_mj.html#X78EE524E83624057"><span class="RefLink">Reference: Inverse</span></a>). The idempotents are grouped by the \(\mathscr{D}\)-class they belong to.</p>
<p>The output is in <code class="code">dot</code> format (also known as <code class="code">GraphViz</code>) format. For details about this file format, and information about how to display or edit this format see <span class="URL"><a href="https://www.graphviz.org">https://www.graphviz.org</a></span>.</p>
<p>If <var class="Arg">S</var> is a semigroup satisfying <code class="func">CanUseFroidurePin</code> (<a href="chap6_mj.html#X7FEE8CFA87E7B872"><span class="RefLink">6.1-4</span></a>), then <code class="code">DotLeftCayleyDigraph</code> is simply short for <code class="code">DotString(LeftCayleyDigraph(<var class="Arg">S</var>))</code>.</p>
<p><code class="code">DotRightCayleyDigraph</code> can be used to produce a dot string for the right Cayley graph of <var class="Arg">S</var>.</p>
<p>See <code class="func">DotString</code> (<a href="chap16_mj.html#X7F51F3CD7E13D199"><span class="RefLink">16.1-1</span></a>) for more details, and see also <code class="func">TikzLeftCayleyDigraph</code> (<a href="chap16_mj.html#X81EF7F777EEF69C1"><span class="RefLink">16.3-2</span></a>).</p>
<p>In this section, we describe the operations in <strong class="pkg">Semigroups</strong> for creating LaTeX representations of <strong class="pkg">GAP</strong> objects. For pictures of <strongclass="pkg">GAP</strong> objects please see Section <a href="chap16_mj.html#X7BDDE0FE80D09887"><span class="RefLink">16.3</span></a>.</p>
<p>This function produces a string containing LaTeX code for the transformation <var class="Arg">f</var>. If the optional parameter <var class="Arg">n</var> is used, then this is taken to be the degree of the transformation <var class="Arg">f</var>, if the parameter <var class="Arg">n</var> is not given, then <code class="func">DegreeOfTransformation</code> (<a href="../../../doc/ref/chap53_mj.html#X78A209C87CF0E32B"><span class="RefLink">Reference: DegreeOfTransformation</span></a>) is used by default. If <var class="Arg">n</var> is less than the degree of <var class="Arg">f</var>, then an error is given.</p>
<p>In this section, we describe the operations in <strong class="pkg">Semigroups</strong> for creating pictures in <code class="code">tikz</code> format.</p>
<p>The functions described in this section return a string, which can be written to a file using the function <code class="func">FileString</code> (<a href="http://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc/doc/chap6_mj.html#X7E14D32181FBC3C3"><span class="RefLink">GAPDoc: FileString</span></a>) or viewed using <code class="func">Splash</code> (<a href="https://gap-packages.github.io/io/doc/chap9_mj.html#X83B3318784E78415"><span class="RefLink">Digraphs: Splash</span></a>).</p>
<p>This function produces a graphical representation of the object <var class="Arg">obj</var> using the <code class="code">tikz</code> package for LaTeX. More precisely, this operation outputs a string containing a minimal LaTeX document which can be compiled using LaTeX to produce a picture of <var class="Arg">obj</var>.</p>
<p>Currently the following types of objects are supported:</p>
<dl>
<dt><strong class="Mark">blocks</strong></dt>
<dd><p>If <var class="Arg">obj</var> is the left or right blocks of a bipartition, then <code class="code">TikzString</code> returns a graphical representation of these blocks; see Section <a href="chap3_mj.html#X87684C148592F831"><span class="RefLink">3.6</span></a>.</p>
</dd>
<dt><strong class="Mark">bipartitions</strong></dt>
<dd><p>If <var class="Arg">obj</var> is a bipartition, then <code class="code">TikzString</code> returns a graphical representation of <var class="Arg">obj</var>.</p>
<p>If the optional second argument <var class="Arg">options</var> is a record with the component <code class="code">colors</code> set to <code class="keyw">true</code>, then the blocks of <var class="Arg">f</var> will be colored using the standard <code class="code">tikz</code> colors. Due to the limited number of colors available in <code class="code">tikz</code> this option only works when the degree of <var class="Arg">obj</var> is less than 20. See Chapter <a href="chap3_mj.html#X7C18DB427C9C0917"><span class="RefLink">3</span></a> for more details about bipartitions.</p>
</dd>
<dt><strong class="Mark">pbrs</strong></dt>
<dd><p>If <var class="Arg">obj</var> is a <code class="func">PBR</code> (<a href="chap4_mj.html#X82A8646F7C70CF3B"><span class="RefLink">4.2-1</span></a>), then <code class="code">TikzString</code> returns a graphical representation <var class="Arg">obj</var>; see Chapter <a href="chap4_mj.html#X85A717D1790B7BB5"><span class="RefLink">4</span></a>.</p>
</dd>
<dt><strong class="Mark">Cayley graphs</strong></dt>
<dd><p>If <var class="Arg">obj</var> is a <code class="func">Digraph</code> (<a href="https://gap-packages.github.io/io/doc/chap3_mj.html#X834843057CE86655"><span class="RefLink">Digraphs: Digraph</span></a>) in the category <code class="func">IsCayleyDigraph</code> (<a href="https://gap-packages.github.io/io/doc/chap3_mj.html#X7E749324800B38A5"><span class="RefLink">Digraphs: IsCayleyDigraph</span></a>), then <code class="code">TikzString</code> returns a picture of <var class="Arg">obj</var>. No attempt is made whatsoever to produce a sensible picture of the digraph <var class="Arg">obj</var>, in fact, the vertices are all given the same coordinates. Human intervention is required to produce a meaningful picture from the value returned by this method. It is intended to make the task of drawing such a Cayley graph more straightforward by providing everything except the final layout of the graph. Please use <code class="func">DotString</code> (<a href="chap16_mj.html#X7F51F3CD7E13D199"><span class="RefLink">16.1-1</span></a>) if you want an automatically laid out diagram of the digraph <var class="Arg">obj</var>.</p>
<p>If <var class="Arg">S</var> is a semigroup satisfying <code class="func">CanUseFroidurePin</code> (<a href="chap6_mj.html#X7FEE8CFA87E7B872"><span class="RefLink">6.1-4</span></a>), then <code class="code">TikzLeftCayleyDigraph</code> is simply short for <code class="code">TikzString(LeftCayleyDigraph(<var class="Arg">S</var>))</code>.</p>
<p><code class="code">TikzRightCayleyDigraph</code> can be used to produce a tikz string for the right Cayley graph of <var class="Arg">S</var>.</p>
<p>See <code class="func">TikzString</code> (<a href="chap16_mj.html#X7F0971F678B4FC66"><spanclass="RefLink">16.3-1</span></a>) for more details, and see also <code class="func">DotLeftCayleyDigraph</code> (<a href="chap16_mj.html#X7E38369D7E8BEA4C"><span class="RefLink">16.1-4</span></a>).</p>
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.