게임 속 함수 - geim sog hamsu

DIBRARY

  • 인프런 <게임 엔진을 지탱하는 게임 수학, 이득우 교수님> 강의를 듣고 필기한 글입니다.

함수(Function)의 기초

함수를 왜 배워야 하는가?

  • 게임이란 것은 결국 게임 내에서 공간의 변환에 밀접하게 연결되어 있음
  • 게임을 제작한다는 것은 굉장히 많은 공간의 변환 작업들로 구성되어 있는데, 그 기반은 집합과 집합의 대응 관계
  • 이것의 메커니즘을 설명하는 것이 바로 함수(Function)
  • 그렇기 때문에 함수에 대한 개념을 제대로 적립해야, 공간과 공간의 변환을 제대로 이해할 수 있는 기본 지식이 됨

함수의 정의

  • 함수라는 것은 두 개의 집합이 있을 때, 두 집합의 대응 관계를 의미
  • 단, 첫 번째 집합의 모든 요소가 사용되어야 함수의 성립 조건이 만족
게임 속 함수 - geim sog hamsu

함수가 아닌 대응 관계

  1. 첫 번째 집합의 어떤 원소에 대한 대응 관계가 빠져 있을 때
  2. 첫 번째 집합의 한 원소가 두 번째 집합의 두 가지 이상의 원소에 대응할 때
게임 속 함수 - geim sog hamsu

함수와 관련된 주요 용어

  • 정의역(Domain)  :  첫 번째 집합
  • 공역(Codomain)  :  두 번째 집합
  • 치역(Range)  :  공역에서 정의역에 대응되는 요소들의 집합

정의역에 속한 모든 원소들은 반드시 사용되어야 하지만, 공역에 속한 모든 원소들이 사용될 필요는 없다.

즉, 공역의 일부 요소들만 대응되는 집합이 생성되는데, 이것을 치역(Range)이라고 한다.

게임 속 함수 - geim sog hamsu

프로그래밍 관점에서 함수를 바라본다면?

  • 입력을 주면, 그에 대응되는 새로운 내용물을 만들어 내는 시스템
  • 대응에 사용되는 정의역의 요소를 입력(Input)
  • 대응되는 공역의 요소를 출력(Output)
게임 속 함수 - geim sog hamsu

함수의 종류(Classes of Function)

함수를 다룰 때는 대응 관계에 따라서 여러 가지로 분류할 수 있다.

  • 전사(Surjection)  :  공역과 치역이 동일
게임 속 함수 - geim sog hamsu
공역의 모든 요소가 정의역에 대응됨
  • 단사(Injection)  :  정의역과 공역의 요소가 일대일로 대응
게임 속 함수 - geim sog hamsu
일대일 함수를 의미한다.
  • 전단사(Bijection)  :  전사와 단사를 모두 만족
게임 속 함수 - geim sog hamsu
  • 일반(General)  :  이도저도 아닌 대응 관계
게임 속 함수 - geim sog hamsu

곱집합(Cartesian Product)

곱집합의 정의

  • 곱집합이란, 두 집합의 원소를 순서쌍으로 묶어 구성한 집합을 말함
  • \((a, b)\)와 같이 괄호와 콤마(,)를 사용해 원소를 나열하는 방식을 튜플(Tuple)이라고 함
  • 곱집합은 \(\times\) 기호를 사용하여 표현  (ex. \(A \times B\))

곱집합의 예시

게임 속 함수 - geim sog hamsu

이항 연산을 함수로 해석하기

  • 곱집합을 사용하게 되면, 손쉽게 이항 연산을 함수로 표현할 수 있게 됨
  • 정의역을 실수 집합의 곱집합으로 만들고, 순서쌍의 각각의 원소를 입력으로 줌
게임 속 함수 - geim sog hamsu

합성함수(Composition)

합성함수의 개념

  • 합성함수란, 서로 다른 두 개의 함수가 있고 세 개의 집합이 있을 때 대응되는 원소에 따라 최종 목적지까지 중간 단계 없이 가는 것을 말함
  • 말로 표현하면 무슨 말인지 잘 모르니, 다음과 같이 그림을 통해 설명
게임 속 함수 - geim sog hamsu
  • 위 그림을 보면 두 개의 서로 다른 함수 \(f(x), g(y)\)가 있고, 세 개의 집합이 존재하는 상황
  • 집합 X의 원소 1은 집합 Y의 원소 A에 대응되고, 다시 이 A는 집합 Zδ에 대응됨
  • 즉, 집합 X에서 집합 Z에 대응되는 과정 중 중간 단계인 집합 Y가 존재
  • 합성함수란, 이런 중간 단계를 생략하고 바로 목적지까지 한 번에 대응되도록 하는 것
게임 속 함수 - geim sog hamsu

합성함수의 표기 순서를 헷갈리지 않게 조심해야 하는데, 첫 번째 사용한 함수를 \(f(x)\), 두 번째 사용한 함수를 \(g(y)\)라고 한다면, 첫 번째 사용한 함수가 오른쪽에 배치되도록 해야 한다.

$$ g(f(x))=(g\circ f)(x) $$

항등함수(Identity Function)

  • 전단사 함수에서 똑같은 요소가 대응되는 관계를 항등함수라고 함
  • 기호로는 \(i\)라고 표시
게임 속 함수 - geim sog hamsu
항등함수

역함수(Inverse Function)

  • 역원과 동일한 개념으로, 공역에서 정의역으로 대응되는 관계를 나타낸 함수를 말함
게임 속 함수 - geim sog hamsu
역함수

역함수가 되려면 다음의 조건들을 만족해야 한다.

1. 전사 함수는 역함수가 성립되지 않는다.

게임 속 함수 - geim sog hamsu
전사 함수는 역함수 조건에 성립되지 않음

2. 단사 함수는 역함수가 성립되지 않는다.

게임 속 함수 - geim sog hamsu
단사 함수는 역함수 조건에 성립되지 않음

3. 오로지 전단사 함수일 때만 역함수를 보장 받는다. 

게임 속 함수 - geim sog hamsu
전단사 함수만이 오로지 역함수 조건 성립

함수와 그 역함수의 합성 함수

  • 어떤 전단사 함수와 그 역함수와의 합성 함수는 항등함수가 됨
  • 공역으로 넘어간 대응 관계가 다시 정의역으로 넘어가면서, 원래 자기 자신에게로 대응되기 때문

$$ f\circ f^{-1}=i $$

게임 속 함수 - geim sog hamsu

합성함수의 역함수

  • 다음과 같이 전단사 함수 \(f, g\)가 있다고 가정
  • 두 전단사 함수에 대한 합성함수는 다음 식으로 표기 가능

$$ g\circ f $$

게임 속 함수 - geim sog hamsu
  • 위 합성함수에 대한 역함수는 \(g^{-1}\)을 먼저 실행하고, \(f^{-1}\)을 실행하는 구조를 가질 것임
  • 그렇기 때문에 \(g^{-1}\)가 식에서 오른쪽에 표기가 될 것임

$$ (g\circ f)^{-1}=f^{-1}\circ g^{-1} $$

게임 속 함수 - geim sog hamsu
합성함수의 역함수

마무리

왜 이런 합성함수의 대응관계에 대해서 알아야 하는가?

  • 공간의 변환을 다룰 땐 행렬이란 것을 사용하게 됨
  • 행렬은 하나의 함수에 대응되고, 행렬의 곱셈은 합성 함수에 대응됨
  • 이러한 합성 함수의 성질을 이해하면, 복잡한 행렬 연산의 메커니즘을 이해할 수 있는 기반이 됨