基于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>;`”。
==
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
错误=和([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>;`”。