본문으로 건너뛰기
김신건의 로그

오일러 지표 (Euler Characteristic)

· 수정 · 📖 약 2분 · 566자/단어 #algorithm #geometry #euler-characteristic
euler characteristic, 오일러 지표, Euler formula, V-E+F, χ, polyhedron classification

정의

오일러 지표 (Euler Characteristic) χ 는 다면체(polyhedron) 또는 CW 복합체의 위상적 불변량으로, χ = V - E + F 로 정의. V는 꼭짓점(vertex), E는 변(edge), F는 면(face)의 개수. 볼록 다면체에서는 항상 χ = 2 (오일러의 다면체 정리).

문제 상황과 동기

임의의 다면체가 주어졌을 때 V - E + F 를 계산하면 그 다면체가 어떤 위상적 성질을 가지는지 알 수 있음.

  • Naive 접근: 단순히 V, E, F 를 세어 빼기.
  • 핵심 통찰: χ 는 위상 불변량. 구면 위의 그래프는 χ=2, 원환면(torus)은 χ=0. 위상수학에서 genus g 와 χ = 2 - 2g.
  • PS 위치: 평면 그래프 판별 (χ=2), 3D 기하 문제에서 다면체 종류 분류.

시각화

핵심 아이디어

볼록 다면체 (convex polyhedron):  V - E + F = 2
   정육면체: V=8, E=12, F=6 -> 8-12+6 = 2
   정사면체: V=4, E=6, F=4 -> 4-6+4 = 2

평면 그래프 (planar graph):     V - E + F = 1 + C (C = connected components)

원환면 (torus):                 V - E + F = 0

일반화:                         χ = V - E + F = 2 - 2g  (g = genus)

Invariant: 모든 convex polyhedron 은 구면과 위상 동형, 따라서 χ=2. 위상 변화 없이 edge 를 추가/제거해도 χ 불변.

알고리즘

euler_characteristic(vertices, edges, faces):
    return V - E + F

genus_from_chi(chi):
    return (2 - chi) / 2  # if chi is even

평면 그래프의 경우 outer face 를 포함한 F 사용.

구현

// Euler characteristic from V, E, F
#include <bits/stdc++.h>
using namespace std;
int main() {
  int V, E, F;
  cin >> V >> E >> F;
  int chi = V - E + F;
  cout << "chi = " << chi << "\n";
  if (chi == 2) cout << "Sphere / convex polyhedron\n";
  else if (chi == 0) cout << "Torus (genus 1)\n";
  else if (chi == -2) cout << "Double torus (genus 2)\n";
  else cout << "Genus g = " << (2 - chi) / 2 << "\n";
}
stdin
12
0 1
1 2
2 3
3 0
4 5
5 6
6 7
7 4
0 4
1 5
2 6
3 7
결과
V=8, E=12, F=6
chi = 2
Sphere / convex polyhedron

복잡도

항목
V, E, F 카운트O(V + E + F)
χ 계산O(1)
genus 계산O(1)
공간O(V)

변형 / 활용

  • 평면 그래프 판별: V - E + F = 1 + C (연결 성분 C). planar embedding 존재 여부 체크.
  • 3D 모델링: manifold mesh 의 위상 검증. χ=2 면 구면 위상.
  • GIS: 지도에서 지역/경계/꼭짓점 관계 분석.
  • Poincare 공식: 고차원 일반화 (alternating sum of Betti numbers).

함정

1. F 에 outer face 포함

평면 그래프에서 F 는 outer (unbounded) face 를 포함한 모든 face 개수. 빼먹으면 χ 가 1 작아짐.

2. 연결성

공식 V - E + F = 2 는 connected graph 기준. disconnected 면 V - E + F = 1 + C.

3. Non-planar graph

K_5, K_3,3 같은 non-planar 그래프는 평면에 embedding 불가능해 Euler 공식이 성립하지 않음.

BOJ 연습 문제

번호제목정답률링크
BOJ 1707이분 그래프-kokoa-lab
BOJ 2170선 긋기-kokoa-lab

참고

이 글의 용어 (3개)
3D 기하 (Geometry) 기본algorithm
정의 3D 기하 는 3차원 공간 위의 점, 직선, 평면, 벡터를 다루는 분야. PS 에서는 정육면체 / 구 / 원뿔 체적, 3D convex hull, 최근접 점 3D 등이 등장…
평면 그래프 (Planar Graph)algorithm
정의 평면 그래프 (Planar Graph) 는 간선끼리 교차하지 않고 평면에 그릴 수 있는 그래프. 연결된 평면 그래프는 항상 Euler 공식 를 만족한다, 여기서 = 꼭짓점,…
Geometry Basic: 벡터, CCW, 외적, 내적algorithm
정의 기하 알고리즘의 밑바탕. 대부분의 2D/3D 기하 문제는 벡터 연산, 내적/외적, CCW 판정 세 가지의 조합으로 풀립니다. 벡터 2D 벡터: 두 점 $A = (ax, ay…

💬 댓글

사이트 검색 / 명령어

검색

스크롤 = 확대/축소 · 드래그 = 이동 · 0 = 원래 크기 · ESC = 닫기