:: 게시판
:: 이전 게시판
|
- 자유 주제로 사용할 수 있는 게시판입니다.
- 토론 게시판의 용도를 겸합니다.
통합규정 1.3 이용안내 인용"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
09/06/15 04:40
실제 적용하기에는 변수가 너무 많지 않을까요?
미네랄 사이의 거리,SCV의 경우 건설동안의 자원 채취 불가,건물짓는 위치,초반 일꾼동원(e.g 초반프로브견제를 대처하기위해 SCV가 한기 나가야 한다면 빌드의 소폭수정이 필요함),가스조절 등등...
09/06/15 04:52
Zwei님// 프로그램으로 빌드오더의 기본적인 틀을 잡는 것이죠.. 물론 스타는 혼자 하는 것이 아니므로 그런 변수들이 생길 수 있습니다만, 그것은 개인의 운영 능력에 맡겨야지요. 그 변수들을 어떻게 관리하고 극복하느냐가 하수와 고수의 차이겠지요?
건설 중인 SCV가 자원 채취를 할 수 없습니다만 그거야 아주 큰 문제는 되지 않을 겁니다. 계산하는 과정에서 실제 게임에서의 변수들을 시뮬레이팅할 생각이거든요. 그러자면 계산하는데 시간은 좀 걸릴 수 있겠지만...
09/06/15 05:09
궁극적으로는 "어떤 유닛을 먼저 갖춘 다음, 어떤 유닛을 갖추고, 그 다음에 만들 유닛은... " 과 같은 조건들을 모두 계산할 수 있도록 하는 것이 목표입니다. 확실히 쉬운 일은 아닐 겁니다.. 당장 생각한 알고리즘은 Dijkstra의 least cost path 알고리즘 내지는 A*입니다만, 궁극적으로는 유전알고리즘이나 Simulated Annealing 같은 근사 알고리즘을 사용할 생각도 있습니다. 계산 수행 속도면에서 후자가 전자보다 압도적으로 좋은 경우가 많거든요.
09/06/15 13:59
제가 작년에 알고리즘 공부할때 이에 대한 매커니즘을 공부한 적이 있었습니다. 완벽히 밝혀내지는 못했지만 제가 생각한 것은 다음과 같았습니다.
1. 각자의 미네랄에는 고유한 번호가 있습니다. 2. 각자의 일꾼에 G명령과 C명령에는 미네랄 번호가 변수로 입력됩니다. (C명령을 누르거나 새로운 본진 건물이 추가되었을때 3번과 4번이 작동합니다. 우리가 앞마당 건물이 완성되자마자 미네랄이 잘 캐지는 이유를 찾기가 어려웠는데 그것이 바로 이것 때문 같았습니다.) 3. 자기와 가장 가까운 미네랄과의 거리와 가장 가까운 본진건물(해처리, 넥서스, 커맨드 센터). 자기가 현재 G명령과 C명령으로 캐고 있던 미네랄과 가장 가까운 본진건물의 거리를 모두 합산합니다. 4. 최단 거리의 미네랄로 이동합니다. 5. 현재 그 미네랄에 G명령(미네랄 캐고 있는 일꾼)이 있는지 확인합니다. 6. 없을시에는 일정거리 안에 있는 미네랄의 번호를 변수로 갖고 있는 일꾼의 상태를 확인합니다. 7. 만약 어떤 미네랄에 해당하는 일꾼이 미네랄을 갖다 주고 있을때 그 미네랄로 이동합니다. (여기에 대한 부가설명을 붙이자면, 이 빈 미네랄로 어떤 일꾼이 달려가고 있을 경우에는 일꾼이 이동하지 않습니다.) 8. 이런 미네랄이 없을 시에는 일정 범위 내에서 가장 예전에 일꾼이 미네랄을 캐기 시작한 (즉, 가장 빨리 빌 예정인 미네랄) 미네랄로 이동해서 대기합니다. 입니다.
09/06/15 14:01
사실 저 매커니즘은 아닐것 같고 뭔가 이론으로 성립되어 있는 알고리즘을 썼겠지만, 그렇다고 보기에는 너무 변수가 많고 복잡하더라구요... 따라서 독창적인 알고리즘을 만들었을 것이란 가정하에(어짜피 리소스나 계산 시간에 대한 부분은 생각 안한 게임같아요. 스타가..) 이러한 생각을 해 보았습니다.
|