최근 수정 시각 : 2024-10-25 15:51:10

이론 컴퓨터 과학

''' 이론 컴퓨터 과학
{{{#!wiki style="display: inline-block; font-family:Times New Roman, serif;font-style:italic"'''
{{{#!wiki style="margin: 0 -10px -5px; min-height: calc(1.5em + 5px)"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin: -5px -1px -11px"
<colbgcolor=#a36> 이론
기본 대상 수학기초론{ 수리논리학( 논리 연산) · 계산 가능성 이론 · 범주론 · 집합론} · 이산수학( 그래프 이론) · 수치해석학 · 확률론 통계학 · 선형대수학
다루는 대상과 주요 토픽
계산 가능성 이론 재귀함수 · 튜링 머신 · 람다대수 · 처치-튜링 명제 · 바쁜 비버
오토마타 이론 FSM · 푸시다운 · 튜링 머신( 폰노이만 구조) · 정규 표현식 · 콘웨이의 생명 게임 · 형식언어
계산 복잡도 이론 점근 표기법 · 튜링 기계^ 고전, 양자, 비결정론적, 병렬 임의접근 기계^ · 알고리즘 · 자료구조 · 알고리즘 패러다임( 그리디 알고리즘, 동적 계획법)
정보이론 데이터 압축( 무손실 압축 포맷 · 손실 압축 포맷) · 채널 코딩(채널 용량) · 알고리즘 정보 이론(AIT) · 양자정보과학
프로그래밍 언어이론 프로그래밍 언어( 함수형 언어 · 객체 지향 프로그래밍 · 증명보조기) · 메타 프로그래밍 · 유형 이론 · 프로그래밍 언어 의미론 · 파싱 · 컴파일러 이론
주요 알고리즘 및 자료구조
기초 정렬 알고리즘 · 순서도 · 탐색 알고리즘
추상적 자료형 및 구현 배열^ 벡터^ · 리스트^ 연결 리스트^ · 셋(set)^ 레드-블랙 트리, B-트리^ · 우선순위 큐^, 피보나치 힙^
수학적 최적화 조합 최적화 외판원 순회 문제 · 담금질 기법 · 유전 알고리즘 · 기계학습
볼록 최적화 내부점 방법 · 경사하강법
선형계획법 심플렉스법
계산 수론 및 암호학 밀러-라빈 소수판별법 · Pollard-rho 알고리즘 · 쇼어 알고리즘 · LLL 알고리즘 · 해시( MD5 · 암호화폐 · 사전 공격( 레인보우 테이블) · SHA) · 양자 암호
대칭키 암호화 방식 블록 암호 알고리즘( AES · ARIA · LEA · Camellia) · 스트림 암호 알고리즘(RC4)
공개키 암호화 방식 공개키 암호 알고리즘( 타원 곡선 암호 · RSA) · 신원 기반 암호 알고리즘(SM9)
계산기하학 볼록 껍질 · 들로네 삼각분할 및 보로노이 도형^Fortune의 line-sweeping 알고리즘^ · 범위 탐색^vp-tree, R-tree^ · k-NN
그래프 이론 탐색^ BFS, DFS, 다익스트라 알고리즘, A* 알고리즘^ · 에드몬드-카프 · 크루스칼 알고리즘 · 위상 정렬 · 네트워크 이론
정리
정지 문제 대각선 논법 · 암달의 법칙 · P-NP 문제미해결 · 콜라츠 추측미해결
틀:이산수학 · 틀:수학기초론 · 틀:컴퓨터공학 }}}}}}}}}

이론 컴퓨터 과학 관련 틀
[ 펼치기 · 접기 ]
과학의 범위
{{{#!wiki style="margin: 0 -10px -5px; min-height: calc(1.5em + 5px)"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin: -5px -1px -11px; word-break: keep-all"
좁은 의미 [[자연과학|
자연과학
]] 물리학 · 화학 · 생물학 · 천문학 · 지구과학( 지질학 · 해양학 · 대기과학)
넓은 의미 [[형식과학|
형식과학
]] 논리학 · 수학 · 시스템 과학 · 전산학 · 통계학
[[응용과학|
응용과학
]] 간호학 · 거대과학 · 건축학 · 공학 · 농학 · 임학 · 수산학 · 수의학 · 약학 · 의학 · 치의학 · 동양의학( 한의학, 중의학)1
[[사회과학|
사회과학
]] 심리학 · 사회학 · 정치학( 행정학 · 정책학) · 경제학 · 교육학 · 군사학 · 미디어학 · 법학 · 경영학 · 사회복지학 · 인류학 · 지리학 · 지역학
비과학 [[인문학|
인문학2
]] 언어: 언어학3 / 예술: 문학 · 미술사학 · 음악사학 / 역사: 사학4 · 과학사학 · 고고학4 / 사상: 철학 · 종교학4 · 신학5
변경지대의 과학
비학문 병적 과학 · 쓰레기 과학 · 유사과학( 대체의학) · 반과학
1 대부분의 국가에서는 유사과학의 일종인 대체의학으로 분류하나, 한국, 중국, 북한, 대만 4개국에는 독립된 한의학부가 존재하여 의학사에 준하는 학위를 부여한다.
}}}}}}}}}

형식과학의 일반적 분류
논리학
Logic
수학
Mathematics
통계학
Statistics
시스템 과학
System Science
이론 컴퓨터 과학
Computer Science

수학기초론
Foundations of Mathematics
{{{#!wiki style="margin: 0 -10px -5px; min-height: calc(1.5em + 5px)"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin: -5px -1px -11px"
다루는 대상과 주요 토픽
수리논리학 논리 · 논증{ 귀납논증 · 연역논증 · 귀추 · 유추} · 공리 및 공준 · 증명{ 증명보조기 · 자동정리증명 · 귀류법 · 수학적 귀납법 · 반증 · 더블 카운팅 · PWW} · 논리함수 · 논리 연산 · 잘 정의됨 · 조건문( 조각적 정의) · 명제 논리( 명제 · 아이버슨 괄호 · · · 대우) · 양상논리 · 술어 논리( 존재성과 유일성) · 형식문법 · 유형 이론 · 모형 이론
집합론 집합( 원소 · 공집합 · 집합족 · 곱집합 · 멱집합) · 관계( 동치관계 · 순서 관계) · 순서쌍( 튜플) · 서수( 하세 다이어그램 · 큰 가산서수) · 수 체계 · ZFC( 선택공리) · 기수( 초한기수) · 절대적 무한 · 모임
범주론 범주 · 함자 · 수반 · 자연 변환 · 모나드 · 쌍대성
계산가능성 이론 계산 · 오토마타 · 튜링 기계 · 바쁜 비버 · 정지 문제 · 재귀함수
정리
드모르간 법칙 · 대각선 논법 · 러셀의 역설 · 거짓말쟁이의 역설 · 뢰벤하임-스콜렘 정리 · 슈뢰더-베른슈타인 정리 · 집합-부분합 정리 · 퍼스의 항진명제 · 굿스타인 정리 · 완전성 정리 · 불완전성 정리( 괴델 부호화) · 힐베르트의 호텔 · 연속체 가설 · 퍼지 논리
기타
예비사항( 약어 및 기호) · 추상화 · 벤 다이어그램 · 수학철학
틀:논리학 · 틀:이산수학 · 틀:이론 컴퓨터 과학 · 철학 관련 정보 · 논리학 관련 정보 · 수학 관련 정보 }}}}}}}}}



이산수학
Discrete Mathematics
{{{#!wiki style="margin: 0 -10px -5px; min-height: calc(1.5em + 5px)"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin: -5px -1px -11px; word-break: keep-all"
이론
<colbgcolor=#3CC> 기본 대상 수학기초론( 수리논리학 · 집합론) · 수열 · 조합 · 알고리즘 · 확률
다루는 대상과 주요 토픽
수열 등차수열( 뛰어 세기) · 등비수열 · 계차수열 · 조화수열 · 귀납적 정의( 점화식) · 급수 · 규칙과 대응 · 규칙 찾기 · 피보나치 수열 · 읽고 말하기 수열 · 생성함수
조합 경우의 수( /공식) · 순열( 완전 순열 · 염주 순열) · 치환 · 분할( 분할수) · 최단거리 · 제1종 스털링 수 · 제2종 스털링 수 · 카탈랑 수 · 벨 수 · 라흐 수 · 포함·배제의 원리 · 더블 카운팅 · 조합론
그래프 수형도(트리) · 인접행렬 · 마방진 · 마법진 · 한붓그리기( 해밀턴 회로) · 쾨니히스베르크 다리 건너기 문제
기타 P-NP 문제미해결 · 4색정리 · 이항정리( 파스칼의 삼각형) · 이산 푸리에 변환 · 비둘기 집의 원리 · 상트페테르부르크의 역설 · 투표의 역설 · 에르고딕 가설미해결 · 콜라츠 추측미해결 · 시행착오 ( 예상과 확인) · 불 논리 · 브라에스 역설
관련 문서 논리학 관련 정보 · 수학 관련 정보 · 컴퓨터 관련 정보 · 틀:수학기초론 · 틀:통계학 · 틀:이론 컴퓨터 과학 }}}}}}}}}



[[컴퓨터공학|컴퓨터 과학 & 공학
Computer Science & Engineering
]]
[ 펼치기 · 접기 ]
||<tablebgcolor=#fff,#1c1d1f><tablecolor=#373a3c,#ddd><colbgcolor=#0066DC><colcolor=white> 기반 학문 || 수학( 해석학 · 이산수학 · 수리논리학 · 선형대수학 · 미적분학 · 미분방정식 · 대수학( 환론 · 범주론) · 정수론) · 이론 컴퓨터 과학 · 암호학 · 전자공학 · 언어학( 형태론 · 통사론 · 의미론 · 화용론 · 음운론) · 인지과학 ||
하드웨어 구성 SoC · CPU · GPU( 그래픽 카드 · GPGPU) · ROM · RAM · SSD · HDD · 참조: 틀:컴퓨터 부품
기술 기계어 · 어셈블리어 · C/ C++ · C# · Java · Python · BIOS · 절차적 프로그래밍 · 객체 지향 프로그래밍 · 해킹 · ROT13 · 일회용 비밀번호 · 사물인터넷 · 와이파이 · GPS · 임베디드 · 인공신경망 · OpenGL · EXIF · 마이크로아키텍처 · ACPI · UEFI · NERF · gRPC · 리버스 엔지니어링 · HCI · UI · UX · 대역폭 · DBMS · NoSQL · 해시( SHA · 브루트 포스 · 레인보우 테이블 · salt · 암호화폐) · RSA 암호화 · 하드웨어 가속
연구

기타
논리 회로( 보수기 · 가산기 · 논리 연산 · 불 대수 · 플립플롭) · 정보이론 · 임베디드 시스템 · 운영 체제 · 데이터베이스 · 프로그래밍 언어{ 컴파일러( 어셈블러 · JIT) · 인터프리터 · 유형 이론 · 파싱 · 링커 · 난해한 프로그래밍 언어} · 메타데이터 · 기계학습 · 빅데이터 · 폰노이만 구조 · 양자컴퓨터 · 행위자 모델 · 인코딩( 유니코드 · MBCS) · 네트워크 · 컴퓨터 보안 · OCR · 슈퍼컴퓨터 · 튜링 머신 · FPGA · 딥러닝 · 컴퓨터 구조론 · 컴퓨터 비전 · 컴퓨터 그래픽스 · 인공지능 · 시간 복잡도( 최적화) · 소프트웨어 개발 방법론 · 디자인 패턴 · 정보처리이론 · 재귀 이론 · 자연어 처리( 기계 번역 · 음성인식) · 버전 ( 버전 관리 시스템 · Git · GitHub)
1. 개요2. 분류
2.1. 전산수학 분야
2.1.1. 이산수학, 수치해석학2.1.2. 전산논리학2.1.3. 그래프 이론
2.2. 계산 이론(計算理論, theory of computation)
2.2.1. 계산 가능성 이론2.2.2. 오토마타 이론2.2.3. 계산 복잡도 이론
2.3. 알고리즘/ 자료구조
2.3.1. 컴퓨터 알고리즘 복잡도2.3.2. 수학적 최적화2.3.3. 계산기하학2.3.4. 컴퓨터 대수2.3.5. 계산수론/ 암호학
2.4. 정보이론2.5. 네트워크 이론2.6. 부호이론 (coding theory)2.7. 프로그래밍 언어론2.8. 병렬계산/분산계산2.9. 계산학습이론
3. 여담4. 같이 보기

1. 개요

이론 컴퓨터 과학(Theoretical Computer Science) 또는 이론 전산학은 컴퓨터과학 수학의 한 분야로, 컴퓨터나 계산 과정의 추상적이고 근본적인 원리를 연구하는 학문이다. 컴퓨팅 이론(computing theory)라고도 한다.

2. 분류

2.1. 전산수학 분야

2.1.1. 이산수학, 수치해석학

이산수학 외에도 이산적인 세계외에 연속적인 세계에서의 공학적 이슈도 다룰 수 있는 수치해석학 도 컴퓨팅 이론의 한 분류이다. 사실상 수학 공식을 컴퓨터에서 표현하고 구동시키면 컴퓨터 알고리즘이 되는 것이다.

2.1.2. 전산논리학

전산논리학이란, 기호논리학에 기반해 이를 컴퓨터 언어로 표현한 후 계산할 수 있도록 하는 분야이다.

2.1.3. 그래프 이론

2.2. 계산 이론(計算理論, theory of computation)

2.2.1. 계산 가능성 이론

계산 가능성 이론(computability theory)은 수학기초론과 이론 컴퓨터 과학의 대표적인 분야로, 계산 모형이 어떠한 계산을 할 수 있는지 다루는 것이다.

2.2.2. 오토마타 이론

오토마타 이론는 '자동'을 의미하는 그리스 단어인 Αυτόματα에서 유래한 용어로, 계산 능력이 있는 추상 기계와, 그 기계를 이용해서 풀 수 있는 문제들에 대해 학문적으로 접근한 컴퓨터과학 분야를 일컫는 말이다. 오토마타 이론은 컴퓨터 구조 설계, 컴파일러 설계, 파싱, 정형화 등에 있어서 중요한 역할을 담당하는 이론이다.

A survey for Modeling and Control of Hybrid System[1]에 따르자면 " 오토마톤이란 수학적으로 추상화된 개념으로 쓰일 경우, 자동기계를 기능적인 견지에서 모델화하여, 외부로부터의 자극, 입력신호에 대응하여 내부의 상태가 변화하고, 그리고 신호 또는 동작의 형태로 외부에 출력하는 것으로 ‘대상의 어떤 기능에 주목하여, 입력과 내부 출력 각 신호의 상호관계를 수학모델로 옮기고, 이 모델을 수학적으로 고찰 ·결론을 유도한다. 그리고 이 유도된 결론을 다시 원래의 대상에 꼭 들어 맞춰서 해석한다고 하는 일련의 과정의 일부 또는 전부’ 에 관계되는 것이다." 라고 정의할 수 있다.
2.2.2.1. 형식 언어 이론
형식 언어란 알파벳을 기반으로 형식 문법이라는 규칙에 따라 조합된 언어적 집합을 말한다. 형식 언어 이론은 이러한 형식 언어를 수학적으로 분석하여 통사적 패턴을 연구한다.

2.2.3. 계산 복잡도 이론

계산 복잡도(computational complexity) 이론은, 계산 모형이 각 알고리즘에 대해 갖는 계산 복잡도를 분류하는 분야이다. 계산 가능성 이론은, 그 문제를 컴퓨터가 다룰 수 있는지 평가하지만, 그 결과가 얼마나 빠르게 나올지는 알 수 없다.[2] 계산 복잡도 이론은 이러한 문제를 현실에서 어느 정도의 노력을 들여 풀 수 있는지, 얼마나 간단히 풀 수 있는지 평가 할 수 있도록 한다.

2.3. 알고리즘/ 자료구조

기초적인 알고리즘 및 자료구조들이 이에 해당한다.

2.3.1. 컴퓨터 알고리즘 복잡도

시간복잡도와 공간복잡도 계산 방법이 있다.
2.3.1.1. P-NP 문제
파일:상세 내용 아이콘.svg   자세한 내용은 P-NP 문제 문서
번 문단을
부분을
참고하십시오.

2.3.2. 수학적 최적화

제약 조건 내에서 최댓값 및 최소값을 계산하는 분야로, 이론 컴퓨터 과학의 중요한 분과이다. 최적화 이론이라고도 한다. 일반적으로 이를 푸는 것(조합 최적화)은 알려진 다항 시간 해법이 없어 근사 해법을 구하거나 인공지능, 담금질 기법, 선형계획법, 비선형계획법 등 다양한 기법을 도입한다. 볼록집합 등 다항 시간 해법이 존재하는 경우가 있어, 이러한 경우 별도의 분야가 있다.
2.3.2.1. 기계학습
인공지능의 일종이지만, 이론적으로는 수학적 최적화에 기반해 기계에게 데이터로부터 학습할 수 있도록 하는 가장 효율적인 알고리즘을 개발하는 분야이다. 패턴 인식에 중점을 둔다.

2.3.3. 계산기하학

고전적인 기하학적 문제를 컴퓨터로 표현하고 계산하는 알고리즘을 연구하는 분야부터, 3차원 기하학적 공간이나 모양을 그래픽스 상에 표현하는 것을 연구하는 CAD나 그래픽스 관련 응용 분야까지 존재한다. GIS와도 연관이 있다.

2.3.4. 컴퓨터 대수

컴퓨터로 정수, 실수 등을 정확히 표현하고 계산하기 위한 방법 및 알고리즘을 연구하는 분야. 특정 수식에 여러 변수를 추가하고 계산하여 단순히 값을 도출하기보다 계산된 풀이의 표현을 도출하는데 목적이 있다.[3]

2.3.5. 계산수론/ 암호학

알고리즘 수론이라고도 한다. 컴퓨터를 이용해 정수론과 대수기하학의 문제를 해결하기 위한 알고리즘 연구 분야이다. 암호학과 밀접한 연관이 있다.

2.4. 정보이론

정보이론(information theory)은 디지털 정보의 정량화, 저장, 그리고 의사소통을 연구하는 과학적 연구이다.

2.5. 네트워크 이론

이산수학의 그래프 이론을 응용해 현실 시스템에서의 임의의 연결망들에 대해 연구하는 분야이다.

2.6. 부호이론 (coding theory)

부호 이론은 부호의 속성과 특정 응용 프로그램에 대한 부호의 적합성에 대한 연구이다. 부호는 데이터 압축, 암호화, 오류 감지 및 수정, 데이터 전송 및 데이터 스토리지에 사용된다. 부호는 효율적이고 신뢰할 수 있는 데이터 전송 방법을 설계하기 위해 정보이론, 전기공학, 수학, 언어학 및 컴퓨터과학과 같은 다양한 과학 분야에서 연구된다. 여기에는 일반적으로 중복 제거 및 전송된 데이터의 오류 수정 또는 감지가 포함된다.

2.7. 프로그래밍 언어론

전산언어학 등에 기반해 프로그래밍 언어의 구조와 효율적인 설계, 구현과 분석을 연구하며, 프로그래밍 언어가 같은 의미론적인 부분을 수학적으로 분석하기도 한다.

2.8. 병렬계산/분산계산

병렬 컴퓨팅과 분산 컴퓨팅의 기본이 되는 분야이다.

2.9. 계산학습이론

기계학습의 이론적 방법론을 다루는 분야로, 기계학습의 오류 최소화, 성능 향상 뿐 아니라 알고리즘과 결합해 시간복잡도(즉 학습에 걸리는 시간)를 측정함으로서 학습에 성공했는지 실패했는지를 판정하는 등의 일을 한다. 또 컴퓨터가 제한된 여러 정보를 바탕으로 하나의 사실을 어떻게 추론해내는지에 대한 통계학에 기반한 알고리즘을 개발한다.

3. 여담

학부 졸업 후 일반 기업에 취직을 하는 것이 아닌 석박사 학위 취득을 위한 대학원[4]에 입학하여 세부 전공으로 이론 전산학을 선택할 경우 대학 미적분학, 미분방정식, 통계학, 확률론, 수치해석학, 선형대수학, 이산수학, 정수론은 기본실력으로 깔고 가야 고생이 덜하며 심지어 시뮬레이션 영역까지 접근할 경우 미분기하학, 동역학, 유체역학이 필요할 수도 있다.

4. 같이 보기


[1] Labinaz, Gino, Mohamed M. Bayoumi, and Karen Rudie. "A survey of modeling and control of hybrid systems." Annual Reviews in Control 21 (1997): 79-92. 의 번역본 [2] 체스 바둑같은 2인 유한 턴제 확정 완전 정보 게임의 경우 체르멜로 정리에 의해 필승법이 항상 있고, 경우의 수가 유한하므로 당연히 계산 가능하지만, 판의 크기를 n×n로 일반화하면 NP-Hard임이 알려져 있다. [3] 1990년대 이후로 쓰여진 계산이론물리 논문들에서 10줄이상의 무지막지하게 긴 수식을 본 경우, 이 분야에서 쓰는 프로그램을 통하여 도출한 수식일 가능성이 높다. [4] 슈도코드 수준이 아니라 논문의 절반이 수식으로 도배되어 있는 경우가 태반이다.