아직도 내 전공에 대해서 제대로 아는게 많지 않고, 배웠던 것도 조금만 시간이 지나면 잊어버리기 때문에, 전공관련 내용을 기초부터 차근차근 정리해보기로 했다.
이번에는 나의 전공인 수리최적화가 무엇인지부터 알아보겠다.
수리최적화?
-
현실에 존재하는 복잡한 의사결정문제를 수리 모델로 만들고, 그 모델을 통해 최적의 답을 찾아내는 방법이다.
-
간단히 말해, 의사결정에 쓰이는 도구다.
수리 모형의 요소
- 수리 모형에는 크게 세가지 구성요소가 있다. 아래의 예시와 함께 알아보자.
-
결정변수(Decision Variable)
-
문제에서 아직 모르는 것, 알고자 하는 것이다.
-
위의 예시에서는 \(x_1\), \(x_2\), \(x_3\)가 결정변수다.
-
예를 들어, 어떤 물건을 얼마나 생산해야 하는 지 알고자 한다면, 그것이 결정변수가 될 수 있다.
-
-
제약식(constraints)
-
문제에 존재하는 제약(조건)을 식으로 표현한 것이다.
-
제약은 부등호 혹은 등호로 표현된다.
-
위 예시에서 2번째, 3번째 식이 제약식 역할을 한다.
-
4번째 식 역시 제약식이나, non-negativity 제약, 비음제약이라고 불리는 조금 특별한 제약식이다.
-
-
목적함수(Objective function)
-
최적화하고자 하는 것이다. 최소화(Minimize) 혹은 최대화(Maximize)할 수 있다.
-
일정 계수를 곱한 변수들의 합으로 표현된다.
-
위의 예제에서 첫번째 식이 목적함수 역할을 한다. 여기선 minimize하는 문제인 것이다.
-
목적함수는 문제의 목적에 맞게 설정될 수 있다. 예를 들어, 비용으로 정의한다면 최소화해야할 것이고, 이익으로 정의한다면 최대화하는 식으로 말이다.
-
수리모형의 종류
수리모형은 특성에 따라 여러가지 종류로 구분된다. 여기서는 아주 대표적인 수리모형의 특징만을 간단하게 알아보고, 추후에 좀 더 자세히 다루도록 하겠다.
Linear Programming(LP) - 선형계획법
-
목적함수가 linear(선형)이고 제약식이 linear inequality 혹은 linear equality인 모델
-
연립방정식을 푸는 것과 유사하다. 차이점으로는 연립방정식은 미지수의 개수가 식의 개수보다 작거나 같지만, 이 경우에는 미지수의 개수가 더 많다.
-
Simplex 알고리즘을 이용해서 풀 수 있다.
Integer Programming(IP) - 정수계획법
-
Decision variable(결정변수)이 정수값을 갖는다는 조건을 가진 수리 모형이다.
-
일부 변수에 대해서만 정수 조건을 갖는 경우도 있는데, 이는 Mixed Integer Programming(MIP)라고 불린다.
-
LP에 비해서 문제 난이도가 상당히 높다.
Non-linear Programming(NLP) - 비선형계획법
-
목적함수나 제약식이 선형함수가 아닌 경우다.
-
특히 함수가 non-convex인 경우 문제를 풀기가 굉장히 까다롭다.
Constraint Programming(CP)
-
최적을 찾기보다는, 많은 조합에 대해서 feasible한 해답을 찾는데 사용된다.
-
목적함수보다는 제약식과 Decision variable에 초점을 둔다. 실제로, 목적함수가 없을 수도 있다.