自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Campsisgrandiflora的博客

记录下当前的学习内容,记录下当前的所思所想,书写与画图是为了更好地总结与思考,想做的事从现在开始就做,持之以恒地做一件事情,持续地学习与思考

  • 博客(69)
  • 收藏
  • 关注

原创 《数据密集型应用系统设计》读书笔记——数据系统基础

因为个人兴趣,想学学分布式方面的知识,然后找到了这本《数据密集型应用系统设计》,确实非常的不错,无论对于以前的工程还是现在的科研都有启迪和感悟,所以就写份读书笔记记录一下。

2021-12-13 17:19:50 991

原创 java源码阅读——CopyOnWriteArrayList和CopyOnWriteArraySet

目录CopyOnWriteArrayList迭代属性变更操作CopyOnWriteArraySetCopyOnWriteArrayListCopyOnWriteArrayList时ArrayList的一种线程安全变体,它的名字前面有个CopyOnWrite,这个名字就表明了它的操作特点,它的所有变动操作(新增add,设置set,删除remove等等)都是会先复制(copy)一个副本,然后再副本上进行相应操作,最后将副本写(write)回存储CopyOnWriteArrayList的变动操作一般性的

2021-07-22 13:52:28 281

原创 java源码阅读——同步容器和并发容器

目录同步容器SynchronizedXXX类Vector,Stack,HashTable并发容器CopyOnWriteArrayListCopyOnWriteArraySetConcurrentHashMap同步容器在之前看的ArrayList,LinkedList,HashMap等的源码中,我们通过注释知道了这些个容器类都不是线程安全的对象,如果要实现同步,那么可以通过手动使用synchronized,或者使用SynchronizedXXX(XXX可以是Map,List,Set等)来包装这些容器类。

2021-07-22 13:52:04 192

原创 java源码阅读——HashSet

目录SetHashSetSetSet是实现不包含重复元素类的接口,比较正式的定义是,集合中不包含一对元素e1和e2,使得e1.equals(e2),就像Set这个名称所表现出来的那样,这个接口是对数学中集合的抽象建模HashSetjava中HashSet的实现实际上就是用的HashMap,它并不保证元素的存放顺序,允许存放Null。定义public class HashSet<E> extends AbstractSet<E> implements Set<E&

2021-07-19 11:44:38 122

原创 java源码阅读——HashMap

目录MapHashMap属性初始化java中的HashMap实现了键-值对映射,它的底层结构是数组+链表/红黑树,和之前的顺序数据结构不同,它是实现了Map接口MapMap是一个接口,用来实现存储键-值对的对象,Map的键不可以重复,每个键最多可以映射到一个值HashMap属性// 默认初始化容量,1<<4值为16,必须设定为2的次方static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16// 最大

2021-07-11 14:11:58 122 1

原创 java源码阅读——LinkedList

目录QueueDequeLinkedList添加元素删除元素检索除了数组外,链表也是非常常用的数据结构,java里面的LinkedList就是实现了链表这一数据结构,而且它的底层是一个双向链表,下面是LinkedList的继承和实现结构QueueLinkedList实现了List和Deque这两个接口,List这个接口在上一篇Array中解释过了,Queue队列除了Collection的基础操作之外,还额外提供了插入、提取和检查操作,这些操作每一个都以两种方式存在,一种是失败时抛出异常,另一种是失

2021-07-09 21:17:09 129

原创 java源码阅读——ArrayList

目录IterableCollectionListArrayList构造函数添加元素和扩容删除元素迭代操作线程同步ArrayList类是一个我们经常要使用到的容器,它其实就是一个大小可以自动调整的数组还是先来看一下ArrayList继承的类和实现的接口Iterable实现了这个接口的对象允许使用增强 for 语句来进行迭代Collectioncollection是java容器实现的根接口,collection代表了一组对象(object),collection中的对象称为该collectio

2021-07-09 16:48:14 156

原创 软件理论基础学习笔记——一阶谓词逻辑

目录一阶谓词逻辑的符号化个体词谓词量词一阶谓词逻辑的解释一阶逻辑前束范式一阶谓词逻辑的符号化一阶谓词逻辑符号化有三个基本要素,分别是个体词、谓词和量词个体词个体词是指研究对象可以独立存在的具体的或者抽象的个体,例如3,小张,中国……谓词谓词是用来刻画个体词性质以及个体词之间相互关系的词,常用F,G,H……表示,例如“2是有理数”,2是个体词,“是有理数”就是谓词,量词表示个体常项与变量之间数量关系的词称为两次,一共有两种量词,分别是全称量词和存在量词一阶谓词逻辑的解释L\mathcal

2021-06-19 21:54:49 1391

原创 软件理论基础学习笔记——模态逻辑(modal logic)

目录模态逻辑的语法模态逻辑的语义模态逻辑的语法模态逻辑定义为:ϕ::=true∣p∣¬ϕ∣ϕ1∨ϕ2∣ϕ1∧ϕ2∣ϕ1→ϕ2∣□ϕ∣◊ϕ\phi::=true|p|\lnot\phi|\phi_{1}\vee\phi_{2}|\phi_{1}\wedge\phi_{2}|\phi_{1}\rightarrow\phi_{2}|\Box\phi|\Diamond\phiϕ::=true∣p∣¬ϕ∣ϕ1​∨ϕ2​∣ϕ1​∧ϕ2​∣ϕ1​→ϕ2​∣□ϕ∣◊ϕ说白了就是命题逻辑再加上两个自定义的算子看看

2021-06-18 18:58:10 3256 2

原创 软件理论基础学习笔记——操作语义(operational semantics)

目录介绍二级目录三级目录介绍Operational semantics is a category of formal programming language semantics in which certain desired properties of a program, such as correctness, safety or security, are verified by constructing proofs from logical statements about its e

2021-06-15 23:37:39 2193 4

原创 软件理论基础复习笔记——总结与例题

目录命题逻辑系统一阶谓词逻辑系统时态逻辑系统模态逻辑系统自动机理论操作语义命题逻辑系统软件理论命题逻辑知识点1、证明一个公式是否为重言式什么是重言式?定义为设A∈F(S)A\in F(S)A∈F(S),若τ(A)=1\tau(A)=1τ(A)=1,则称A为重言式(永真式)也就是说无论如何赋值,该公式的真值永远为真,那么这个公式就是重言式判断重言式的方法,逻辑等价和真值表法,逻辑等价的方法就是例如逻辑等价公式,将公式转化为真,真值表法就是利用真值表画出公式所有的真值,如果最后一栏全是1,那么个

2021-06-15 19:23:00 728

原创 apollo源码阅读——红绿灯感知识别模块

因为学习的原因,最近要研究一下百度apollo自动驾驶平台的红绿灯识别模块,写下点东西作为学习的记录目录apollo感知模块红绿灯感知流程apollo感知模块apollo感知模块的总体架构如图所示,我们看到在红绿灯模块中用到了6mm和12mm的前置摄像头,这个6mm指的是焦距为6毫米,6mm是广角镜头,拍摄范围比较大,而12mm是长焦距摄像头,拍摄的距离比较远,在后面我们可以知道,同一个时间点只以一个摄像头的图片为依据下面这张是展现更多细节的模块图apollo总体的感知模块如图所示,红绿灯模

2021-06-05 20:24:27 2137

原创 java源码阅读——string

目录String中的finalString字符串压缩构造方法其他apiString中的final首先来看String的定义,用了final修饰,所以String类是无法被继承的public final class String implements java.io.Serializable, Comparable<String>, CharSequencevalue这个变量就是用来存储字符串值的关键变量,之前jdk8的时候使用的是char数组,到了jdk9这里换成了byte数组@S

2021-06-02 23:00:29 223 1

原创 java源码阅读——包装类

在java中并不是所有变量都是类,java存在着基本数据类型,在很多时候,我们需要将基本数据类型转化为对象,这个时候就需要包装类基本数据类型包装类位数byteByte8booleanBoolean8shortShort16intInteger32longLong64floatFloat32doubleDouble64charCharacter16我们这里就用Integer这个类为例,来看一下包装类的源码

2021-06-01 23:05:18 267 2

原创 软件理论基础学习笔记——图灵机

图灵机(turing machine)图灵机是一种比下推自动机更为强大的自动机,在上面我们看到下推自动机在状态转换过程中操作一个栈,而图灵机会在状态转换过程中操作一个无限的tapetape里面包含字符,其中后面那个两竖一横的符号是blank的意思,它是一个特殊的字符,用来填满无限的tapetape head指向当前tape上的字符tape上的操作可以对tape head指向的字符进行读/扫描操作可以对tape head指向的字符进行写/更新操作将tape head左移一格将tape he

2021-05-21 22:55:33 3105

原创 Event-B建模(九)——用Rodin手动证明

目录环境更改证明规则练习1前面我们用Rodin建模了各种各样的模型,想必大家都知道Rodin的自动证明器有时候是会出错的吧?有时候,在自动证明器无法证明的情况下,我们需要进行手动的证明环境更改我们现在用的是SMT自动证明器,那玩意儿太高级了,为了体验一下手动证明的感觉,我们要首先更改一下我们的环境,来到这个界面,点击new我们新建的这个证明环境命名为prp1,然后先把右边Loop On All Pending这个东西拖到中间然后左边的都是证明的方法,把这个Goal in Hypotheses

2021-05-11 13:35:10 1973 8

原创 kj的读书笔记——《内向者的优势》

目录内向只是一种性格性格内向与外向的不同非常幸运在很早的时候就遇到了这本书——《内向者的优势》,多年前读着这本书描述内向者的特征,就好像从另一个视角看着自己,于是开始借鉴其中有用的建议指导自己的生活,再拿起时也有不一样的感受。这本书介绍了何为性格内向,性格内向者的特点,并且为性格内向者如何发挥自己的优势并在这个偏向于外向的世界更好地生活和发展提供了建议。并且有些建议属于通用型的指导方法,不管内向外向如果对自己有用均可试试。我觉得观看这类书有一个重要的点就是不要给自己贴标签,我是相信纯粹的内向或者纯粹

2021-04-28 22:38:45 320 1

原创 Event-B建模(八)——文件传输协议

目录需求初始模型第一次精化这一次的建模与前面的实例有相当的不同之处,这里建模的是一个协议,并且我们在此次建模使用的精化属于一种时间方面的精化。需求首先来看看这个任务的需求文件传输协议是用一个代理方向另一个代理方传送一个顺序文件。接收到的文件应该和源文件相同顺序文件由一个数据项的序列文件需要以一个个片段的方式在站点之间传输整个协议相当于一个分布式程序初始模型第一次精化...

2021-04-28 18:22:17 1060 1

原创 Event-B建模(七)——冲压机控制器

目录需求分析初始模型第一次精化需求分析这一次我们要建一个冲压机的模型系统的整体结构如下图所示:该系统的需求为:首先定义了各种部件,电动机、离合器和安全门,中间有一个控制器控制着它们然后给出各个部件与控制器的连接方式定义系统的安全需求:最后离合器和安全门之间要增加更多的约束初始模型在初始模型中,我们摇号完成连接控制器和电动机初始模型如图所示:第一次精化...

2021-04-25 18:06:23 1316

原创 kj的读书笔记——《被讨厌的勇气》

这里写目录标题目的论一切烦恼都是人际关系的烦恼分离人生课题与共同体理论《被讨厌的勇气》我只是记录下书中的观点以及自己的想法,每个人对书中观点都有自己的想法和理解,这才是读书的意义所在,至于心理学争论什么的更是与我无关,我又不是研究心理学的,只要相应观点能对人有所启迪,可以指导做人做事方式即可。目的论一切烦恼都是人际关系的烦恼分离人生课题与共同体理论...

2021-04-10 16:50:56 264

原创 kj的硕士科研观察小笔记

目录研究论文学术交流组会在读研前和真正作为一名研究生对研究生生活的的认知还是挺不一样的,作为一名软件工程研究生,我想从旁观者的角度,记录下在科研中观察到的点滴,看看写写,慢慢添加~研究我觉得研究的大致流程就是上面的过程,通过查找阅读论文的方式了解当前的科研工作,在对论文的阅读、对比、分析中找到可能的创新点,然后提出相应的假设,根据自己的想法完成对应的实验,分析实验结果,总结出一般性规律,将研究的结果写成论文。如果提出的是一个新的概念或者性质,那么要找某个领域对这个规律性的东西进行应用拿神经网络举

2021-04-09 23:33:45 281 7

原创 软件理论基础学习笔记——命题逻辑系统

目录命题及其符号化命题及其符号化命题就是陈述句如果陈述句不包含更简单的陈述句,那么这个陈述句就是简单命题,如果陈述句由简单命题通过连接词连接形成,那么就是复合命题命题根据是否为真分为真命题和假命题命题逻辑的符号表示在命题演算中,我们用符号p1,p2,p3...p_{1},p_{2},p_{3}...p1​,p2​,p3​...表示简单命题,也称之为原子命题和命题变元,用¬,∨,∧,→\lnot,\vee,\wedge,\rightarrow¬,∨,∧,→作为命题连接符用符号表示命题逻辑公式

2021-04-02 14:57:39 649

原创 软件理论基础学习笔记——形式系统

目录定义形式系统LL中的证明与定理演绎定理可靠性定理完备性定理可证等价子式替换定理命题演算的语构理论定义每个形式系统都使用原始的符号(符号的集合称为字符表),通过形成的推理规则,从一组公理中有限地构造一种形式语言正式的来说,形式系统包含如下四个部分:1、字符表(symbols)。一组有限的符号,称为字符表,字符用来连接公式,因此公式只是从字符表中提取的有限的符号串。2、语法(grammar)。语法定义了生成公式的基本规则,如果一个公式被称为符合语法规则(well-formed)的,那么说明这个

2021-03-29 23:17:20 1262

原创 计算机网络——概念与基础

这里写目录标题计算机网络定义计算机网络的基础特征计算机网络定义计算机网络是通过通信连接的结点的集合解释:结点(node)可以是计算机、打印机等有能力发送数据,或者从网络中接受其他结点生成数据的设备。以下的设备都可以是结点:计算机、智能手机、打印机、路由器、交换机、集线器……通讯连接(communication links),指的是连接的方式可以通过有线(wired link)或者无线(wireless link)的方式进行连接,并且连接需要携带信息(information)按照定义,下图所

2021-03-29 23:14:54 787

原创 Event-B建模(六)——控制桥上汽车,精化

目录第一次精化状态的精化事件的精化第二次精化状态的精化事件的精化这篇的上一篇在这个地方Event-B建模(三)——控制桥上汽车,初始模型第一次精化在第一次精化时,我们要考虑的不再是桥岛组合体,而是要引入“桥”的概念,现在要考虑的模型如下图所示:因为多了“桥”这个概念,所以我们要考虑更多的事件,例如汽车进入或者离开小岛,称为IL_in和IL_out,而ML_out和ML_in在这次精化中依然存在,分别对应于汽车离开大陆上桥和离开桥进入大陆状态的精化在第一次精化时,我们让常量d保持原样,而变量使

2021-03-23 20:17:47 3178 15

原创 Event-B建模(五)——银行系统小例子

目录需求文档初始建模初始化不变量初始化变量定义open定义close定义deposit定义withdraw第一次精化第二次精化这章就用event-b建模一个小小银行系统,某些Rodin具体操作就不展示了,可以参看建模桥上的汽车需求文档我们要建立一个银行系统的模型,它的需求文档如下所示:说明标签这个系统包含账户(account)和人(person)ENV-1一个账户有余额(balance),余额是一个有上限的非负树ENV-2一个账户只有一个所有者(owner),

2021-03-22 15:53:59 2688 7

原创 Event-B建模(四)——Rodin平台使用及Event-B语言

目录Rodin基本操作Event-B表示法最近在做一些Event-B建模的事情,而Rodin平台使用的方法的中文说明实在太少,在各个模型建模时候,更想写一些建模的思路与需求文档分析方法,这里就总结一下Rodin平台的使用方法以及Event-B的语法结构Rodin基本操作Rodin基于Eclipse开发,所以基本操作和Eclipse差不多新建工程填写项目名称新建Event-B组件组件类型有Context(上下文)和Machine(机器),组件名字随便起,不过后面会有精化操作,可以从0开始

2021-03-18 17:57:52 4685 3

原创 Event-B建模(三)——控制桥上汽车,初始模型

目录需求文档分析新建工程状态的形式化事件的形式化安装完了Rodin,现在让我们开始动手验证吧~以一个控制软件为例,开启我们整个Event-B分析建模验证的过程需求文档现在有这么一座岛屿Island,有一座桥(Bridge)连通着大陆(Mainland)与这座小岛,而我们的系统主要功能是实现对桥上汽车的控制。在这里我们的需求文档有两类需求,一些需求与控制器的功能有关,我们标记为FUN(Function的缩写),另一些与环境有关,标记为ENV(Environment的缩写)。(和软件功能直接相关的

2021-03-10 15:08:06 4334 21

原创 霍尔逻辑Hoare Logic

目录霍尔逻辑的概念部分正确与完全正确霍尔逻辑的概念对于这个新概念,我们首先要知道什么是霍尔逻辑,霍尔逻辑能用来做些什么?摘抄一下百度百科的原句:霍尔逻辑(英语:Hoare Logic),又称弗洛伊德-霍尔逻辑(Floyd–Hoare logic),是英国计算机科学家东尼·霍尔开发的形式系统,这个系统的用途是为了使用严格的数理逻辑推理来替计算机程序的正确性提供一组逻辑规则。简要来说霍尔逻辑是一种用于验证程序正确性的逻辑规则。霍尔逻辑表示为一个三元组,可以称之为“Hoare Triples”,它表

2021-03-03 20:29:58 4950 6

原创 python进阶学习(五)上下文管理器和with语句

上下文管理

2021-03-01 19:47:24 225

原创 拼拼凑凑的pytorch学习——实现mini-batch梯度下降,随机梯度下降

目录mini-batch梯度下降随机梯度下降在上一篇(拼拼凑凑的pytorch学习——神经网络训练)中我们说到过,pytorch中SGD优化器会使用全部传入的数据来计算梯度,所以如果传入了所有数据,那么就是相当于批量梯度下降,那么如果实现mini-batch梯度下降以及随机梯度下降呢?可以从数据供给的角度去考虑。这里仍旧使用上一篇中的例子mini-batch梯度下降mini-batch梯度下降,就是将数据分为多个批次,每次投入一批数据进行训练,所有的数据全部训练过一遍后为一个epochpytor

2021-02-27 21:58:40 2107 1

原创 拼拼凑凑的pytorch学习——神经网络训练

目录前置准备准备训练数据网络结构构建方式初始化网络层信息构建前向传播计算过程选择损失函数选择优化器开始训练前置准备有python环境,安装好pytorch因为纯粹是为了演示训练过程,具体训练的内容并不是很重要,所以干脆来个简单点的,也好清楚地展示下面将训练一个玩具神经网络,判断一个向量(x,y)位于第几象限,数据随机生成,网络结构只使用前向神经网络准备训练数据先写一个向量类# 向量类class Vector: def __init__(self, x, y): s

2021-02-27 18:46:00 557 1

原创 python进阶学习(四)装饰器与闭包

装饰器与闭包

2021-02-27 15:31:40 157 1

原创 python进阶学习(三)函数

目录被视作对象的函数高阶函数匿名函数函数式编程相关模块可调用类型处理参数捕获不定参数仅限关键字参数函数注解被视作对象的函数在python中函数是一等对象,“一等对象”的定义是满足下述条件的程序实体:在运行时创建能赋值给变量或数据结构中的元素能作为参数传给函数能作为函数的的返回结果python中的函数完全符合上面的条件,如果打印函数的类型会发现,python的函数都是function类的实例def sum(a,b): return a+bprint(type(sum)) #

2021-02-03 21:38:59 160

原创 python进阶学习(二)数据结构--字典和集合

目录字典有序字典OrderedDict带有默认值的字典DefaultDictCounterUserDict集合字典有序字典OrderedDictpython中字典是无序的,所以使用内置字段的popitem()函数的时候,会随机删除一个元素并且将其返回,但是有的时候我们需要让字典保持一定的顺序,于是我们就可以使用OrderedDict这个类OrderedDict会按照插入的时间进行排序,而它的popitem方法默认删除并返回的是字典中的最后一个元素In [11]:

2021-02-02 20:56:43 214 1

原创 Event-B建模(二)——Rodin安装,插件安装

目录步骤1:下载步骤2:安装和运行步骤3:插件安装步骤1:下载可以去wiki找到下载的地址https://wiki.event-b.org/index.php/Main_PageRodin提供了windows,mac,linux的版本,选择对应版本将压缩包下载到电脑上步骤2:安装和运行将压缩包解压到合适的位置,然后打开rodin.exe,即可运行rodin因为是基于eclipse平台开发的IDE,所以操作起来和eclipse差不多我们打开个项目看看左边是项目树结构,中间是编写代码的

2021-01-31 22:43:52 4496 4

原创 Event-B建模(一)——概念与基础

目录Event-B是什么?Event-B形式化验证过程Event-B的辅助工具Event-B的特点前置知识形式化是什么?参考资料Event-B是什么?Event-B是一种用于系统级别的建模和分析的形式化方法Event-B形式化验证过程首先根据系统的需求文档(requirements document),使用event-b建模语言将系统建模为一个抽象离散模型(model),在模型中也刻画了对应组件需要满足的性质,因为在模型状态变化过程中,模型的某些组件可能无法满足全局的性质,这时候会产生一些需要证明

2021-01-30 21:51:53 2805

原创 写给学生看的系统分析与验证笔记(十九)—CTL+与CTL*

目录CTL*CTL*的等价性CTL*模型检测带有公平性约束的CTL*模型检测模型检测时间复杂度CTL+前面呢已经介绍过了CTL,当然我们也知道了CTL也有其扩展,例如CTL*什么的,所以这节简单地介绍一样有关CTL的扩展。当然因为已经超过了课堂的东西,所以比较简洁,主要目的是为了知道有这么一个东西。CTL*CTL*是一种比CTL+LTL表达能力更强的逻辑语言CTL*在状态上的公式Φ::= true | a | Φ1∧Φ2 | 

2021-01-22 16:11:36 1473

原创 写给学生看的系统分析与验证笔记(十八)—CTL与公平性

目录回顾CTL公平性约束CTL公平性假设的语义回顾稍微回顾一下LTL与公平性相关的知识我们知道,在LTL上的公平性约束可以表示为设ϕ\phiϕ和ψ\psiψ是命题公式:无条件的公平性:□◊ψ\Box\Diamond\psi□◊ψ强公平性:□◊ϕ→□◊ψ\Box\Diamond\phi\rightarrow\Box\Diamond\psi□◊ϕ→□◊ψ弱公平性:◊□ϕ→□◊ψ\Diamond\Box\phi\rightarrow\Box\Diamond\psi◊□ϕ→□◊ψ并且,在LTL

2020-12-19 15:46:42 1039 1

原创 写给学生看的系统分析与验证笔记(十七)—LTL VS CTL

目录LTL和CTL的等价LTL和CTL各自能表达的部分模型检测的复杂度LTL和CTL的等价由之前的一张图我们看到,CTL和LTL有部分的表达是有交集的,这部分既可以用LTL表达,又可以用CTL表达,那么如何形式化地定义等价这个概念呢?如果一个LTL公式φφφ和一个CTL公式Φ\PhiΦ是等价的(记为φ≡Φφ\equiv\Phiφ≡Φ),那么当且仅当,对于AP上的TS来说TS⊨φ⇔TS⊨ΦTS\vDash φ\Leftrightarrow TS\vDash\PhiTS⊨φ⇔TS⊨Φ例如有这些

2020-12-15 20:51:43 1920

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除