1. 서론
최근, 사회는 최소 비용으로 최대 이익을 요구한다. 이를 달성하기 위해 일반적으로 최적화 기법이 사용된다. 그러나 많은 실질적 최적화 문제는 고도로 복잡한 계산이 요구되고 이러한 문제를 ‘NP-hard’라고 한다. 더욱이 이러한 문제들은 정확한 답을 구하는 수학적 풀이 방법으로는 합리적인 시간 내에 최적의 풀이를 얻을 수 없다는 특징이 있다. 메타 휴리스틱 방법을 사용하는 것은 합리적인 시간 내에 사용자에게 만족스러운 솔루션을 제공하는 좋은 대안으로 간주된다. 하모니 탐색(harmony search) 알고리즘은 Zong Woo Geem[1]이 제안한 연속 최적화 문제를 해결하기 위한 메타 휴리스틱 방법이다.
HS는 즉흥 연주의 화음 개선과정에서 영감을 받은 메타 휴리스틱 알고리즘이다. 즉흥 연주 시 각 연주자는 최상의 하모니를 얻을 때까지 악기의 톤을 조율하려고 한다. 하모니는 주파수가 다른 여러 음파 간의 관계이다. 따라서 즉흥 하모니의 질은 미적 평가로 결정된다. 미적 가치를 높이고 최상의 조화를 찾기 위해 음악가들은 여러 번의 예행연습을 수행한다[2].
HS 알고리즘은 많은 최적화 문제를 해결에 있어 현재 최신 기술에서 사용할 수 있는 다른 메타 휴리스틱에 비해 여러 장점이 있는 경쟁적 대안으로 간주 된다. 구체적으로, 상대적으로 적은 수의 매개변수[3,4,5]만 조정하면 된다.
HS을 적용한 문제 해결과 더불어 성능 향상에 관한 연구도 활발히 진행되었다. 그중 하나가 PSO(particle swarm optimization) 알고리즘[6,7,8]과 결합하여 성능 개선에 관한 연구이다. 특히 Omran과 Mahdavi가 제안한 global-best harmonies search[9]라는 알고리즘은 새로운 하모니를 생성할 때 기존 피치 조정을 하모니 메모리(HM) 중 최상의 하모니에 가까운 하모니를 모방하여 생성하도록 수정하였다. GHS는 PSO 알고리즘의 입자 개선에서 영감을 얻었으며, 이는 동일한 입자의 최상의 위치와 모집단에서 가장 좋은 입자의 위치에 의해 영향을 받는 방식이다. ZOU 등[10]은 GHS를 개선하고자 PSO를 모방한 새로운 방식의 알고리즘, NGHS를 제안하였다. 두 알고리즘 모두 새로운 하모니 조성 단계에서 PSO 알고리즘에서 영감을 받은 방식을 사용한다.
HS는 새로운 해를 구성할 때 모든 예비해와 변수 전역을 이용하는 탐색(exploration)의 전역성에 장점이 있는 반면 기존 해의 평가를 참조하지 않는다. 반면 PSO는 각 입자가 더 좋은 방향으로 움직이도록 각 입자의 궤적과 입자 중 최고의 평가치를 이용하여 새로운 해를 구성하므로 활용(exploitation)성에 장점이 있다. 이러한 두 차이는 수렴성과 해의 정확성에 차이를 가져온다. HS는 PSO에 비해 수렴이 빠르고 해의 정확성에 있어서는 PSO가 유리하다. 본 논문에서는 HS에 PSO의 장점인 활용성을 결합하여 HS 알고리즘 성능을 향상시키고자 한다.
제시된 알고리즘의 성능 평가를 위해 연속함수를 대상으로 고전적인 방식의 HS와 더불어 PSO와 HS를 결합한 또 다른 방식인 GHS 및 NGHS을 적용하여 결과를 비교하였다.
본 논문의 구성은 1장 서론에 이어 2장에서 HS에관해 서술하고 3장에서는 PSO에 관해 서술하였으며 4장에서 본 논문에서 제안한 알고리즘을 서술하였다. 5장에서는 수치 예를 수행하여 기존의 방식과 제시된 방식의 성능을 비교하였다.
2. HS 알고리즘
HS 알고리즘은 음악가가 즉흥으로 연주할 때 더 나은 화음을 찾을 때 발생하는 자연스러운 음악 연주 프로세스를 기반으로 한다. 이 알고리즘에는 화음을 저장하는 HM(harmony memory), HM의 크기를 나타내는 HMS(harmony memory size), 새로운 화음 조성시 HM를 참조할 확률을 나타내는 HMCR(hamony memory consideration rate), 피치 조정 확률을 나타내는 PAR(pitch adjustment rate) 및 피치 조정 대역폭 bw(band width)와 같은 매개변수가 포함된다[1]. HS 알고리즘의 수행 절차를 다음과 같이 요약할 수 있다.
1단계. 문제정의 및 알고리즘 매개변수 초기화
최대화 혹은 최소화할 함수 f(x), XLi ≦ xi ≦ XUi를 정의한다. f(x)는 목적함수이며 x ∈ RN는 N개의 변수로 구성된 결정변수로 XLi와 XUi는 각 변수의 하한과 상한이다. 알고리즘 매개변수는 하모니 메모리 크기(HMS), 하모니 메모리 참조 비율(HMCR) 피치 조정 비율(PAR) 및 최대 하모니 개선 횟수(NI) 이다.
2단계. 하모니 메모리(HM) 초기화
균일분포 확률함수를 이용하여 범위 [XLi, XUi], i = 1, ⋯, N에서 초기 하모니를 생성하여 저장한다. 이때 xji = XLi + R × (XUi - XLi), j = 1, ⋯, HMS을 적용하며 R ∼ U(0, 1)이다.
3단계. 새로운 하모니 벡터 생성
메모리 참조, 피치조정 및 무작위 선택을 이용해 새로운 하모니 벡터 xNew = (xNew1, xNew2, ⋯, xNewN)을 생성한다. 구체적으로는 다음과 같이 진행된다.
for each i=1 to N
if U(0, 1) < HMCR then/*momory consideration*/
xNewi = xji, j ∼ U(1, ⋯, HMS)
if U(0, 1)<PAR /*pitch adjustment*/
xNewi = xji ± R × bw
end if
else /*random selection*/
xNewi = XLi + R × (XUi - XLi) R ∼ U(0, 1)
end if
end
4단계. HM 업데이트
새롭게 생성된 xNew = (xNew1, xNew2, ⋯, xNewN)는 목적함수에 의해 평가되어 그 결과가 기존의 가장 나쁜 결과보다 좋으면 이를 대체한다.
5단계. 중지 기준확인
정해진 최대 하모니 개선 횟수에 도달했는지 확인하여 멈추거나 3~5단계를 반복한다.
그림 1은 HS의 5단계를 순서도로 나타낸 그림이다.
그림 1. HS 알고리즘의 단계별 최적화 절차
Fig. 1. Optimization step procedure of the harmony search algorithm
3. PSO
PSO 알고리즘[7]은 모집단 기반 최적화 방법으로, 모집단을 떼(swarm)라 한다. 떼는 N-차원 검색 공간에서 이동하는 D개의 입자로 구성되며 떼의 각 입자는 최적화 문제의 잠재적 해이다. j번째 입자의 위치는 pj = (pj1, pj2, ⋯, pjN)로, j번째 입자 이동 속도는 vj = (vj1, vj2, ⋯, vjN)로 나타낼 수 있고 j = 1, ⋯ D이다. 입자의 위치와 속도의 상한과 하한은 각각 PLi ≤ pi ≤ PUi, VLi ≤ vi ≤ VUi i = 1, ⋯, N이다. 입자의 적합성은 목적함수가 결정한다. 각 세대에서 자신의 위치를 최신화하기 위해 두 개의 최고값을 추종한다. 하나는 i입자 자신의 이전까지 최고의 위치를 나타내는 국지 최고를 나타내는pjbest = (pjbst1, pjbst2, ⋯ pjbstN)이고 다른 하나는 모집단 전체의 이전까지 최고의 위치를 나타내는 gbest = (gbst1, gbst2, ⋯ gbstN)이다. 두 값에 의해 입자의 속도와 위치는 다음과 같이 갱신된다.
vj(t + 1) = wvj(t) + c1 · R1(pjbst - pj(t)) + c2 · R2(gbst - pj(t)) (1)
pj(t + 1) = vj(t + 1) + pj(t) (2)
식에서 t는 세대를 R1과 R2는 U(0,1)이고 c1과 c2는 가속 상수이며 w ∼ U(0,1)는 입자의 이전 속도에 대한 관성상수이다. c1과 c2에 대한 대표적인 값은 2이고 w는 세대가 진행되면서 작아지도록 구현하며 수식적 표현 중 하나는 다음과 같다.
\(\begin{aligned}w=\left(w_{\max }-w_{\min }\right)+\frac{\left(G I_{\max }-t\right)}{G I_{\max }}+w_{\min }\end{aligned}\) (3)
GImax는 최대 반복 수 이다.
PSO 알고리즘 수행 단계는 다음과 같습니다.
1단계. 알고리즘 매개변수 초기화 및 문제정의
최대화 혹은 최소화할 대상 함수 f(p)와 변수 범위, PLi ≤ pi ≤ PUi, j = 1, ⋯, N를 정의한다. f(p)는 목적함수이며 p ∈ RN는 N개의 변수로 구성된 결정변수로 PLi와 PUi는 각 변수의 위치 하한과 상한이다. 알고리즘 매개변수는 관성상수 w, 가속 상수 c1, c2 및 최대 세대(generation) 수, NG이다.
2단계. 모집단 초기화
D개의 입자 초기화는 pji = PLi + R × R x (PUi - PLi), 와 같이하며 R ∼ U(0,1)이다. 초기 속도는 vj = 0으로 초기화한다.
3단계. 입자 위치에 대한 적합도 평가
입자에 대해 목적함수를 사용하여 평가하고 pjbst와 gbst를 결정한다.
4단계. 속도 및 위치 최신화
(1)과 (2)식을 이용하여 속도와 위치를 최신화한다.
5단계. 중지 기준확인
정해진 최대 세대 도달을 확인하고 멈추거나 3~5 단계를 반복한다.
이러한 단계별 수행에 대한 순서도는 다음 그림 2와 같다.
그림 2. PSO 알고리즘의 단계별 최적화 절차
Fig. 2. Optimization step procedure of PSO
4. hybrid HS-PSO
2절에서 살펴본 바와 같이 HS는 새로운 하모니를 생성할 때 HM에 저장된 값을 사용하거나 무작위 함수를 사용한다. HM을 이용하는 경우 저장된 하모니 평가치를 참고하지 않고 무작위로 선정한다.
새롭게 만들어진 하모니 xNew는 목적함수에 의해 평가되고 HM 하모니 중 가장 나쁜 평가치를 갖는 xHMwst와 비교되어 더 좋은 경우 이를 대체한다. 이러한 과정을 통해 xHMwst와 HM의 가장 좋은 하모니 xHMbst이 개선되어가면서 xHMwst는 xHMbst에 수렴하게 되고 xHMbst는 최적값에 수렴해 간다.
PSO는 개별 입자의 최고치인 local best와 모집단, 떼의 최고치인 global best 두 값을 이용하여 각 입자의 위치를 개선해 나가며 모든 입자가 global best에 수렴하도록 하는 구조이다. 그러한 구조를 수식으로 나타낸 것이 (1)과 (2) 식이다.
본 연구에서는 HS의 xHMwst 개선과정에 PSO의 입자 개선과정을 도입하고자 한다. 이를 위해 xHMwst와 xHMbst를 각각 local best, global best로 정의하였다. PSO가 이들 두 값을 이용하여 기존의 입자를 더 좋은 위치로 이동시키듯이 xHMwst와 xHMbst가 HS 방식에 따라 새롭게 만들어진 xNew를 더 좋은 하모니로 유도하도록 (1) 식과 (2) 식을 다음 식과 같이 재정의하였다.
v(t) = c1*R1*(xHMwst(t - 1) - xNew(t)) + c2*R2*(xHMbst(t) - xNew(t)) (4)
xNew(t) = xNew(t) + v(t) (5)
(4) 식은 (1) 식에서 두 개의 최고치를 HS의 xHMwst와 xHMbst로 대치하고 w = 0인 경우와 같다. 고전적인 PSO와 달리 xNew는 기존 입자가 아니므로 관성 계수를 w = 0으로 하였다. 지금까지 서술한 HS-PSO의 구조를 순서도로 나타내면 그림 3과 같다.
그림 3. HS-PSO 알고리즘의 단계별 최적화 절차
Fig. 3. Optimization step procedure of HS-PSO
순서도를 보면 HS-PSO를 구현하기 위해서는 기존 HS의 HM 초기화 과정에 xHMwst와 xHMbst의 초기화가 필요함을 알 수 있다. 이와 더불어 xNew 생성 후(HS 3단계)(4) 식과 (5) 식의 전개가 필요하다.
5. 수치 예
제시한 연구의 성능 평가를 위해 고전적인 방식의 HS와 PSO를 결합한 NGHS(novel global HS) 및 가변적인 PAR와 bw를 적용하여 고전적인 HS의 성능을 개선한 IHS(improved harmony search)와 비교하였다. 다음은 성능 비교를 위해 사용한 함수이다[11].
Sphere function
\(\begin{aligned}f_{1}(x)=\sum_{i=1}^{D} x_{i}^{2}\end{aligned}\) (6)
Rosenbrock function
\(\begin{aligned}f_{2}(x)=\sum_{i=1}^{D-1}\left[x_{i}^{2}\left(100\left(x_{i+1}-x_{i}^{2}\right)^{2}+\left(x_{i}-1\right)^{2}\right)\right]\end{aligned}\) (7)
Roastrigrin function
\(\begin{aligned}f_{3}(x)=\sum_{i=1}^{D-1}\left[x_{i}^{2}-10 \cos \left(2 \pi x_{i}\right)+10\right]\end{aligned}\) (8)
Griewark function
\(\begin{aligned}f_{4}(x)=\frac{1}{4000} \sum_{i=1}^{D} x_{i}^{2}-\prod_{i=1}^{D} \cos \left(\frac{x_{i}}{\sqrt{i}}\right)+1\end{aligned}\) (9)
4개 함수에 대한 기본 특성은 다음과 같다.
표 1. 실증 함수의 특성
Table 1. Basic characters of benchmark functions
성능평가는 같은 문제에 대해 100회 반복 수행한 결과에 대해 오차 평균과 표준편차를 비교하여 수행하였다. HS 알고리즘 매개변수는 HMS = 10, HMCR = 0.85 및 PAR = 0.5를 사용하였다. HS - PSO 알고리즘 매개변수는 HS의 매개변수는 같은 값을 사용하였고 PSO 매개변수 c1 = c2 = 2를 사용하였다. IHS 알고리즘 매개변수는 bwmax = (XU - XU)/20, bwmin = 10-4, PARmin = 0.01, PARmax = 0.99을 사용하였다. NGHS 알고리즘 매개변수는 pm = 1을 사용하였다. 또한 함수의 차원을 달리하여 D = 5와 D = 10에 대해 수행하였으며 두 경우 모두 알고리즘 최대 반복은 NI = 20000으로 하였다. 다음 표 2와 3은 그 결과이다.
표 2. D = 5에 대한 성능평가 함수들의 오차 평균과 표준편차
Table 2. mean and standard deviation of benchmark functions for D = 5 D = 5, NI = 20000
표 3. D = 10에 대한 성능평가 함수들의 오차 평균과 표준편차
Table 3. mean and standard deviation of benchmark functions for D = 10 D = 10, NI = 20000
표 2와 3에서 최적값을 찾는 알고리즘의 정확성 지표인 평균오차를 보면 함수 Sphere와 Rosenbrock는 NGHS가 가장 우수함을 알 수 있다. Roastrigrin과 Griewark 함수는 HS-PSO가 가장 우수함을 보여준다. 이 둘은 HS와 PSO가 결합한 알고리즘이다. 이러한 결과는 함수의 차원과 무관하였다. 알고리즘 성능의 일관성을 알 수 있는 지표인 표준편차 또한 함수별로 같은 결과를 보여주고 있다. Roastrigrin 함수에 대해서는 정확성과 일관성에 있어 NGHS보다 HS 및 IHS가 우수함을 보여주고 있다. 또 하나의 특징은 Rosenbrock 함수에 있어서는 HS 및 IHS 알고리즘 성능과 일관성이 매우 나쁘다는 것이다.
6. 결론
HS는 새로운 하모니를 구성할 때 HM을 참조하는 경우 개별 하모니의 평가를 활용하지 않으나 PSO는 그와 반대로 개별 입자의 평가치와 모집단 평가치를 활용하여 해를 찾아간다. 그러나 본 연구에서는 HS와 PSO의 유사성을 찾아 규명하고 PSO의 입자 개선과정을 HS에 적용하여 알고리즘 성능을 개선하고자 하였다. PSO 알고리즘을 적용하기 위해서는 개별 입자의 최고치와 모집단의 최고치가 필요하다.
본 연구에서는 HS가 HM 내 가장 나쁜 하모니를 개선해 나가는 과정을 PSO와 유사성으로 보아 HM 중 가장 나쁜 하모니를 개별 입자로, 가장 좋은 하모니를 모집단 최고치로 치환하여 HS의 하모니 개선에 PSO 알고리즘을 적용하였다.
제시한 알고리즘, HS-PSO의 성능을 확인하기 위해 4개의 다변수 함수의 최적화를 수행하여 그 결과를 표준 HS와 더불어 IHS 및 NGHS와 비교하였다. 각 알고리즘의 정확성은 오차 크기의 평균값으로 일관성은 표준편차로 확인하였다. 그 결과 HS-PSO가 기존 HS의 성능보다 매우 우수함을 알 수 있었다.
References
- Z.W. Geem, J. H. Kim and G.V. Loganathan, "A new heuristic optimization algorithm: Harmony search", Simulation, 76, pp. 60-68, 2001. https://doi.org/10.1177/003754970107600201
- A. Askarzadeh and R. Esma, "Harmony Search Algorithm: Basic Concepts and Engineering Applications", In Recent Developments in Intelligent Nature-Inspired Computing, Srikanta, P., Ed.; IGI Global: Hershey, PA, USA, pp. 1-36, , 2017.
- M. Fesanghary, M. Mahdavi and Y. Alizadeh, "Hybridizing harmony search algorithm with sequential quadratic programming for engineering optimization problems", Comput. Methods Appl. Mech. Eng., 197, pp. 3080-3091, 2008. https://doi.org/10.1016/j.cma.2008.02.006
- Z. W. Geem an K.-B. Sim, "Parameter-setting-free harmony search algorithm", Appl. Math. Comput., 217, pp. 3881-3889, 2010. https://doi.org/10.1016/j.amc.2010.09.049
- A. Vasebi, M. Fesanghary and S.M.T. Bathaee, "Combined heat and power economic dispatch by harmony search algorithm", Int. J. Electr. Power Energy Syst., 29, pp. 713-719, 2007 https://doi.org/10.1016/j.ijepes.2007.06.006
- R. Eberhart, and J. Kennedy, "A new optimizer using particle swarm theory", In Proceedings of the Sixth International Symposium on Micromachine and Human Science, Nagoya, Japan, 4-6 October, pp. 39-43, 1995.
- J. Kennedy, and R. Eberhart, "Particle Swarm Optimization", In Proceedings of the IEEE international Joint Conference on Neural Networks, Perth, WA, Australia, 27 November-1 December 1995, IEEE Press New York, NY, USA, pp. 1942-1948, 1995.
- Brambila-Hernandez, Jose Alfredo, Miguel Angel Garcia-Morales, Hector Joaquin Fraire-Huacuja, Eduardo Villegas-Huerta, and Armando Becerra-del-Angel, "Hybrid Harmony Search Optimization Algorithm for Continuous Functions", Mathematical and Computational Applications, 28, no. 2: 29, 2023.
- M.G.H. Omran and M. Mahdavi "Global-best harmony search", Appl. Math. Comput., 198, pp. 643-656, 2008. https://doi.org/10.1016/j.amc.2007.09.004
- Dexuan Zou, Liqun Gao, Jianhua Wu and Steven Li, "Novel global harmony search algorithm for unconstrained problems", Neurocomputing, Vol. 73, Issues 16-18, pp. 3308-3318, 2010. https://doi.org/10.1016/j.neucom.2010.07.010
- YYu, J. and Guo, P. "Improved PSO Algorithm with Harmony Search for Complicated Function Optimization Problems." In: Wang, J., Yen, G.G., Polycarpou, M.M. (eds) Advances in Neural Networks, vol. 7367. Springer, Berlin, Heidelberg., pp. 624-631, 2012