유전알고리즘

    [ Genetic Algorithm ] 유전 알고리즘을 통해 비밀번호를 뚫어보자!

    이번 포스팅에서는 유전 알고리즘을 통해 비밀번호를 찾는 알고리즘이다. 그전에 유전 알고리즘에 대해서 간략하게 설명을 하자면 다음과 같다. 말 그대로 유전 즉, 세대가 존재한다는 뜻이다. 이게 무슨 뜻이냐... 우선 랜덤으로 최초의 아이들을 생성한다. 그리고 그 생성된 아이들을 가지고 fitness (성능)을 측정한다. 성능을 측정할 때 적절한 점수를 부여하여 만약 점수가 높다면 해당 아이들을 선발해 낸다. 그리고 선발된 아이들을 교배하여 다음 세대를 만들어낸다. 그 과정에서 돌연변이도 추가하여 다음 세대를 만들어 내고 또 태어난 자식들을 가지고 성능을 측정하여 위의 과정을 계속 반복하여 수 세대를 걸쳐서 답을 도출해 내는 것이 유전 알고리즘이다. 그렇다면 파이썬으로 유전 알고리즘을 구현해보자. 함수가 많..