状态图

BFS-八数码问题与状态图搜索

99封情书 提交于 2020-01-23 00:03:38
  在一个3*3的棋盘上放置编号为1~8的八个方块,每个占一格,另外还有一个空格。与空格相邻的数字方块可以移动到空格里。任务1:指定的初始棋局和目标棋局,计算出最少的移动步数;任务2:数出数码的移动序列。   把空格看成0,一共有九个数字。   输入样例:   1 2 3 0 8 4 7 6 5   1 0 3 8 2 3 7 6 5   输出样例:   2   1.把一个棋局看成一个状态图,总共有9!= 362880个状态。从初始棋局开始,每次移动转到下一个状态,达到目标棋局后停止。   2.康托展开     康托展开是一种特殊的哈希函数。其功能是在输入一个排列,计算出它在在全排列中从小到大排序的位次。     eg:判断 2143是{1,2,3,4}的全排列中的位次。       (1)首位小于2的所有排列。比2小的只有1,后面三个数的排列有3*2*1=3!个,写成1*3!=6       (2)首位为2,第二位小于1的所有排列。无,写成0*2!=0       (3)前两位为21,第三位小于4的所有排列。只有3一个数,写成1*1!=1       (3)前三位为214,第四位小于3的所有排列。无,写成0*0!=0       求和:1*3!+0*2!+1*1!+0*0!=7     所以位次的计算公式为X = a[n]*(n-1)! +a[n-1]*(n-2)! + … +

布式事务和解决方案理论

≯℡__Kan透↙ 提交于 2020-01-08 18:54:12
原文作者:VectorJin https://juejin.im/post/5e066c9ff265da33b0718f89 1. 本地事务   事务Transaction由一组SQL组成,具有四个ACID特性 1.1 ACID Atomicity 原子性 构成事务的一组SQL,要么全部生效,要么全不生效,不会出现部分生效的情况 Consistency 一致性 数据库经过事务操作后从一种状态转变为另一个状态。可以说原子性是从行为上描述,而一致性是从结果上描述 isolation 隔离性 事务操作的数据对象 相对于 其他事务操作的数据对象相互隔离,互不影响 durability 持久性 事务提交后,其结果就是永久性的,即使发生宕机(非磁盘损坏) 1.2 事务实现   对于MySQL数据库(InnoDB存储引擎)而言,隔离性是通过不同粒度的锁机制来实现事务间的隔离;原子性、一致性和持久性通过redo log 重做日志和undo log回滚日志来保证的。    redo log: 当数据库对数据做修改的时候,需要把数据页从磁盘读到buffer pool中,然后在buffer pool中进行修改,那么这个时候buffer pool中的数据页就与磁盘上的数据页内容不一致,称buffer pool的数据页为dirty page 脏数据,如果这个时候发生非正常的DB服务重启

Compiler - lexical analysis

无人久伴 提交于 2020-01-05 01:39:47
概念 : 1. Context-Free Grammar : a). 一个终结符集合。b). 一个非终结符集合。c). 一个产生式集合,产生式左部为一个非终结符,右部为终结符或非终结符序列。d). 一个初始状态。 2. Parse Tree(Concrete Syntax Tree), Abstract Syntax Tree(AST) 文法: list -> list+digit | list-digit | digit; digit -> 0|1|2|3|4|5|6|7|8|9 抽象语法树不包含具体的文法信息(或形式) 3. Syntax-Directed Translation 翻译模式: 参考Antlr中的Arbitrary Actions。Syntax-Directed: 文法符号与一个属性集合关联,产生式与一个语义规则集合关联,文法符号(属性集合)和语义规则集合构成Syntax-Directed定义,参考Antlr的Rewrite Rules 4. Nondeterministic finite automata NFA a). 一个状态的有穷集合S; b). 一个输入符号集合Σ; c). 一个转换函数move,把状态和符号组成的二元组映射到状态集合; d). 状态s0是唯一的初始状态; d). 状态集合F是终止状态集合 5. Deterministic finite

UML图的种类

£可爱£侵袭症+ 提交于 2020-01-04 05:35:55
一、作为一种建模语言,UML的定义包括UML语义和UML表示法两个部分。 UML语义:描述基于UML的精确元模型定义。 UML表示法:定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。这些图形符号和文字所表达的是应用级的模型,在语义上它是UML元模型的实例。 二、标准建模语言UML可以由下列5类图来定义。 用例图:从用户角度描述系统功能,并指出各功能的操作者。 静态图:包括类图和对象图。 类图描述系统中类的静态结构,不仅定义系统中的类,表示类之间的联系,如关联、依赖、聚合等,也包括类的属性和操作,类图描述的是一种静态关系,在系统的整个生命周期都是有效的。对象图是类图的实例,几乎使用与类图完全相同的标识。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。 行为图:描述系统的动态模型和组成对象间的交互关系, 包括状态图和活动图 。状态图描述类的对象所有可能的状态以及事件发生时状态的转移条件,状态图是对类图的补充,活动图描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并进行活动。 交互图:描述对象间的交互关系,包括 时序图和协作图 。时序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互;协作图描述对象间的协作关系,协作图跟时序图相似,显示对象间的动态合作关系

在UML系统开发中有三个主要的模型

主宰稳场 提交于 2020-01-04 05:33:34
http://www.cnblogs.com/Yogurshine/archive/2013/01/14/2859248.html 在UML系统开发中有三个主要的模型:   功能模型: 从用户的角度展示系统的功能,包括用例图。   对象模型: 采用对象,属性,操作,关联等概念展示系统的结构和基础,包括 类图 、对象图、包图。   动态模型: 展现系统的内部行为。 包括序列图,活动图,状态图。 UML的重要内容可以由以下五种类图定义 用例图 :从用户角度描述系统功能,并指各功能的操作者。 静态图 :包括类图,包图,对象图。 类图:描述系统中类的静态结构 包图:是包和类组成的,表示包与包之间的关系,包图描述系统的分层结构 对象图:是类图的实例 行为图 :描述系统动态模型和对象组成的交换关系。包括状态图和活动图 活动图:描述了业务实现用例的工作流程 状态图:是描述状态到状态控制流,常用于动态特性建模 交互图: 描述对象之间的交互关系 顺序图:对象之间的动态合作关系,强调对象发送消息的顺序,同时显示对象之间的交互 合作图:描述对象之间的协助关系 实现图: 配置图:定义系统中软硬件的物理体系结构 UML包括用例图、类图、构件图、部署图、顺序图、协作图、状态图、活动图 各个图简介: 用例图从外部用户的角度捕获系统的行为。他将系统功能划分为对活动者具有意义的事务。 类图描述类、接口

UML基础:统一建模语言简介

感情迁移 提交于 2020-01-04 05:32:51
简介:回顾20世纪晚期--准确地说是1997年,OMG组织(Object management Group对象管理组织)发布了统一建模语言(Unified Modeling Language,UML)。UML的目标之一就是为开发团队提供标准通用的设计语言开发和构建计算机应用。UML的目标之一就是为开发团队提供标准通用的设计语言来开发和构建计算机应用。UML提供了一套IT专业人员期待多年的统一的标准建模符号,这些人员能够阅读和交流系统架构和设计规划--就像建筑工人多年来所使用的建筑设计图一样。 到了21世纪--准确地说是2003年,UML已经获得了业界的认同。在我所见过的专业人员的简历中,75%都声称具备UML的知识。然而,在同绝大多数求职人员面谈之后,可以明显地看出他们并不真正了解UML。通常地说,他们将UML用作一个术语,或对UML一知半解。大家对UML缺乏理解的这种情况,促进我撰写这篇关于UML 1.4的快速入门文章。当阅读完本文是,您还不具备足够的知识可以在简历上声称自己掌握了UML,但是您已具有了进一步钻研该语言的良好起点。 一些背景知识 正如前面提到过的,UML的本意是要成为一种标准的统一语言,使得IT专业人员能够进行计算机应用程序的建模。UML的主要创始人是Jim Rumbaugh、Ivar Jacobson和Grady Booch,他们最初都有自己的建模方法(OMT

初识 统一建模语言(UML)

浪子不回头ぞ 提交于 2020-01-04 05:32:04
UML;统一建模语言(UML是 Unified Modeling Language的缩写)是用来对软件密集系统进行可视化建模的一种语言。UML为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。 最常用的UML图包括:用例图、类图、序列图、状态图、活动图、组件图和部署图。 用例图;用例图描述了系统提供的一个功能单元。用例图的主要目的是帮助开发团队以一种可视化的方式理解系统的功能需求,包括基于基本流程的"角色"(actors,也就是与系统交互的其他实体)关系,以及系统内用例之间的关系。用例图通常用于表达系统或者系统范畴的高级功能。用例;用例,或译使用案例、用况(Use Case)是软件工程或系统工程中对系统如何反应外界请求的描述,是一种通过用户的使用场景来获取需求的技术。 类图;类图表示不同的实体(人、事物和数据)如何彼此相关。类在类图上使用包含三个部分的矩形来描述,如图2所示。最上面的部分显示类的名称,中间部分包含类的属性,最下面的部分包含类的操作(或者说"方法")。 使用带有顶点指向父类的箭头的线段来绘制继承关系1,并且箭头应该是一个完全的三角形。如果两个类都彼此知道对方,则应该使用实线来表示关联关系;如果只有其中一个类知道该关联关系,则使用开箭头表示。 序列图;序列图显示具体用例(或者是用例的一部分)的详细流程。它几乎是自描述的

UML简介

删除回忆录丶 提交于 2020-01-04 05:30:57
  1997年,OMG组织(Object Management Group对象管理组织)发布了 统一建模语言 (Unified Modeling Language,UML)。UML的目标之一就是为开发团队提供标准通用的设计语言来开发和构建计算机应用。UML提出了一套IT专业人员期待多年的统一的标准建模符号。通过使用UML,这些人员能够阅读和交流系统架构和设计规划 —— 就像建筑工人多年来所使用的建筑设计图一样。 到了21世纪--准确地说是2003年,UML已经获得了业界的认同。在我所见过的专业人员的简历中,75%都声称具备UML的知识。然而,在同绝大多数求职人员面谈之后,可以明显地看出他们并不真正了解UML。通常地,他们将UML用作一个术语,或对UML一知半解。大家对UML缺乏理解的这种状况,促进我撰写这篇关于UML 1.4的快速入门文章。当阅读完本文时,您还不具备足够的知识可以在简历上声称自己掌握了UML,但是您已具有了进一步钻研该语言的良好起点。 一些背景知识   正如前面曾提到过的,UML的本意是要成为一种标准的统一语言,使得IT专业人员能够进行计算机应用程序的建模。UML的主要创始人是Jim Rumbaugh、Ivar Jacobson和Grady Booch,他们最初都有自己的建模方法(OMT、OOSE和Booch),彼此之间存在着竞争。最终

UML基础:统一建模语言简介

这一生的挚爱 提交于 2020-01-04 05:30:25
目录 背景知识 用例图 类图 序列图 状态图 活动图 组件图 部署图 结束语   英文原文: UML basics: An introduction to the Unified Modeling Language   到了21世纪——准确地说是2003年,UML已经获得了业界的认同。在我所见过的专业人员的简历中,75%都声称具备UML的知识。然而,在同绝大多数求职人员面谈之后,可以明显地看出他们并不真正了解UML。通常地,他们将UML用作一个术语,或对UML一知半解。大家对UML缺乏理解的这种状况,促进我撰写这篇关于UML 1.4的快速入门文章。当阅读完本文时,您还不具备足够的知识可以在简历上声称自己掌握了UML,但是您已具有了进一步钻研该语言的良好起点。    背景知识   正如前面曾提到过的,UML的本意是要成为一种标准的统一语言,使得IT专业人员能够进行计算机应用程序的建模。UML的主要创始人是Jim Rumbaugh、Ivar Jacobson和Grady Booch,他们最初都有自己的建模方法(OMT、OOSE和Booch),彼此之间存在着竞争。最终,他们联合起来创造了一种开放的标准。(听起来是不是很熟悉?这个现象类似J2EE、SOAP和Linux的诞生。)UML成为"标准"建模语言的原因之一在于,它与程序设计语言无关。(IBM

UML各种类图总结

南楼画角 提交于 2019-12-30 10:11:54
文章目录 一、用例图 二、类图 1、泛化 2、实现 3、关联 4、聚合 5、组合 6、依赖 7、各种类图关系 三、对象图 四、状态图 五、活动图 六、序列图-时序图 1、生命线 2、同步消息 3、异步消息 4、注释 5、约束 七、协作图 八、构件图 九、部署图 一、用例图    用例图主要回答了两个问题:1、是谁用软件。2、软件的功能。 从用户的角度描述了系统的功能,并指出各个功能的执行者,强调用户的使用者,系统为执行者完成哪些功能 。 二、类图    用户根据用例图抽象成类,描述类的内部结构和类与类之间的关系,是一种静态结构图。 在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 。各种关系的强弱顺序: 泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖 1、泛化    泛化关系是一种继承关系,表示一般与特殊的关系,它指定了子类如何继承父类的所有特征和行为 。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。 2、实现    实现关系是一种类与接口的关系,表示类是接口所有特征和行为的实现 。 3、关联    关联关系是一种拥有的关系,它使一个类知道另一个类的属性和方法 ;如:老师与学生