随笔分类 -  杂谈

摘要:图搜索的A*算法有两种情况:hn是可采纳的,但是不是满足一致性如果满足一致性,A*算法的实现要简单一些:即使不检查closed节点的状态重复,也能得到最优的结果下面是证明最优性的一些关键点:1 沿着任何路径的fn都是非递减的2 closed集合里面的任何一个节点的fn都要小于open集合里面的任何一个节点的fn,这个特点保证了在拓展open节点时可以跳过已经在closed节点中的节点3 目标点的fn=gn+0,如果有路径到达目标点,那么所有能到达目标点的路径都在open表里面,而且A*算法必然能找到最优的那条路径 阅读全文
posted @ 2013-12-12 11:46 mightofcode 阅读(4601) 评论(0) 推荐(0)
摘要:传教士与野人问题:三个传教士,三个野人,一条船,船最多搭载两个人,传教士和野人都能划船,如何用求解这个问题?根据的搜索算法,定义目标函数,初始状态,计算出状态空间,然后进行搜索,由于路径耗散是常量,省略了路径耗散函数这个问题的推广:nn野人问题,在n>3时是无解的#ifndef te_acrossRiver_MOC_H20132417#define te_acrossRiver_MOC_H20132417#include "te_common.h"class AcrossRiver:public Singaleton{ class StateNode { public 阅读全文
posted @ 2013-10-25 18:26 mightofcode 阅读(753) 评论(0) 推荐(0)
摘要:本着复用轮子的精神,我把POCO库加到了我的项目里面POCO库包含了许多实用工具,可以让你免去寻找其他第三方库的的麻烦,目前我用到了里面的log,xml,format模块但是我今天却被POCO坑了因为我今天加了一些代码之后发现程序的速度变慢了,慢到不能忍的地步花了6个小时我终于找到原因了(我的上VS不是旗舰版,没有profiler,花了很长时间找问题),原来poco打一条log需要30-40ms,当你频繁打log的时候会形成严重的性能瓶颈于是我果断自己实现了一个小型的log模块替换掉POCO的log,然后世界清净了从这件事得到一个教训,使用第三方库时(特别是比较冷门的库)必须谨慎,如果要使用, 阅读全文
posted @ 2013-06-12 19:27 mightofcode 阅读(236) 评论(0) 推荐(0)
摘要:emacs是一个"强大"的编辑器,是很多大牛的首选编辑器,有非常强的的自定义功能好吧,老实说我很不喜欢emacs,各种操作用快捷键按来按去太蛋疼了,特别是在你记不住快捷键的情况下我最喜欢的是编辑器有两个:记事本和vs但是最近在用学lisp,用到了lisp-in-box,不得不用emacs记一些快捷键在这里CcCc 求值并编译CxCf 打开文件CcCz 打开REPLCxCs 保存缓冲区CcCs 代码补全Cxb 切换缓冲区CcCq 补全闭括号 阅读全文
posted @ 2013-02-19 00:55 mightofcode 阅读(211) 评论(0) 推荐(0)
摘要:在以前的一片博文里http://www.cnblogs.com/mightofcode/archive/2012/11/19/2771216.html,我发表了我对设计模式的一点看法但是今天的一个案例又让我对设计模式又有了一点思考今天在处理这么一个问题:组件A是我以前写的,这个组件会不断被重用,而今天要写到的模块B用到了A,现在B有一个很奇葩的需求,A似乎满足不了了!,怎么办?!首先我想到的是能不能把问题简单化,绕过这个问题经过仔细的分析后,我的结论是:没法绕过去,只能硬上了,给A添加功能!在思考这个这个功能怎么在A中实现的时候,我发现这里面的逻辑很复杂,而且很特殊,后来看A代码的人一定看不懂 阅读全文
posted @ 2013-01-23 19:34 mightofcode 阅读(198) 评论(0) 推荐(0)