Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/GAP/pkg/semigroups/doc/   (Algebra von RWTH Aachen Version 4.15.1©)  Datei vom 29.7.2025 mit Größe 6 kB image not shown  

Quelle  factor.xml   Sprache: XML

 
#############################################################################
##
#W  factor.xml
#Y  Copyright (C) 2011-14                                James D. Mitchell
##
##  Licensing information can be found in the README file of this package.
##
#############################################################################
##

<#GAPDoc Label="Factorization">
<ManSection>
  <Oper Name = "Factorization" Arg = "S, x"/>
    <Returns>A word in the generators.</Returns>
    <Description>
    <List>
      <Mark>for semigroups</Mark>
      <Item>
        When <A>S</A> is a semigroup and <A>x</A> belongs to <A>S</A>,
        <C>Factorization</C> return a word in the generators of <A>S</A> that
        is equal to <A>x</A>. In this case, a word is a list of positive
        integers where an entry <C>i</C> corresponds to
        <C>GeneratorsOfSemigroups(S)[i]</C>.  More specifically,
      <Log>EvaluateWord(GeneratorsOfSemigroup(S), Factorization(S, x)) = x;</Log>
    </Item>

      <!-- FIXME(later) improve: it not clear to me whether this applies to all
    inverse semigroups or to ones with an inverse op WW -->

      <Mark>for inverse semigroups</Mark>
      <Item>
         When <A>S</A> is an inverse semigroup and <A>x</A> belongs to <A>S</A>,
         <C>Factorization</C> return a word in the generators of <A>S</A> that
         is equal to <A>x</A>. In this case, a word is a list of non-zero
         integers where an entry <C>i</C> corresponds to
         <C>GeneratorsOfSemigroup(S)[i]</C> and <C>-i</C> corresponds to
         <C>GeneratorsOfSemigroup(S)[i] ^ -1</C>.
         As in the previous case,
      <Log>EvaluateWord(GeneratorsOfSemigroup(S), Factorization(S, x)) = x;</Log>
      </Item>
    </List>

    Note that <C>Factorization</C> does not always return a word of minimum length;
    see <Ref Oper = "MinimalFactorization"/>.
    <P/>

    See also <Ref Oper = "EvaluateWord"/> and
    <Ref Func = "GeneratorsOfSemigroup" BookName = "ref"/>.
<Example><![CDATA[
gap> gens := [Transformation([2, 2, 9, 7, 4, 9, 5, 5, 4, 8]),
>             Transformation([4, 10, 5, 6, 4, 1, 2, 7, 1, 2])];;
gap> S := Semigroup(gens);;
gap> x := Transformation([1, 10, 2, 10, 1, 2, 7, 10, 2, 7]);;
gap> word := Factorization(S, x);
[ 2, 2, 1, 2 ]
gap> EvaluateWord(gens, word);
Transformation( [ 1, 10, 2, 10, 1, 2, 7, 10, 2, 7 ] )
gap> S := SymmetricInverseMonoid(8);
<symmetric inverse monoid of degree 8>
gap> x := PartialPerm([1, 2, 3, 4, 5, 8], [7, 1, 4, 3, 2, 6]);
[5,2,1,7][8,6](3,4)
gap> word := Factorization(S, x);
[ -2, -2, -2, -2, -2, -2, 2, 4, 4, 2, 3, 2, -3, -2, -2, 3, 2, -3, -2,
  -2, 4, -3, -4, 2, 2, 3, -2, -3, 4, -3, -4, 2, 2, 3, -2, -3, 2, 2,
  3, -2, -3, 2, 2, 3, -2, -3, 4, -3, -4, 3, 2, -3, -2, -2, 3, 2, -3,
  -2, -2, 4, 3, -4, 3, 2, -3, -2, -2, 3, 2, -3, -2, -2, 3, 2, 2, 3,
  2, 2, 2, 2 ]
gap> EvaluateWord(GeneratorsOfSemigroup(S), word);
[5,2,1,7][8,6](3,4)
gap> S := DualSymmetricInverseMonoid(6);;
gap> x := S.1 * S.2 * S.3 * S.2 * S.1;
<block bijection: [ 1, 6, -4 ], [ 2, -2, -3 ], [ 3, -5 ], [ 4, -6 ],
 [ 5, -1 ]>
gap> word := Factorization(S, x);
[ -2, -2, -2, -2, -2, 4, 2 ]
gap> EvaluateWord(GeneratorsOfSemigroup(S), word);
<block bijection: [ 1, 6, -4 ], [ 2, -2, -3 ], [ 3, -5 ], [ 4, -6 ],
 [ 5, -1 ]>]]></Example>
    </Description>
  </ManSection>
<#/GAPDoc>

<#GAPDoc Label="MinimalFactorization">
<ManSection>
  <Oper Name = "MinimalFactorization" Arg = "S, x"/>
  <Returns>A minimal word in the generators.</Returns>
  <Description>
    This operation returns a minimal length word in the generators of the
    semigroup <A>S</A> that equals the element <A>x</A>.
    In this case, a word is a list of positive
    integers where an entry <C>i</C> corresponds to
    <C>GeneratorsOfSemigroups(<A>S</A>)[i]</C>.  More specifically,
    <Log>EvaluateWord(GeneratorsOfSemigroup(S), MinimalFactorization(S, x)) = x;</Log>
    <P/>

    <C>MinimalFactorization</C> involves exhaustively enumerating <A>S</A>
    until the element <A>x</A> is found, and so <C>MinimalFactorization</C>
    may be less efficient than <Ref Oper="Factorization"/> for some
    semigroups.
    <P/>

    Unlike <Ref Oper = "Factorization"/> this operation does not distinguish
    between semigroups and inverse semigroups.  See also <Ref
      Oper = "EvaluateWord"/> and <Ref Func = "GeneratorsOfSemigroup"
      BookName="ref"/>.
    <Example><![CDATA[
gap> S := Semigroup(Transformation([2, 2, 9, 7, 4, 9, 5, 5, 4, 8]),
>                   Transformation([4, 10, 5, 6, 4, 1, 2, 7, 1, 2]));
<transformation semigroup of degree 10 with 2 generators>
gap> x := Transformation([8, 8, 2, 2, 9, 2, 8, 8, 9, 9]);
Transformation( [ 8, 8, 2, 2, 9, 2, 8, 8, 9, 9 ] )
gap> Factorization(S, x);
[ 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1 ]
gap> MinimalFactorization(S, x);
[ 1, 2, 1, 1, 1, 1, 2, 2, 1 ]]]></Example>
    </Description>
  </ManSection>
  <#/GAPDoc>

<#GAPDoc Label="NonTrivialFactorization">
<ManSection>
  <Oper Name = "NonTrivialFactorization" Arg = "S, x"/>
  <Returns>A non-trivial word in the generators, or <K>fail</K>.</Returns>
  <Description>
    When <A>S</A> is a semigroup and <A>x</A> belongs to <A>S</A>, this
    operation returns a non-trivial word in the generators of the semigroup
    <A>S</A> that equals <A>x</A>, if one exists. The definition of
    a word in the generators is the same as given in <Ref Oper="Factorization"
      /> for semigroups and inverse semigroups. A word is non-trivial if it
    has length two or more. <P/>

    If no non-trivial word for <A>x</A> exists, then <A>x</A> is an
    indecomposable element of <A>S</A> and this operation returns <K>fail</K>;
    see <Ref Attr="IndecomposableElements" />. <P/>

    When <A>x</A> does not belong to <C>GeneratorsOfSemigroup(<A>S</A>)</C>,
    any factorization of <A>x</A> is non-trivial. In this case,
    <C>NonTrivialFactorization</C> returns the same word as <Ref
      Oper="Factorization" />.  <P/>

    See also <Ref Func = "EvaluateWord"/> and <Ref Func =
      "GeneratorsOfSemigroup" BookName="ref"/>.
    <Example><![CDATA[
gap> x := Transformation([5, 4, 2, 1, 3]);;
gap> y := Transformation([4, 4, 2, 4, 1]);;
gap> S := Semigroup([x, y]);
<transformation semigroup of degree 5 with 2 generators>
gap> NonTrivialFactorization(S, x * y);
[ 1, 2 ]
gap> Factorization(S, x);
[ 1 ]
gap> NonTrivialFactorization(S, x);
[ 1, 1, 1, 1, 1, 1 ]
gap> Factorization(S, y);
[ 2 ]
gap> NonTrivialFactorization(S, y);
[ 2, 1, 1, 1, 1, 1 ]
gap> z := PartialPerm([2]);;
gap> S := Semigroup(z);
<commutative partial perm semigroup of rank 1 with 1 generator>
gap> NonTrivialFactorization(S, z);
fail]]></Example>
  </Description>
  </ManSection>
<#/GAPDoc>

100%


¤ Dauer der Verarbeitung: 0.23 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.