나는 수학하고 컴퓨터과학 분야를 좋아하는 것 같음.
특히 알고리즘으로 표현할 수 있는 수학을 좋아함.


예를 들어 단순하면서도 생각보다 어려운 문제로 스케쥴링 문제를 생각할 수 있음. 스케쥴링 문제는 주어진 작업들을 제한된 자원을 바탕으로 최적으로 배치하는 문제임.


예를 들어 M개의 공장의 기계가 있다고 생각하자.
그리고 우리는 이 기계들을 사용해서 처리해야 할 N개의 작업들이 있음. (T1, T2, ... , TN). 각 작업은 작업 처리시간 (기계 1대당), 선행 작업 등의 속성을 가짐.

그러면 이 때 여러가지 목적을 생각할 수 있는데.
보통 모든 작업이 완료되는 시간을 짧게 하는 것을 목적으로 함.

한 기계는 하나의 작업만 처리할 수 있으며, 하나의 작업은 한번의 처리에서 모두 처리되야 함.


이런 경우 1대의 기계만 있다면 Branch-Bound 등의 알고리즘으로 가능한 경우의 수를 가지치기 하면서 짧은 시간을 탐색할 수 있겠지.

한편, 작업의 수와 기계의 수가 늘어남에 따라 경우의 수가 복잡하게 늘어나고 이것을 최적으로 해결하는 건 NP-Hard 문제가 됨.


내가 수학에서 좋아하는 건. 바로 이러한 풀기 어려운 문제들을 해결할 수 있는 방법을 생각하고, 미리 작업을 하기 전에 어느정도 성능의 lower bound, upper bound 또는 수렴성 등을 생각할 수 있다는 점이 마음에 듬.


사실 한 가지 문제를 깊게 풀기보다는.
계속해서 이런 비슷한 문제를 퍼즐처럼 해결하고 생각하는 걸 즐김.


이것을 위해서 C++, Rust, Java 등 프로그래밍 언어를 익혔고, Python 및 AI 및 데이터 과학 능력, 클라우드 컴퓨팅과 병렬 컴퓨팅도 익힘.

여기에 수학적인 증명 방법도 계속 공부하고 있음.

컴퓨터 과학의 이론이나, 실험적으로는 산업공학 부분과 겹치지만, 나는 이것이 수학 분야에서도 분명 연구할 게 있을 거라 생각하는데. 아직 그 가능성을 못 찾고 있음.