Genetic Algorithm


1. n-Queen Problem

 1) 문제 정의 : N x N 크기의 체스판이 주어질 떄, N개의 퀸이 서로 공격이 불가능하도록 놓는 경우를 구하는 문제

 2) ex : N = 4

 

 

 

 Q

 

 

 

 

 

 

 

 Q

 

 


2. Genetic Algorithm

 1) Fitness function으로 Fitness 검사 : 어느 정도 해에 가까운지 수치값으로 나타내는 함수로 수치값을 계산

 2) 검사된 결과 중 가장 높은 값은 두 개, 다음 높은 순으로 두 개를 뽑아 서로 형질을 바꾼다.(유전)

 3) 거기에 랜덤(자리, 번호 둘다)으로 형질을 바꿔준다.(돌연변이)

   ex) ①( 3 3 4 2 )   4  4/7      ①( 3 3 | 4 2 )           ( 3 3 | 1 2 )          ( 3 ① 1 2 )

        ②( 1 2 1 2 )   1  1/7      ②( 1 2 | 1 2 )           ( 1 2 | 4 2 )          ( 1 2 4 2 )

        ③( 1 2 3 4 )   0  0/7      ①( 3 | 3 4 2 )           ( 1 | 3 4 2 )          ( 1 3 4 ④ )

        ④( 1 1 1 3 )   2  2/7      ④( 1 | 1 1 3 )           ( 3 | 1 1 3 )          ( 3 1 ③ 3 )

               ⓐ                                ⓑ                       ⓒ                      ⓓ

   ⓐ         : Fitness 검사 : 두개씩 퀸을 페어로 봤을 때 서로 공격이 불가능 한 페어의 개수를 센 값이 클수록 Fitness가 높다.

   ⓑ ~ ⓒ  : 유전 나누는 구간을 랜덤으로 정해 서로 바꾼다(위 예제에선 ①이랑 ②, ③ 이랑 ④를 바꿨다)

   ⓓ         : ⓒ가 끝난 뒤, 특정 지점의 번호를 바꿔준다.(돌연변이)


3. 장단점

 1) 장점

   ① 거의 최적에 가까운 해(near optimal)를 빠르게 찾아낼 수 있다.

   ② parallel 작업이 가능하다

 2) 단점

   ① 어떤 방식으로 최적을 구했는지 재현이 거의 불가능하다.

'AI' 카테고리의 다른 글

[AI] Knowledge Representation  (0) 2017.06.07
[AI] Constraint Satisfaction Problems  (0) 2017.06.07
[AI] Game Playing  (0) 2017.04.17
[AI]3장 Heuristic Search Tech.  (0) 2017.04.13
[AI]2장 Intelligent Software Agent, Problem, Problem spaces, Search  (2) 2017.04.13

+ Recent posts