Ⅱ. 문제와 탐색 – 1. 문제와 해결

‘오늘 뭐 먹지?’ 인생은 선택의 연속이라고도 하지요. 우리는 매일 수많은 문제를 마주하고 이를 해결하며 살고 있습니다.

  인공지능 컴퓨터가 사람의 문제를 대신 해결해주면 어떨까요? 인공지능도 사람처럼 문제를 해결할 수 있을까요? 이번 시간에는 인공지능에게 문제를 내봅시다. 그리고 인공지능이 문제를 어떤 방법으로 해결하는지 알아보겠습니다.

1. 이 컴퓨터는 똑똑한가요?

 

  여기 어렵지 않은 수학 문제가 있습니다. 답이 무엇인지 계산하여 보세요!

① 3+5=?

② 9×4=?

③ 16÷2=?

  어렵지 않았지요? 그렇다면 다음 문제는 어떤가요?

325846 × 48576 = ?

  곱셈구구를 할 줄 아는 여러분에게 이 문제는 어렵지 않겠지만 계산하는 데 시간이 조금 걸리겠지요? 사람들은 아마도 종이와 연필이 필요할 거예요. 암산의 천재가 아니라면 말이지요. 하지만 여기 종이와 연필이 없어도 무려 1초 만에 이 식의 답을 구할 수 있는 컴퓨터가 있습니다.

  ‘Chapter1. 인공지능의 기초’에서 알게 된 내용을 떠올려 보세요. 그리고 다음 질문에 대한 답을 곰곰이 생각하여 봅시다.

“이 컴퓨터는 지능이 있다고 말할 수 있을까요?”

“이 컴퓨터는 똑똑하다고 말할 수 있을까요?”

“왜 그렇게 생각합니까?”

  이 컴퓨터는 사람에게 어려운 계산을 아주 쉽고 빠르게 할 수 있습니다. 하지만 많은 사람들은 단순히 계산을 잘 하는 컴퓨터를 ‘지능이 있다.’ 혹은 ‘똑똑하다.’고 생각하지 않습니다. 왜냐하면 이 컴퓨터는 스스로 생각하여 문제를 해결한 것이 아니라 사람이 이미 입력한 규칙을 그대로 수행하는 결과를 보여준 것뿐이니까요. 예를 들어 사람이 먼저 ‘3+5는 8이야.’하고 알려주면 잘 기억해 두었다가 같은 문제가 나왔을 때 재빨리 ‘8’을 보여주는 것입니다.

2. 인간의 지능을 어떻게 흉내 낼 수 있을까요?

  Chapter1에서 우리는 ‘인간의 지능을 흉내 낸 알고리즘’을 인공지능이라고 부르기로 약속 했습니다. 컴퓨터가 지능을 갖게 하려면 먼저 지능이 무엇인지 살펴보아야겠지요. 여러분은 ‘지능’하면 어떤 것이 떠오르나요? 어떤 친구는 생각을 하는 뇌를 떠올릴 수도 있고, 흔히 말하는 지능 지수인 IQ나 문제 해결 능력을 떠올렸을 수도 있습니다. 사전에서는 지능을 다음과 같이 설명합니다.

지능: 새로운 대상이나 상황에 부딪혀 그 의미를 이해하고 합리적인 적응 방법을 알아내는 지적 능력. 쉽게 설명하면, 지능이란 생각하고 이해하여 행동하는 능력.                                                                            [네이버 국어사전]

  사실 지능은 설명하기 어렵고 모호한 개념입니다. 연구자들도 지능의 뜻과 종류를 각각 다르게 정의하고 있습니다. 어떤 연구자는 지능을 사고(생각) 및 학습과 관련된 능력이라고 생각하고 또 다른 연구자는 신체운동이나 음악과 같은 실제적인 능력도 지능에 포함된다고 보기도 한답니다. 그렇다면 인공지능을 만들고자 하는 컴퓨터 과학자들은 ‘지능’을 무엇이라고 생각했을까요? 만약 말랑하고 주름진 뇌 덕분에 인간이 고등 지능을 갖게 되었다면, 뇌를 똑 닮은 기계를 만들어 인공지능을 만들어 낼 수 있지 않을까요? 하지만 현대 과학이 뇌의 비밀을 다 밝히지 못했기 때문에 아직까지 이를 실현하기는 어려워 보입니다.

  그래서 컴퓨터 과학자들은 인간을 관찰하였습니다. 사람은 경험한 적 없는 새로운 문제에 맞닥뜨려도 문제를 곧잘 이해하며 해결 방법을 고안하고 행동으로 실천하곤 합니다. 컴퓨터 과학자들은 지능이 무엇인지 설명하기는 어렵지만, 만약 컴퓨터가 문제를 이해하고 방법을 찾아 해결한다면 컴퓨터도 지능이 있다고 말할 수 있다고 생각했습니다. 컴퓨터 과학자들은 일상의 문제를 컴퓨터가 해결할 수 있는 문제로 재구성하였습니다. 또 다양한 문제 해결 방법을 고안하였습니다. 어떤 문제와 해결 방법이 있는지 함께 살펴봅시다.

3. 문제와 탐색은 무엇입니까?

  여러분은 오늘 어떤 문제를 해결 했나요? 여기서 문제란 교과서 속 수학 문제나 난처한 일 또는 말썽을 뜻하는 것은 아닙니다. 친구와의 약속 시각 정하기, 주머니 사정을 고려하여 점심 메뉴 정하기, 식당까지 가는 최고의 길 찾기 등 아주 일상적인 일들도 모두 문제이지요. 컴퓨터 과학에서는 이렇게 해결이 필요한 일문제(Problem)라고 부릅니다. 우리는 알게 모르게 아주 많은 문제를 마주하고 해결하며 살아가고 있습니다.

   문제의 해답을 찾기 위해 우리는 여러 선택지를 찾아보고 비교합니다. 그리고 문제를 해결할 수 있는 방법을 고릅니다. 이러한 과정을 ‘탐색(Search)’이라고 합니다. 또 탐색을 거쳐 찾은 해답을 ‘문제의 해(Solution)’라고 합니다.

  다른 예시를 통해 문제와 탐색을 알아보겠습니다. 우리가 일상에서 가장 쉽게 경험할 수 있는 문제는 길 찾기입니다. 여러분이 동네 놀이터에서 친구와 만나기로 했다면, 집에서 놀이터까지 가는 길을 여러 가지 방법을 떠올려보고 가장 빠르고 좋은 길을 선택할 것입니다.

  여러분이 친구와 만나기로 한 약속장소가 한 번도 가본 적 없는 낯선 곳이라면, 가장 먼저 무엇을 해야 할까요? 아마도 여러분은 스마트폰이나 인터넷으로 목적지까지 가는 길을 검색할 것입니다.(약속 장소를 바꾸지 못한다면 말이지요.)

  길 찾기 어플리케이션을 통해 원하는 목적지까지 빠르면서도 효율적으로 갈 수 있는 길을 안내받을 수 있습니다. 여러 가지 경로를 비교한 후 가장 좋아 보이는 경로를 고릅니다. 컴퓨터가 문제를 해결하는 방법 중 하나로, 가장 좋은 해답(해)를 찾기 위해 여러 가지 답을 찾아보는 것을 탐색(Search)이라고 합니다.

문제: 집에서 약속 장소까지 어떤 길로 갈까?

탐색: 최고의 길을 찾기 위해 목적지로 가는 길을 모두 찾아보자!

문제의 해: 목적지로 가는 여러 가지 길 중에서 가장 좋아 보이는 길

4. 문제와 탐색의 용어를 알아봅시다. - 초기 상태, 목표 상태

  컴퓨터는 가장 좋은 해답(해)을 찾기 위하여 다양한 탐색 방법을 사용합니다. 컴퓨터의 탐색 방법을 이해하려면 먼저 몇 가지 용어를 알고 있어야 합니다. 다음 그림을 통해 컴퓨터가 탐색 방법으로 문제를 해결하는 과정을 차근차근 따라가 봅시다.

  이번에 컴퓨터가 해결할 문제는 ‘집에서 놀이터로 가는 가장 알맞은 길 찾기’입니다. ‘나’는 아직 집에 있네요. 문제가 주어졌을 때의 상태, 즉 처음의 상태를 초기 상태라고 합니다. 초기 상태는 문제를 해결하기 전의 상태입니다.

  나는 미로와 같은 공간을 거쳐 목적지인 놀이터에 도착하게 될 것입니다. 이 미로 속에는 놀이터까지 갈 수 있는 길도 있지만 어떤 길은 놀이터까지 크게 돌아가는 길일 수도 있고 또 어떤 길은 끝이 막혀 있어 결국 놀이터에 도착할 수 없는 길도 있습니다. 그래도 놀이터까지 가는 길일 수도 있으니 한 번 찾아보아야 겠지요? 앞에서 배웠듯이, 이 과정을 탐색이라고 합니다.

  여러 개의 길을 찾아 본 후에 마침내 목적지인 놀이터까지 가는 최고의 길을 찾았습니다. 이제 ‘나’는 놀이터에 있습니다! 문제에서 원하는 상태, 즉 문제를 해결하고 난 후의 상태를 목표 상태라고 합니다. ‘집에서 놀이터로 가는 길 찾기’에서 아래 문제의 답을 생각해 보세요. 답은 상자에 마우스를 올리거나 상자를 누르면 알 수 있어요.

문제: 

초기 상태: 

목표 상태: 

탐색: 

해: 

5. 미로가 어려우면 어떡하죠? - 복잡도

  사실 집에서 동네 놀이터로 가는 길은 컴퓨터가 찾아주지 않아도 괜찮습니다. 가는 길이 복잡하지 않고 가까워서 여러분도 쉽게 길을 찾을 수 있기 때문이지요. 하지만 인천에서 부산까지 걸어서 가는 길을 찾는다고 생각해 봅시다. 인천에서 부산까지 가는 길을 골목골목 찾아본다고 하면 그 수가 엄청나게 많겠지요? 그렇다면 인천에서 남아프리카 공화국까지 걸어서 가는 길을 탐색하는 것은 어떨까요? 컴퓨터가 길을 탐색하는데 시간도 오래 걸리고 지나온 길과 가보지 않은 길을 기억하는 것도 보다 어려울 것입니다.  

  컴퓨터가 탐색해야 할 공간(미로)이 복잡한 정도를 ‘복잡도’라고 합니다. 이러한 복잡도를 줄이기 위해 컴퓨터는 다양한 탐색 방법을 활용합니다. 탐색 방법을 탐색 알고리즘(Algorithm)이라고 부르기도 합니다. 다음 파트에서 어떤 탐색 방법이 있는지 알아볼까요?

Think Good AI

인공지능을 이용하여 길을 찾거나 문제를 해결하는 생활이 일상화 되고 있다. 이럴 때 필요한 능력은 무엇일까? 어떤 역량을 길러야 할까?

퀴즈

우리의 일상은 문제를 탐색하고 해결하는 과정의 연속이다.

Correct! Wrong!

컴퓨터의 탐색 전략은 한 가지이다.

Correct! Wrong!

컴퓨터의 탐색 방법은 여러 가지가 있다.

다음 중 '집에서 놀이터로 가는 길 찾기' 문제에서 용어와 설명이 바르게 연결된 것은 무엇입니까?

Correct! Wrong!

틀린 경우 '4. 문제와 탐색의 용어를 알아봅시다. - 초기 상태, 목표 상태'를 다시 공부합니다.

참고문헌

1. 이건명, 「인공지능 튜링테스트에서 딥러닝까지」, 생능출판(2018)

2. 미래인재연구소, 초등학교 STEAM 교사용 교재 ‘로봇의 눈으로 길찾기’, 한국과학창의재단(2019)