1.3 发展趋势
计算机下棋是近年来人工智能领域的一个研究热点,许多新的技术层出不穷,世界级的棋类大师被计算机打败的例子屡见不鲜,随着人工智能在计算机中的广泛应用,人们对计算机的棋力提出了更高的要求。
人工智能下棋技术经过十余年的发展,取得了很多非常优秀的研究成果,但是无论是什么样的算法,计算机的速度都是一个不可回避的问题,深蓝虽然战胜了世界国际象棋棋王卡斯帕罗夫,为了提高深蓝的下棋速度,所耗费的资源也是非常大的。那么提高算法的精确度,避免无所谓的搜索时计算机下棋技术下一个要解决的问题。
人工智能技术也在不断地发展、不断地前进那么是否会有一天计算机的智慧超过人类? 那时人类又会怎么样?计算机真的会像电影里面反叛人类占领地球么?这一切的都不得而知,答案就要未来几十年的计算机工程师来揭晓。
2 开发工具Eclipse 及Android开发平台
本次论文黑白棋主要是由Eclipse为开发工具,在Android平台上完成的。
2.1 Android简介
Android是一个以Linux为基础的半开源操作系统,主要是用于行动设备,由Google和开放手持设备联盟开发与领导。 Android 系统最开始是由Andy Rubin制作,最初主要支持手机。2005年8月17日被Google收购。2007年11月5日,Google与84家硬件制造商、软件开发商及电信营运商共同组成开放手持设备联盟(Open Handset Alliance)来一起研发改良Android系统并生产搭载Android的智能型手机,并逐渐拓展到平板电脑及其他领域上。后来,Google以Apache免费开源许可证的授权方式,发布了Android的源代码。
2.1.1 Android 系统的特点:
Android运行于 Linux kernel之上,但并不是GNU/Linux。因为在大部分GNU/Linux 里支持的功能,Android 大都没有支持,包括Cairo、X11、FFmpeg、Pango及Glibc等都被移除掉了。
Android又以Skia 取代Cairo、再以opencore 取代FFmpeg 等等。Android 为了进一步达到商业应用,因此需要移除被GNU GPL授权证所约束的部份,例如Android将驱动程序移到 userspace,从而使得Linux driver 与 Linux kernel彻底分开。
bionic/libc/kernel/ 并不是标准的kernel header files。她 的 kernel header 是利用工具由 Linux kernel header 所产生的,目的是为了保留常数、数据结构与宏。
Android 的 Linux kernel控制主要包括以下几个部分:安全(Security),存储器管理(Memory Management),程序管理(Process Management),网络堆栈(Network Stack),驱动程序模型(Driver Model)等模块。在用Android源码之前,必须先要安装其构建工具 Repo来初始化源码。Repo 是一个 Android 用来辅助Git工作的工具。
2.1.2 Android 硬件和软件层:
Android 的 HAL(硬件抽像层)是能够以封闭源码形式提供硬件驱动模块。HAL就是为了把 Android framework 与 Linux kernel 隔开,让 Android 不至过度依赖 Linux kernel,来形成 kernel independent 的概念,同时也让 Android framework 的开发可以在不考量驱动程序实现的前提下进行发展。
HAL stub 是一种代理人的概念,stub 是以 *.so 档的形式存在。Stub 向 HAL“提供”操作函数(operations),并且由 Android runtime 向 HAL 取得 stub 的 操作函数,再 callback 这些操作函数。HAL 里包含了许多的 stub的代理人。Runtime 只要说明“类型”,即 module ID,就可以取得操作函数。
操作系统和应用程序沟通的桥梁,可以分为两层:函数层(Library)和虚拟机(Virtual Machine)。 Bionic是 Android 改良libc的版本。但她同时包含了Webkit,所谓的Webkit 就是Apple Safari 浏览器背后的引擎。Surface flinger 是把2D或3D的内容显示到屏幕上。Android使用工具链(Toolchain)为Google自制的Bionic Libc。 Android平台网络游戏版黑白棋游戏软件开发(3):http://www.youerw.com/jisuanji/lunwen_13472.html