<h4>10.1 <span class="Heading"> Permutation Inclusion Set </span></h4>
<p>This section is dedicated to the search of the set of permutations which lay in between two permutations. Formally that is <span class="SimpleMath">I_π,ρ = {ρ : π ≤ ρ σ}</span>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ InbetweenPermAutomaton</code>( <var class="Arg">perm1</var>, <var class="Arg">perm2</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: An automaton which accepts the encoded permutations between <code class="code">perm1</code> and <code class="code">perm2</code> where, <code class="code">perm2</code> is the subpermutation.</p>
<p><code class="code">InbetweenPermAutomaton</code> creates the intersection language between the language of all subpermutations of <code class="code">perm1</code> and the language of superpermutations of <code class="code">perm2</code>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ InbetweenPermSet</code>( <var class="Arg">perm1</var>, <var class="Arg">perm2</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: A list which contains the permutations between <code class="code">perm1</code> and <code class="code">perm2</code> where, <code class="code">perm2</code> is the subpermutation.</p>
<p>Using <code class="code">InbetweenPermAutomaton</code> we create the set of all permutations laying between the input permutations.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsSubPerm</code>( <var class="Arg">perm1</var>, <var class="Arg">perm2</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <code class="code">perm2</code> is a subpermutation of <code class="code">perm1</code>.</p>
<p>Creates the automaton accepting all subpermutations of <code class="code">perm1</code> of the same rank or less, and checks whether the automaton accepts the rank encoding of <code class="code">perm2</code>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ LoopFreeAut</code>( <var class="Arg">aut</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: An automaton without any loops of length 1.</p>
<p><code class="code">LoopFreeAut</code> builds the subautomaton of <code class="code">aut</code> that does not contain any loops of length 1, except for the sink state.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">a:=Automaton("det",4,3,[[2,4,3,3],[4,4,1,4],[3,1,2,4]],[1],[2]);</span>
< deterministic automaton on 3 letters with 4 states >
<span class="GAPprompt">gap></span> <span class="GAPinput">Display(a);</span>
| 1 2 3 4
-----------------
a | 2 4 3 3
b | 4 4 1 4
c | 3 1 2 4
Initial state: [ 1 ]
Accepting state: [ 2 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">b:=LoopFreeAut(a);</span>
< deterministic automaton on 3 letters with 5 states >
<span class="GAPprompt">gap></span> <span class="GAPinput">Display(b);</span>
| 1 2 3 4 5
--------------------
a | 2 4 5 3 5
b | 4 4 1 5 5
c | 3 1 2 5 5
Initial state: [ 1 ]
Accepting state: [ 2 ]
<span class="GAPprompt">gap></span> <span class="GAPinput"></span></pre></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ LoopVertexFreeAut</code>( <var class="Arg">aut</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: An automaton without any vertices that had loops of length 1.</p>
<p><code class="code">LoopVertexFreeAut</code> builds the subautomaton that does not contain the vertices and transitions of vertices in <code class="code">aut</code> that have loops of length 1. The function minimalises and determinises the automaton before returning it, which might change the numbering on the vertices, but the returned automaton is isomorphic to the subautomaton of <code class="code">aut</code>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">a:=Automaton("det",4,3,[[2,4,3,3],[4,4,1,4],[3,1,2,4]],[1],[2]);</span>
< deterministic automaton on 3 letters with 4 states >
<span class="GAPprompt">gap></span> <span class="GAPinput">Display(a);</span>
| 1 2 3 4
-----------------
a | 2 4 3 3
b | 4 4 1 4
c | 3 1 2 4
Initial state: [ 1 ]
Accepting state: [ 2 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">b:=LoopVertexFreeAut(a);</span>
< deterministic automaton on 3 letters with 3 states >
<span class="GAPprompt">gap></span> <span class="GAPinput">Display(b);</span>
| 1 2 3
--------------
a | 2 2 1
b | 2 2 2
c | 3 2 2
Initial state: [ 3 ]
Accepting state: [ 1 ]
<span class="GAPprompt">gap></span> <span class="GAPinput"></span></pre></div>
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.