Knowledge/Math

[이산수학 - 1강] 이산수학은 무엇이며 왜 배우는 걸까?

TakeKnowledge 2020. 5. 17. 14:51
반응형

한국방송통신대학교 이산수학 강의 1강을 듣고 공부한 내용을 정리한 포스팅입니다

1강의 학습목표

  • 이산적인 데이터와 연속적인 데이터를 구분할 수 있다.

  • 문제 해결과정에 사용되는 용어들을 도구, 기법, 방법론으로 구분할 수 있다.

  • 추상화의 의미를 이해할 수 있다.

  • 알고리즘을 기술하기 위한 의사코드의 사용법을 이해하고 올바르게 사용할 수 있다.

- 이산수학 ( discreate mathmatics ) 이란?

  • 이산적인 ( < -> 연속적인 ) 수학구조에 대해서 연구하는 학문

  • 이산적 데이터를 처리 ( ex: 아날로그 시그널, 데이터 - 변환 -> 디지털 시그널, 데이터 ) 하기 위해 필요한 수학

그래프로 표현한 연속적인 집합과 이산적인 집합

이산수학의 주요내용

 

논리, 증명, 집합, 행렬, 관계, 함수, 부울대수, 그래프, 트리, 조합이론, 알고리즘, 오토마타 및 형식 언어

 

학습 목적

  • 문제해결 방법을  모델링하고 구현하는 과정에서 사용되는 수학구조를 이해하고 활용하기 위해
  • 수학적 추론 기법을 익히기 위해
  • 새로운 개념을 체계화시키고 표현할 수 있는역량을 함양하기 위해

- 수학의 도구,  기법,  방법론

도구 :  정의, 정리

기법 : ex) 대입법, 가감법, 근의 공식 ...

방법론 : 상황에 따라 사용할 기법을 선택하는 것

 

- 추상화

위와 같은 도구, 기법, 방법론을 활용해 문제를 해결하려면 우선 실생활의 문제를 수학적 모델로 변화시켜야 한다. 이러한 과정을 수학적 모델링이라고 한다. 

 

  • 수학적 모델링을 이용한 문제 해결 과정 : 문제 -> 추상모델 -> 변형된 모델 -> 문제의 해결책 

만약 실생활의 문제를 컴퓨터로 해결하려고 한다면 문제를 컴퓨터의 영역으로 옮기는 과정이 필요하다. 이를 정보 모델링 이라고 한다.

 

  • 정보 모델링을 이용한 문제 해결 과정 : 문제 -> 정보 -> 처리 -> 문제의 해결책 

이 과정에서 사용되는 것이 추상화다. 추상화란 문제와 관련된 핵심 내용만 남기고 관련 없는 내용을 제거하여 문제를 단순화 시키는 과정이다. 이를 잘 활용하면 복잡한 실생활의 문제도 수학적 도구로 표현하고 수학적 기법을 통해 해결할 수 있다.

 

- 의사 코드

알고리즘

 

어떠한 문제를 해결하기 위한 단계적인 컴퓨터 명령어들의 집합을 알고리즘이라고 한다

 

알고리즘의 표현

 

  1. 컴퓨터 프로그래밍 언어
  2. 순서도 ( flow chart )
  3. 의사 코드
  • 컴퓨터 프로그래밍 언어 : 동작을 세밀하게 지시할 수 있지만 프로그래밍 언어의 문법 등 부차적인 표현에 신경써야 해서 알고리즘의 핵심요소가 잘 드러나지 않을 수 있다.
  • 순서도 : 작동 방식을 도식화할 수 있지만 내용이 복잡할 경우 표현하기가 어렵다
  • 의사 코드 : 모호한 부분은 프로그래밍 언어의 문법을 채용하고, 구체적으로 표현할 필요가 없는 부분은 자연어를 통해 설명하여 알고리즘의 작동방식을 표현하는 용도로만 사용하는 유사 프로그래밍 코드.

할당문과 제어문

 

의사코드에서 사용되는 명령어는 할당문과 제어문으로 나누어진다

 

  • 할당문

값을 저장하기 위한 구문

 

  • 제어문 

알고리즘의 흐름을 제어하는 구문 순차문과 조건문, 반복문으로 나누어진다.

 

  • 순차문 : 위에서부터 아래로 순차적으로 실행되는 구문
  • 조건문 : if~else, switch
  • 반복문 : for, while , foreach
반응형