커리큘럼 기반 강의 시간표 최적화를 위한 하모니 서치 알고리즘
초록
본 논문은 커리큘럼 기반 강의 시간표(CB-CTT) 문제에 하모니 서치(Harmony Search, HS) 알고리즘을 적용한다. HS의 즉흥화 단계는 메모리 고려, 무작위 고려, 피치 조정으로 구성되며, 메모리 고려에서는 같은 열에 존재하는 강의 번호 중 가장 빈도가 높은 값을 선택한다. 나머지 강의는 무작위로 배치하고, 선택된 강의는 일정 확률로 피치 조정된다. 실험 결과, 제안된 HS는 기존 최적 해보다 성능이 뒤처졌으며, 알고리즘 구조의 개선이 필요함을 제시한다.
상세 분석
하모니 서치 알고리즘은 자연의 음악 즉흥 연주 과정을 모방한 메타휴리스틱으로, 해집합인 하모니 메모리(Harmony Memory, HM)를 유지하면서 새로운 해를 생성한다. 본 연구에서는 CB-CTT 문제에 HS를 적용하기 위해 즉흥화(improvisation) 과정을 세 가지 서브프로시저로 나누었다. 첫 번째인 메모리 고려(memory consideration) 단계에서는 현재 HM에 저장된 해들의 같은 열(column)에서 강의 번호를 추출하고, 그 중 가장 많이 등장한 번호를 새로운 해의 해당 위치에 할당한다. 이는 빈도 기반의 탐색으로, 기존 해들에서 자주 사용된 배치를 재활용함으로써 탐색 공간을 제한하고 지역 최적화를 촉진한다. 그러나 열마다 강의 충돌 제약이 존재하므로, 가장 빈번한 번호가 반드시 충돌 없이 배치될 수 있는지는 추가 검증이 필요하다.
두 번째 단계인 무작위 고려(random consideration)에서는 메모리 고려에서 배정되지 않은 강의들을 남은 가능한 슬롯 중 하나를 무작위로 선택한다. 이는 탐색 다양성을 확보하고, 메모리 고려만으로는 도달하지 못하는 해 공간을 탐색하기 위한 보완이다. 다만 무작위 선택이 제약 위반을 초래할 경우 재시도 로직이 필요하며, 논문에서는 “가능한 위치”만을 선택하도록 구현했으나, 실제 구현 세부사항이 명시되지 않아 재시도 비용이 과소평가될 가능성이 있다.
세 번째인 피치 조정(pitch adjustment) 단계는 선택된 강의에 대해 일정 확률(p=0.8)로 변형을 가한다. 여기서 변형은 강의의 시간·교실을 인접 슬롯으로 이동하거나, 교환 연산을 수행하는 것으로 추정된다. 피치 조정은 탐색의 미세 조정을 담당하지만, 높은 적용 확률은 과도한 변형으로 인해 기존 해의 품질을 저하시킬 위험이 있다. 특히, 논문에서는 “여덟 가지 절차”라고만 언급하고 구체적 연산을 제시하지 않아, 알고리즘의 재현성과 성능 분석에 한계가 있다.
실험 결과는 제안된 HS가 기존 최적 해보다 열등한 성능을 보였으며, 이는 다음과 같은 원인으로 해석될 수 있다. 첫째, 메모리 고려에서 가장 빈번한 강의 번호를 무조건 선택하는 전략이 제약 위반을 초래하거나, 탐색을 편향시켜 전역 최적해에 도달하기 어렵게 만든다. 둘째, 피치 조정의 높은 적용 확률과 구체적 연산 부재가 탐색 효율을 저해한다. 셋째, HM 크기, 고려 비율(HMCR), 피치 조정 비율(PAR) 등 HS 파라미터 설정이 최적화되지 않았을 가능성이 있다.
따라서 향후 개선 방안으로는 (1) 메모리 고려 시 충돌 검사를 강화하고, 빈도 기반 선택에 제약 기반 가중치를 결합하는 하이브리드 선택 전략, (2) 피치 조정 연산을 구체화하고 적용 확률을 동적으로 조정하는 적응형 메커니즘, (3) HM 크기와 HMCR, PAR 등의 파라미터를 자동 튜닝하거나 메타-메타 휴리스틱(예: 파라미터 제어 GA)으로 최적화하는 방법을 제안한다. 이러한 개선을 통해 HS가 CB-CTT 문제에서 경쟁력 있는 해를 제공할 수 있을 것으로 기대된다.