가끔 최적화 문제를 어떻게 풀었는지 로직을 설명해 달라는 요청을 받을 때가 있습니다.
아마도 질문했던 분들은 휴리스틱으로 문제를 풀었다고 가정하고 질문을 했을 것이라고 생각됩니다.
cf) DB Query or If-Then 로직 등
일반적으로 휴리스틱으로 문제를 해결한 경우 대략적인 로직 설명은 가능하지만,
메타휴리스틱이나 선형계획법을 활용해 문제를 해결하는 경우에는
로직?을 설명하기 보다는 최적화 문제를 해결하는 일반적인 방법을 설명하게 됩니다.
방법 | 설명 | 장점 | 단점 |
Heuristic | 직관적, 경험 기반 규칙을 적용 | 빠르고 간단함. 특정 문제에서 매우 효율적일 수 있음. | 일반화가 어려우며, 최적해 보장이 없음 |
Metaheuristic | 다양한 문제에 적용 가능한 최적화 방법 | 다양한 문제에 적용 가능. 전역 최적해를 찾을 가능성이 높음 | 계산 비용이 많이 들고(시간이 오래 걸리고), 최적해 보장이 없음 |
Linear Programming | 선형 구조의 문제를 수학적으로 최적화 | 최적해를 보장하며, 상업용 도구로 잘 지원됨 | 문제 구조가 선형이어야만 적용 가능. 비선형 문제에 어려움 |
위의 방법 외에도 추가로 강화학습 (Reinforcement Learning) 으로 최적화 문제를 풀기 위해서 공부를 하고 있습니다.
시간이 생길때 마다 조금씩 강화학습 내용도 업데이트 하겠습니다.