잘못된 최적화의 함정: 기술적 정답과 실제 유용성의 괴리
이 글은 슈퍼마켓에서 최소 임금을 받으며 일하던 시절, 바닥 청소 경로를 최적화하려다 깨달은 “잘못된 지표를 최적화하면 기술적으로는 완벽해 보여도 실제로는 쓸모없거나 해로운 결과를 낳는다” 는 교훈을 담는다. 원문: I Got Paid Minimum Wage to Solve 1. 문제의 시작: 단순한 작업의 복잡화 작성자는 슈퍼마켓 바닥을 쓸면서 “어떻게 하면 가장 적게 걷고도 모든 바닥을 다 쓸 수 있을까?“라는 의문을 갖게 된다. 이를 해결하기 위해 매장 내부를 그리드 그래프(Grid Graph)로 변환하고, 시뮬레이티드 어닐링(Simulated Annealing) 알고리즘을 사용해 최단 경로를 찾는 C++ 프로그램을 작성한다. 2. 알고리즘의 한계: ‘기술적 정답’과 ‘실제 유용성’의 괴리 알고리즘은 수학적으로 완벽한 최단 경로를 찾아낸다. 하지만 그 결과는 사람이 도저히 따라 할 수 없는 ‘미친 듯한 경로’ 다. 단순히 거리(Distance)만 최적화했더니, 알고리즘은 수많은 급회전과 지그재그 경로를 만들어낸다. 사람은 직진할 때 가장 편안함을 느끼는데, 알고리즘은 이를 고려하지 않은 것이다. 결국 회전할 때마다 ‘페널티’를 부여하는 조건을 추가한 뒤에야 비로소 사람이 걸을 만한 효율적인 경로가 나온다. 3. 더 큰 깨달음: 현대 사회의 최적화 오류 작성자는 이 경험을 통해 오늘날 많은 시스템이 ‘잘못된 지표’를 최적화 하고 있다고 비판한다. ...