📚이산수학

이산수학은 이산적인 수학 구조에 대해 연구하는 학문입니다. 이산이라는 개념은 연속적이지 않은 상태를 나타냅니다. 이산수학과는 반대로 연속적인 수학구조에 대해 연구하는 수학을 연속수학이라고 합니다.

  • 아날로그: 연속적
  • 디지털: 이산적



📚모델링과 추상화

  • 도구: 수학의 정의, 정리, 계수, 상수항, 변수 등
  • 기법: 근의 공식, 인수분해, 가감법, 대입법 등
  • 방법론: 문제 해결을 위해 적합하게 사용할 기법. 부정 방정식의 해법, 해의 존재 가능성 등

📄모델링

  • 수학적 모델링: 도구, 기법, 방법론을 이용해 실생활의 문제를 수학적 모델로 변화시키는 것
  • 데이터 모델링: 실생활의 문제를 컴퓨터의 영역으로 옮기는 과정

📄추상화

  • 추상화: 문제 해결을 위해 필요한 핵심 내용만 남기고 관련이 없는 내용을 제거하여 문제를 단순화 시키는 것




📚알고리즘 언어

문제를 해결하기 위해 알고리즘이라는 것을 이용하여 기술합니다.
알고리즘을 명확하게 표현하기 위해 언어가 필요한데 우리가 일반적으로 사용하는 자연어는 여기에 적합하지 않습니다. 한 문장이 여러 형태로 해석될 수 있기 때문입니다.
따라서 아래 세 가지 언어를 알고리즘 언어로 생각해 볼 수 있습니다.


📄프로그래밍 언어

컴퓨터의 작동을 기술한 언어입니다. 아래의 문제점들 때문에 알고리즘을 기술하는데 잘 사용하지 않습니다.

  1. 컴퓨터를 작동하기 위한 동작을 세밀하게 지시하므로 알고리즘의 핵심이 잘 드러나지 않습니다.
  2. 중요하지 않은 부차적인 표현에 신경을 써야합니다.
  3. 통일된 언어가 존재하지 않습니다.


📄순서도

알고리즘을 도식화하여 나타냅니다. 도식화하여 그림으로 전달할 수 있다는 장점이 있지만 제어 구조를 표현하는데 너무 많은 자유를 제공하기 때문에 알고리즘을 정의하는데 좋은 도구로 여겨지지 않습니다.


📄의사코드

일반적인 언어로 프로그래밍 언어를 흉내 내어 작성한 코드를 말합니다. 수도코드(pseudo code)라고도 합니다.
모호성이 있는 부분은 프로그래밍 언어의 문법을 채용해서 명확하게 기술하고, 구체적으로 표현하지 않아도 되는 부분은 자연어를 통해 설명식으로 표현합니다.

의사코드 예시

1
2
3
4
5
6
7
8
9
10
11
// x에 1을 할당
x  1;

// x가 0보다 크면 pos출력
if( x > 0) print "pos";

// x를 1, 2, 3 차례로 출력
for x  1 to 3
{
  print x;
}




📚이산수학의 응용 분야


이산수학 주제 컴퓨터 응용 분야
논리 전문가 시스템
증명 프로그램의 효과성 및 효율성 입증
집합론 계산이론, 데이터베이스
행렬 컴퓨터 그래픽스, 기계학습
관계 관계형 데이터베이스
함수 컴퓨터 언어
부울대수 계산이론, 디지털 논리회로
그래프 자연어 처리, 네트워크
트리 자료 탐색, 네트워크, 데이터베이스, 회로망 설계
조합이론 계산이론
정수론 정보 보안
오토마타 및 형식 언어 계산이론, 컴파일러, 프로그래밍 언어


Leave a comment