基于遗传算法的拼图游戏解决方案
来源:互联网 发布:苹果系统php集成环境 编辑:程序博客网 时间:2024/06/07 00:05
这是一个GitHub项目,介绍了一种基于遗传算法的带有板块尺寸自动检测功能的拼图游戏解决方案。
GitHub链接:https://github.com/nemanja-m/gaps
安装
把 repo 下载到本地
$ git clone https://github.com/nemanja-m/gaps.git$ cd gaps
安装要求
$ pip install -r requirements.txt$ sudo apt-get install python-tk
以可编辑模式安装项目:
$ pip install -e .
从图像中创建拼图
使用 create_puzzle 脚本从图像中创建拼图。
亦即
$ create_puzzle images/pillars.jpg --size=48 --destination=puzzle.jpg[SUCCESS] Puzzle created with 420 pieces
将从 images/pillars.jpg 创建分割成 420 块的拼图,每块拼图像素为 48x48px。
运行 create_puzzle --help 可以获得详细帮助。
注意:我们创建出来的拼图尺寸可能会比原图小,这取决于设置的拼图块的大小。最大的可能是以矩形从原始图像随机裁剪出来。
解决拼图问题
为了解决这个拼图问题,我们会用到 gaps 脚本。
亦即
$ gaps --image=puzzle.jpg --generations=20 --population=600
这将启动初始群体为 600 个(populations)和 20 代(generations)的遗传算法。
提供下列选项:
运行 gaps --help 获得详细帮助。
尺寸检测
如果你不能明确的给 gaps 提供 --size 的参数,拼图块尺寸将自适应。
其实给 gaps 提供 --size 的具体参数总是可行的:
$ gaps --image=puzzle.jpg --generations=20 --population=600 --size=48
注意:尺寸检测功能适用于大多数图像,但是在某些边缘情况下尺寸检测会失效,并给出一个错误的尺寸。在这种情况下,你可以明确的给定一个尺寸。
终止条件
遗传算法的终止条件对于确定它的运行何时结束是很重要的。人们观察到在最初的时候,遗传算法进展非常快,每几次迭代都会产出更好的解决方案,但是在后期的改进非常小的时候,往往会趋于饱和。
gaps 将终止的情况:
- 当经过 X 次迭代在全量中没有改善的时候
- 当它演化到了某个绝对的代(generations)数的时候
阅读全文
0 0
- 基于遗传算法的拼图游戏解决方案
- 基于广度优先搜索的拼图游戏算法
- 基于遗传算法优化的神经网络算法
- 基于Java的拼图游戏
- 基于Jgap的遗传算法入门介绍
- 基于精英选择策略的遗传算法
- 基于遗传算法的寻路模拟
- 基于模拟退火的遗传算法
- 基于GPU的并行遗传算法
- 拼图游戏的算法
- 拼图游戏的算法
- 基于遗传算法(GA)的神经网络训练算法
- 基于遗传算法的BP神经网络优化算法
- 基于遗传算法的正则表达式分组算法
- 学习-基于遗传算法的多目标优化算法
- 完整的拼图游戏的算法
- 基于遗传算法的大规模工程优化设计方法初探
- 基于遗传算法的高校排课系统研究
- Python数据分析利器——pandas简单教学
- 在神经网络中偏置输入的作用
- python内置模块(commands、sys)
- 自创数据集,使用TensorFlow预测股票入门
- 9小时突破1000亿,你以为这就是阿里双十一的最大胜利?
- 基于遗传算法的拼图游戏解决方案
- 嫁给程序员好吗?我们来看看她们是怎么回答的
- 一个程序猿的理财和反思
- IT企业里为什么外来的和尚更吃香
- 和各种诡异 Bug 打交道 13 年,我总结了 18 个经验
- 关于有道翻译的POST请求的errorcode 50问题
- Hyperledger Fabric Chaincode 开发
- Spring-boot添加Interceptor进行认证验证
- Xcode9学习笔记51