Heuristic Search Techniques 한계
local minima 문제
최적의 해를 구하지 못했지만, 최적이라고 판단하여 탐색을 종료
시스템 최적화 문제
하나의 시스템은 연속적인 단일 변수만 존재하는 것이 아니라 discrete, categorical, integer, boolean 등 다양한 변수가 복합적으로 존재
(다변수 시스템에서 모든 변수의 최적의 해를 찾는 것은 어려운 일)
1. Genetic Algorithm 배경
생물체의 염색체가 유전되는 현상에서 영감을 얻은 최적화 알고리즘
교차, 돌연변이, 토대 등의 과정을 통하여 우성 유전자만이 살아남는 자연계의 현상을 알고리즘으로 만든 것
(명확하게 정의되지 않은 문제에도 적용할 수 있기에 다양한 응용에서 매우 활발히 이용)

보통의 경우 염색체의 bit는 0 또는 1로 표현 (유전자 하나를 의미)
주어진 염색체의 유전자를 실제 어떤 값으로 표현하는 것을 Encoding이라 함
(-> 염색체는 Encoding된 정보이기에 Decoding 필요)

유전 뿐만 아니라 다양한 최적화 문제에 사용되기에 Genetic Algorithm Encoding에는 여러가지 종류 있음
( task에 따라 scheme도 달라짐 )
feature selection에는 주로 binary encoding 사용

2. Genetic Algorithm
GA 알고리즘은 유전 뿐만 아니라, 다양한 최적화 문제에 사용되기에 다양한 Encoding Scheme가 사용되지만,
일반적으로 feature selection에서는 Binary Encoding이 사용된다.

어떤 염색체가 더 좋은지 판단하는 기준 (Accuracy처럼 높을 수록 좋음)
상위 N%의 염색체를 선택(하위 염색체는 선택 X)

rank를 매기는 것은 모든 염색체가 기여할 수 없기에, 기여도를 통해 결정

염색체의 probability를 계산하고, 0~과 1사이의 값으로 변환한 후 룰렛 돌리기


Crossover을 할 때 남성 유전자 44+XY / 여성 유전자 44+XX 에서 child에게 44+(XY/XX)로 전달되는 것에서 착안
2개의 염색체에서 point에 따라 나누고 2개의 Child 염색체를 만듦
Crossover point의 수에 따라 방법이 나뉜다 (Single Point / Multi Point)
2개의 부모 염색체에서 2개의 자식 염색체를 만들기

2개의 부모 염색체에서 2개의 자식 염색체를 만들기

Crossover이 진행될 수록 optima에 수렴하는데, local optima에 빠질 수도 있음
global optima에 수렴되어야 하기에 약간의 변수로 돌연변이 gene을 넣는다.
(local optima에서 빠져나올 수 있는 방법)

Crossover을 끝나는 시점을 정하기 위한 종료 기준을 정해야 한다.
3. GA Algorithm 실습 1
: 범위에서 의 최대값
GA Algorithm을 진행하기 전에, Encoding 해야됨
(binary integer 2진수 사용)

( 0 : 00000~ 31 : 11111)
첫 세대(generation)은 randomly하게 생성
(population size=4로 가정)

첫 세대를 평가하기 위해 decoding 하여 fitness function value 계산

Fitness Probability를 구하기 위하여 값 전체 합에서의 비율을 계산

Roulette wheel selection method 를 사용하여 mating pool 선택

Roulette Wheel을 누적합으로 표현한 후, 0~1사이의 값을 4개 randomly하게 추출
그 값에 해당하는 염색체를 mating pool에 작성
(현재 예시 그림에서는 염색체 1, 2, 2, 4가 선택됨)


mating pool에 있는 두 염색체를 randomly하게 선정하여 새로운 염색체 2개를 생성
crossover point 또한 randomly하게 선정됨

local minima를 피하기 위해 돌연변이 생성
mutation rate는 굉장히 작은 값이어야 함
(ex. )

step2~5의 과정을 stop condition이 될 때까지 수행


4. GA Algorithm 실습 2
: TSP (Travelling Salesman Problem) 문제
TSP 문제 : 배달원의 최적 경로 탐색
TSP가 어려운 이유
parameter setting과 도시 좌표 입력

랜덤으로 도시 경로 설정, Population size 만큼 생성됨

Berlin 에서 시작해서 돌아오는 것이 목표이므로 경로의 처음과 끝에 Berlin 추가

적합도 계산 : 거리 값이 기준이므로 Euclidean distance 적용



Selection 과정으로 생성된 a,b에서 a에 5개 도시를 앞에 두고, 나머지 도시를 b에서 순차적으로 합침

일정 확률로 도시의 순서를 바꿈

Step 2~5.까지의 과정 Stop Condition이 될 때까지 반복

