본문 바로가기
02. AI& Robotics

알고리즘(algorithm)이란?

by Yunnie_ 2021. 3. 14.
반응형

알고리즘은 문제 해결을 위한 단계들을 체계적으로 명시한 것을 의미한다.

 

Photo by Michael Dziedzic on Unsplash

 

알고리즘이란 어떠한 문제를 해결하기 위한 일련의 절차나 방법을 공식화한 형태로 표현한 것을 의미한다. 알고리즘은 9세기 페르시아의 수학자인 무함마드 알콰리즈미의 이름을 라틴어화한 알고리스무스(Algorismus)에서 유래한 표현이다. 유한성을 가지며, 언젠가는 끝나야 하는 속성을 가지고 있다. 문제 해결을 위해 여러 개의 후보 알고리즘 중, 정확성과 효율성 등을 평가한 후에 최적의 알고리즘을 선택한다. 알고리즘은 연산, 데이터 진행 또는 자동화된 추론을 수행한다.

 

알고리즘의 조건

  • 입력 : 외부에서 제공되는 자료가 0개 이상 존재한다.
  • 출력 : 적어도 2개 이상의 서로 다른 결과를 내어야 한다.(즉 모든 입력에 하나의 출력이 나오면 안 됨)
  • 명확성 : 수행 과정은 명확하고 모호하지 않은 명령어로 구성되어야 한다.
  • 유한성(종결성) : 유한 번의 명령어를 수행 후(유한 시간 내)에 종료한다.
  • 효율성 : 모든 과정은 명백하게 실행 가능(검증 가능) 한 것이어야 한다.

 

알고리즘 연구 분야

  • 고안 : 완벽한 자동화를 통한 알고리즘의 개발은 거의 불가능하다. 따라서 이미 증명된 유용한 알고리즘들을 습득함으로써 보다 유용한 알고리즘을 개발하는데 그 의미가 있다.
  • 검증 : 고안된 알고리즘이 합당한 입력값에 대하여 올바른 결과를 계산해 내는지를 밝히는 절차가 필요하다. 알고리즘 검증은 고안된 알고리즘이 프로그래밍 언어와는 독립적으로 올바르게 작동할 수 있음을 보여주는 데 그 목적이 있다.
  • 분석 : 고안된 알고리즘을 실행하기 위해 필요한 실행시간과 필요로 하는 기억장치를 결정하는 것이다.
  • 테스트 : 디버깅, 성능 분석

 

좋은 알고리즘의 분석 기준

  • 정확성 : 적당한 입력에 대해서 유한 시간 내에 올바른 답을 산출하는가를 판단.
  • 작업량 : 전체 알고리즘에서 수행되는 가장 중요한 연산들만으로 작업량을 측정. 해결하고자 하는 문제의 중요 연산이 여러 개인 경우에는 각각의 중요 연산들의 합으로 간주하거나 중요 연산들에 가중치를 두어 계산
  • 기억 장소 사용량 : 수행에 필요한 저장 공간
  • 최적성 :그 알고리즘보다 더 적은 연산을 수행하는 알고리즘은 없는가? 최적이란 가장 '잘 알려진' 이 아니라 '가장 좋은'의 의미이다
  • 복잡도

 

생활 속의 알고리즘

기초적인 수학 연산, 라면 조리법, 하루의 일정 계획, 집에서 회사로 가는 길 찾기 등

 


 

Reference

 

알고리즘

위키백과, 우리 모두의 백과사전. 알고리즘(영어: Algorithm 앨거리듬[*], 영어 발음: /ˈælɡəˌɹɪðəm, ˈælɡəˌɹɪðm̩/ )은 수학과 컴퓨터 과학, 언어학 또는 관련 분야에서 어떠한 문제를 해결하기

ko.wikipedia.org

 

알고리즘의 정의 - 프로그래밍 입문

알고리즘(라틴어, 독일어: Algorithmus, 영어: algorithm )이란 어떠한 문제를 해결하기 위한 여러 동작들의 모임이다. 유한성을 가지며, 언젠가는 끝나야 하는 속성을 가지고 있다. 수학과 컴퓨터 과학

opentutorials.org

 

[Algorithm] 알고리즘 공부 시작 방법 및 순서

초보자 입장에서 알고리즘 공부를 시작하고 싶어서 뭐부터 해야 좋을지 조사하다가, 자료가 좀 모여서 포스트를 작성하게 됐다. 완전 심도 있게 학습한다기보단 공부할 것 체크리스트 정도가

blog.yena.io

 

반응형