컴퓨팅 사고력과 수학 문제를 풀며 키우는 문제 해결 방법이 어딘가 모르게 닮았다고요? 실제로 컴퓨팅 사고력을 평가하는 대회인 한국 정보올림피아드 경시대회 문제 중 일부는 수학 문제라고 해도 어색하지 않습니다. 또 세계수학자대회에서 필즈상과 함께 주는 네반리나상은 수학 문제를 푼 컴퓨터 과학자에게 줍니다. 수학과 컴퓨팅 사고력 사이에 뭔가가 있는 게 분명해 보이는데, 대체 어떤 관계가 있을까요?
이 문제는 수학일까요, 정보과학일까요? 둘 중 어느 분야라고 해도 이상하지 않다고 여길 거예요.
점과 선으로 이뤄진 그래프를 다루는 문제는 수학과 컴퓨터 과학 두 분야에서 모두 중요하게 연
구하기 때문입니다. 대표적으로 ‘여행하는 외판원 문제’가 있지요.
외판원 문제는 여러 마을이 있고 한 마을에서 다른 마을로 이동하는 비용이 모두 정해져 있을 때, 모든 마을을 한 번씩만 방문하고 처음으로 돌아오는 최소 비용의 이동 방법을 구하는 겁니다. 수학자와 컴퓨터 과학자 모두 마을의 수가 무한히 많을 때의 해결법과 알고리듬 처리 속도 개선을 위해 연구하는 것이지요.
프로그래머도 관심이 많습니다. 예를 들어 배달 회사의 경우 최대한 많은 집에 최소 시간과 비용으로 배달할 수 있는 경로 알고리듬을 개발합니다.
수학 공식도 알고리듬!
꼭 그래프 문제가 아니더라도 소프트웨어 영재를 발굴하는 한국 정보올림피아드 경시 부문 시험에는 수학 문제로 보이는 문제가 많이 나옵니다. 이 대회가 수학적 지식과 논리적 사고력을 필요로 하는 알고리듬과 프로그램 작성 능력을 평가하기 때문이에요.
알고리듬이란 어떤 문제를 해결하기 위해 일련의 절차를 공식화한 것 입니다. 우리는 문제를 읽고 수학 공식을 세운 뒤 공식을 풀어 답을 구합니다. 이때 세운 수학 공식도 알고리듬입니다. 즉 어떤 문제가 됐든 컴퓨터가 잘 이해할 수 있도록 간단하게 공식화한 게 알고리듬이다 보니, 알고리듬을 잘 만드는지 평가할 때 수학 문제가 단골로 등장하는 것이지요. 참고로 미국 매사추세츠공과대학교(MIT)에서 만든 ‘줄리아’라는 언어는 우리가 아는 수학 기호로 수식을 입력하면 특별한 코드 없이도 답을 구해 줍니다.
본래 컴퓨터를 개발한 목적이 수학 문제를 계산하기 위해서여서 그런지 몰라도 수학 문제 중에는 컴퓨터로 해결할 수 있는 것도 많습니다. 예를 들면 아주 큰 수를 계산해야지만 답을 알 수 있는 문제들입니다. 지금까지 밝혀진 소수보다 더 큰 소수를 찾거나 어떤 수가 소수인지 아닌지 판별하는 판정법은 알고리듬을 만들어 컴퓨터가 계산하도록 하고 있지요.
지도에서 이웃한 구역은 다른 색으로 칠할 때 필요한 최소 색이 4색뿐이라는 ‘4색 정리’는 수학 문제를 컴퓨터로 해결한 첫 번째 사례예요. 물론 1976년 당시 수학자들은 수학 문제를 컴퓨터로 푼 것을 받아들이기 힘들어 했습니다. 컴퓨터가 맞게 풀었는지 수학자가 검증할 수 없으니 문제를 풀었다고 인정하지 않으려 했지요.
하지만 현재는 이와 같은 사례가 워낙 많아 컴퓨터로 수학 문제를 푸는 젊은 컴퓨터 과학자나 수학자에게 주는 상도 있습니다.
게임이론 문제 푼 컴퓨터 과학자
바로 핀란드 수학자 롤프 네반리나를 기리는 ‘네반리나상’입니다. 나이 제한부터 4년에 한 번 꼴로 세계수학자대회 개막식에서 주는 것까지 필즈상과 꼭 닮았지만, 수학 문제를 컴퓨터를 이용해 푼 사람에게 줍니다. 올해는 콘스탄티노스 다스카라키스 MIT 컴퓨터학과 교수가 영예를 안았습니다.
다스카라키스 교수는 관심 분야는 게임이론입니다. 서로 경쟁하는 상황을 게임이라고 보고, 서로 자신의 이익을 위해 최선을 다해 게임에 참여할 때 매 순간 어떻게 행동해야 더 이득이 되는지 수학적으로 연구하는 겁니다. 미국의 천재 수학자 존 내시는 어떤 게임 상황에서도 서로가 자신의 선택을 바꾸지 않는 균형 상태가 일어난다는 ‘내시 균형’이라는 개념을 만들어 노벨 경제학상을 받기도 했습니다. 다스카라키스 교수는 이 내시 균형이 일어나기까지 얼마나 많은 상황이 펼쳐지는지 복잡성을 계산했고, 그 다음 상황의 수학적 구조와 계산의 복잡성을 밝혀 네반린나상을 받았습니다.
어떤 화가가 경매장에서 그림을 판매하는 상황을 떠올려 봅시다. 두 그림을 경매에 부칠 때, 어떤 방법을 이용해야 높은 가격에 낙찰 받을 수 있을까요? 이때 현명한 화가는 두 그림을 하나로 묶어서 판매하려고 할 겁니다. 두 그림을 묶어 팔면 두 그림 중 하나라도 원하는 사람들 사이에서 경쟁이 붙게 됩니다. 결국 하나씩 따로 팔 때보다 훨씬 더 높은 가격에 낙찰 받을 수 있게 되지요. 만약 수많은 사람이 참가하고, 그림의 개수가 더 많아지는 경우에는 어떨까요? 요소가 많아질수록 문제는 더 복잡해지고 계산해야 하는 양이 폭발적으로 늘어나기 때문에 해결에 난항을 겪게 되겠죠. 다스카라키스 교수는 이럴 때 얼마나 복잡한 상황이 벌어지는지를 밝힌 겁니다.
우리도 수학 문제 컴퓨터로 풀어보자!
그런데 수학자나 컴퓨터 과학자만 수학 문제를 컴퓨터로 풀 필요 있나요? 초중고 학생도 수학 시
간에 컴퓨터를 이용해 문제 풀면 안 되나요? 물론 되죠. 요즘은 수학 교육에 컴퓨팅 사고력을 이용하려는 움직임이 나타나고 있습니다.
김준석 고려대학교 수학과 교수는 중학생도 풀수 있는 수학 문제를 ‘옥타브’ 프로그램을 이용해 해결하는 방법을 소개하는 책 ‘코딩수학’을 시리즈로 내고 있습니다. 김 교수는 메르스 같은 전염병이 어떻게 퍼지는지 예측하고, 내비게이션이 최적의 길을 찾는 원리를 찾으며, 화질이 좋지 않은 이미지에서 정보를 추출하는 연구를 하는 응용수학자입니다. 콘서트장에서 화장실을 배치하는 문제처럼 실제 생활과 관련 있을 법한 문제도 수학적으로 모델링하지요. 즉 각종 수학 문제를 컴퓨터의 도움으로 많이 해결하고 있습니다. 그렇다 보니 누구보다 컴퓨팅 사고력의 중요성을 잘 알고 있습니다.
김 교수는 “일상 생활에서 일어나는 많은 일을 수학 모형으로 해결할 수 있다”고 말하면서도, “하지만 계산이 많아지면 한계가 있으므로 이때 컴퓨터를 이용해 풀면 쉽고 편리하다”라고 설명했습니다.
컴퓨팅 사고력에 대해서 감 잡으셨나요? 우리 생활에서 벌어지는 아주 사소한 문제부터, 난민과 세대 갈등 같은 인류 문제까지 우리 주변에는 정답이 없지만 반드시 해결해야 할 문제가 매우 많습니다. 이런 문제를 해결하는 데 큰 도움이 될 컴퓨팅 사고력, 수학동아 SW 섹션과 함께 길러보는 건 어떨까요?