시뮬레이션은 무엇일까요? 표준국어대사전은 시뮬레이션을 ‘복잡한 문제나 사회 현상 따위를 해석하기 위해 실제와 비슷한 모형을 만들어 모의적으로 실험해 그 특성을 파악하는 일’로 정의합니다. 전쟁터의 병력을 나무 모형으로 바꿔 지도 위에서 설명하거나, 비행기의 공기 저항을 계산하기 위해 비행기 모형으로 풍동 실험을 하는 것도 시뮬레이션의 일종이죠.
익숙하면서도 낯선, 시뮬레이션
보통 우리는 직접 실험하기 어렵거나 실험이 복잡한 경우에 시뮬레이션을 활용합니다. 시뮬레이션을 잘 활용하면 원자폭탄을 터트리지 않고도 원자폭탄에 대한 지식을 얻을 수 있습니다. 시뮬레이션을 할 때의 핵심은 원본의 특성을 온전히 계승하는 모델을 잘 설계하는 것입니다. 모델이 실제의 특징을 잘 모방할수록 시뮬레이션 결과와 현실은 일치합니다. 반대로 모델이 현실과 멀어질수록 실제 현상을 예측하긴 어려워지죠.
그러므로 우리는 시뮬레이션을 하려는 원본 대상의 특징을 잘 알아야합니다. 과학자들은 여러 현상을 수학 공식의 형태로 변환하고, 원본 대상의 특징을 실제에 가깝게 재현할 수 있는 실험 장비들을 갖춰서 이런 문제를 해결하곤 합니다.
컴퓨터의 발달 덕분에 우리는 많은 실험을 컴퓨터 안에서 시뮬레이션할 수 있게 됐습니다. 시뮬레이션하려는 대상에 적용되는 공식을 컴퓨터에 입력해 그 현상을 컴퓨터상에서 재현하는 실험을 ‘인 실리코 실험(in silico experiment)’이라고 합니다. 실체를 재현하기 힘들거나 아주 추상적인 연구의 경우엔 컴퓨터 시뮬레이션이 필수입니다.
너무 느린 알고리즘은 무의미하다
컴퓨터가 입력된 논리 연산을 수행할 때 요구하는 자원은 크게 두 가지입니다. 바로 시간과 공간이죠. 소수를 판별하는 유명한 알고리즘인 에라토스테네스의 체를 예로 들어보겠습니다. 컴퓨터에 101을 입력하면, 컴퓨터는 소수 판별을 위해 101의 제곱근보다 작거나 같은 수들로 101을 나눠 그 나머지가 0이 되는지 확인할 겁니다. 같은 방법으로 소수를 판별하려고 101의 10배 정도 되는 1003을 컴퓨터에 입력하면, 컴퓨터는 대략 10의 제곱근(루트)인 약 3.16배 많은 수로 1003을 나눠서 소수 여부를 확인해야합니다. 이와 같이 입력값이 N배 증가할 때 시간이 제곱근 N배로 증가하는 알고리즘을 ‘시간복잡도가 O(루트 N )’(빅오 표기법에 따름)이라고 표현합니다. 한편 공간복잡도라는 개념도 있습니다. 공간복잡도는 알고리즘이 요구하는 입력값에 따른 저장 공간의 크기 변화를 나타냅니다.
시간복잡도와 공간복잡도가 보여주는 알고리즘의 효율성 문제는 오랜 화두입니다. 현재 가장 널리 알려진 암호체계인 RSA도 큰 합성수의 소인수분해가 두 소수의 곱셈 속도보다 훨씬 느리다는 점을 이용합니다. 이 알고리즘의 효율성 문제는 양자역학을 컴퓨터로 시뮬레이션할 때 가장 크게 부각됩니다.
양자역학적인 효과의 지배를 받는 미시 상태에서는 입자가 곧 파동이고, 파동이 곧 입자입니다. 또한 한 입자가 동시에 여러 상태의 중첩으로 존재할 수도 있죠. 미시 상태의 입자를 시뮬레이션하려면 이 각각의 상태가 얼마나 중첩됐는지에 대한 정보를 저장해야 합니다. 이때 상태의 개수가 입자의 수에 기하급수적으로 비례해 증가한다는 점이 가장 큰 문제입니다.
이는 곧 어떤 분자 하나를 시뮬레이션하는 데 1MB(메가바이트)가 필요하다면, 그 분자에 입자가 하나 추가되면 2MB, 입자가 또 하나 추가되면 4MB가 필요하다는 뜻입니다. 예를 들어 카페인(C8H10N4O2)에는 총 160개의 오비탈이 있는데, 이 정보를 모두 저장하려면 2의 160제곱(약 10의 48제곱) 개의 숫자를 저장할 공간이 필요합니다. 2025년 경 지구상의 데이터를 모두 합하면 10의 24제곱 바이트 정도일 것이라고 하는데, 그 양의 제곱만큼 숫자를 저장할 수 있어야 분자 하나를 계산할 수 있다는 뜻이죠.
하지만 이토록 불가능해 보이는 양자역학 시뮬레이션은 OLED나 신소재 등의 첨단 연구에 반드시 필요합니다. 따라서 과학자들은 이미 있는 컴퓨터의 시뮬레이션 속도를 더욱 끌어올리거나, 양자역학 모델 자체를 보다 단순화시켜서 계산량 자체를 줄이는 식으로 효율 문제와 싸우고 있습니다. 이런 접근으로는 문제의 규모가 조금만 더 커지거나 복잡해지면 다시 풀 수 없게 되므로 임시방편에 지나지 않습니다.
파인만은 이 논문에서 현재 컴퓨터의 구조적 한계가 이런 현상의 근본적 원인이라고 지적하고 있습니다. 바로 정보를 저장하고 수정하는 컴퓨터의 방식 자체가 완전히 혁신돼야만 시간복잡도의 한계를 개선할 수 있다는 겁니다.
양자를 정보의 저장 단위로 전환시킨 파인만
파인만은 양자적 성질을 가진 매체가 기본 단위인 컴퓨터를 만들면, 입자 수에 따라 폭증하는 계산을 처리할 수 있다고 주장했습니다. 미시 입자의 상태 개수가 입자 개수에 기하급수적으로 비례해 증가한다면, 이 미시 입자의 상태를 정보의 기본 단위로 사용하자는 발상이 이 논문의 결정적 의의입니다.
이 논문을 쓸 때 파인만은 미시 입자를 원하는 상태로 유지, 조작하는 것은 당시 기술력으로는 어렵다고 봤습니다. 하지만 현재는 자기장 가운데 갇힌 이온이나 극저온 환경의 초전도체 같은 양자 현상을 정밀 제어하는 기술이 발달해, 양자 상태를 정보의 단위로 사용할 수 있게 됐죠. 두 가지 상태의 중첩으로 존재 가능한 정보의 기본 단위를 큐비트(qubit)라고 합니다.
양자컴퓨터는 양자역학 문제로 환원할 수 없는 문제는 풀 수 없다는 단점을 가지고 있기에 전자식 컴퓨터를 온전히 대체할 수는 없습니다. 근래 많은 과학자는 전자식 컴퓨터와 양자 컴퓨터를 함께 사용하는 알고리즘을 만들어 다양한 문제를 푸는 시도를 하고 있습니다.
전자식 컴퓨터와 양자컴퓨터의 하이브리드
오늘날 양자컴퓨터는 불완전합니다. 동시에 약 50개의 큐비트를 운용하는 것이 고작이고, 큐비트에 너무 많은 정보를 입력하면 저장된 정보가 흐트러져서 결과의 오차가 커진다는 치명적인 단점도 있습니다. 이런 불완전한 양자컴퓨터를 ‘NISQ(Noisy Intermediate-Scale Quantumcomputer)’라고 합니다.
오랫동안 안정성을 과시했던 현재의 RSA 암호 체계를 위협하는 소인수분해 알고리즘을 비롯한 대다수의 양자 알고리즘은 매우 안정적인 큐비트가 1000개 가량 필요합니다. 따라서 NISQ로는 이런 양자 알고리즘을 구현하기 어렵습니다. 그래서 최근엔 NISQ에서도 구현할 수 있는 전자식 컴퓨터와 양자컴퓨터의 하이브리드 알고리즘에 관한 연구가 활발합니다.
대표적으로 화학계에서 활발히 연구 중인, 분자의 에너지를 정밀 계산하는 VQE(Variational Quantum Eigensolver) 알고리즘이 있습니다. VQE 알고리즘을 통해 분자의 상태를 정밀하게 계산할 수 있다면 직접 실험하지 않고도 OLED 분자나 차세대 배터리의 효율을 손쉽게 계산할 수 있을 것입니다.