이산수학

이산수학(離散數學, Discrete mathematics)은 이산적인(Discrete) 대상들을 다루는 수학이다. 이산적이라는 함은 離(떠날 리), 散(흩을 산)이란 한자에서 유추할 수 있듯이 수 체계가 연속적이지 아니하고 드문드문 떨어져 있다는 뜻이다.

소개[편집 | 원본 편집]

이산수학은 다른 수학분야들이 주로 연속적인 대상(주로 실수)을 다루는 데 비해, 이산적인 대상을 다루는 것이 특징이다. 예를 들어 실수는 수직선상에서 연속적이다. 어떠한 두 실수를 고르더라도 그 사이에 또다른 실수가 존재하기 마련이다. 그러나 정수의 경우 두 정수 사이에 다른 정수가 존재하지 않을 수 있다. 이산수학은 이와 같은 자연수, 정수, 혹은 극단적으로는 0과 1을 다룬다.

세부적인 것에는 다음과 같은 것들이 있다.

세는 방법

점화식과 생성함수

그래프 이론

학부과정에서는 일반적으로 논리학도 이산수학을 가르칠 때 함께 가르친다.

응용[편집 | 원본 편집]

이산수학이 가장 적극적으로 활용되는 분야는 단연 컴퓨터 과학이다. 그 이유는 크게 세 가지로 볼 수 있다.

첫번째 이유는 컴퓨터 자체가 모든 데이터를 연속적으로 처리할 수 없고 이산적으로 처리하기 때문이다. 컴퓨터의 모든 자료형은 정수형과 실수형으로 나뉘며 실수의 표현 역시 유효숫자와 정밀도의 조합으로 나타낸다. 따라서 이산적인 세계를 표현하는 이산수학은 컴퓨터 과학도에게 필수 역량이라 할 수 있다.

두 번째 이유는 컴퓨터 프로그램의 가장 기본적인 구조인 제어문, 반복문, 서브루틴의 개념은 논리적인 사고를 필요로 하는데, 이런저런 증명을 요하는 이산수학을 배우는 것이 그러한 사고력을 함양하는데 상당히 도움이 되기 때문이다. 사실 실무에서 단순히 응용 프로그램을 하나 만드는데 이산수학이 직접적으로 많이 쓰이는 것은 아니지만, 이산수학으로 단련되어 논리적 사고를 할 수 있는 프로그래머가 더 높은 생산성과 훌륭한 성과물을 보일 것은 자명하다.

또 다른 이유는, 조금만 이론적이고 추상적인 분야로 파고들어가도 이산수학의 이론들이 실제로 사용되기 때문이다. 예를 들어 그래프 이론은 실제로 굉장히 많은 프로그램의 제작에 쓰인다. 이를 보여주는 아주 좋은 예로, 인터넷으로 정보를 주고받을 때 데이터 패킷을 라우터가 전송할 때 가장 효과적인 경로를 찾아내는 라우팅 알고리즘은 다익스트라 알고리즘을 기반으로 설계된 것이다. 그런데 이 다익스트라 알고리즘이라는 것이 그래프의 특정 시작점과 도착점 사이를 연결하는 가장 빠른 경로를 찾는 알고리즘이다. 다익스트라 뿐 아니라 굉장히 많은 수의 알고리즘이 그래프 전체를 순회하거나, 그래프 상의 두 지점 간의 최단거리를 찾는 데 사용된다.

이외에 소프트웨어 검증 분야에서도 이산수학은 널리 쓰인다. 대표적으로는 모델 체킹을 들 수 있는데 이 방법은 전체 프로그램을 추상적인 언어로 기술하여 수학적으로 제약조건, 설계와 모순이 없는지 검증하는 기법이다. 이 기법의 경우, 이론적 토대가 되는 이산수학의 범위는 학부과정 전체를 커버하고도 남는다. 이산수학으로 시작해서, 이산수학으로 끝날 정도.

각주