• 검색 결과가 없습니다.

유전 알고리즘으로 진화하기

N/A
N/A
Protected

Academic year: 2022

Share "유전 알고리즘으로 진화하기"

Copied!
20
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

유전 알고리즘으로 진화하기

중학교 자유학기제

유전 알고리즘

(2)

STEAM

진화란 무엇일까요 ?

(3)

학습 목표

유전 알고리즘의 원리를 이해하고 ,

이를 응용하여 사람의 모습을 구현해 봅시다 .

(4)

STEAM

생물체가 환경에 적응하면서 진화해가는 모습을 모방하여 최적의 값을 찾아내는 검색 방법

유전 알고리즘

(5)

STEAM

숫자카드 놀이하기

{1, 5, 6, 8, 3, 7, 3, 5, 9, 0} 중 3 개를 골라서 20 으로 만들어라 .

각 숫자 카드는 유전자로 가정한다 . 세 개의 카드를 뽑아 그 합을 구한 뒤 20 이 되는지 확인한다 .

●●

●●

●●

●●

●●

●●●

●●

●●●

●●

●●●

●●

●●

●●

●●●

●●●

●●●

(6)

STEAM

숫자카드 놀이하기

1 단계 [ 무작위 생성하기 ] : 숫자 세 개를 뽑아 4 개의 조합을 만들고 , 각각의 적합도를 구하세요 .

만약 { (1,5,3) (8,0,9) (9,9,8) (3,7,5) } 으로 각각 카드를 뽑았다고 하자 . 각각의 적합도를 구하 면 , { 11, 3, 6, 5 } 이 되며 , 이 값이 높을수록 20 에서 멀기 때문에 해로서 부적당하다는 것을 의 미하며 , 따라서 세대를 거침에 따라 살아남을 확률이 낮게 된다 .

●●

●●

1+5+3=9 20-9=11 적합도 : 11

●●●

●●

●●●

●●●

●●●

●●●

8+0+9=17 20-17=3 적합도 : 3

<

(7)

STEAM

숫자카드 놀이하기

2 단계 [ 선택하기 ] : 다음 세대를 만들기 위해 , 위에서 만든 세대의 개체 중 적합도가 높은 2 개의 유전자를 선택하세 요 .

이때 선택은 적합도가 높은 3 과 5 의 값 즉 , (8,0,9) 와 (3,7,5) 를 선택하고 나머지를 제거한다 .

(1,5,3) (8,0,9) (9,9,8)

(3,7,5)

(8)

STEAM

숫자카드 놀이하기

3 단계 [ 교배하기 ] : 교배위치를 무작위로 선택하고 , 숫자를 교환하여 적합도 값을 구하세요 .

선택된 2 개의 유전자의 유전체는 두 번째 자리를 서로 교환해서 새로운 세대가 형성된다 . 예로

(8,0,9), (3,7,5) 가 선택되었고 다음 세대의 개체는 (8,7,9), (3,0,5) 가 되며 , 각각의 적합도는 4, 12 가 된다 .

(9)

STEAM

4 단계 [ 돌연변이 만들기 ] : 자손 개체의 세 번째 자리에 무작위의 숫자를 넣어 적합도를 확인하세요 .

자손 개체 (8 ,7, 9). (3, 0, 5) 에서 세 번째 유전체 9 와 5 를 각각 무작위수로 뽑아 (8 ,7, 3). (3, 0, 9) 라는 돌연변이를 생성한다 .

●●●

●●

●●●

●●

●●●

●●

●●●

●●●

●●●

숫자카드 놀이하기

(10)

STEAM

1 단계 [ 무작위 생성하기 ] : 숫자 세 개를 뽑아 4 개의 조합을 만들고 , 각각의 적합도를 구하세요 .

2 단계 [ 선택하기 ] : 다음 세대를 만들기 위해 , 위에서 만든 세대의 개체 중 적합도가 높은 2 개의 유전자를 선택하세 요 .

3 단계 [ 교배하기 ] : 교배위치를 무작위로 선택하고 , 숫자를 교환하여 적합도 값을 구하세요 .

[ 돌연변이 만들기 ] : 선택한 개체 중 하나를 선택하여 무작위의 숫자를 넣어 적합도를 확인하세요 .

[2~3

단계 반복하기 ] : 선택하기과 교배하기 과정을 2 번 반복하세요 .

숫자카드 놀이하기

(11)

STEAM

이러한 과정을 반복하면 어떻게 될 것이라고 생각하나요 ?

숫자카드 놀이하기

(12)

STEAM

유전 알고리즘의 적용

https://www.youtube.com/watch?v=Yr_nRnqeDp0&t=11 2s

‘ 유전 알고리즘으로 그네 타는 법을 학습시켰다‘

아래 사이트를 클릭하여 영상을 확인해보세요 .

(13)

STEAM

사람 모형 만들기

왼쪽과 같은 신체 부위를 가진 사람을 만들자 .

(14)

STEAM

사람 구현하기

1 단계 [ 무작위 생성하기 ]

- 5 명이 각각의 뽑기 상자에서 원 모양 , 직사각형 모양의 색종이 조각 12 개를 뽑는다 . - 뽑는 순서대로 위에서 아래로 , 왼쪽에서 오른쪽으로 각 신체 부위에 도형을 배치한다 .

(15)

STEAM

사람 구현하기

2 단계 [ 선택하기 ( 적자생존 )]

- 해당 신체 부위의 도형이 완성하고자 하는 도형과 일치하면 그 값을 1 씩 누적하여 적합도를 계산한다 . 신체 부위가 12 개이므로 12 가 되면 사람이 완성된다 .

- 5 명 중 만들고자 하는 사람의 모습과 가장 적합도가 높은 개체 2 개만 남기고 나머지 3 개의 개체 조각들 은

다시 상자 속에 넣는다 .

개체모양

적합도

6 4 8 2 5

선택 탈락 선택 탈락 탈락

(16)

STEAM

사람 구현하기

3 단계 [ 교배하기 ]

- 선택된 개체를 만든 사람을 제외한 나머지 사람 중 2 명은 선택된 개체의 상체를 교환한 형태의 자손을 만든다 .

(17)

STEAM

4 단계 [ 돌연변이 만들기 ]

- 나머지 한 사람은 4 개의 개체 중 무작위 ( 주사위 사용 ) 로 한 개체를 고른다 .

- 선택된 개체의 신체 부위 중 하나를 무작위 ( 주사위 2 개 사용 ) 로 골라 다른 모양으로 바꾼다 . - 적합도가 12 가 될 때까지 위의 과정을 반복한다 .

사람 구현하기

(18)

STEAM

① Travelling Salesman Problem(TSP, 순회외판원문제 )

https://www.youtube.com/watch?v=CrBHST9ZK80

유전 알고리즘 활용 예시

② 로봇 주행 성능 향상

https://www.youtube.com/watch?v=KHV7fWvnn_0

③ 모나리자 이미지 만들기

https://www.youtube.com/watch?v=rGt3iMAJVT8

④ 게임에서의 최적화 방법 찾기

https://www.youtube.com/watch?v=PHwMH28wFuM https://www.youtube.com/watch?v=yKN8IhIccVw

(19)

STEAM

유전 알고리즘을 적용하여 해결할 수 있는 문제에는 무엇이 있을지 생각하여 글로 작성해 보세요 .

유전 알고리즘으로 문제 해결하기

(20)

감사합니다 .

중학교 자유학기제

참조

관련 문서

중요한 정보를 지닌 DNA가 유전 정보를 운반하기 위해 직접 핵과 세포질 을 이동한다면 DNA의 정보가 손상될 수도 있다.. DNA 유전정보가 손상되지 않고

전자파 차폐재는 재료의 도전,유전 및 자성 손실을 이용하여 전자파가 차폐막을 통 과할 때 전자파의 반사,흡수,투과 및 다중 반사에 의해서 전자파의 세기를

Random Forests는 과학계는 물론 산업계에서도 많이 사용되는 Machine Learning 알고리즘으로, 매우 우수한 성능을 보여주는 알고리즘 중에 하나입니다.. Random

멘델의 유전 법칙을 스토리가 있게 구성하여 스토리보드를 창의적 으로 제작하고 키네마스터 어플리케이션을 이용해 다양한 효과를 적용하여 스톱모션 영상을 제작할

연구윤리의 부재를 예방 혹은 해결할 수 있는

러시아 내 대규모 유전 중 하나인 코빅타 가스 전에 대한 소유권은 현재 TNK-BP가 보유하고 있으며, 정부 관계자의 말에 따르면, 로스네프츠 가즈는 가즈프롬

실생활에서 공학과 설계를 이용한 사례를 통해 공학과 설계의 과정을 이해하고 이를 적용하여 문제를 해결할 수 있는 사례를 3개 이상 말할

효율성이 떨어지 는 이러한 드론의 문제점을 해결할 수 있는 방법이 무엇이 있을까?. 미래 에는