프로젝트 & 과제/4학년

[교양] 계량적 사고와 의사 결정

qqlzzb 2022. 2. 15. 14:42

개요

과제 수행 날짜 : 2021.11.19

과제 개요 : '스타듀밸리'에서 효율적으로 농사를 짓기 위해 엑셀을 이용하여 의사 결정

출처 : https://store.steampowered.com/app/413150/Stardew_Valley/?l=koreana

스타듀밸리란 농사를 짓고 게임 내 NPC들과 호감도를 쌓아가는 게임이다. 그래서 스타듀밸리 유저들의 주목적은 농작물을 팔아서 많은 돈을 버는 것이다. 이 게임은 1년차 봄부터 시작되며, 제한된 땅과 돈을 제공한다. 따라서 유저들은 수많은 작물들을 조합하여 어떤 조합이 가장 높은 수익을 얻을 수 있을지를 고민해야 한다.

스타듀밸리에 대한 간략한 설명을 하자면, 스타듀밸리에서는 4개의 계절이 있으며, 30일이 지나면 다음 계절로 넘어간다. 그렇게 봄부터 시작하여 겨울이 지나면 1년이 지나게 된다. 각 계절마다 키울 수 있는 작물이 다르고 각 작물들은 구매가, 판매가, 수확 시기 등의 특징이 다르다. 따라서 각 작물들의 특징을 고려하여 가장 많은 수익을 낼 수 있는 조합을 찾아내고자 한다.

 

데이터

스타듀밸리에서 봄에 수확할 수 있는 작물들에 대한 상세 정보

  구매가 판매가 소요 시간(일)
콜리플라워 80 175 12
감자 50 80 6
케일 70 110 6
파스닙 20 35 4
튤립 20 30 6
푸른 재즈 30 50 7

 

제약조건

 

칸 제약 : 작물을 심을 수 있는 칸은 250칸 이상 300칸 이하로 제한한다.

구매가 제약 : 구매가는 12000 골드를 넘지 않도록 한다.

가중치 제약 : 각 작물은 가중치를 가지는데, 각 작물이 1) 퀘스트에 사용되는 횟수와 그 작물을 키우는 데 드는 2) 노동의 횟수를 고려하여 가중치를 갖는다.

 

1) 퀘스트에 사용되는 횟수

파스닙, 콜리플라워, 감자가 필요 파스닙이 필요

퀘스트에서 2번 필요한 파스닙은 10, 1번 필요한 콜리플라워와 감자는 5의 가중치를 갖는다.

 

2) 노동의 횟수

노동 횟수는 30일 기준으로 작물을 다시 심어야 하는 횟수이다.

예를 들어 콜리플라워는 12일이 지나면 수확할 수 있으므로 30일 동안 2번을 심어야 하고, 감자의 경우 6일이 걸리므로 5번을 심어야 한다. , 콜리플라워의 노동 횟수는 2, 감자의 노동 횟수는 5이다.

 

위의 가중치를 고려하여 각 작물이 텃밭 내에서 차지해야 할 최소 비율을 계산한다.

 

각 작물이 차지해야 할 최소 비율 = 0.01 * (10 - 노동 횟수 + 퀘스트 중요도)

값 보정 상수   이유  
0.01 모든 작물이 주민들의 요청 또는 선물과 같은 퀘스트에 사용되기 때문에 최소한의 비율은 키워야 하므로 최소 비율을 설정했다.
10 노동 횟수와 중요도로 가중치를 계산할 때 값이 0이 나오지 않도록 하기 위해 임의로 지정했다.

 

 

결과 분석

판매가가 최대가 되는 조합을 계산하기 위해 최대화 혼합형 정수 선형 계획법을 사용하여 분석하였다.

의사결정변수는 각 작물의 수량이며, 제약조건에는 칸 제약, 구매가 제약, 가중치 제약이 있다. 또한 작물의 개수는 정수여야하므로 수량이 정수라는 조건도 추가하였다.

 

해찾기 수행 결과, 위의 결과가 도출되었다. 각 작물의 수량은 최소 비율에 따른 개수보다 많거나 같고, 사용된 칸 수도 250칸이며, 구매가도 12000 골드를 넘지 않았으므로 제약 조건을 충족했다. 제약 조건을 충족하며 도출된 최대 판매가는 23685 골드임을 알 수 있다. , 콜리플라워부터 각각 90, 25, 14, 93, 13, 15개를 심는 경우에 판매가가 가장 높다.

 

정리

위의 과제는 특정 작물을 심었던 자리에는 그 작물만 다시 심는다고 가정하였다. 따라서 특정 경우에는 손해를 볼 수 있는데, 예를 들어 콜리플라워를 심은 자리에 수확 시기가 빠른 다른 작물도 심을 수 있다면 더 큰 수익을 낼 수 있다. 콜리플라워는 12일 간격으로 재배가 가능하기 때문에 30일 기준으로 6일이 남게 되고, 그 시간 동안 다른 작물을 심는다면 그만큼의 수익을 더 낼 수 있게 된다. 하지만 본 과제는 그러한 경우를 고려하지 않았기 때문에 최대한의 수익을 계산할 수 없다는 한계점이 있다.

이 과제를 수행하면서 현실로의 확장도 고려해보았다.

게임에서의 농사를 다루기 때문에 가중치를 계산할 때 퀘스트에 사용되는지에 대한 여부를 고려했지만, 현실에서의 농사에 이 과제를 활용한다면 개인의 선호도 등으로 변경하여 계산할 수 있을 것이다. 물론 게임과 달리 현실에서는 작물의 수확 시기가 일정하지 않으며, 씨앗의 구매가, 작물의 판매가도 때에 따라 다르기 때문에 정확한 결과는 도출할 수 없다. 하지만 가뭄이나 태풍 등의 특수한 경우가 아니라는 가정 하에, 평균치로 계산한다면 대략적인 의사결정에 도움을 줄 수 있을 것이라고 생각한다.

 

'프로젝트 & 과제 > 4학년' 카테고리의 다른 글

나노디그리 - 자연어 처리  (0) 2022.02.11