哪一种编程语言适合人工智能编程语言介绍

C++人工智能框架:OpenCog
来源:open开发经验库
OpenCog 是一个人工智能和人工总体智能框架(AGI),OpenCog 的认知算法都是个体自身的创新,但是总体架构是坚持认知协同作用原则的。
人类大脑包括一系列子系统执行特定的任务,有一些很出色,有一些很普遍,把这些连接起来,使他们能够互相协助。OpenCog 就是模仿人类大脑来设计的,旨在捕捉大脑的结构和动力学的精神没有模仿细节(这在很大程度上是未知的)。
OpenCog 是通过一个可伸缩的、健壮且灵活的C++软件架构来实现。在专门设计的方式:“认知协同”一起合作任务范围的人类智慧的特征。产生的出现有效地运作在AI 系统的知识网络,与世界进行交互,包括自更新分层/ heterarchical本体和模型本身和其他人。
项目主页:
免责声明:本站部分内容、图片、文字、视频等来自于互联网,仅供大家学习与交流。相关内容如涉嫌侵犯您的知识产权或其他合法权益,请向本站发送有效通知,我们会及时处理。反馈邮箱&&&&。
学生服务号
在线咨询,奖学金返现,名师点评,等你来互动人工智能编程语言介绍
人工智能编程语言介绍
本文将介绍10多种不同的程序设计语言,以及如何下载它们的免费的编译器(注意,是免费,而不是盗版)20 年后,我们用什么样的语言?也许现在谁都不好回答,20年前的程序员们会告诉你用汇编吧,今天人们也许会告诉你用c语言(c++?)吧。那么20年后呢, 也许不是c语言了吧。下面都是所谓的非主流语言,不过它们的设计思想、所能够完成的功能,绝对不比c语言差。也许将来它们会成为主流,也许不会,可是不管 怎样,它们都有自己的闪光之处。*******Prolog**********人工智能领域常用的语言,开发自然语言分析,专家系统,以及所有和智能有关的程序,都非常拿手。----visual prolog顾名思义,这是一个可以制作界面的Prolog,有试用版本下载,大概20M左右。这个prolog版本需要对谓词以及数据进行声明,就像C语言一样。因此在使用的时候比较复杂,不过更加适合编制较大的程序。编译出来的程序可以直接运行。----amzi prolog这 个prolog版本包含解释器、编译器,不过编译出来的程序不能够直接运行,需要运行器运行。可以很方便的和其它语言(例如visual basic,java,C,CGI)连接,开发智能程序。解释器的运行效率较低。它所说使用的语法体系和visual prolog不同,程序需要进行适当的修改才能够在visual prolog中运行。----SWI-Prolog我 没有怎么使用过这个版本的prolog解释器,不过它的运行速度要比amzi prolog的解释器快,和amzi的编译之后的程序差不多快,如果下载图形软件包XPCE的话,还可以开发有界面的程序。它的语法和amzi prolog相同,程序可以通用,不过内部谓词有些不同,有时候需要修改一下。----Turbo prologDos版本的prolog,有开发界面,可以编译成可执行文件,语法和visual-prolog相同,不过内部谓词有许多出入。----B prolog好 像是中国人开发的prolog软件,据说比其它的prolog运算速度都要快,我曾经在linux下面使用过这个prolog,也有window版的,不 过没有什么集成开发环境。语法和其它的几个都不太相同,需要适当的修改程序才能够在此环境下运行。此prolog提供了许多测试速度的解谜题的程序,这个 版本的prolog支持constraint程序设计。----strawberry prolog1兆的容量,包括完整的开发界面,帮助,例程,提供了几个棋类游戏的源程序。可以直接开发有界面的prolog程序,共享版不能够编译,就解释执行吧*********Lisp*******人工智能语言的老大哥。语言格式只有一个形式:列表,所以也叫做表处理语言,这可不是一般的表,是可以包容任意结构的表,有了它,你还用c语言来写链表,二叉树的程序么?学习数据结构不妨使用lisp,让你更加关心算法,而不是数据如何在计算机内部表达。----xemacs与著名的guns emacs编辑器的起名,并且界面更加友善,内带emacs lisp, 和许多使用lisp编写的工具软件,例如calc, 是一个功能强大的计算器,支持符号运算,有全部的源程序,如果能够好好研究这些源程序,收获一定不小。----Allegro CLcommon lisp, windows下的common lisp集成开发环境, 60天试用。----lisp workcommon lisp&无限期使用,没有任何功能限制*****functional language****这 是一类语言,叫做函数型程序设计语言。是一种非常高级的语言。一种基于λ演算和在70年代后期才发展起来的新语言类型。大多数程序设计语言明显地规定要执 行操作的次序。次序的详细规定是很需要的,因为语言的语句对程序的变量有“作用”,如果改变这些作用的次序,就可以改变产生的最后值。但是函数型语言却没 有这种性质。在这个意义上,函数型语言能建立可计算性的数学公式模型。让我们来看一个简单的例子:qsort :: [a] -& [a] | Ord aqsort [] = []qsort [a:xs] = qsort [x \\ x&-xs | x&-xs | x&=a]这段程序就是快速排序的代码,你看有多么简洁,并且它的这个qsort可以对任何类型的数据进行排序(只要这种数据可以比较大小)。想读懂上面的程序么?那么下载下面的clean, 或者haskell,好好研究吧,祝你有新的发现。----clean并行的函数型语言,可以把源程序编译成exe文件,带有丰富的库,从tcp/ip, 到界面设计,到游戏开发,无一不全。----haskellhugs是haskell的免费编译器,语法和clean相似,不过是解释执行,因此易于学习。---caml又一个函数型语言。**********mozart oz*********20 年后,我们用什么样的语言?也许现在谁都不好回答,20年前的程序员们会告诉你汇编是最棒语言,今天人们也许会告诉你用c语言(c++?)_吧。那么20 年后呢,也许不是c语言了吧。世界上许多程序语言的研究机构都在开发下一代的语言,mozart oz也可以算是其中之一吧。mozart oz 是具有魔力的语言。它融合了目前几种流行的程序设计思想,我们叫它多范式语言。它是面向对象的语言,它是函数型的语言,它是约束逻辑的语言,它是并发式的语言,它还是分布式的语言,几句话很难概括它的功能。最好去它的网站看看吧,下载一个慢慢研究?他使用emacs作为开发界面,因此你首先需要安装emacs for windows(也可以在mozart的网上找到,也可以去www.gnus.org去找), 如果你安装了emacs 那么你也就同时获得了emacs lisp, 呵呵,收获不小。为了提起您的兴趣,请思考如下的问题如何编程解决,然后你可以在mozart中找到惊人简单的解决方案。15个人每天出去玩,每天分为5组,每组3人,玩一个星期,使得任何两个人都曾经在一组中玩过,你如何安排?*********J*****************不 要和java搞混淆了。它是一种面向阵列的语言,也就是说矢量,矩阵,以及高次数组都是它的最基本的数据类型,J中引入了大批量的运算符,以及独特的算式 分析方法,大幅度的扩展了数学算式的表达能力。 例如如果你要算从1加到100, 用c怎么做? J的程序是:+/i.100 对,就这么短,一个表达式解决了问题,事实上,使用表达式编写出来的程序异常简洁,虽然初看上去很难读懂,一旦掌握了J语言,你就会发现,原来你可以用只 有c语言1/20的字符表达同样的功能。*******forth***************forth是一种可扩展的,交互式的语言。最初为小型的嵌入式电脑设计的,现在它几乎可以在任何主流的芯片上运行。 在电子表格,专家系统, 多用户数据库,和分布式实时控制系统中有广泛的应用。表 面来看,forth是一种基于堆栈的概念机。例如如果要计算 (3+4)*5 ,我们的程序就是:3 4 + 5 * . 首先把3和4入堆栈,然后调用+子程序,+把堆栈的最顶上两个元素取出(也就是3和4)进行加法运算,然后把结果入堆栈,然后把5入堆栈,然后调用*子程 序,把最顶的2个元素,也就是7和5取出,并进行乘法运算,然后把结果入堆栈,最后的.把结果从堆栈中取出。事实上这是一种简单有效的概念机。当然 forth远远不止这些,它有什么样的功能,就由你去发掘了。*******Logo*************被称为最佳的启蒙语言,事实上它的功能远远不止启蒙这么简单。一切别的语言能够完成的它也能够完成,只是更加简洁一些,通常logo是使用lisp编写的,我们就可以想象它的高度灵活性了。----MSWlogo这个网站还有个逻辑数字电路模拟的软件,很有意思,再也不用为什么触发器 门电路之类的发愁了。******python***************python是一种解释型 交互式 面向对象的语言,我们经常拿它来和Tcl Perl Scheme Java来比较。它有非常清晰的语法,有模块,有类,异常处理,高级的动态数据结构。它比perl更加易学,功能更加强大。**********smalltalk*********可是面向对象的程序设计语言的鼻祖阿,并且正在蓬勃的发展,没有过时。它是纯面向对象的语言,就连整数也是对象。开放环境也非常集成,如果感兴趣可以到一下网站下载,绝对有耳目一新的感觉:&这是一个非常有趣的smalltalk版本,看上去就像在你的电脑上模拟了另外一套完成的窗口系统,这里面的窗口更加利害,你甚至可以旋转它,不看不知道,看了才发现还有这么奇妙的语言,这么奇妙的开发环境。10M左右这个版本比较实用,有详细的帮助,可以开发真正的windows程序。30M左右&这里提供的免费smalltalk版本只有3M不到,如果你想先尝试一下这种语言的话,可以下载这个。***************** C **************最 后我们还是回到c语言,毕竟这是目前最流行的语言,如果你不想用盗版,不想安装100多兆的垃圾(大多数初学者不可能完全使用borland c++ builder 或者visual c++的全部功能,而只是用来学习c语言本身),也不想在dos的edit样子的面孔下,使用Tc编程序,那么try下面的东东吧。3M的大小绝对值的下 载。
发表评论:
TA的最新馆藏哪一种编程语言适合人工智能_百度知道现在的位置:
哪一种编程语言适合人工智能?——Python在人工智能中的作用
谷歌的AI击败了一位围棋大师,是一种衡量人工智能突然的快速发展的方式,也揭示了这些技术如何发展而来和将来可以如何发展。
人工智能是一种未来性的技术,目前正在致力于研究自己的一套工具。一系列的进展在过去的几年中发生了:无事故驾驶超过300000英里并在三个州合法行驶迎来了自动驾驶的一个里程碑;IBM Waston击败了Jeopardy两届冠军;统计学习技术从对消费者兴趣到以万亿记的图像的复杂数据集进行模式识别。这些发展必然提高了科学家和巨匠们对人工智能的兴趣,这也使得开发者们了解创建人工智能应用的真实本质。开发这些需要注意的第一件事是:
哪一种编程语言适合人工智能?
你所熟练掌握的每一种编程语言都可以是人工智能的开发语言。
人工智能程序可以使用几乎所有的编程语言实现,最常见的有:Lisp,Prolog,C/C++,近来又有Java,最近还有Python.
像LISP这样的高级语言在人工智能中备受青睐,因为在各高校多年的研究后选择了快速原型而舍弃了快速执行。垃圾收集,动态类型,数据函数,统一的语法,交互式环境和可扩展性等一些特性使得LIST非常适合人工智能编程。
这种语言有着LISP高层和传统优势有效结合,这对AI是非常有用的。它的优势是解决“基于逻辑的问题”。Prolog提供了针对于逻辑相关问题的解决方案,或者说它的解决方案有着简洁的逻辑特征。它的主要缺点(恕我直言)是学起来很难。
就像猎豹一样,C/C++主要用于对执行速度要求很高的时候。它主要用于简单程序,统计人工智能,如神经网络就是一个常见的例子。Backpropagation 只用了几页的C/C++代码,但是要求速度,哪怕程序员只能提升一点点速度也是好的。
新来者,Java使用了LISP中的几个理念,最明显的是垃圾收集。它的可移植性使它可以适用于任何程序,它还有一套内置类型。Java没有LISP和Prolog高级,又没有C那样快,但如果要求可移植性那它是最好的。
Python是一种用LISP和JAVA编译的语言。按照Norvig文章中对Lips和Python的比较,这两种语言彼此非常相似,仅有一些细小的差别。还有JPthon,提供了访问Java图像用户界面的途径。这是PeterNorvig选择用JPyhton翻译他人工智能书籍中程序的的原因。JPython可以让他使用可移植的GUI演示,和可移植的http/ftp/html库。因此,它非常适合作为人工智能语言的。
在人工智能上使用Python比其他编程语言的好处
优质的文档
平台无关,可以在现在每一个*nix版本上使用
和其他面向对象编程语言比学习更加简单快速
Python有许多图像加强库像Python Imaging Libary,VTK和Maya 3D可视化工具包,Numeric Python, Scientific Python和其他很多可用工具可以于数值和科学应用。
Python的设计非常好,快速,坚固,可移植,可扩展。很明显这些对于人工智能应用来说都是非常重要的因素。
对于科学用途的广泛编程任务都很有用,无论从小的shell脚本还是整个网站应用。
最后,它是开源的。可以得到相同的社区支持。
AI的Python库
总体的AI库
AIMA:Python实现了从Russell到Norvigs的“人工智能:一种现代的方法”的算法
pyDatalog:Python中的逻辑编程引擎
SimpleAI:Python实现在“人工智能:一种现代的方法”这本书中描述过的人工智能的算法。它专注于提供一个易于使用,有良好文档和测试的库。
EasyAI:一个双人AI游戏的python引擎(负极大值,置换表、游戏解决)
机器学习库
PyBrain 一个灵活,简单而有效的针对机器学习任务的算法,它是模块化的Python机器学习库。它也提供了多种预定义好的环境来测试和比较你的算法。
PyML 一个用Python写的双边框架,重点研究SVM和其他内核方法。它支持Linux和Mac OS X。
scikit-learn旨在提供简单而强大的解决方案,可以在不同的上下文中重用:机器学习作为科学和工程的一个多功能工具。它是python的一个模块,集成了经典的机器学习的算法,这些算法是和python科学包(numpy,scipy.matplotlib)紧密联系在一起的。
MDP-Toolkit这是一个Python数据处理的框架,可以很容易的进行扩展。它海收集了有监管和没有监管的学习算饭和其他数据处理单元,可以组合成数据处理序列或者更复杂的前馈网络结构。新算法的实现是简单和直观的。可用的算法是在不断的稳定增加的,包括信号处理方法(主成分分析、独立成分分析、慢特征分析),流型学习方法(局部线性嵌入),集中分类,概率方法(因子分析,RBM),数据预处理方法等等。
自然语言和文本处理库
NLTK 开源的Python模块,语言学数据和文档,用来研究和开发自然语言处理和文本分析。有windows,Mac OSX和Linux版本。
做了一个实验,一个使用人工智能和物联网做员工行为分析的软件。该软件通过员工情绪和行为的分心提供了一个有用的反馈给员工,从而提高了管理和工作习惯。
使用Python机器学习库,opencv和haarcascading概念来培训。建立了样品POC来检测通过安置在不同地点的无线摄像头传递回来基础情感像幸福,生气,悲伤,厌恶,怀疑,蔑视,讥讽和惊喜。收集到的数据会集中到云数据库中,甚至整个办公室都可以通过在Android设备或桌面点击一个按钮来取回。
开发者在深入分析脸部情感上复杂点和挖掘更多的细节中取得进步。在深入学习算法和机器学习的帮助下,可以帮助分析员工个人绩效和适当的员工/团队反馈。
python因为提供像 scikit-learn的好的框架,在人工智能方面扮演了一个重要的角色:Python中的机器学习,实现了这一领域中大多的需求。D3.js JS中数据驱动文档时可视化最强大和易于使用的工具之一。处理框架,它的快速原型制造使得它成为一门不可忽视的重要语言。AI需要大量的研究,因此没有必要要求一个500KB的Java样板代码去测试新的假说。python中几乎每一个想法都可以迅速通过20-30行代码来实现(JS和LISP也是一样)。因此,它对于人工智能是一门非常有用的语言。
公众号搜索"爱板网"加关注,每日最新的开发板、智能硬件、开源硬件、活动等信息可以让你一手全掌握。推荐关注!
【微信扫描下图可直接关注】
【上篇】【下篇】
您可能还会对这些文章感兴趣!
您必须才能发表留言!

我要回帖

更多关于 人工智能游戏编程真言 的文章

 

随机推荐