본문 바로가기

Trivia

국소적 최적화 단상.


사람들이 네트워크에서 자신들의 담당영역만 최적화하려고 하면서 관료주의가 튀어나온다.
오히려 네트워크성장이 상호의존을 가져오고,이 상호의존으로 인해 제약조건들이 상충하는
일이 일어난다. 상충적인 제약조건들로 인해 의사결정은 느려지고 궁극적으로 관료주의적
정체로이어진다.  - ulu님의 미투에서 -

이 글을 읽고 떠오른 단상입니다.

TOC(Theory Of Constraints) 제약조건 이론에서의 주장하는것 중 하나가
"국소적 최적화가 전체적인 최적화를 불러일으키지는 않는다"입니다.
 예를 들면 더많은 생산을 하기위해 노동자나 기계를 쉬지않고 돌리는 것이 전체 생산량을
늘리지는 않는다는 것입니다.
 때문에 TOC에서는 전체최적화를 목표로잡고 버퍼라든지 로프를 이용해 전체 생산공정에
여유와 피드백을 주어 조율하려고합니다.(자세한것은 책을..)

그런데 이것은 최근 소프트웨어공학에서도 많이 인용되어 적용되고 있습니다.
예를들면 최적화에 대한 부분은 뒤로 미뤄두고 시스템 설계를 이행한다든지
Lean 소프트웨어 개발에서 말하는 빠른 피드백을 통한 제품 생산공정의 조율에서
slack(여유)를 두고 개발을 하던지 전체 공정의 rope로 작용될수있는 골격을 먼저 확보
등을 하는 전체 시스템의 최적화에 주안점을 두고 있습니다.

 그런데 부분최적화가 왜 전체최적화를 불러오지 않을까 하는것에 대해서는 말하지 않습니다.
즉 최적화를 만드는 방법이지 이유를 말해주지는 않죠.

 갑자기 떠오른 것이지만 이 현상을 수학적으로 생각해보면 ,
 어떤 함수(선형함수)는 어떤구간에서 최대값과 최소값을 가지고 있습니다. 즉 그 함수에서
나타낼수있는 최대값을 가지고있는것이지요.
 이건 시스템의 각 부분을 이루고있는 함수라고 생각한다면, 전체 시스템을 이루고 있는 하나의
복잡한 함수를 생각해 볼수 있습니다.
 그런데 이 전체 함수의 최대값은 각 부분 함수의 최대값이 되지는 않을수도 있습니다.
왜냐하면 전체함수가 선형적이라는것을 증명하지 않는다면 안되기 때문입니다.
 그런데 세상은 선형적인 현상보다는 대부분이 비선형으로 이루어진 결과를 보여줍니다.
이것이 부분최적화가 전체 최적화를 불러오지 않는 이유가 아닐까 합니다.