5/8 오전 3시 20분 추가:

팁게에 새 알고리즘 사용한 버전을 올렸습니다.
위 글의 버전이 더 확률이 높고 정확하기 때문에 이를 써 주시기 바랍니다.

#################################################

5/7 추가: 조만간 알고리즘 업데이트 예정입니다. 
딥러닝 방식이 아닌 전체 확률을 싸그리 구하는 방식으로 변경 예정입니다. 
이럴 경우 정확한 확률까지 구할 수 있을 겁니다.

####################################################################################
원래 팁게에 쓰려고 했는데 가입하고 하루 있어야 쓰네요. 걍 자게에 씁니다.



좀 길게 쓰려고 했는데, 어차피 길어봐야 읽기만 싫어지니 기술적 내용 싹 빼고 간단하게 쓸게요.
그것도 싫으면 밑에 3줄 요약 있습니다.

제 소개부터 하자면 저는 아브렐슈드에서 1445 바드를 키우고 있는 메난민 출신입니다.

여러분들 돌파고는 알고 계실겁니다. https://myar.tistory.com/26 
돌파고 검색하면 구글에 제일 먼저 뜨는 곳이죠.

요전에 돌파고 보면서 돌을 깎다가 내가 강선이형한테 정말 버림받은건가 싶던 쯔음에
알고리즘이 어떻게 되나 궁금해서 돌파고 홈페이지에 다시 들어가봤습니다.

마침 최근에 블로그 주인장께서 알고리즘 설명을 해주신 댓글이 있었고,
사이트 소스도 다 공개하셨기 때문에 한번 읽어봤습니다.

제가 이해한 바로는 해당 알고리즘은 '무조건 감소 옵션이 낮게' 뜨는 방향으로 설정되었습니다.
틀린 말은 아닙니다. 왜냐면

감소옵션이 낮게 뜬다 = 감소옵션 실패를 많이 한다 = 증가옵션에 쓸 확률이 더 높아진다

때문에 감소 옵션 성공이 적을 수록 증가 옵션 성공 확률도 올라가니 좋은 돌을 뽑는 것에 있어선
일맥상통하는 부분입니다.

다만 여기서 한가지 의문이 들었던 점이 해당 알고리즘에서의 '상태'에는 목표 수치가 없다는 점입니다.
즉,
9/7/2 돌을 목표로 하는 사람이나
6/5/4 돌을 목표로 하는 사람이나
최적의 전략은 같다는 전제가 깔려있습니다.

정말 그럴까요?
사실 저도 모릅니다. 제가 확률론을 전공한 것도 아니고
총 30번이나 버튼을 눌러야한다는 너무 많은 경우의 수 때문에
모든 경우의 수를 싸그리 계산한다는 것도 말이 안됩니다.

특히 더 문제는 지금 내가 누르는 행위가 미래의 확률을 변화시키는
'킹 동 갓 률' 의 방식을 택하고 있기 때문에
전략에 따라 각 옵션이 뜰 확률이 달라집니다.

그래서 그냥 주인님의 힘을 빌리기로 했습니다.
(기존의 돌파고와 구별을 위해 상기한 링크의 돌파고는 '돌파고', 제 프로그램은 '로파고'로 부르겠습니다)
규칙은 간단합니다.
로파고에게 '현재 남은 기회'와 '앞으로 더 붙여야 하는 옵션' 그리고 '현재 확률'을 입력값으로 주고,
로파고는 3가지 각인 중 어느 각인을 누를지 고르면 됩니다.

만약 로파고가 목표 각인을 달성한다면 Reward +1 을 주고, 실패한다면 -1을 줍니다.
목표 각인을 달성하고도 기회가 남아있다면 돌이 어떤 각인이건
지금보다 한 단계 더 좋아질 때마다 Reward +1 을 또 줍니다.

이렇게 약 560만개의 돌을 깎는 시뮬레이션을 돌리면서 학습을 시킵니다.
이런 경우는 확률이 너무 낮고 경우의 수가 워낙 많아서 문제지, 돌을 잘 깎는 행위 자체는 어려울 것은 없기 때문인지
이정도 학습만으로도 수렴을 합니다.
(수렴을 한다는 것은 더이상 변화가 없다는 것이지 최고라는 의미는 아닙니다)

위에 적었다시피 확률을 직접 계산할 수는 없으니,
가장 무식하면서도 확실한 방법인 시뮬레이션을 통해 확률을 구해봤습니다.



Dolphago = 돌파고 알고리즘 1000만번 시뮬레이션 
(돌파고 알고리즘은 해당 블로그 소스에서 그대로 가져와서 파이썬으로 번역만 했습니다. 변수명도 그대로 사용)
LoFAGO_7 = 본 프로그램에 사용된 모델 1000만번 시뮬레이션(각 옵션별 1000만회, 25가지 옵션 총 2억 5천만회)

위의 확률은 해당 옵션 이상의 옵션이 뜰 확률입니다
(예: 7/6/4 통계에는 8/7/2, 7/6/2 등의 옵션이
 뜬 경우를 모두 포함하고 있습니다)

시간관계상 모든 옵션의 확률을 다 구하지 못한 점은 양해 부탁드립니다.
돌파고의 경우는 알고리즘이 '목표 옵션'에 독립적으로, 오직 한가지의 최적 전략만 있다는 가정이기 때문에,
돌파고로 시뮬레이션을 1000만번 돌린 후 결과를 세는 것으로 충분하지만,

로파고의 경우는 알고리즘이 '목표 옵션'에 종속적이기 때문에,
7/6/4 를 목표로 깎을 때와 9/7/2 를 목표로 깎을 때가 전략이 다를 수 있습니다.

즉, 7/6/4를 목표로 깎을 때도 분명 9/7/2가 뜰 수도 있고 이렇게 뜬 경우도 7/6/4 통계에 포함이 되어있긴 하지만,
7/6/4를 목표로 깎다가 뜬 9/7/2의 비율이 9/7/2를 목표로 깎아서 띄운 9/7/2의 비율과 다를 수 있다는 것입니다.

따라서 목표별로 통계를 일일이 내야 정확하기 때문에, 위의 25가지 모두 1000만번씩, 총 2억 5천만번 시뮬레이션을
돌렸습니다.

z-score는 0보다 작으면 로파고의 성능이, 0보다 크면 돌파고의 성능이 더 좋다는 것을 의미하고, 절댓값이 클 수록
신뢰도가 높다는 의미입니다. (참고: 99.9% 신뢰구간: -3.291 ~ 3.291)

Relative performance는 돌파고에 비한 로파고의 상대적 성능을 나타내는데, 특이한 점으로는 10/6돌, 9/7돌 등
확률이 매우 낮은 돌들에서는 로파고의 성능이 낮은 것을 확인할 수 있습니다.

이는 딥러닝 특성상 데이터가 너무 적어서 발생하는 것으로, 쉽게 말해서
'9/8/2 돌을 깎아 본 적이 있어야 어떻게 깎아야 잘 깎는지를 알지!' 입니다.
따라서 해당 돌들을 깎을 때는 돌파고를 이용해 주시고, 애초에 확률 자체가 빛강선이 점지해 주셔야 하니,
확률 계산하시지 마시고 물 떠놓고 기도를 드리시는 것을 추천합니다.

다만 확률이 어느정도 합리적인(?) 옵션들의 경우 대체적으로 돌파고에 비해 성능이 나은 점을 보이고 있습니다.
(8/7/4 돌의 경우 원인을 알 수 없으나 5%정도 낮은 성능을 보입니다.)

'정말 로파고가 돌파고 보다 낫냐?' 고 물어보신다면
제 대답은 '저 표에 있는 내용들에 한해선 통계가 보장해드립니다' 입니다.
딥러닝 특성상 어떤 알고리즘이 딱 있는 것도 아니고, 증명할 방법이 test 결과의 통계 뿐입니다.
그 점 이해 부탁드립니다.

** 돌파고 홈페이지에서 거의 그대로 긁어온 코드가 들어있는 두 파일
Dolphago.html    dolphago_python.py
을 제외한 나머지 제가 쓴 코드들은 GNU GPL 3.0 라이센스 하에 오픈되어 있습니다. 자유롭게 쓰세요.

3줄 요약
1. 시뮬레이션상 7/6/2 돌 정도의 '합리적인' 돌을 깎는 데엔 제 프로그램 성능이 조금 더 낫습니다.
2. https://github.com/jaentrouble/LoFAGO/releases 여기서 받으실 수 있습니다. (글 쓰는 현재 LoFAGOstone1.0.0.exe) 1.0.1 버전을 받아주세요 (5/07)
3. 돌파고 따라갈 시 9/7/2 이상의 돌을 깎을 확률은 0.04% (약 2500개 돌을 써야 한 개 가능)

쓰시기 전에 꼭 표를 보고 목표 각인에서

로파고의 성능이 더 나은지 확인하고 쓰세요!!!!

-------------수정-----------

로파고의 수치는 로파고가 생각했을 때

그 각인을 골라야 목표를 달성할 수 있다는 뜻입니다!

즉, 감소각인의 확신이 55퍼라는 것은

'내가 봤을 때 감소 각인을 지금 찍어야 너의 목표를
달성할 수 있어. 근데 확실하진 않고 한 55퍼센트 정도 확신해'

라는 뜻입니다.

----------- 수정 -------
1. 확률 계산 과정에서 input에 오류가 있었습니다. 현재는 수정되었고, 수정 전의 버전은 확신도가 약간 과장되게 나올 수 있었습니다. 버전 1.0.1로 받아주세요.

2. 일부 컴퓨터에서 실행이 안되는 현상이 있습니다. 아직 제가 재현을 하지 못해 수정을 못하고 있는 상황입니다.  경로에 한글이 들어가있으면 동일한 오류 뜨는 것을 확인했습니다. 만약 Failed to ... 라는 경고문이 뜨고 실행이 안 되신다면 경로명에 한글이 있는지 확인해주세요. 특히 윈도우 계정 이름이 한글로 되어있는 경우가 있습니다. 그럴 경우 zip파일로 올린 것을 받으시고 경로명에 한글이 없는 곳에 압축해제를 하셔서(예를 들어 C드라이브에 새로운 영문 폴더를 만든다거나 D 드라이브 등) 해당 폴더 안에 있는 LoFAGOstone1.0.1.exe 파일을 실행해주세요. 
.zip 파일로 올린 버전은 경로에 한글이 있어도 문제가 없도록 조치해놨습니다. 다만 단일 파일은 아니고, 압축해제한 폴더 내에 있는 LoFAGOstone1.0.1.exe파일을 바로가기를 사용한다던지 해서 실행시키시면 됩니다. 
.exe단일 파일로 업로드한 것은 실행 과정중에 임시파일을 사용하는데 윈도우 계정명이 한글일 경우 어차피 이 임시 파일 위치의 경로에 한글이 들어가게 되므로 파일 위치를 옮긴다고 해서 해결되지 않습니다. .zip 버전을 사용해주세요.
이래도 문제가 추가로 발생한다면 댓글 달아주세요