계획법은 특정 문제를 해결하기 위한 체계적인 절차나 방법을 의미한다. 넓은 의미로는 목표 달성을 위한 전략 수립 과정 전체를 포괄하며, 좁은 의미로는 알고리즘 설계 기법의 하나로 사용되기도 한다.
일반적인 의미의 계획법:
- 정의: 원하는 결과를 얻기 위해 필요한 단계, 자원, 시간 등을 미리 설정하고, 그에 따라 실행하는 과정.
- 특징: 목표 지향적이며, 예측 가능성을 높이고 효율적인 자원 배분을 가능하게 한다. 불확실성을 줄이고, 의사 결정을 돕는다.
- 활용 분야: 사업 계획, 재무 계획, 인생 계획 등 개인적인 영역부터 국가 경제 발전 계획, 도시 계획 등 사회 전반에 걸쳐 폭넓게 활용된다.
알고리즘 설계 기법으로서의 계획법:
알고리즘 분야에서 계획법은 주로 복잡한 문제를 작은 하위 문제로 나누어 해결하고, 그 결과를 이용하여 전체 문제를 해결하는 방식을 지칭한다. 대표적인 예시는 다음과 같다.
- 동적 계획법 (Dynamic Programming): 중복되는 하위 문제들을 한 번만 계산하여 저장해두고, 필요할 때 재사용하는 방식으로, 최적 부분 구조와 중복되는 하위 문제라는 두 가지 속성을 가진 문제에 적합하다. 예를 들어, 최단 경로 찾기, 배낭 문제 등이 있다.
- 분할 정복 (Divide and Conquer): 문제를 작은 부분 문제로 나누어 각각 해결하고, 그 결과를 결합하여 전체 문제를 해결하는 방식이다. 대표적인 예로, 퀵 정렬, 병합 정렬 등이 있다.
계획법은 문제 해결 능력을 향상시키고, 효율적인 의사 결정을 돕는 중요한 도구이다. 다양한 분야에서 활용되며, 상황에 맞는 적절한 계획법을 선택하고 적용하는 것이 중요하다.