하스스톤으로 본 진화론

덕후삼촌 작성일 15.08.02 09:03:46
댓글 17조회 9,799추천 1
 

143847360460694.jpg

간단 요약

 

작년 이맘때쯤에 하스스톤으로 진화론에 관한 연구를 했습니다.

 

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

요거 보고 모티브를 얻었구요

 

 

핵심아이디어는 덱 = 생명체, 카드 = 유전자

 

 

목표는 카드게임이라는 분야에서도 진화의 원리를 적용할 수 있는지

 

그리고 원래 카드게임 인공지능은 덱을 짜주면 그걸로 플레이하는 방법만 아는데

거기에 컴퓨터는 남는게 시간과 노오력이라는 사실을 이용해서

자기가 쓰는 덱의 승률을 귀납적으로 분석한다음 덱들을 교배시키고 카드를 바꾸는 식으로 매커니즘을 짜주면

 

카드게임 인공지능이 카드까지 바꿀 수 있게 더 발전하지 않을까? 하는 생각이 들었기 때문입니다.

 

 

 

실험방법은 우선 직업/중립 기본카드와 일반카드를 전부 제작한 계정을 두개 준비해서

 

주문과 하수인 포함해서 모든 카드에 3자릿수 번호를 붙힙니다. (코스트 한자리) (카드번호 두자리)

 

 

제 1세대 덱 10개를 무작위로 만듭니다. (모든 계산은 엑셀 활용, 코스트마다 카드 숫자가 꽤 차이가 나기 때문에, 전체 카드 풀에서 랜덤선택 연산을 할때 각 코스트에서 같은 확률로 카드가 선택되도록 함수로 보정해줌.)

 

 

제 1세대 덱 10개를 하스크롤러R.30 기본설정으로 마법사 전문가 인공지능이랑 20회 게임을 시킨 후 승패를 기록

 

 

승률이 가장 높았던 덱 4개만 생존하고, 나머지는 도태.

 

 

 

제 n+1세대 n세대의 생존 덱 4개와 그것들을 각각 교배시킨 그 자녀 덱 6개로 구성됩니다.

 

자식 덱은 상동염색체에서 모티브를 얻어서, 덱 둘을 코스트 순서대로 나열했을때 

같은 행에 놓이는 카드 둘 중에 하나만 유전시키되, 왼쪽덱에서 15개, 오른쪽 덱에서 15개를 동수로 뽑아 구성함.

(이게 함수 짜기가 좀 까다로웠습니다...)

 

 

그리고 돌연변이도 넣었습니다. 자녀 덱 6개중 3개는 카드 3장을 무작위로 선택해 바꾸어놓았습니다.

 

 

이렇게 5세대까지 가서 평균승률과 자주쓰이는 카드의 종류, 마나 분포 등의 변화를 관찰했습니다.

 

 

승률은 예상보다 더 가파르게  48% - 61.5% - 64% - 68% - 71%  으로 아주 보기좋게 상승했고

  

 

마나커브는 세대가 지나면서 점점 매끄러워졌고 카드는 마나지룡 화염구 불기둥같은 꿀카드들의 조성이 늘어났습니다.

 

(마나커브랑 카드종류 분석했던건 그때 네이버 내게 메일쓰기로 보내놨는데 다운로드 가능기간이 지나서 날아가버림.... ㅠㅠ)

 

 

 

 

 

 

 

 

궁금하실 질문에 답을 하자면....

 

 

 

 

오토충이냐?

 

분명 프로그램을 쓴건 잘못이고 손토 돌릴 의향도 있었지만

 

사람이(특히 실험자 본인인데;;) 돌리면 객관성을 잃게돼서 부득이하게 오토를 선택했습니다.

 

인공지능 상대 외에 오토 쓴적없습니다. 저거 하려고 오토 검색해서 받았습니다.

 

 

 

 

무슨 대회냐?

 

교내에서 하는 상당히 쓰잘데기없는 조그만 과학 자유연구 발표대회...

 

 

 

 

상탔냐?

 

순위권 못든걸로 기억합니다.

 

 

 

 

누가 도와줬냐?

 

95% 내가 하고 팀원 중에 두명이 오천원 문상 + 내 돈 만오천원 해서 새 계정에 일반카드 다 만들었습니다. 

 

디씨에서까지 솔직하지 못하고 싶진않고 뭐 이제와서 뭘 쉬쉬하겠냐만 다들 생활기록부 기재 때문에 팀원하자고 한거라서...

 

그래도 충분히 고맙게 생각함. 협동의 취지를 살리지 못했다는 지적을 굳이 하시겠다면 달게 받습니다.

 

두달동안 진행해서 4~5일동안 잠 못자면서 본격적으로 실험했습니다.

 

 

 

 

과학고냐? 

 

서울소재 평범한 일반고 다닙니다.

 

 

 

 

공부잘하냐?

 

평타...

 

 

 

 

 

 

 

 

잔뜩 부푼 마음으로 나름 핵심을 잘 전달하려고 발표했는데


다들 뾰로통하고 이해도 조금 못하시고 

특히 한분은 게임 이라는 사실에 엄청 큰 적의를 보이시는 바람에;;

 

아무튼 엄청 허무하게 끝났고

나름 엄청 열정적으로 벌였던 일이라, 개우울해져서 이게 다 뭔 헛짓인가 싶어서 다 덮어두고 있었는데




그냥 오늘 갑자기 생각나서 한번 돌갤에 올려봅니다.


물론 실제 진화의 과정을 불완전하게 모방한것에 불과하지만... 나름 긍정적인 성과를 거뒀었다고 생각합니다...



각종 평가나 피드백 주시면 읽어보겠습니다.





- 일이 좀 커진탓에 습니다체로 수정...;; ㅋㅋ




와 개념글에 유전알고리즘 연구한거 레딧 1위임 지금 ㄷㄷㄷㄷㄷㄷㄷㄷ

143847369863299.jpg

 

누가 번역해서 올림 ㄷㄷㄷㄷㄷㄷㄷ

 

레딧링크: https://www.reddit.com/r/hearthstone/comments/3emzdw/a_korean_found_an_evolutionary_method_to_improve/

 

원글링크: http://m.dcinside.com/view.php?id=hearthstone&no=1100005

 

연구자료: https://goo.gl/WMn67n

 

요약 : 대한민국의 일반인문계 고등학교 2학년학생이

         교내에서 열린 과확대회에서

         하스스톤으로 진화론연구논문발표.

         상은 못탓다고 함.

덕후삼촌의 최근 게시물

엽기유머 인기 게시글