基于aima-python的人工智能算法实现

simpleai的Python项目详细描述


简单人工智能
==


project home:http://github.com/simple ai team/simpleai

这个库实现了Stuart Russel和Peter Norvig的《人工智能,现代方法》一书中描述的许多人工智能算法。我们强烈建议您阅读本书,或者至少阅读介绍性章节以及与您要使用的组件相关的章节,因为我们这里不解释算法。

此实现采用了Norvig实现(即“aima python<;https://code.google.com/p/aima python/>;``ulib”)中的一些思想,但是它采用了一种更加“pythonic”的方法,并且更加强调创建一个稳定、现代和可维护的版本。我们正在测试大多数lib,它可以通过pip安装获得,有一个标准的repo和lib架构,有很好的文档记录,遵守python pep8指南,只提供工作代码(没有未来的占位符)等。即使是内部代码,也要考虑可读性,而不仅仅是外部api。实现包括:

*搜索
*传统搜索算法(不通知和通知)
*本地搜索算法
*约束满足问题算法
*搜索算法的交互式执行查看器(基于网络和终端)
*机器学习
*统计分类

代码块::none


,如果您想使用交互式搜索查看器,也可以安装:

。代码块:无

pip安装pydot烧瓶

您需要在系统上安装pip。在Linux上安装
python pip包,在Windows上遵循“this<;http://stackoverflow.com/questions/4750806/how to install pip on windows”`gt;` `.
此外,如果您在Linux上并且不使用VirtualEnv,记住对这两个命令都使用
``sudo``(``sudo pip install…``).


另一个示例位于“samples”目录中,但这里很简单。


此问题尝试使用a*算法创建字符串“hello world”:

代码块::python


from simpleai.search导入searchproblem,astar




class helloproblem(searchproblem):
定义操作(self,state):
如果len(state)<;len(goal):
返回列表('abcdefghijklmnopqrstuvwxyz')
否则:
return[]

def result(self,state,action):
return state+action

return state==目标


错误=和([1如果状态为[i]!=目标[i]否则0
对于范围内的i(len(state)))
丢失=len(goal)-len(state)
返回错误+丢失


问题=helloproblem(初始状态='')
结果=astar(问题)


打印(结果状态)
打印(结果路径())


文档
==



您可以在线阅读文档“here<;http://simpleai.read the docs.org/en/latest/>;”。或者,对于脱机访问,您可以克隆项目代码存储库,并从“docs”文件夹中读取它们。


`.



authors
=


*您可以在“贡献者”部分找到许多人<;https://github.com/simpleai team/simpleai/graphs/contributors>;`.
*特殊A感谢'machinalis<;http://www.machinalis.com/>;``为本项目提供的工作时间。machinalis还处理其他一些非常有趣的项目,如“quepy<;http://quepy.machinalis.com/>;``和“more<;https://github.com/machinalis>;`”。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何使用java mail获取电子邮件收件人的个人资料照片/图标?   使用XMLWorker将iText版本5的HTML转换为PDF时java缺少图像   sql DB独立Java编程建议?   安卓中xml文件的java解析   java JUnit IllegalArgumentException。阶级失败?   jpa如何捕捉java。sql。SQLIntegrityConstraintViolationException?   在java中检查空字符串   java从网页读取数据   java以三个一组的方式获取整数列表,并以8个一组的方式输出   java检查是否选择了JTextfield   java LOGBACK根据大小滚动文件,然后在一天结束时将所有文件一起滚动到压缩文件夹中   从图像创建base 64字符串的java开销?   安卓我们可以在JavaOpencv中使用Opencv函数EstimaterialGidTransform()   java如何对涉及许多项目的大型ant脚本执行良好的重构?   java通用LinkedQueue,无法从内部迭代器类访问head变量   通过Jenkins作为windows服务运行时,java无法最大化浏览器   java如何停止网络I/O的线程阻塞?