09 2012 档案

gold_hash_idx 完成了
摘要:用在 onfly minimal acyclic DFA construction 上,速度提高了大约28%,内存对每个State节约了4个字节。以后有空再努力一下,把 gold_hash_idx 再深入泛化一步,做成可以更方便地用于 multi_index 。 阅读全文

posted @ 2012-09-25 21:46 能发波 阅读(114) 评论(0) 推荐(0)

gold_hash_map abstract++
摘要:目前的gold_hash_map 实现中,index和data是耦合在一起的。今天在思考 onfly MinADFA 的进一步优化时,想到了一点:在MinADFA_onfly 中,equivalence_register是一个gold_hash_tab,它以 state_id 为 elem,以StateContent 为key,再深入思考,其实这个state_id 没有存在的必要,equivalence_register中保存 state_id 的数组只要和state 数组平行,这个 state_id 的存储就可以省掉,直接将 state 数组的下标作为 elem就可以了,对每个state可以 阅读全文

posted @ 2012-09-23 10:55 能发波 阅读(107) 评论(0) 推荐(0)

Trie, Hash, MinADFA
摘要:Trie的搜索复杂度是 O(length(strkey))Hash表,计算Hash的复杂度也是O(length(strkey))1. Trie因为每读一个字符,要做一次状态转移,就有一次(随机)访存操作,计算 strkey 的 Hash 不需要每个字符都随机访存,从这一点看,Hash胜出2. Hash 可能会有冲突,而 Trie 没有冲突,这一点,Trie 胜出3. 可以在 Trie 上应用 DFA Minimization 算法,生成一个 Minimum Acyclic DFA,再加一些额外算法,可以节省更多内存(有可能超过100倍),同时可以用 O(length(strkey)) 的时间复 阅读全文

posted @ 2012-09-07 21:25 能发波 阅读(132) 评论(0) 推荐(0)

NFA转化DFA
摘要:NFA转化DFANFA既然和DFA等价,那么,它们之间就存在对应关系,DFA到NFA的转化是自明的:没有空转移,把返回的单个state编程仅包含一个state的集合,就是一个形式上的NFA。但是,NFA到DFA的转化就不是那么简单了,实际上,在计算理论中,它属于ExpSpace问题,是一类比NP问题更难的问题。往简单了说,因为NFA的转移函数的返回值是个state集合,如果NFA的state数目为n,那么这个state集合的集合,就是整数[0,n)的幂集,这个幂集的元素数目是 2^n ,不错,在最坏情况下,包含n个状态的NFA对应的DFA有 2^n 个状态。虽然这个让人很悲观,但是在实际情况中 阅读全文

posted @ 2012-09-06 22:51 能发波 阅读(635) 评论(0) 推荐(0)

DFA的实现
摘要:DFA的实现在工业界,DFA的有效实现一直是一个问题,龙书中提到了一种使用四个数组的通用DFA实现,在汉字分词算法中经常用到double array作为Trie的一种实现。四数组的是通用DFA的实现,双数组的仅能用于实现Trie。并且它们的创建速度慢,难以理解,内存占用也比较多,状态id的值域范围稀疏。我的实现我实现了一种很紧凑的DFA,这在某种程度上源于popcount带来的灵感。当然,我的这种实现也是有局限性的:仅用于字母表为byte的情形,虽然这在绝大多数情况下已经足够,但是作为确定性PushDown Automata的基础DFA时可能就不够了。关于popcount有很多有趣的故事,大家 阅读全文

posted @ 2012-09-05 18:25 能发波 阅读(645) 评论(0) 推荐(0)

Context 终于进 boost 了
摘要:Version 1.51.0New Libraries: ContextBoost.Contextis a foundational library that provides a sort of cooperative multitasking on a single thread. By providing an abstraction of the current execution state in the current thread, including the stack (with local variables) and stack pointer, all register 阅读全文

posted @ 2012-09-04 09:55 能发波 阅读(249) 评论(0) 推荐(0)

导航