置換
置換は代数における基本的な要素である.行列と同様に,置換には自然な非可換積があるため,非常に非自明な構造を簡潔に符号化することができる.置換は任意の有限群を表す方法を提供するということにより,数学,科学,工学,さらには芸術における多数のアプリケーションの主要ツールとなっている.特に置換は離散対称性の記述で中心的な役割を果たしている.
大まかに言うと置換は元の集合の並替えであるが,正確にはその集合からそれ自身への全単射である.有限数の元を持つ集合のみを考える.
個の元を持つ集合で可能な置換の数は
である.したがって,例えば
のとき
通り,つまり
通りの置換があるということである.
このチュートリアルでは Mathematica における巡回表記の置換の操作方法を説明し,「置換のリスト」では置換リスト表記との関連性を説明する.また,「置換群」では置換群の一般論を,「名前付き群」では置換群の中のいくつかの特殊な群について説明する.「群論アルゴリズム」では群の元をすべて列挙しないで置換群から情報を抽出する方法を見てみる.
置換表現
| Cycles | 互いに素な巡回置換を表す頭部 |
| PermutationCyclesQ | 置換の検証 |
置換の互いに素な巡回表現は,Mathematica ではCycles[{cyc1, cyc2, ...}]という形式を持つ.ここで巡回
は互いに素な正の整数のリストである.この置換では整数がその右側に写像され,最後の整数が最初の元に写像される.巡回置換に現れない整数は,長さ1の巡回置換に現れることがあるが,その整数はそれ自身に写像される.これを「一元集合」または「固定点」と呼ぶ.巡回置換の順序は重要ではなく,個々の巡回は置換を変更することなく交代させることができる.置換は自動的に標準化されるため各巡回の最小の整数が最初に来て,巡回置換はその最初の整数によりソートされる.
| In[1]:= |
| Out[1]= |
| In[2]:= |
| Out[2]= |
| In[3]:= |
| Out[3]= |
明示的な数値のリストを含む置換では,自動的にシンタックスのチェックが行われる.その他の場合は関数PermutationCyclesQを使ってシンタックスをチェックすることができる.
| In[7]:= |
| Out[7]= |
| In[9]:= |
| Out[9]= |
| In[10]:= |
| Out[10]= |
置換の作用と台
置換 perm により,整数
が整数
にマップされると,「
は置換 perm による
の像」という.像は関数PermutationReplaceで計算される.
| PermutationReplace | 置換による整数の像 |
| In[11]:= |
| Out[11]= |
| In[12]:= |
| Out[12]= |
置換の標準的な作用は,他の置換や整数の配列のように別のオブジェクトにまで拡張することができる.
| In[13]:= |
| Out[13]= |
置換は特定のどの有限群にも属さず,ある程度特定の対称群にさえ属さないとされている.しかし置換により動かされた整数の集合として定義された,台という概念があり,これにより置換が自然に作用を及ぼす場所がより分かる.
| PermutationSupport | 置換によって動かされた整数集合 |
| PermutationLength | 置換によって動かされた整数の数 |
| PermutationMax | 置換によって動かされた最大の整数 |
| PermutationMin | 置換によって動かされた最小の整数 |
| In[14]:= |
| Out[14]= |
| In[15]:= |
| Out[15]= |
| In[16]:= |
| Out[16]= |
| In[17]:= |
| Out[17]= |
| In[18]:= |
| Out[18]= |
| RandomPermutation | 擬似ランダム置換を生成する |
| In[19]:= |
| Out[19]= |
| In[20]:= |
| Out[20]= |
式の一部を置換する
置換は,関数Permuteを使って他の式の一部を置換するのにも使える.整数
に写像される整数
は,
が
の位置に動かされるものと解釈される.Permuteは式の元の数は決して変更しない.ただ順序が変わるだけである.
| Permute | 式の一部を置換する |
| FindPermutation | 2つの式を同じ元でつなぐ置換を返す |
| In[21]:= |
| Out[21]= |
| In[22]:= |
| In[24]:= |
| Out[24]= |
| In[25]:= |
| Out[25]= |
| In[26]:= |
| Out[26]= |
| In[27]:= |
| Out[27]= |
| In[28]:= |
| Out[29]= |
| In[30]:= |
| Out[30]= |
| In[31]:= |
| Out[31]= |
| In[32]:= |
| In[34]:= |
| Out[34]= |
| In[35]:= |
| Out[35]= |
| In[36]:= |
| Out[36]= |
| In[37]:= |
| Out[37]= |
| In[38]:= |
| Out[38]= |
置換の積
| PermutationProduct | 置換の積(非可換) |
| InversePermutation | 逆置換 |
| PermutationPower | 置換の整数ベキ(自身あるいは逆置換との積) |
| PermutationOrder | 恒等置換を生成する,置換の最小の正のベキ |
2つの置換
と
の積を求める場合,PermutationProduct[perm1, perm2]が
を使ってから
を使う(左から右への積)か,
を使ってから
を使う(右から左への積)かによって決まる,2通りの方法が考えられる.Mathematica のPermutationProductでは巡回の右隣に写像することになっているため,実質的に左から右への積である.
| In[39]:= |
| In[41]:= |
| Out[41]= |
| In[42]:= |
| Out[42]= |
| In[43]:= |
| Out[43]= |
| In[44]:= |
| Out[44]= |
| In[45]:= |
| Out[45]= |
| In[46]:= |
| Out[46]= |
置換の積の法則が与えられると,転置,ベキ乗,位数等の関連した概念がすぐに定義できる.有限の台の置換では,位数は常に有限となる.
| In[47]:= |
| Out[47]= |
| In[48]:= |
| Out[48]= |
| In[49]:= |
| Out[49]= |
| In[50]:= |
| Out[50]= |
| In[51]:= |
| Out[51]= |
| In[52]:= |
| Out[52]= |
| In[53]:= |
| Out[53]= |
| In[54]:= |
| Out[54]= |
| In[55]:= |
| In[56]:= |
| Out[56]= |
| In[57]:= |
| Out[57]= |
| In[58]:= |
| Out[58]= |
置換の等価性と並替え
Mathematica の標準となっているが,等価性テストには構造的等価性(SameQ)と数学的等価性(Equal)の2つがある.前者は2つの式を比較することができるが,後者は同じタイプの値を持つ2つの数式を比べた場合にのみTrueかFalseを返す.式を並べ替えるときも同じである.OrderおよびOrderedQで実装された構造的(標準的)順序とLessとその関連関数で与えられる数学的順序がある.
任意位数の2つの置換は常にその等価性と順序をテストすることができる.これは整数1, 2, 3, ...の像を逐次に比較することによって実行される.恒等置換が常に最初に来るように小さい置換は小さい像に対応する.これは数学的順序を定義する.標準的順序は標準の規則に従っており,数学的順序とは異なる可能性がある,
| In[59]:= |
| In[61]:= |
| Out[61]= |
| In[62]:= |
| Out[62]= |
| In[63]:= |
| Out[63]= |
| In[64]:= |
| Out[64]= |
| In[65]:= |
| Out[65]= |
| In[66]:= |
| Out[66]= |
特殊なタイプの置換
置換には特殊なタイプがある.多くの場合,巡回表記により簡単な構造でタイプを見付けることができる.
| In[67]:= |
| In[68]:= |
| Out[68]= |
| In[69]:= |
| Out[69]= |
| In[70]:= |
| In[71]:= |
| Out[71]= |
| In[72]:= |
| Out[72]= |
| In[73]:= |
| In[74]:= |
| Out[74]= |
| In[75]:= |
| Out[75]= |
置換の巡回表記を互換へと分解すること,つまり長さ2の1つの巡回を持つ置換を構築することも簡単である.
| In[76]:= |
| In[78]:= |
| In[79]:= |
| Out[79]= |
| In[80]:= |
| Out[80]= |
| In[81]:= |
| In[82]:= |
| Out[82]= |
| In[83]:= |
| Out[83]= |
| In[84]:= |
| Out[84]= |

