Smart Rockets (Genetic Alg.) 정보
유전 알고리즘이 목표를 달성하기 위해 어떻게 작동하는지에 대한 대화 형 데모.
이것은 유전자 알고리즘이 어떻게 작동하는지 보여주는 앱입니다.
기본적으로 목표에 도달해야하는 로켓의 무리로 구성되어 사용자가 끌어 당기는 장애물을 피합니다.
그들은 처음에는 무작위 지시를 시도한 다음 해결책에 가장 적합한 것을 선택하여 승리를 위해 따라야 할 길을 배워야합니다. 그들은 또한 수세기 동안 살아있는 존재처럼 변화하는 환경에 적응해야합니다.
매개 변수 (모집단 크기, 돌연변이 비율, 속도 및 수명)을 수정하면 진화에 어떻게 영향을 주는지 볼 수 있습니다.
어떻게 작동합니까?
각 로켓에는 궤적을 설정하는 DNA가 있습니다 (모든 단일 프레임에서 속도에 영향을줍니다). 처음에는 무작위로 생성됩니다.
다음 세대마다 로켓의 DNA는 이전 세대의 두 부모로부터 만들어졌습니다. 차세대를위한 부모가되는 로켓의 가능성은 승리, 장애물을 추월 할 기회, 죽음, 목표물까지의 거리 등 다양한 요소에 비례합니다.
시뮬레이션에 영향을주는 변수 :
- 수명 : 죽기 전에 로켓에 허용 된 단계 수.
- 돌연변이 배급 : 매 단계마다 초기 DNA를 바꾸고 그 시점에서 임의의 방향을 취할 기회가 있습니다.
- 로켓의 개수 : 숫자가 높을수록 시스템이 더 잘 적응합니다.
설정 메뉴 :
- 세대 건너 뛰기 : 렌더링을 비활성화하고 시뮬레이션을 최대 속도로 실행합니다 (결과를 테이블 또는 차트로 표시)
- 모드 전환 : 클래식 모드에서 GPU 가속 모드로 또는 그 반대로 전환 할 수 있습니다. 경고 : GPU 가속 모드는 모든 기기에서 지원되지 않으므로 앱에 오류가 발생할 수 있습니다.
- 로켓 재설정 : 로켓 상태 (DNA)를 초기 상태로 재설정합니다 (장애물 및 목표 수정없이).
-로드 / 내보내기, 저장 및 가져 오기 :이 세 가지 버튼을 사용하여 시뮬레이션을로드 / 저장하거나 장치 내부 메모리에서 파일 (.srk)을 내보내거나 가져올 수 있습니다.
- 기타 설정 : 화면 상단에 아이콘을 설정하거나 장치의 뒤로 버튼을 클릭하여 액세스 할 수 있습니다. 여기에서 앱 시작시 선택한 시뮬레이션 설정을 편집 할 수 있습니다.
GPGPU 기능 :
이 앱은 Android Renderscript 프레임 워크로 개발되어 병렬 컴퓨팅 측면에서 GPU의 이점을 활용할 수 있습니다. 불행히도 모든 장치에서 잘 지원되지 않으므로 제대로 작동하지 않을 수 있습니다. 이 경우 클래식 모드 만 사용하십시오.
어떻게 작동합니까? 각 로켓에서 실행해야 할 작업은 GPU에서 동시에 수행됩니다.이 아키텍처는 동시에 많은 작업을 처리하도록 설계되었습니다 (이미지 렌더링에 대해 생각하면 해당 이미지의 모든 픽셀을 개별적으로 평가해야합니다).
유전 알고리즘은 일반적으로 그래픽을 사용할 필요가 없지만 병렬 컴퓨팅과 잘 어울립니다. GPGPU (그래픽 처리 장치의 일반 프로그래밍)를 특히 성공적으로 구현 한 예입니다.
파일 저장 중 :
최신 버전은 일반 텍스트 대신 바이너리 파일을 사용하므로 사용 된 메모리 및 읽기 / 쓰기 시간을 최대 10 배까지 줄일 수 있습니다. 이전 버전의 파일 (내보내기 제외)을로드 할 수 있습니다.
내 보낸 파일은 내부 저장소의 루트에있는 기본 디렉터리 SmartRocket에 저장됩니다. Google은 여러 파일 관리자를 사용 했으므로 .srk 파일을 클릭하기 만하면됩니다 (Google 드라이브, WhatsApp 또는 전보 등에서도). 또는 표시된 목록에서 Google 앱을 선택해야합니다. 우리에게 몇 가지 문제를 일으킨 것은 삼성의 "My Files"입니다.이 파일은 "open with"옵션을 표시하지 않고 파일을 열지 못했습니다. 이 경우 Google 드라이브에 업로드하거나 다른 파일 관리자를 통해 파일을 열 수 있습니다.
What's new in the latest 5.0
We've developed this application on Android Renderscript, that runs on GPU to increase performance (use the "skip generations" in settings menu to notice the huge difference!)
What's that? It's called GPGPU (Generic Programming on Graphics Processing Unit), a technique that makes use of the special architecture of a GPU to execute tasks in parallel very fast
The AI is also improved, we added some new features and all graphics are renewed to get a better experience