代码改变世界

java代理模式---静态代理

2012-02-29 21:54 by myjava2, 204 阅读, 0 推荐, 收藏, 编辑
摘要:代理是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个对象的访问。代理类负责为委托类预处理消息,过滤消息并转发消息,以及进行消息被委托类执行后的后续处理。 为了保持行为的一致性,代理类和委托类通常会实现相同的接口,所以在访问者看来两者没有丝毫的区别。通过代理类这中间一层,能有效控制对委托类对象的直接访问,也可以很好地隐藏和保护委托类对象,同时也为实施不同控制策略预留了空间,从而在设计上获得了更大的灵活性。Java动态代理机制以巧妙的方式近乎完美地实践了代理模式的设计理念。按照代理类的创建时期,代理类可分为两种。 静态代理类: 由程序员创建或由特定工具自动生成源代码,再对其编.. 阅读全文

并行博弈树搜索算法-第5篇 人多力量大(?):并行Alpha-Beta算法

2012-02-29 00:22 by myjava2, 513 阅读, 0 推荐, 收藏, 编辑
摘要:在Alpha-Beta算法的并行化的过程中,一个较为困难的问题是判断从哪里开始并行搜索,因为一个分支的搜索可能会发现并行进行的另一个搜索完全可以避免.正因为如此,Alpha-Beta算法是一个很难并行的算法.虽然仿真可能预计出设计的Alpha-Beta并行算法具有非常好的性能,但是很多仿真都是基于一些不现实的假设的基础上.在实际的实现中,以下的因素经常会导致Alpha-Beta并行算法的并行效率低下[11]:1. 同步开销(Synchronization Overhead).如果算法中存在过多的同步点(synchronization point),那么处理器很多时候会处于空闲(idle)状态. 阅读全文

实用算法实现-第 32 篇 其它

2012-02-29 00:22 by myjava2, 187 阅读, 0 推荐, 收藏, 编辑
摘要:32.1 平衡三进制 PKU JudgeOnline, 1702, Eva'sBalance是一个平衡三进制问题的实例。将一个某进制数转换为平衡三进制数的方法为:先转化为用0,1,2表示的3进制,然后通过“借位”转换。也即: 若对应的系数为2,则变为-1,高一位+1。 若对应的系数为3,则变为0,高一位+1。 为0或1时不变32.1.1实例PKU JudgeOnline, 1702, Eva's Balance.32.1.2问题描述有一个天平和一套重量为3^n的砝码,每种砝码只有一个。给定一个重量,给出维持天平平衡的砝码和重物的放置方法。32.1.3输入3952032.1.4输 阅读全文

并行博弈树搜索算法-第3篇 优秀的园丁:Alpha-Beta算法

2012-02-27 22:30 by myjava2, 565 阅读, 0 推荐, 收藏, 编辑
摘要:3.1 Alpha-Beta算法虽然博弈树的状态是有限的,但是状态个数却非常多.假设博弈树的深度为d,每个结点有b个分支,即分支因子(branchingfactor)为b,那么使用Min-Max方法搜索这个博弈树需要搜索个结点.然而幸运的是,Min-Max方法的一些搜索是没有必要的,故此可以剪除(cut-off)那些没有必要搜索,即对搜索进行剪枝(prune).Alpha-Beta算法是一种有效而常用的剪枝算法.Alpha-Beta算法是在Min-Max方法基础上的一个改进.它维护一个搜索窗口(search window):[α, β].其中α表示在搜索进行到当前状态,当前对抗者能确保达到的最 阅读全文

并行博弈树搜索算法-第4篇 更上一层楼:Alpha-Beta算法的改进

2012-02-27 22:29 by myjava2, 900 阅读, 0 推荐, 收藏, 编辑
摘要:在Alpha-Beta算法被广泛运用后,对该算法的很多改进算法也相继被提出.这些改进算法主要在以下几个方面对Alpha-Beta算法进行改进[7]:1. 择序(ordering).在搜索博弈树时,内部结点有多个可能的移动.择序指的是搜索这些分支的顺序.择序影响着搜索叶结点的个数,使得其数目在[,]区间内变化.如果择序使得博弈树是随机的,那么所需搜索的叶结点的个数较多,如果择序使得博弈树是强有序的,那么所需搜索的叶结点的个数较少.在Alpha-Beta算法中,提高择序的好坏就意味着提高剪枝发生的概率.所以一个好的移动(sufficientor good move)可以定义为:a. 导致剪枝的移动 阅读全文

并行博弈树搜索算法-第2篇 博弈过程的抽象:MinMax方法

2012-02-26 21:24 by myjava2, 763 阅读, 0 推荐, 收藏, 编辑
摘要:2.1 Min-Max方法假设在博弈过程中,对抗者1总是选择使得博弈值最小的移动,那么作为对手的对抗者2则总会选择是的博弈值最大的移动,对抗者1称为min,对抗者2称为max.由于博弈双方是交替移动的,所以博弈树的结点及其父结点分属于两个对抗者中的一个,他们的种类(type)分属max和min.博弈树上的每个结点对应于一个深度(depth),叶结点的深度为0.因此,在任意的结点node,对博弈双方均最优的博弈值为[3]:由此,很自然地得出Min-Max算法,用来求出满足一些条件的二人零和博弈问题的博弈值:MiniMax(node) 1: if node.depth = 0 then 2: r. 阅读全文

并行博弈树搜索算法-第1篇 什么是博弈树搜索算法

2012-02-26 13:00 by myjava2, 684 阅读, 0 推荐, 收藏, 编辑
摘要:博弈树的搜索是人工智能领域一个重要的研究课题.许多完全信息的二人零和博弈问题都可以用博弈树搜索算法解决。那么什么是二人零和博弈问题呢?有一系列的博弈问题拥有以下性质[1]:1. 有两个对抗者:对抗者1和对抗者2.2. 两个对抗者交替移动.在博弈的每一个位置,对于正在移动的参与者,都存在有限个可能的移动.3. 游戏是决定性的,即游戏中不存在随机性.4. 游戏是完全信息的,即在任意时刻,博弈双方知道所处状态的所有信息.例如国际象棋是完全信息的,因为博弈双方知道所有的棋子所处位置,而两人玩的扑克牌游戏则是非完全信息的,因为一个人看不到对方手上的扑克牌.5. 游戏有三种可能结局:对抗者1获胜,对抗者2 阅读全文

Ajax详解

2012-02-21 16:11 by myjava2, 173 阅读, 0 推荐, 收藏, 编辑
摘要:一:什么是AjaxAjax是(Asynchronous JavaScript And XML)是异步的JavaScript和xml。也就是异步请求更新技术。Ajax是一种对现有技术的一种新的应用,不是一门新语言。它是用JavaScript编写。与xml的关系就是可以读取和返回xml文件。二:Ajax中的对象和方法说明Ajax的核心对象就是xmlHttpRequestXMLHttpRequest用于在后台与服务器交换数据。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。 1:方法xmlHttpRequst对象利用send()和open()方法与服务器进行交互。open(meth 阅读全文

利用XML在不同数据库中交换数据

2012-02-19 11:26 by myjava2, 188 阅读, 0 推荐, 收藏, 编辑
摘要:XML在不同语言,不同数据源中交换数据已经成为主流。在这些的DRP项目中,王勇也提到了使用XML在不同数据库中交换数据,达到安全,灵活的目的。不过他只是提到有这么一种方法,做了其中的一部分工作。因为感觉这种技术非常实用,这里我把这个过程补充完整。开发环境:sql server 2008数据库,Oracle数据库,PL/SQL,MyEclipse开发环境。将sql数据库一个表中的数据库导出到xml文件中,再通过dom4j读取xml文件,将xml中的数据写入到Oracle数据库中。一:分析表结构,建立目标数据库表。既然是不同的数据库,但是数据库表结果应该是一样的,在实际项目中,一般是首先分析表结构 阅读全文

XML详解

2012-02-16 20:50 by myjava2, 183 阅读, 0 推荐, 收藏, 编辑
摘要:一:什么是XML XML是一种可扩展标记语言 (Extensible Markup Language, XML)。XML重在数据交换,用于不同平台或者应用程序 之间交换数据,存储数据。二:XML的特点 1:XML是纯文本标记 XML文件是纯文本的形式,正是由于这种简单的格式,才让所有能处理纯文本的程序都能处理XML文件。这样对于数据交换和传输时至关重要的,也提高了它的兼容性和与平台无关性。 2:XML可以随意的定义自己的标签 你可以以任意文字定义标签,只要有开始符号和结束符号,只要符合XML的树形结构就可以,甚至可以使用中文。 3:与HTML的区别 XML重在存储数据,html重在显示数据。它 阅读全文
上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 52 下一页