오랜만에 글을 포스팅 합니다.
이래저래 하고 있는건 많고 정리할 시간이 부족하다보니 이제야 포스팅합니다.

일반적으로 쓰이는 MUT 연산자는 다음과 같은 2가지가 있습니다.

1. Single MUT
2. Multi MUT

하나는 하나의 Bit 를 MUT 시키는 것이고 다른 하나는 여러개의 Bit 를 대상으로 MUT를 수행합니다.

1. Single MUT

  이것은 하나의 Bit 만을 MUT 시킵니다. 아주 간단하게 알아 볼 수 있습니다.

  (1) 선택연산자를 통하여 선택이 이루어진다.
 (2) 선택된 개체의 한 bit 를 선택하여 MUT 시킨다.

  예를 보면 간단하게 변화를 알아볼 수 있습니다.

 만약 다음과 같은 유전자가 있다면
 
  0 0 0 0 0 0 1 0

  이것이 선택되어 7번째 bit 를 Mutation 시킨다고 가정합니다.
  그렇다면 다음과 같이 변하는 것입니다.

  0 0 0 0 0 0 0 0

2. Multi MUT

  이것은 여러개의 Bit 를 MUT 시키는 것입니다. 이전것과 동일한 방식으로 이루어 집니다.

  만약  다음과 같은 유전자가 있다면

  0 0 0 1 1 0 1 0
 
  그리고 이것이 선택 되었다고 가정을 하고, 4~8 번째 bit 가 선택 되었다고 한다면
 
 0 0 0 0 0 1 0 1

 이런식으로 변화하게 됩니다.



오늘 살펴본 MUT 는 아주 간단한 연산자 입니다만 그 사용에 있어서 아주 조심해야 합니다.
이것은 파괴연산자라 불리는 것으로서 확률의 의외성을 바라고 이용하는 것입니다.
즉 이 연산이 너무 자주 수행되게 된다면, 실제 답을 잘 못찾는 현상이 나타나기도 합니다.
보통 GA 연산 수행시에 1 ~ 10% 정도의 확률로 수행하게 하는게 일반적입니다.
알고리즘의 테스트를 위해서라면 아예 수행을 하지 않는 경우도 있습니다.

다음 번에는 Selection 연산자에 대해서 알아보겠습니다.

+ Recent posts