koodev

'전체 글'에 해당되는 글 75건

  1. Homomorphisms (2): image, kernel and normal subgroup
  2. Swift3 - result unused warning 없애기
  3. Homomorphisms (1)

Homomorphisms (2): image, kernel and normal subgroup

Math

모든 group간 Homomorphism φ는 imagekernel이라는 두 개의 중요한 subgroup을 갖는다. image of a homomorphism φ: GG'은 그냥 아래와 같이 매핑된 결과 이미지이다. Homomorphism은 bijective가 아니라는 것을 유념해두자.

im φ = {xG' | x = φ(a) for some aG}

이건 G' 나 혹은 φ(G) 이렇게 쓸 수도 있다.

kernel of φ 는 좀 더 미묘한데, kernel이란 G의 엘리먼트들 중에서 G'의 identity로 매핑되는 녀석들을 말한다.

ker φ = {aG | φ(a) = 1}

이건 G'의 identity 엘리먼트에 대해 역사상시킨 이미지라고 할 수 있다(φ-1(1)). φ가 bijective 하지 않기 때문에 φ-1은 여러개로 사상될 수 있겠다.

kernel은 G의 subgroup이다. 왜냐하면 ab가 ker φ안의 엘리먼트라면, φ(ab) = φ(a)φ(b) = 1 · 1 = 1 이며, 따라서 ab ∈ ker φ 이기 때문이다.

determinant 함수의 kernel은 determinant가 1인 행렬들로 이루어진 subgroup이다. 이 subgroup을 special linear group 이라고 부르고, SLn(ℝ) 이라고 쓴다.

SNn(ℝ) = {real n × n matrices A | det A = 1}

SLn(ℝ)은 GLn(ℝ)의 subgroup이다.

그리고 sign of a permutation sign: Sn → {±1} 이것의 kernel은 alternating group이라고 하고, An이라고 쓴다.

An = {even permutations}

kernel이 subgroup이라는 것 외에도 conjugate와 관련한 중요한 특징이 하나 더 있다. 만일 a가 ker φ 안의 엘리먼트이고 b가 group G안의 어떤 엘리먼트라면, conjugate bab-1 은 ker φ 안의 엘리먼트이다. a ∈ ker φ 라면 φ(a) = 1 이라는 것을 염두해서 아래 수식을 살펴보면,

φ(bab-1) = φ(b)φ(a)φ(b-1) = φ(b)1(b-1) = 1

이므로, bab-1 ∈ ker φ 가 된다.

여기까지를 바탕으로 normal subgroup의 정의를 살펴보자.

Definition. 다음 속성을 갖는 group G의 subgroup Nnormal subgroup이라고 부른다: 모든 aN와 모든 bG에 대하여 conjugate bab-1N의 엘리먼트이다.

여기서 subgroup N이 꼭 kernel일 필요는 없다.

The kernel of a homomorphism is a normal subgroup.

위에서 살펴본 determinant의 kernel인 SLn(ℝ)은 GLn(ℝ)의 subgroup이고, {even permutation}이자 sign of permutation의 kernel인 AnSn의 subgroup 이다.

또한 abelian group의 subgroup은 모두 normal이다. 왜냐하면 G가 abelian이면, conjugate bab-1 = a 이기 때문이다.

거꾸로 말하면, nonabelian group에서 subgroup은 모두가 normal일 필요는 없을 것이다. 예를 들어, A =

11
1
  이고, B =
1
1
  이면, BAB-1 =
1
11
  이 된다. 여기서 (우상단 대각행렬 모양인) AT 이고, BGL2(ℝ) 이지만, (좌하단 대각행렬 모양인) BAB-1T 이다.

normal group의 또다른 예로 center of a group G 가 있다. center subgroup은 Z 또는 Z(G) 이렇게 표기하며, G의 어떤 엘리먼트와 composition하는 경우에도 가환(commute)하는 성질을 갖는다.

Z = {zG | zx = xz for all xG}

모든 group의 center는 normal subgroup이다. 예를 들어 GLn(ℝ)의 center는 scalar matrix의 group(cI) 이다.

'Math' 카테고리의 다른 글

Equivalence relations (2) - Bar 표현식  (0) 2017.06.02
Equivalence relations (1)  (0) 2017.05.31
Homomorphisms (1)  (0) 2017.05.22
Automorphism and conjugation  (0) 2017.05.18
Isomorphism (2)  (0) 2017.05.17

Swift3 - result unused warning 없애기

Programming

+= 연산자를 재정의하여 쓰는데 "Result of operator '+=' is unused" 라는 warning이 발생하여 이걸 없애는 방법을 좀 찾아보았다. 결론부터 말하자면, @discardableResult 을 함수 앞에 붙여주면 해결된다.

GLKit 모듈에 붙어있는 GLKVector3에 곱셈과 +=, -= 등의 연산자가 없어서 아래와 같이 연산자 재정의를 해 보았다.

근데 막상 이걸 사용하려 했더니, 아래와 같이 warning이 떴다. 무시해도 괜찮긴 하지만 영 찜찜하다.

관련해서 찾아보니, Swift 2점대 에서는 '@warn_unused_result' 라는 지시자가 있어서 리턴값을 사용하지 않으면 컴파일러가 warning을 내뱉게 하고 있었다. 즉, 이전까지는 기본적으로는 리턴값을 쓰지 않아도 warning이 뜨지 않았다는 말이다. 그리고 Swift 3점대에 오면서 이게 바뀌어서 리턴값을 쓰지 않으면 컴파일러가 warning을 내뿜도록 하고 있다.

unused warning을 없애기 위한 방법은 두 가지가 있다.

  • @discardableResult 을 함수 앞에 붙여주거나,
  • 함수(연산자) 호출 단에서 리턴값을 밑줄(_)에 할당하는 표현식을 쓰는 것이다. 즉, _ = self.position += self.front * velocity 요렇게 쓰면 되겠지.

참고: https://useyourloaf.com/blog/swift-3-warning-of-unused-result/

'Programming' 카테고리의 다른 글

macOS에 emacs ggtags 설치 및 설정  (0) 2017.10.17
Xcode에 assimp 올리기  (0) 2017.06.06
OpenGL로 원 그리기  (1) 2017.05.27
Swift - 튜플에 포인터로 접근하기  (0) 2017.05.14
Unsigned Integer to String with Generics  (0) 2017.04.23

Homomorphisms (1)

Math

Homomorphism에 대하여 다루기에 앞서 아래에 위키피디아 한국어 페이지에서 인용된 내용을 살펴보자.

추상대수학에서, 준동형(準同型, 영어: homomorphism) 또는 준동형 사상(準同型寫像)은 두 구조 사이의, 모든 연산 및 관계를 보존하는 함수이다. 이들은 범주의 사상을 이룬다.

설명에서 Homomorphism이란 '준동형'이며 직감적으로 동형, 즉 Isomorphism에서 뭔가가 빠져 있는 것 같다는 느낌이 든다.

group GG'이 있을 때, Homomorphism이란 φ: GG' 매핑으로 아래의 룰을 만족한다.

φ(ab) = φ(a)φ(b)

여기서 a, bG 이다.

엇, 그런데 이건 Isomorphism의 정의랑 같다??? Homomorphism이 Isomorphism과 다른 점은 φ 매핑이 일대일 대응(bijective)하지 않아도 된다는 점이다.

아래의 매핑들은 모두 Homomorphism이다.

  1. the determinant function det: GLn(ℝ) → ℝ×
  2. the sign of a permutation sign: Sn → {±1}
  3. the map φ: ℤ+G defined by φ(n) = an, where a is a fixed element of G
  4. the inclustion map i: HG of a subgroup H into a group G, defined by i(x) = x

가장 단순한 예제인 두 번째 b의 경우, 매핑이 다대일 사상이기 때문에 Isomorphism은 아니다. 하지만 φ(ab) = φ(a)φ(b) 을 만족하기 때문에 Homomorphism이 된다.

Proposition. group간 Homomorphism인 φ: GG'은 identity를 identity로 사상하고, inverse를 inverse로 사상한다. 다시말해서, φ(1G) = 1G' 이며, φ(a-1) = φ(a)-1 이다.

Proof. 1 = 1 · 1 이고, φ가 homomorphism이기 때문에 φ(1) = φ(1 · 1) = φ(1)φ(1) 이다. 양 끝단 변의 φ(1)을 소거하면, 1 = φ(1) 이 된다. 그리고 φ(a-1)φ(a) = φ(a-1a) = φ(1) = 1 이고, 같은 방식으로 φ(a)φ(a-1) = 1 이다. 따라서 φ(a-1) = φ(a)-1 (양변에 φ(a)-1 을 곱함) 이다(끝).

'Math' 카테고리의 다른 글

Equivalence relations (1)  (0) 2017.05.31
Homomorphisms (2): image, kernel and normal subgroup  (0) 2017.05.24
Automorphism and conjugation  (0) 2017.05.18
Isomorphism (2)  (0) 2017.05.17
Isomorphisms (1)  (0) 2017.05.16