orbit {permutations}R Documentation

Orbits of integers

Description

Finds the orbit of a given integer

Usage

orbit_single(c1,n1)
orbit(cyc,n)

Arguments

c1, n1

In (low-level) function orbit_single(), a cyclist and an integer vector respectively

cyc, n

In (vectorized) function orbit(), cyc is coerced to a cycle, and n is an integer vector

Value

Given a cyclist c1 and integer n1, function orbit_single() returns the single cycle containing integer n1. This is a low-level function, not intended for the end-user.

Function orbit() is the vectorized equivalent of orbit_single(). Vectorization is inherited from cbind().

The orbit of a fixed point pp is {p}\left\lbrace p\right\rbrace; the code uses an ugly hack to ensure that this is the case.

Note

Orbits are useful in a more general group theoretic context. Consider a finite group GG acting on a set XX, that is

α ⁣:G×XX.\alpha\colon G\times X\longrightarrow X.

Writing α(g,x)=gx\alpha(g,x)=gx, we define α\alpha to be a group action if ex=xex=x and g(hx)=(gh)xg(hx)=(gh)x where g,hGg,h\in G and ee is the group identity. For any xXx\in X we define the orbit GxGx of xx to be the set of elements of XX to which xx can be moved by an element of GG. Symbolically:

Gx={gx ⁣:gG}Gx=\left\lbrace gx\colon g\in G\right\rbrace

Now, we abuse notation slightly. In the context of permutation groups, we consider a fixed permutation σ\sigma. We consider the group G=σG=\left\langle\sigma\right\rangle, that is, the group generated by σ\sigma; the group action is that of GG on set X={1,2,,n}X=\left\lbrace 1,2,\ldots,n\right\rbrace with the obvious definition σx=σ(x)\sigma x=\sigma(x) for σG\sigma\in G and xXx\in X. This clearly is a group action as id(x)=x\operatorname{id}(x)=x and σ(μx)=(σμ)x\sigma(\mu x)=(\sigma\mu)x.

Gx=iZσi(x)Gx=\bigcup_{i\in\mathbb{Z}}\sigma^i(x)

Expressing σ\sigma in cycle form makes it easy to see that the orbit of any element xx of XX is just the other members in the cycle containing xx. For example, consider σ=(26)(348)\sigma=(26)(348) and x=4x=4. Then

G=(26)(348)=iZ[(26)(348)]iG=\left\langle(26)(348)\right\rangle = \bigcup_{i\in\mathbb{Z}}[(26)(348)]^i

Because we are only interested in the effects on x=4x=4, we only need to consider the cycle (348)(348): this is the only cycle that affects x=4x=4, and the (26)(26) cycle may be ignored as it does not affect element 4. So

G4=iZ(348)i(4)={3,4,8}G4=\bigcup_{i\in\mathbb{Z}}(348)^i(4)=\left\lbrace 3,4,8\right\rbrace

[observe the slight notational abuse above: “(348)(348)” means “the function f()f(\cdot) with f(3)=4f(3)=4, f(4)=8f(4)=8, and f(8)=3f(8)=3”].

Author(s)

Robin K. S. Hankin

See Also

fixed

Examples


orbit(as.cycle("(123)"),1:5)
orbit(as.cycle(c("(12)","(123)(45)","(2345)")),1)
orbit(as.cycle(c("(12)","(123)(45)","(2345)")),1:3)

data(megaminx)
orbit(megaminx,13)


[Package permutations version 1.1-5 Index]