이론적 컴퓨터과학의 많은 문제들을 보면, 최근 수십년간 이 학문이 엄청나게 발전했음에도 불구하고 대부분의 문제에서 최적인 알고리즘은 아주 오래전 (수십년 전, 길게는 거의 60년 정도까지!) 발견된 쉬운 알고리즘인 경우가 많다. 좀 발전했다 쳐봤자, 거기에서 조금 나아지는 정도? 구체적인 예들로는 다음과 같은 것들이 있다. O*(X)는 polylogX이나 다른 파라미터들에 대한 비슷한 팩터를 무시한 복잡도. 덧셈, 곱셈등의 복잡도는 대부분의 경우 O(1)로 생각한다.
특히 마지막 두 문제는 NP-hard로 잘 알려진 문제들. 이 문제들을 가장 잘 푸는 방식은 이게 최선일까?
많은 컴퓨터과학자들은 사람들이 좋은 알고리즘을 개발하는 것을 문제의 어려움을 증명하는 것보다 훨씬 잘한다고 생각한다. 즉, 우리가 아는 최선의 알고리즘이 진짜 최선에서 그렇게 벗어나지 않았을 것이라고 믿는다!
이런 생각은 다음과 같은 가설로 구체화된다.
- Exponential time hypothesis (ETH)는 n개의 변수에 대한 3-SAT 문제가 어떤 상수 c>1에 대해 O*(cn)의 복잡도를 갖는 알고리즘이 최적이라는 가설이다. 좀 더 강하게, k-SAT의 최적의 복잡도 O*(ckn)를 만족하는 ck를 생각하면
가 성립할것이라고 말하는 Strong exponential time hypothesis (SETH)도 있다. 최근에는 이것의 양자버젼인 QSETH도 제안되었다. (사실 다들 생각은 하고 있었고, 이걸로 의미있는 결과를 처음으로 얻어냈다.) - 비슷하게 3-SUM hypothesis는 임의의 ε>0에 대해 3-SUM을 푸는 O*(n2-ε) 알고리즘이 없을것이라는 가설이다.
많은 컴퓨터과학자와 나는 SETH가 참이라고 믿는다. 하지만 이를 증명하는것은… 글쎄다. 아마 이러한 관점에서 많은 컴퓨터과학자들이 두 n×n 행렬의 곱이 O*(n2)에 될것이라고 믿는듯 하다. 나는 이것은 아직 그렇게까지 믿지 않는다 -_-ㅋ 이 스택익스체인지에 관련 논의가 있다. 딱히 강력한 근거는 없는듯. 여튼, 이러한 관점에서 컴퓨터과학자들은
깔끔하게 정의된 문제는 깔끔한 복잡도를 갖는다
라고 믿는다. 물론 나도 믿는다 ㅋ
하지만: 지난 TSP에 관한 글에서 언급했듯 네더로프가 증명한 바에 따르면 행렬곱이 O*(n2)복잡도를 달성한다면 이분그래프에 대한 외판원 문제가 O*(1.9999n)에 풀린다고 한다!
그렇다면 가능성은 다음과 같다.
- 이분그래프에 대한 TSP는 “깔끔한 문제”가 아니다.
- 행렬곱은 “깔끔한 문제”가 아니다.
- 이분그래프에 대한 TSP는 사실 다른 깔끔한 복잡도(e.g. O*((4/3)n))를 갖는다.
- 행렬곱이 다른 깔끔한 복잡도를 갖는다.
나는 개인적으로 첫번째 가능성을 지지한다 ㅋㅋㅋ
조금 다른 관점에서, 답을 approximate하게 구하는 것은 어떨까? 예를 들어 TSP의 최적값에 가까운 해를 구하는 알고리즘이나, 선형시간에 LCS에 가까운 해를 찾는것은? 그 가까운의 범위도 깔끔한 값을 가질까?
오랫동안 사람들은 그렇게 믿어온듯 하다. 예를들어 metric TSP, 즉 외판원 문제에서 변들의 길이가 삼각부등식을 만족하는 경우에는 1.5-approximation 다항식 시간 알고리즘이 Christofides–Serdyukov에 의해 알려져 있었고, 이게 최적으로 믿고 있었다. 다음 블로그 글에 한글로도 잘 정리되어 있다.
그리고 LCS는
-approximation 선형 알고리즘이 최적이고, 심지어
-approximation 근사는 O*(n2-2t)에 되었다고 한다.
하지만: 최근 arixv에 올라온 논문에 따르면 metric TSP문제가 다항식시간에 1.49…9-approximation이 가능하다고 한다. 여기서 9는 36개 이하로 있다고 한다 -_- 저자들은 이 결과가 어쩌면 4/3-approximation일수도 있다고 생각하는듯 하다.
그리고, SODA2019에 발표된 결과에 따르면 LCS에 대한 O(n0.497956)-approximation을 선형시간에 할 수 있다고 한다.
이런, 그렇다면 근사할 수 있는 정도는 깔끔하지 않은것일까? 이건 전혀 모르겠다 -_- 나는 참이라고 믿는데, 최근의 결과들은 그렇지 않다고 주장한다. metric TSP정도는 꽤나 깔끔한 문제처럼 느껴지는데……