제안하는 SIOA 알고리즘에서는 개체들이 영역을 탐색하고 탐색 결과를 기반으로 다음 탐색 영역을 결정하게 된다. 탐색 방법에는 3가지 전략이 사용되었는데, 첫 번째 전략은 전체 탐색 결과 중 가장 우수한 결과물 근처에서 탐색을 진행하는 것이다 이것을 global communication searching (GCS)라고 명명한다. 나머지 두 탐색 방법은 현재까지 탐색한 결과 중 가장 좋은 결과를 배제하고 주변을 탐색하는 방법들이다.
이들은 각각 local communication searching (LCS)와 local exploration searching (LES)이다.
LCS는 가장 인접하게 위치한 개체와 자신의 결과를 비교해 결과가 우수한 방향으로 다음 탐색 방향을 결정하는 탐색 방법으로 현 개체 주변에서 탐색을 진행하는 탐색 방법이다. 그리고 LES는 무작위로 선택한 개체들이 위치한 방향에서 벗어나 탐색이 덜 이뤄진 방향으로 탐색을 수행하기 위한 탐색 방법이다. SIOA의 상세한 구현 과정은 다음과 같다.
(Step 1-1) 기본 조건 설정
최적화하고 싶은 목적 함수를 결정하고 설계 변수의 최대 및 최소 영역 범위를 정의한다. 탐색을 수행할 개체 수를 정하고 개체들이 3 탐색 방법 중 어떤 방식을 선택할지 비율을 결정하는 와 를 결정한다.
(Step 1-2) 개체 생성
탐색 범위 내에서 첫 단계에서 설정한 개체 수만큼 무작위로 개체를 생성한다.
(Step 1-3) 탐색 결과 확인
무작위로 배치한 개체들의 목적 함수 값들을 계산한다.
(Step 1-4) 개체들간의 정보 교류
탐색한 위치에서의 목적 함수 값을 기반으로 전체 개체들 중 최적의 위치에 있는 개체를 찾아 그 개체를 로 정의한다. 이 단계에서 다음 수식에 기반하여 각 개체의 계수 계산한다.
= ( ) < ℎ 1 ( ) > ℎ − 1
(4.1)
계수는 현 개체의 가장 인접한 위치에 위치한 개체와 목적 함수 값의 비교를 통해 결정된다. 는 개체와 거리 상 가장 인접하게 위치한 개체를 나타낸다. 가 탐색한 목적 함수 값이 의 것보다 크다면 계수는 -1이되고 그 반대의 경우에는 1이 된다. 계수는 LCS 탐색 수행 시 탐색 방향을 결정하는 계수가 된다. 계수가 -1이 되면 인접한 개체가 있는 방향의 반대 방향을 탐색하고 1이 되면 인접한 개체가 있는 방향으로 탐색을 수행하게 된다.
그림 4.2 SIOA의 순서도 Fig. 4.2 Flow chart of SIOA
(Step 1-5) 개체들을 통한 최적해 탐색
그림 4.2에 나와 있듯이 탐색은 3가지 방법으로 진행된다. 우선 개체들은 에 따라 탐색 방법을 결정하게 된다. 는 0에서 1사이 값을 균일한 확률로 생성하는 무작위 값이다. 는 탐색이 진행될 때마다 새로 생성하게 된다. 의 값이 초기에 설정한 보다 작으면 GCS를 수행하고, 보다 크고 보다 작으면 LCS를 수행하며 그 외의 경우에는 LES를 수행하게 된다.
본 논문에서는 와 를 각각 0.7과 0.9로 설정하였다. 이로 인해 각각 70%, 20% 그리고 10% 확률로 GCS, LCS 그리고 LES를 수행하게 된다. 각 탐색 방법은 다음과 같이 수행한다.
1) GCS
GCS는 최적해가 의 주변에 있을 것이라는 가정하에 주변을 탐색하는 것을 목표로 한다. GCS 방법으로 탐색을 수행할 개체는 다음 수식 (4.2)와 (4.3)를 기반으로 해서 다음 탐색 영역을 결정하게 된다.
= + × ( − ) (4.2)
∈ ( , ), (4.3)
여기서 는 번째 탐색을 수행하는 번째 개체를 나타낸다. 수식 (4.3)에 나와 있듯이 변수 은 정규 분포에서 무작위로 선택된 값으로 개체가 이동하는 거리를 결정하는 값이다. 는 정규분포의 평균 값을 그리고 는 정규분포의 표준편차 값을 나타낸다. 본 논문에서는 와 를 각각 0과 1로 설정하였다. 정규분포 값이 크다면 수렴 속도는 느려지지만 해를 탐색할 확률은 높아지게 되고 반대의 경우에는 수렴 속도가 빨라지지만 해의 신뢰도가 낮아지게 된다. 그림 4.3는 GCS의 탐색 방법을 보여주는 예시이다. 정규분포를 사용하는 것은 최대한
의 주변에서 탐색을 수행하기 위해서이다. 그러나 이를 통해 탐색이 진행되지 않은 영역이 발생할 수 있어 LCS와 LES 탐색이 필요로 하게 된다.
2) LCS
그림 4.4에 나와 있듯이 LCS는 현 개체 주변을 탐색하기 위해 가장 인접한 개체와 정보를 주고받고 탐색을 수행하는 방법이다. 인접한 개체와 목적 함수를 통해 얻어진 결과를 비교하고 두 개체 중 상대적으로 우수한 해가 있는 방향으로 탐색 방향을 결정한다.
LCS에서도 GCS와 같이 정규분포 이 사용된다. 는 4단계에서 그림 4.3 정점들과 GCS의 예
Fig. 4.3 Example of GCS determination of each peak
그림 4.4 정점들과 LCS의 예
Fig. 4.4 Example of LCS determination of each peak
계산한 값으로 인접한 개체와 탐색 결과 비교 후 더 나은 해가 위치할 것으로 예상되는 방향을 나타내는 계수이다. GCS는 거리에 상관없이 최적의 해가 위치하는 곳을 향해 이동하는 반면에 LCS는 인접한 해 주변으로 탐색을 수행하게 된다. 이를 통해 탐색이 진행되지 않았던 영역에 대한 탐색 확률을 높인다.
= + × × ( − ) (4.4)
3) LES
LES는 탐색이 진행되지 않고 있는 영역을 탐색하기 위한 방법으로 무작위로 선택한 두 개체와 지금 단계까지 탐색해서 나온 최적의 개체 의 위치 정보를 기반으로 해서 탐색이 주로 이뤄지고 있는 방향을 가정하고 그 반대 방향으로 탐색을 수행하는 것을 목표로 한다.
= − × {[( − ) + ( − ) + ( − )]/3}
1 (4.5
)
이를 위해 수식 (4.5)와 같이 임의의 두 개체 와 그리고 가장 탐색이 활발하게 이뤄지고 있을 를 이용해 활발하게 탐색이
그림 4.5 정점들과 LES의 예
Fig. 4.5 Example of LES determination of each peak
수행되고 있는 방향을 가정한다. 는 이동 거리를 결정하는 0과 1사이의 무작위 값이다. 수식 (4.5)에 나와 있듯이 3 개체와 현 개체 사이의 벡터를 계산하고 이를 평균 내어서 그 벡터의 반대 방향으로 이동하게 된다.
이 방법은 간단한 정보를 통해 탐색이 덜 이뤄지는 방향을 특정하고 이 방향으로 개체가 탐색을 수행하는 것을 돕는다.
(Step 1-6) 개체 평가 및 개체 이동
이 단계에서는 개체들이 새로 이동한 위치에서 목적 함수 값을 확인하고 그 결과가 이전 위치보다 우수한 지 평가한다. 그리고 결과가 개선되었다면 새로운 위치로 이동하고 그렇지 않다면 이전 위치로 돌아간다. 이로써 최적의 해를 유지할 수 있게 된다.
모든 개체 중 최적해를 가지는 개체를 찾고 그리고 이전 최적해를 가지고 있던 개체와 동일한 개체인지 판별한다. 만약 같은 개체라면 최적해 를 유지하고 새로운 개체가 나타났다면 새로운 개체로 를 변경한다.
(Step 1-7) 종료 조건 만족 여부 확인
종료 조건을 만족할 때까지 4-6 단계를 반복한다. 알고리즘이 종료했을 때 최적해는 가 되게 된다.