분류 전체보기 66

3. 간단한 용어 정리

몇가지 용어에 대해서 정리해 보도록 하겠습니다. 사실 GA 에서는 크게 2가지의 알고리즘으로 나뉘어 있고 흐름에 의한 알고리즘 자체의 차이가 있을뿐이지 용어에 대해서는 차이가 없습니다. 하지만 GA 를 구현한 프로그램들마다 용어자체에 약간의 차이를 두고 구현되어 있는 경우가 있습니다. 그에 대해서 한번 생각해 보기 위해 용어에 대해 정리해 보는 것입니다. 가장 하위계층의 개체부터 개체의 조합. 그리고 연산자까지 정리해보도록 하겠습니다. 먼저 하나의 개체는 일반적으로 다음과 같이 되어 있습니다. Chromosome - 유전자표현 Fitness - 적합도 OBJ(x) - 유전자표현을 10진수로 변환한것, 다른형태로 표현하기도 합니다. parent1 - parent2 - parent1과 2는 현재의 개체가 C..

2. GA(Genetic Algorithm)의 간단한 예제

오늘은 GA 의 간단한 예제에 대해서 올려봅니다. 우선 하나의 가정을 하죠. 다음과 같은 수식이 있고 그것의 범위를 다음과 같이 할당해 줍니다. 우리는 이 수식의 최대값을 알아내려고 하는 것입니다. y = x^2 - 2*x + 4 x = [ -10 , 10 ] 이렇다고 가정을 해보는 것입니다. 위 문제는 누구라도 간단하게 구할수 있는 문제이지만 그냥 하나의 예로서 들어본 것입니다. 그렇다면 GA 의 흐름에서 이 문제를 어떤 식으로 풀어나가는지 알아보도록 하죠. 우리는 GA 연산에서 쓰일 몇가지 구체적인 변수에 대해 설정을 해 줘야 합니다. 우선 GA 에서 초기화에 몇가지의 개체를 이용할 것인지 설정해 줘야 하고, 몇개의 비트로서 그 개체에 대해 표현을 할지도 결정을 해 줘야 합니다. 어느정도 확률로서 C..

1. GA의 간단한 순서

GA 는 하나의 알고리즘으로서 기본적으로 다음과 같은 순서로 동작합니다. (여기서 설명하는 것은 일반적인 알고리즘이고 변형된 알고리즘으로서 Steady-State 알고리즘이 있습니다.) 1. 초기화(Initialize) 유전자 개체를 초기화 합니다. 임의로 지정한 수치 만큼의 유전자를 생성해 내는 것입니다. 2. 평가(Evaluate) 위에 생성된 유전자 개체에 대해 평가를 합니다. 평가의 기준은 사용자가 만드는 것입니다. 생성된 유전자가 문제에 어느정도 적합한 유전자 인지 평가하는 것입니다. 3. 반복(Loop) 여기서 부터는 몇가지 반복작업이 계속 이루어 집니다. 반복이 멈추는 조건은 사용자가 지정한 최대 세대수[1]에 도달하거나 사용자가 지정한 최대조건에 도달 했을 경우 입니다. 멈추지 않을경우 밑..

제가 공부하고 있는 지능시스템이란?

우선 크게 분류를 나눠보고 제가 어느 분야를 공부하고 있는지를 말씀드리자면 Artificial Intelligence 와 Computational Intelligence 로 구분할 수 있는데 A.I. 는 흔히 알고 있는 인공지능 이고 C.I. 는 계산지능이라고 표현하면 올바를것 같습니다. 저는 C.I. 쪽을 공부하고 있습니다. 이것은 Fuzzy System(FS), Neural Network(NN), Evolutionary Computation(EC) 등 으로 구분할 수 있는데 저는 이중에서도 Evolutionary Computation 쪽을 공부하고 있습니다. 그 중에서도 Genetic Algorithm 과 Genetic Programming 에 대해서 공부를 하고 있습니다. 유전적인 이론(예: 다윈의..