유전 알고리즘3 [Unity] 지진 시뮬레이션 13 - 반복 학습 지속적으로 학습이 진행되도록 만들 것이다. 1. 변수 정리 여러 곳에 퍼져 있는 게임 환경 변수들을 gameManager 코드에 모을 것이다. playerMove에 있는 게임 환경 변수를 gameManager에 옮긴다. public int DNASize; public float ActionInterval; public float playerSpeed; DNA = new int[DNASize]; . . . int time = (int)((Time.time - StartTime)/ActionInterval); . . . transform.Translate(Move * Vector3.right * playerSpeed * Time.deltaTime); 위 코드를 수정해 준다. DNA = new int[game.. 2024. 4. 5. [Unity] 지진 시뮬레이션 12 - 유전 알고리즘 시뮬레이션의 핵심인 유전 알고리즘을 작성할 것이다.선택, 교차, 변이, 대치 과정을 거쳐 자녀에게 유전정보를 물려주는 코드이다. 1. 부모 DNA 선택 모든 플레이어 중에서 살아남지 못한 플레이어들을 자식 플레이어로 재활용할 것이다. DNA를 물려받게 하기 위해 생존 리스트에 있는 부모 중 무작위의 부모로부터 DNA를 추출하였다. 살아남지 못한 플레이어를 검사한다. for (int i = 0; i < Count; i++) { if(i == Survivor[Survivor_Count_Num]) Survivor_Count_Num++; else { } } 무작위의 부모 DNA를 추출한다. for (int i = 0; i < Count; i++) { if(i == Survivor[Survivor_Count_Nu.. 2024. 4. 4. [Unity] 지진 시뮬레이션 9 - 유전학습 DNA 생성 유전학습 알고리즘의 DNA를 만들 것이다. 동, 서, 남, 북, 정지를 나타내는 5가지 종류의 값을 가질 수 있는 유전자를 1000개 정도 만들고 0.1초 간격으로 유전자에 있는 행동을 행하도록 만들 것이다. 1. DNA 생성 playerMove 파일에서 DNAsize와 DNA를 추가한다. public int DNASize; public int[] DNA; void Start()에서 DNA 배열의 크기와 값을 할당한다. void Start() { DNA = new int[DNASize]; for(int i = 0; i < DNA.Length; i++) DNA[i] = Random.Range(0,6); } 유전정보는 동, 서, 남, 북, 정지로 5가지의 값을 지니므로 처음에는 무작위의 0에서 5 사이의 값.. 2024. 4. 1. 이전 1 다음