|
2014-07-01 18:18
조회: 8,582
추천: 13
통계적으로 계산해본 그레이드작의 원가들어가기에 앞서..
사람들이 통계에 대해 햇갈려하는 것 일단 간단한 예부터 하나 들어보겠습니다. 2대의 경오갤이 있습니다. 증서는 100억이라고 치죠. 목표는 여기에 가강1,2를 붙여서 파는 겁니다. 그런데 하나는 단 10억에 가강 1,2가 붙었고 나머지 한대는 운이 없어서 50억을 들여서 가강 1,2가 붙었네요. 그렇다면 이 경오갤들의 원가는 얼마일까요? 간단하죠.. 각 ((100+10)억 + (100+50)억 )/ 2 = 130 억입니다. 즉 가강 1,2의 그레이드 원가는 30억이군요.. 그러나 단 2대만으로 경오갤의 그레이드 원가를 계산해 내는건 뭔가 비약이 심하다고 생각됩니다. 맞아요 기본적으로 통계학은 "무수히 많은" 표본은 "그 확률 분포"를 따라간다는 전제에서 시작하거든요. 단 2대의 표본은 무수히 많다고 할 수 없으므로 위 가격을 원가라고 책정할 수 없습니다. 그렇다면 좀 더 현실적으로 경오갤이 50척이 있습니다. 그럼 이때에도 각각 경오갤에 가강1,2가 붙는 가격을 계산하고 그 가격을 모두 더해서 평균을 내면, 이 녀석들의 평균 가격을 내면 좀 더 정확한 가격을 책정 할 수 있겠군요.. 그럼 만약에 수만척(!) 의 경오갤을 가지고 있다면(이걸 정확하게는 "emsemble:앙상블"이라고 부릅니다.) 이 녀석들을 모두 가강12 붙이는데에 드는 비용을 계산하면 정확한 원가를 계산해 낼 수 있습니다. 그러나! 실제적으로 수만척의 경오갤을 모두강화하는건 무리입니다. 게다가 어떤 녀석들은 (확률이 0이 아니므로) 수십 수백번 강화해도 영원히 가강 12가 붙지 않는 경우가 존재하겠지요...(아마 난 안될꺼야..) 따라서 이런 무한한 경우의 분포(x 축으로 무한 -infinity)하다면 그냥 우리가 아는 기대값 확률로 계산해서는 안됩니다. 즉 확률 분포를 적분해서 정규화(nomalized) 시킨다음 원하는 구간을 적분해서 확률을 알아내야 정확한 값이 되는거죠.. 너무 이론적이라서 위 글이 이해안가신다면, 제가 글을 못써서 그런거지, 이 글을 읽는 분이 잘못된게 아닙니다. 아무튼 아래로 넘어가도록 하지요 :) 그럼 대항해시대 그레이드에 적용해보면.. 리버스엔지니어링이란, 완성된 최종 형태의 제품을 분석하여 제품의 기본적인 설계 개념과 적용기술을 파악하고 재현하는 것입니다. 프로그램의 경우라면, 완성된 프로그램의 결과를 가지고 유추하여 프로그램의 구조적 구현 원리, 즉 알고리즘을 추측하는 것이겠지요. 그러나 이게 결코 쉽지 않습니다.여러개의 함수가 사용되고있는 프로그램에서 그 알고리즘을 정확히 유추해내는 것은 매우 어려울뿐 더러, 거기에 심지어 난수(Random)값까지 포함되어있다면, 정확한 구동원리는 알아내는것은 불가능에 가깝지요. 랜던스킬이 붙는 그레이드 작업 역시 마찬가지입니다. 수많은 여러가지 변수(Parameter)가 복합적으로 작용하는 만큼 (게다가 거기에 확률이 포함되어있는 이상)다음에 붙을 스킬을 확실히 예측하고 계산해내는건 제작자가 아닌이상은 불가능합니다. 같은 이유로 내가 가강1, 2 개조롱이 가지고 싶다고 할 때에, 정확히 그레이드작업에 얼마를 쏟아부어야 위와 같은 옵션을 가지고 있는 개조롱을 구할 수 있는지 운영자가 아닌 이상에야 알 수 없지요.(어쩌면 운영자도 알 수 없지요..) 다만.. 그러나 유저 입장에서도 어느정도 그 계산과정을 유추하고 대략적인 예상 기대가격을 산출해 낼 수 있는데, 바로 충분한 표본을 통해서 실험을 하는 것이죠. 그레이드 작업에 들어가는 비용
그렇다면 일단 그레이드 작업 자체에 들어가는 비용을 계산해봅시다. 작업비용 = (((1지) * ((N_1 * 함재기)+1)) + (2지) + (3지)) * ((N_2 *함재기)+1))
여기서 1지, 2지, 3지는 각각 1그레이드, 2그레이드, 3그레이드를 각각 할 때 드는 비용입니다. 그리고 N_1은 1스킬에서 미끄러진 횟수, N_2는 두번째스킬(즉 3그레이드 보너스)에서 미끄러진 횟수이지요. 즉 첫번째 스킬에도 마음에 드는 스킬이 붙고, 두번째 스킬에도 마음에 드는 스킬이 한번에 붙는다면(즉 그레이드가 한번에 성공한다면) 작업비용은 아래와 같이 단순화 될 것입니다. 작업비용 = 1지 + 2지 + 3지
그러나 1지에 마음에 드는 스킬이 붙더라도, 3지에 원하지 않는 스킬이 붙는다면 전체를 다시 초기화 해야하므로 1지 스킬을 붙이는데 드는 비용을 포함해서 다시 처음부터 시작해야하죠. (덜덜덜..)
헬레네 서버에서 그레이드와 강화에 뼈를 묻고계신 의천도님의 자문으로 1지, 2지, 3지에 드는 각각의 비용을 각각 1억, 2억, 5억으로 잡았습니다. 그리고 함재기 가격을 1.5억이라고 잡고 계산해보지요. 다행히도 위의 식을 본다면 2지와 3지는 하나로 묶어서 계산해도 괜찮습니다. 즉, 1지에 드는 비용이 1억, 3지에 드는 비용이 7억 이렇게만 계산해도 별 문제가 없겠군요. Analytic하게 계산해도 두 사건이 자체적으로 독립사건이기 때문에 별 문제가 없지만, 이해를 돕기 위해서 Monte Calro Simulation을 돌려보기로 하지요.
실질적인 예
물론 그레이드는 배에 따라서 어떤 옵이 붙어야 하는지 다 다르지만, (여기서 군배는 예외로 합니다. 제가 하나도 모르기에..) 여기서는 1지에는 가강, 스추를 노리고, 3지에는 가강2, 스추2를 노린다고 합시다. 그레이드 옵션스킬로 붙을 수 있는 스킬의 수는 총 강화수치 : 내구, 세로돛, 가로돛, 조력, 선회, 내파, 장갑, 선실, 포실, 창고 추가보너스 : 가속강화, 선수포, 선측포, 선미포, 스킬추가, 스킬승계 개조보너스 : 포함개조, 장갑함개조, 백병함개조, 탐사선 개조
강화수치 (10개) + 추가보너스 (6개) + 개조보너스 (4개) 입니다.
이중에서 임의로 제외할 수 있는 옵들은 조력 : 범선에는 붙지 않음 선측포 : 이미 5슬롯이면 붙지 않음 개조보너스 : 2강 상태로 스킬이 풀이면 붙지 않음 그러면 20개 중에서 6개를 제외하면
14개의 스킬중에서 한개가 랜덤으로 붙는 거네요. 역시 자문을 구한 의천도님의 의견에 따르면, 이 스킬이 붙는 확률은 pure random이며 어떤 가중치(Weight)는 존재하지 않는것 같다고 합니다. (무슨 말인가하면 스킬의 probability function p(x)는 uniform하다는 이야기인데요.. 이는 이후의 시뮬레이션에서 중요한 의미이므로..)
이중에서 스킬 승계 역시 논외로 둡니다. 계산하려면 못하는 것도 아니지만, 스킬 승계는 애초에 어떤 목적을 가지고 제물배를 사용해야 하므로 그레이드 비용자체가 비약적으로 증가하고 (제물 배값이 월등히 비쌈) 또한 1지에 스킬 승계가 뜨지 않으면 밀어버려야 하므로 본문에서 계산하는 일반적인 글드작의 적정가격과 거리가 먼 이야기가 될 수 있겠네요.
그럼 가장 쉬운 개조롱의 경우 인벤의 "스페인국왕" 님께서 이미 그레이드시 의미있는 옵션을 정리해 주셨으므로 (출처 "http://www.inven.co.kr/board/powerbbs.php?come_idx=498&query=view&p=1&my=&category=&sort=PID&orderby=&where=&name=subject&subject=&content=&keyword=%B1%D7%B7%B9%C0%CC%B5%E5&sterm=&iskin=&mskin=&l=14396") 아주 간단하게 계산해볼까요? 일단 개조롱에게 의미있는 옵션은 가강, 스추, 선실, 창고 이렇게 4개 뿐인거 같네요. 물론 작업상 1지에 가강이 나오지 않으면 차라리 밀어버리고, 다시 시작하시겠지만, 구입하는 사람의 입장에서는 가강 스추나, 스추 가강이나 마찬가지이므로 그냥 시뮬레이션을 돌려보기로 하죠.
시뮬레이션에서는 포실, 선실은 두번붙지 않는다는걸 감안해서 계산했습니다.
위 Plot을 보면 재미있는게, 정규분포(Gausian)과 달리 꼬리가 빠르게 없어지지 않는다는 겁니다. Tail의 존재- 즉 , 아무리 횟수가 늘어나도 영원히 원하는 옵션을 갖지 못할 확률이 존재한다는 거지요..(아마 난 안될꺼야..) 이럴 경우 이 function을 Fit해서 거기서의 RMS 와 기대되는 Sigma 값을 추출할 수 있습니다. 위 같이 Tail이 존재하는 분포는 Landau함수로 fit을 하면 잘 맞게 되지요.
Fit은 확률의 계산인점을 감안하여 Chi-Square대신 Likelihood 방법으로 계산했고 그 결과는 다음과 같습니다. MEAN 9.018e+00 sigma2 6.781e+00 FCN=879.474 FROM MIGRAD STATUS=CONVERGED 83 CALLS 84 TOTAL EDM=5.33758e-06 STRATEGY= 1 ERROR MATRIX ACCURATE EXT PARAMETER STEP FIRST NO. VALUE ERROR SIZE DERIVATIVE 1 1.54863e+05 2.03265e+03 7.22193e+00 -1.45227e-06 2 1.57886e+00 1.90170e-01 6.79859e-04 1.69990e-03 3 4.13512e+00 2.13140e-02 1.42350e-05 3.81260e-01
그렇다면 일단 Mean 값을 볼까요? 평균값 9에서 +- 6 에서 Sigma level 2 으로 수렴하는 군요. 사실 Landau함수의 특징 자체를 보면 이상할게 없는 결과입니다. (의외는 9에서 6.7을 빼도 2.3인데, 왜 2가 포함되지 않았는지, 2에서만 8%정도인데... 아마 이는 histogram은 discrete 하고, fucntion은 continuous해서 생기는 문제 같기는 합니다만..) 아무튼 예상한데로 나왔네요. 즉 14개중에서 4개의 스킬을 원할때, 평균 9번정도의 초기화 과정을 거치면 원하는 2스킬이 붙은 배를 구할 수 있습니다. 또한 운이 없더라도 9+6.7 (즉 15번~16번) 정도 재시도를 하면 2sigma에 해당하는 95.45%의 확률로 원하는 배를 구할 수 있습니다. 이 과정이 이해가 안되시는 분은 http://en.wikipedia.org/wiki/68%E2%80%9395%E2%80%9399.7_rule 여기를 참조하세요.
관심있어할 결과
그런데 어제 의천도님과 대화를 하면서, 유저분들은 이런 분포에는 별 관심이 없고, 결국 중요한건 "그럼 원가가 얼마면 된다는 거냐!!!!" 더군요..
그래서 그렇다면 위의 식에 대입해서 한번 계산해보면, 시뮬레이션으로부터 1번째 잘못되어 재시도한 값과 2번째 잘못되어 재시도한 값을 parameter로 불러와서 계산해봅니다. 작업비용 = (((1지) * ((N_1 * 함재기)+1)) + (2지) + (3지)) * ((N_2 *함재기)+1)) 이 경우에는 더 쉽습니다. 그냥 냅다 fit하고 적분하면 되니까요. statitical error는 횟수가 증가하면 알아서 줄어들꺼고, binning effect를 고려해서 적분시 histogram과 weight를 반반 주면 깔끔한 적분이 가능합니다.
그래서 몇가지 경우의 수와 그 원가확률(이라고 해야하나를 공개합니다.) 1. 12개의 경우의 수 중에서 연속적으로 1개 원하는 스킬이 붙을 때입니다. (1/12 + 1/12 : ex)가강 1 + 가강 2) 확률은 50억 들여서 붙일 확률 : 8.621 100억 들여서 붙일 확률 : 13.0004 200억 들여서 붙일 확률 : 18.6566
2. 다음은 14개의 스킬중에서 임의의 1스킬 그리고 다음에 14개중에서 임의의 2스킬이 붙을 확률입니다. ( 1/14 + 2/14 : 가강 + 스추 or 가강 +가강 ) 50억 들여서 붙일 확률 : 27.0894 100억 들여서 붙일 확률 : 38.5186 200억 들여서 붙일 확률 : 51.3506
물론 나는 가강 12 외에는 다 필요없어 라고 하면 적정가격은 기하급수적으로 올라갑니다.
물론 이것은 확률로만 계산한 원가입니다. 여기에 조선공님의 수고+시간+멘탈을 감안하면 +/- 가 포함되어야 겠지요. 그냥 할 일 없어서, 계산기를 두드려본 결과입니다. :) Post Script. 혹시나 200억을 부어봤자 겨우 18%라니!! 라는 의견에 의심을 품는 분들을 위해서 좀더 연장된 plot을 첨부합니다. (1000억까지..) 보시면 아시겠지만, Landau tail을 gausn 처럼 빠르게 0으로 수렴하는게 아니라서요..
EXP
31,302
(55%)
/ 32,201
|




thdnice