한빛미디어에서 우메타니 슌지(현재 오사카대학교 교수 재직, 수학적 최적화 모델 및 알고리즘 구현 문제 연구중)가 집필한 "제대로 배우는 수학적 최적화"라는 책이 출간되었다. 수학적 최적화라는 개념 자체가 꽤나 다양한 영역에서 다양한 문제로 나타나고 있기 때문에, 베이직한 개념을 숙지해두고, 여러 기법들을 다 알진 못하더라도, 짧게라도 키워드 등으로 기억해두면, 앞으로 실무에서 다양한 문제를 푸는 중요한 Key가 될 수 있을 것 같기 때문에 이 책을 읽게 되었다.
나의 짧은 지식으로 수학에서의 최적화라는 것은 특정한 수학적 문제에 대한 값이 최대나 최소가 되는 방향으로 해결하는 것이라고 알고있다. 이 책에서 말하는 수학적 최적화란 아래와 같다.
주어진 제약조건 아래 목적 함숫값을 최소(또는 최대)로 만드는 최적화 문제를 이용하여 현실 사회에서 의사결정이나 문제 해결을 실현하는 수단이다.
수학적 최적화 절차는 현실 문제를 최적화 문제로 정식화하고, 이 최적화 문제는 상수, 변수, 제약조건, 목적함수 라는 요소로 이루어져있다. 그 다음 알고리즘을 이용하여 솔루션을 구하게 되면 계산결과를 분석 및 검증하여 최적화 문제와 알고리즘을 재검토 하는 과정을 반복적으로 거쳐 해결책이 도출된다.
수학적 최적화 개념은 이 책만으로는 모든 범위를 다룰 수 없을 만큼 General 한 분야이기 때문에, 이 책에서는 그래도 최대한 가능한 많은 최적화 문제와 알고리즘을 소개해두었으며, 수학적 최적화에 대해 처음 접하는 사람들이라면 충분한 시간을 들이라고 조언해주고 있었다. 왜냐하면 이 책은 알고리즘과 데이터 구조, 미적분, 선형대수의 기본적인 지식을 전제로 하기 때문이다!
현실 문제에서 수학적 최적화를 이용하여 문제를 해결하기 위해서는 그 문제를 최적화 문제로 모델링 하기 위해 구체적인 기법이나 효율적인 알고리즘으로 알려져 있는 최적화 문제를 다양하게 알아야 한다. 실제로 현실에서 주어지는 문제를 최적화 문제로 모델링 할 때 기존의 최적화 문제를 잘 변형하거나 조합해야한다고 한다.
이 책의 목차는 간략하게 언급하면 아래와 같다.
1. 수학적 최적화 입문
2. 선형 계획
3. 비선형 계획
4. 정수 계획과 조합 최적화
Appendix 연습문제 정답 및 해설
책 도입부에서는 수학적 최적화 개념과 절차를 간단한 야채주스 문제로 설명하고 있었다. 수학적 최적화에서 "최적화 문제를 푼다"라는 표현은 "최적의 솔루션 하나를 구한다"를 의미하기 때문에 여러 최적의 솔루션이 존재할 가능성이 있다.
야채주스 문제 예시
야채주스에 포함된 식이섬유, 비타민 C, 철분, 베타카로틴의 필요량을 만족시키면서 제조에 필요한 원재료를 최소로 하기위해서는 어떤 야채를 얼만큼 구매해야하는가? 라는 문제에 대해 이것을 최적화 문제로 정식화 하고, 제약조건을 정의하고 이를 회귀문제라고 정의하여 기울기 a와 절편 b를 변수로 하여 평균제곱오차를 최소한으로 하는 직선을 구하는 문제로 정식화하였다. 이와 같이 평균제곱오차를 최소화하는 것으로 x와 y의 관계를 근사적으로 나타내는 함수를 구하는 방법을 최소제곱법(Least Squares Method)라고 한다.
이러한 모든 최적 솔루션을 구하는 문제를 열거 문제(Enumeration Problem)라고 하며, 최적화 문제에 반드시 최적 솔루션이 존재한다고 단정할 수는 없다. 최적화 문제는 다음 네 가지로 분류된다.
1. 실행 불능 : 제약조건을 만족하는 솔루션이 존재하지 않음 (실행 가능 영역이 공집합임)
2. 한계가 없음(유한하지 않음) : 목적 함숫값을 한없이 개선할 수 있으므로 최적 솔루션이 존재하지 않음
3. 한계가 있지만(유한함) 최적 솔루션이 존재하지 않음 : 목적 함숫값은 유한하지만 최적 솔루션이 존재하지 않음
4. 최적 솔루션이 존재함 : 유한한 최적값과 최적 솔루션이 존재함
이 책에서 소개할 최적화 문제와 알고리즘은 다음과 같다. 처음 이 책을 접하는 사람들이 순서와 공부 방향을 설정하기 위해 보면 좋을 것 같다. 개인적인 생각이지만, 현직 교수가 집필해서 그런지 딱 커리큘럼을 짜서 공부하려는 학생 또는 교수를 위한 책인게 느껴졌다(굿). 마지막에 연습문제도 있기 때문에 대학에서 수학적 최적화를 다루는 과목에서 교재로 로 쓰면 좋을 것 같은 책이다.
또한 앞서 설명했듯 이 책은 선형대수와 미적분, 그리고 기본적인 수학 알고리즘에 대한 이해가 있어야 책을 볼 수 있다. 그 만큼 벡터, 미분, 행렬, 부등식 등 정말 많은 수식들과 증명 문제들이 다수 포함되어 있기에 조금 어려울 순 있다 ^^;; 하지만 그 만큼 많은 내용을 담아냈고, 아무래도 최적화 문제는 실 생활에서 가장 많이 사용 될 수 있기에 사례들을 문제 마다 수록해 놓아서 이해하는데 어려움은 없었던 책이다.
한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.
'Book Review' 카테고리의 다른 글
[Book Review] 살아 움직이는 머신러닝 파이프라인 설계 (0) | 2021.11.21 |
---|---|
[Book Review] 쉽게 시작하는 캐글 데이터 분석 (2) | 2021.10.30 |
[Book Review] 만들면서 배우는 파이토치 딥러닝 (0) | 2021.09.22 |
[Book Review] 텐서플로 라이트를 활용한 안드로이드 딥러닝 (0) | 2021.08.16 |
[Book Review] 업무에 바로 쓰는 SQL 튜닝 (0) | 2021.07.25 |