728x90
반응형
SMALL
알고리즘(Algorithm)
- 주어진 문제를 해결하기 위해 정해진 절차나 규칙의 집합으로, 컴퓨터 과학이나 수학에서 사용되는 개념
- 알고리즘은 입력값을 받아 원하는 결과를 출력값으로 생성하는 일련의 단계적인 절차이다.
알고리즘은 다음과 같은 특징을 갖고 있다:
- 명확성: 알고리즘은 각 단계가 명확하게 정의되어야 한다. 입력값, 출력값, 중간 과정 등이 명확하게 정의되어야 한다.
- 유한성: 알고리즘은 유한한 단계로 수행되어야 한다. 어떠한 경우에도 무한 반복되거나 끝나지 않는 알고리즘은 올바른 알고리즘이 아니다.
- 효율성: 알고리즘은 효율적이어야 한다. 입력값의 크기에 비례하여 적절한 시간 내에 실행될 수 있어야 한다.
알고리즘은 주로 다음과 같은 방식으로 설명된다:
- 의사 코드(Pseudocode): 의사 코드는 프로그래밍 언어의 문법을 따르지 않으면서 알고리즘의 핵심 아이디어와 절차를 자연어나 간단한 구문으로 설명하는 방식이다. 의사 코드는 컴퓨터가 직접 이해할 수는 없지만, 사람이 알고리즘을 이해하고 구현하는 데 도움을 준다.
- 흐름도(Flowchart): 흐름도는 그림으로 알고리즘의 단계와 흐름을 표현하는 방식이다. 다양한 기호와 화살표를 사용하여 시작점, 종료점, 조건문, 반복문 등을 나타낸다. 흐름도는 알고리즘의 구조와 흐름을 시각적으로 이해하기 쉽게 도와준다.
알고리즘은 컴퓨터 과학뿐만 아니라 다양한 분야에서 사용된다. 문제 해결, 데이터 정렬, 검색, 그래프 알고리즘, 최적화, 기계 학습, 인공 지능 등에 적용된다. 알고리즘의 효율성과 정확성은 소프트웨어 및 시스템의 성능에 직접적인 영향을 미치므로, 좋은 알고리즘을 선택하고 설계하는 것이 중요하다.
알고리즘을 요리 레시피 보다 세금 계산에 비유해야 하는 이유
- 요리 레시피는 모호한 설명이 많다.
- 세금 계산은 어떤 것을 어떻게 해야할지 명확하게 수행하는 절차를 정의할 수 있다.
- ex) 양파를 볶으세요 : ‘적당히 잘라서 기름을 두르고 센불에 볶으세요’ 라고 할 수 있지만 ‘5mm X 5mm x 3mm 크기로 자르고 기름을 30ml 두르고 가열온도 800도 후라이팬 표면 온도 150도에서 후라이팬을 어찌저찌 움직이면서 볶으세요’ 라고 정의 내릴 수 없기 때문이다.(할 수 있지만 요리사가 이 모든 과정을 정확히 맞추기는 어렵다)
- ex) 세금 계산 : 세법에 의해 다소 복잡해 질 수 있지만 ‘5000만원 소득에 대해 23% 세금이 나가며, 기부금 700만원으로 인해 소득공제가 발생하여 총 300만원 만 세금을 납부하면 됩니다’ 라고 명확하게 정의 내릴 수 있다.
지능과 상상력이 없는 개체가 수행할 수 있다는 것
- 컴퓨터에게 갑자기 냉장고에 물을 가져오라고 시킬 수 있을까?
- 냉장고가 뭐고 물이 뭔지 가르쳐야한다
- 그럼 냉장고는 어디 있는데?
- 냉장고 까지 어떻게 가야하는데?
- 물이랑 식초랑 있으면 어떻게 구분할건데?
- 물을 몇 N의 힘으로 집어올껀데?
- 냉장고 문은 어떻게 여냐?
- 냉장고 문은 닫고 돌아오냐?
- 센스 있게 컵까지 갔다 줄꺼야?
- 등등 따지고 보면 생각할 거리가 한 두 가지가 아니다.
- 인간은 지능과 상상력으로 본인도 모르게 복잡한 과정을 아주 간단하게 처리하고 있다.
- 컴퓨터한테는 위 모든 과정을 하나의 메서드(물 가져와)로 입력시켜놔야한다.
- (AI 한테 감사하자)
파인만 알고리즘
- 문제를 적는다 > 골똘히 생각한다 > 답을 적는다.
- 파인만(매우 천재)에게만 적용되기 때문에 파인만 알고리즘이다.
- 일화 : 누군가[20] “200마일 길이의 철로의 양쪽 끝에 서 있는 두 대의 기차가 시속 50마일의 속도로 서로를 향해 출발했습니다.이때부터 두 기차가 서로 충돌할 때까지 파리가 시속 75마일의 속도로 두 기차 사이를 왔다 갔다 했습니다. 파리가 이동한 거리는 모두 몇 마일일까요?”라는 질문[21]을 폰 노이만에게 했다. 폰 노이만은 잠시 생각한뒤 150마일이라고 대답했다. 질문을 한 사람은 실망하면서 “역시 당신은 속임수에 걸리지 않는군요. 대개 사람들은 이 문제를 무한급수를 이용해서 풀려고 하지만 그렇게 하면 매우 많은 시간이 걸립니다. 하지만 간단한 논리를 이용해서 파리가 2시간 동안 움직인 거리를 알아내면 금방 풀리죠. 당신은 그렇게 풀어낸 거죠?”[22] 폰 노이만: “아뇨. 무한급수로 풀었는데요.”
- 천재인지 살아있는 컴퓨터 인지, 누군가는 그의 머리속에 운동장만한 화이트 보드가 있다고 비유했다.
728x90
반응형
LIST
'CS > 1일 1로그 100일 완성 IT 지식' 카테고리의 다른 글
20로그 - 10억 개 전화번호에서 이름 찾기 : 이진 검색 (0) | 2023.06.15 |
---|---|
19로그 - 반에서 가장 키 큰 사람 찾기 : 선형 알고리즘 (0) | 2023.06.02 |
16로그 - 슈퍼컴퓨터부터 사물인터넷까지 (0) | 2023.05.26 |
15로그 - 캐시가 뭔가요? (0) | 2023.05.25 |
14로그 - 프로세서는 무조건 빠른 게 좋을까? (0) | 2023.05.25 |