그래서 알고리즘이 뭔데?
차례대로 실행되는 몇개의 명령으로 이루어진, 올바르게 정의된 과정
이라고 한다. 과거에는 알고리즘을 실행하는 주체가 인간 이었지만 이제는 컴퓨터가 실행 한다.
인간은 똑똑해서 이해할 수 있는 범위에서는 알고리즘을 실행 하는 것에 문제가 없었지만, 컴퓨터는 똑똑한데 멍청해서 구체적이고 엄밀하게 정의 해주지 않으면 많은 오류를 만들어 낸다.
컴퓨터는 엄밀하고 올바르게 정의된 문제를 잘 실행한다.
그런데 알고리즘을 표현 하는건 실행하는 것과 별개의 문제이다.
컴퓨터는 알고리즘을 실행할 수는 있지만, 표현할 능력은 없다. 알고리즘 문제 해결이란 결국 그 표현을 인간이 해내는 것이다. 피상적인 말을 걷어내고, 논리적으로 사고해서 명확하게 써야 한다.
현대의 문제해결은 특정한 종류의 문제를 모두 해결 할 수 있는 알고리즘을 표현 하는 것이다.
하지만, 알고리즘을 표현해야 한다는 건 문제 해결을 어렵게 한다. 피상적인 말들은 제거 해야 하고 논리적으로 사고 해서 표현 해야 한다.
효율적으로 문제를 해결할때 중요한건 효율적으로 생각하고 표현 하는 것 이다. 알고리즘을 잘 설계하는건 문제 해결 능력을 키우는 것과 같다.
알고리즘은 많은 문장의 조합으로 표현되어 있다. 문장의 종류와 문장을 조합하는법을 공부하는 것이다.
결국 알고리즘을 잘 설계 한다는건, AI에게 좋은 질문을 한다는 것과 같은 말일지도 모른다.