下载 APKPure App
可在安卓获取Smart Rockets的历史版本
关于遗传算法如何工作要达到的目标交互式演示。
这是一个演示遗传算法如何工作的应用程序。
它基本上由一堆必须达到目标的火箭组成,避免了用户绘制的障碍物。
他们必须通过在开始时尝试随机指示,然后选择最适合解决方案的方法来学习获胜的路径。他们还必须适应不断变化的环境,就像几个世纪以来的生物一样。
修改参数(种群大小,突变率,速度和寿命),您可以看到它们如何影响进化。
它是如何工作的:
每枚火箭都有一个设定其轨迹的DNA(影响他在每一帧的速度)。在开始时,这是随机生成的。
在接下来的每一代中,火箭的DNA都来自上一代的两个“父母”;火箭作为下一代父母的机会与各种因素成正比:胜利,超越障碍的机会,死亡,与目标的距离等等......
影响模拟的变量:
- 生命时间:死亡前允许进入火箭的步数。
- 突变定量:每一步都有机会改变其初始DNA并在该点采取随机方向。
- 火箭数量:数量越高,系统将越适应。
设置菜单:
- 跳过代:禁用渲染并以最大速度执行模拟(在表格或图表中显示结果)
- 切换到模式:允许从经典模式切换到GPU加速模式,反之亦然。警告:所有设备都不支持GPU加速模式,因此可能会导致应用程序出错。
- 重置火箭:将火箭状态(DNA)重置为初始状态(不修改障碍物和目标)
- 加载/导出,保存和导入:使用这三个按钮,您可以加载/保存模拟,或从设备内部存储器导出/导入文件(.srk)。
- 其他设置:可通过屏幕顶部的设置图标或通过单击设备的后退按钮进行访问,您可以在此处编辑在应用程序启动时选择的模拟设置。
GPGPU功能:
此应用程序还使用Android Renderscript框架开发,允许在并行计算方面利用GPU优势。不幸的是,它并没有在所有设备上得到很好的支持,因此可能效果不佳;在这种情况下,仅使用经典模式。
它是如何工作的?在每个火箭上执行的任务是在GPU上并行完成的,其架构设计用于同时处理许多任务(只需考虑图像渲染,该图像的每个像素都必须单独评估)。
遗传算法通常与图形无关,但它们的性质与并行计算非常吻合:它们是GPGPU特别成功实现的一个例子(图形处理单元上的通用编程)
保存文件:
最新版本使用二进制文件而不是纯文本,这样可以减少使用内存的十倍和读/写时间;您仍然可以从旧版本加载文件(而不是导出)。
导出的文件保存在内部存储根目录的默认目录SmartRockets中。我们尝试了几个文件管理器,你应该能够加载一个.srk文件,只需点击它(甚至从谷歌驱动器,WhatsApp或电报等...)或在显示的列表中选择我们的应用程序。唯一给我们带来一些问题的是来自三星的“我的文件”,有时候甚至没有显示“打开”的选项就没有打开文件;在这种情况下,您可以上传到Google云端硬盘或通过其他文件管理器打开它。