오랜만에 글을 포스팅 합니다.
이래저래 하고 있는건 많고 정리할 시간이 부족하다보니 이제야 포스팅합니다.
일반적으로 쓰이는 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 연산자에 대해서 알아보겠습니다.
이래저래 하고 있는건 많고 정리할 시간이 부족하다보니 이제야 포스팅합니다.
일반적으로 쓰이는 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 연산자에 대해서 알아보겠습니다.