状态机高阶讲解-02

261
00:11:22,483 --> 00:11:25,260
或依赖于这个,在这里表达

262
00:11:26,780 --> 00:11:30,000
Moore是说什么,在这里表达

263
00:11:30,280 --> 00:11:30,523


264
00:11:30,523 --> 00:11:33,443
在状态里表达,状态的什么

265
00:11:33,443 --> 00:11:34,660
入口

266
00:11:34,940 --> 00:11:37,450
出口,这个地方表达

267
00:11:37,880 --> 00:11:40,340
这边有

268
00:11:40,620 --> 00:11:42,510
输出

269
00:11:43,360 --> 00:11:44,382
效果

270
00:11:44,382 --> 00:11:45,150
在这里

271
00:11:45,610 --> 00:11:48,270
在状态里面表达

272
00:11:50,650 --> 00:11:52,900
当然这两个你也可以把它

273
00:11:53,280 --> 00:11:54,240
互相换

274
00:11:54,240 --> 00:11:57,313
无非是把这个东西换一个地方

275
00:11:57,313 --> 00:11:57,890
对不对

276
00:12:00,110 --> 00:12:02,360
简单的基本上都能够换过来

277
00:12:06,720 --> 00:12:07,890
这是

278
00:12:08,770 --> 00:12:10,447
发展的历史

279
00:12:10,447 --> 00:12:11,790
那后来的

280
00:12:12,590 --> 00:12:14,410
下一步就是

281
00:12:18,090 --> 00:12:18,990
这个

282
00:12:19,930 --> 00:12:20,646
David

283
00:12:20,646 --> 00:12:21,720
Harel

284
00:12:21,720 --> 00:12:25,168


285
00:12:25,168 --> 00:12:25,567
这个教授,写的这个文章

286
00:12:25,567 --> 00:12:31,490
状态图,Statechart这个文章

287
00:12:35,160 --> 00:12:37,580
实际上就是把前面的

288
00:12:37,990 --> 00:12:38,850

289
00:12:40,750 --> 00:12:42,350
提供的各种元素

290
00:12:42,350 --> 00:12:44,180
包括刚才Moore

291
00:12:44,480 --> 00:12:45,495
Mealy

292
00:12:45,495 --> 00:12:46,510
这些

293
00:12:46,910 --> 00:12:48,375
都包含进来

294
00:12:48,375 --> 00:12:50,330
把它都放进来

295
00:12:50,820 --> 00:12:51,890
而且呢

296
00:12:52,900 --> 00:12:55,180
把状态机分了层

297
00:12:55,960 --> 00:12:56,292


298
00:12:56,292 --> 00:12:57,952
提供了分层

299
00:12:57,952 --> 00:12:59,280
还有分区

300
00:12:59,900 --> 00:13:00,205


301
00:13:00,205 --> 00:13:02,953
分成正交的若干个区

302
00:13:02,953 --> 00:13:04,480
然后呢,分层

303
00:13:04,850 --> 00:13:07,096
实际上就是区和区之间

304
00:13:07,096 --> 00:13:09,093
就相当于可以and嘛

305
00:13:09,093 --> 00:13:09,592
对吧

306
00:13:09,592 --> 00:13:11,090
这边可以

307
00:13:12,940 --> 00:13:14,437
可以同时并存的

308
00:13:14,437 --> 00:13:15,935
而这边只能是或

309
00:13:15,935 --> 00:13:16,363
对吧

310
00:13:16,363 --> 00:13:18,288
一个状态内

311
00:13:18,288 --> 00:13:20,000
这个只能是或

312
00:13:23,220 --> 00:13:25,385
同时还有入口出口活动

313
00:13:25,385 --> 00:13:27,550
这个也放进来了

314
00:13:30,110 --> 00:13:32,830
那这个就是目前我们UML

315
00:13:35,100 --> 00:13:36,630
或者SysML

316
00:13:37,300 --> 00:13:39,930
所使用的这个状态机的

317
00:13:42,570 --> 00:13:43,562
雏形

318
00:13:43,562 --> 00:13:46,210
就是在这个

319
00:13:46,490 --> 00:13:47,390
基础上

320
00:13:48,580 --> 00:13:51,940
来制定了现在UML、SysML的规范

321
00:13:59,090 --> 00:14:03,474
那UML的状态机的元模型是这样的

322
00:14:03,474 --> 00:14:04,790
这2.5.1的

323
00:14:05,870 --> 00:14:10,071
2.5.1这个状态机的元模型

324
00:14:10,071 --> 00:14:12,639
你看,状态机分了几个区

325
00:14:12,639 --> 00:14:14,040
这是区嘛

326
00:14:14,350 --> 00:14:15,504
分区嘛,对吧

327
00:14:15,504 --> 00:14:17,352
然后里面有状态

328
00:14:17,352 --> 00:14:19,200
然后这个迁移,对吧

329
00:14:21,490 --> 00:14:23,410
状态,迁移

330
00:14:23,910 --> 00:14:25,070
类似这样的

331
00:14:29,590 --> 00:14:31,945
相当于把它给形式化

332
00:14:31,945 --> 00:14:34,300
因为Harel这个

333
00:14:34,580 --> 00:14:37,220
文章里面,他只提供了图形

334
00:14:37,640 --> 00:14:41,100
他并没有提供形式化的表示法

335
00:14:42,640 --> 00:14:44,850
也没有提供元模型

336
00:14:45,970 --> 00:14:48,350
UML提供元模型

337
00:14:51,900 --> 00:14:53,610
那现在也有一些

338
00:14:57,160 --> 00:14:58,960
文本的

339
00:15:00,650 --> 00:15:03,740
用文本来表达模型的

340
00:15:04,650 --> 00:15:04,890


341
00:15:04,890 --> 00:15:06,576
一些标准

342
00:15:06,576 --> 00:15:10,190
比如说,一会会讲W3C这个

343
00:15:10,690 --> 00:15:14,171
SCXML,Statechart XML 

344
00:15:14,171 --> 00:15:18,520
状态图XML,等等

345
00:15:22,110 --> 00:15:23,900
那么在UML

346
00:15:28,500 --> 00:15:30,590
这个标准里面

347
00:15:31,690 --> 00:15:33,610
它分为两种

348
00:15:33,610 --> 00:15:35,530
一个叫行为状态机

349
00:15:35,530 --> 00:15:37,450
一个叫协议状态机

350
00:15:37,450 --> 00:15:37,930
那实际上

351
00:15:38,760 --> 00:15:41,280
我们平时说的状态机就是指的

352
00:15:41,280 --> 00:15:42,720
行为状态机,行为是什么

353
00:15:42,720 --> 00:15:43,080
就是

354
00:15:43,360 --> 00:15:45,190
刚才讲这个输出嘛

355
00:15:47,510 --> 00:15:47,785


356
00:15:47,785 --> 00:15:49,160
或者效果

357
00:15:50,010 --> 00:15:51,870
那协议状态机是什么

358
00:15:51,870 --> 00:15:52,490
就是把

359
00:15:52,770 --> 00:15:55,719
那个行为部分砍掉,没有输出

360
00:15:55,719 --> 00:15:57,307
输出就是action

361
00:15:57,307 --> 00:15:57,761
对吧

362
00:15:57,761 --> 00:16:00,030
就是刚才讲的那个action

363
00:16:04,910 --> 00:16:06,808
action可能发生在哪里

364
00:16:06,808 --> 00:16:07,520
发生在

365
00:16:08,470 --> 00:16:11,690
这个地方,也可能发生在这个状态的入口

366
00:16:11,970 --> 00:16:14,075
进入,在状态里面发生

367
00:16:14,075 --> 00:16:16,648
也可能在迁移的时候发生

368
00:16:16,648 --> 00:16:16,882


369
00:16:16,882 --> 00:16:19,690
那现在这个协议状态机就把

370
00:16:20,620 --> 00:16:22,205
这个就砍掉了

371
00:16:22,205 --> 00:16:23,337
就保留协议

372
00:16:23,337 --> 00:16:24,470
就保留那个

373
00:16:24,750 --> 00:16:26,030
输入的部分

374
00:16:26,360 --> 00:16:30,570
就相当于定义了一些可以接受的输入

375
00:16:32,290 --> 00:16:33,820
但是的话我们

376
00:16:35,260 --> 00:16:36,160
这个

377
00:16:37,010 --> 00:16:38,400
协议状态机

378
00:16:39,320 --> 00:16:39,592


379
00:16:39,592 --> 00:16:43,130
我们在软件开发里面用得并不多

380
00:16:44,640 --> 00:16:47,311
我们说状态机指的就是行为状态机

381
00:16:47,311 --> 00:16:48,480
因为我们毕竟要

382
00:16:48,940 --> 00:16:50,350
把这个

383
00:16:50,870 --> 00:16:52,830
软件给运转起来嘛

384
00:16:52,830 --> 00:16:53,320
对吧

385
00:16:53,320 --> 00:16:53,565


386
00:16:53,565 --> 00:16:54,790
要有输出嘛

387
00:16:55,980 --> 00:16:58,206
所以呢,这个就不用管它了

388
00:16:58,206 --> 00:17:00,061
不用管它,UML标准

389
00:17:00,061 --> 00:17:02,473
你搜状态机,有两个状态机

390
00:17:02,473 --> 00:17:03,215
一个行为

391
00:17:03,215 --> 00:17:04,329
一个是协议

392
00:17:04,329 --> 00:17:06,370
这个协议就是行为的

393
00:17:06,740 --> 00:17:08,068
删减版

394
00:17:08,068 --> 00:17:09,840
你可以这样理解

395
00:17:10,560 --> 00:17:13,474
把输出部分给砍掉之后

396
00:17:13,474 --> 00:17:15,660
剩下的就是协议部分

397
00:17:17,810 --> 00:17:19,000
接下来呢

398
00:17:19,380 --> 00:17:21,860
我们首先来看

399
00:17:22,600 --> 00:17:25,040
学习状态机

400
00:17:25,660 --> 00:17:28,478
建模的这个技能的目的

401
00:17:28,478 --> 00:17:29,760
或者用途

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/735666.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python】新手入门:全局变量和局部变量的概念、区别以及用法

【Python】新手入门:全局变量和局部变量的概念、区别以及用法 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈…

ABC 344

ABC 344 ABC用python写代码会比较快 A 题可以积累简洁的写法&#xff1a; S input() a, b, c S.split(|) print(ac)#include<bits/stdc.h> using namespace std; int main(){string s;cin >> s;int x s.find("|"); // The first occurrence of | w…

登录凭证------

为什么需要登录凭证&#xff1f; web开发中&#xff0c;我们使用的协议http是无状态协议&#xff0c;http每次请求都是一个单独的请求&#xff0c;和之前的请求没有关系&#xff0c;服务器就不知道上一步你做了什么操作&#xff0c;我们需要一个办法证明我没登录过 制作登录凭…

有源电桥电路

有源电桥电路 有源电桥由A3运放的正向输入端与负向输入端电压相等且为零可知&#xff1a;G点&#xff08;待测阻抗Zx与被测阻抗Rs的连接点&#xff09;电平一直为零&#xff0c;也就是平衡点虚地点&#xff0c;Ux与Us也就变成参照虚地点的绝对相量电压。并且根据运放的虚断原理…

FFmpeg——开源的开源的跨平台音视频处理框架简介

引言&#xff1a; FFmpeg是一个开源的跨平台音视频处理框架&#xff0c;可以处理多种音视频格式。它由Fabrice Bellard于2000年创建&#xff0c;最初是一个只包括解码器的项目。后来&#xff0c;很多开发者参与其中&#xff0c;为FFmpeg增加了多种新的功能&#xff0c;例如编码…

U盘秒变“零字节”?数据恢复全攻略!

一、遭遇U盘“零字节”危机 在数字化时代的浪潮中&#xff0c;U盘凭借其便携性和大容量&#xff0c;早已成为我们工作和生活中不可或缺的数据存储工具。然而&#xff0c;有时我们可能会突然遭遇一个令人头疼的问题——U盘显示0字节。明明前一天还存满了重要的文件&#xff0c;…

Android视角看鸿蒙第四课(module.json中的各字段含义之descriptionmainElement)修改程序入口

Android视角看鸿蒙第三课(module.json中的各字段含义之description&mainElement) 前言 上编文章了解了module.json中的name和type两个字段的含义及变更字段需要注意的事项&#xff0c;也明白了如何去实现类似Android library的功能。 这篇文章继续了解module.json中的des…

指针总结及例题总结

1 定义 指针是用来存放地址的变量 不同类型的指针变量所占用的存储空间是相同的&#xff0c;sizeof(int)sizeof(char)sizeof(double)... *是解引用操作符&#xff0c;&是取地址操作符&#xff0c;两者有着抵消作用 int a20;int* p&a;*p*&a20; 2&#xff0c;…

【C++11】包装器和bind

文章目录 一. 为什么要有包装器&#xff1f;二. 什么是包装器&#xff1f;三. 包装器的使用四. bind 函数模板1. 为什么要有 bind &#xff1f;2. 什么是 bind ?3. bind 的使用场景 一. 为什么要有包装器&#xff1f; function 包装器&#xff0c;也叫作适配器。C 中的 funct…

Vue.js计算属性:实现数据驱动的利器

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

RESTful API学习

RESTful API REST&#xff08;英文&#xff1a;Representational State Transfer&#xff0c;简称REST&#xff0c;直译过来表现层状态转换&#xff09;是一种软件架构风格、设计风格&#xff0c;而不是标准&#xff0c;只是提供了一组设计原则和约束条件。它主要用于客户端和…

光伏数字化管理平台:驱动绿色能源革命的智能化引擎

随着全球对可再生能源需求的不断增长&#xff0c;光伏产业已经成为推动绿色能源革命的重要力量。在这个背景下&#xff0c;光伏数字化管理平台应运而生&#xff0c;以其强大的数据处理、实时监控和智能优化功能&#xff0c;为光伏电站的运营管理和维护带来了革命性的变革。 光伏…

储能系统--户用储能美洲市场(三)

2、美洲市场 2.1、美国户储发展驱动力 &#xff08;1&#xff09;电网老化带来配储需求&#xff0c;户用光储成家庭第二用电保障 美国大部分电网建于20世纪60和70年代&#xff0c;超70%以上的输电系统已经超过了25年&#xff0c;在高负荷运转或者外部环境承压时&#xff0c;…

深入理解Hive:探索不同的表类型及其应用场景

文章目录 1. 引言2. Hive表类型概览2.1 按照数据存储位置2.2 按照数据管理方式2.3 按照查询优化2.4 按照数据的临时性和持久性 3. 写在最后 1. 引言 在大数据时代&#xff0c;Hive作为一种数据仓库工具&#xff0c;为我们提供了强大的数据存储和查询能力。了解Hive的不同表类型…

【数学建模】层次分析

1.建立递阶层次结构模型 2.构造出各层次中的所有判断矩阵 对指标的重要性进行两两比较&#xff0c;构造判断矩阵&#xff0c;科学求出权重 矩阵中元素aij的意义是&#xff0c;第i个指标相对第j个指标的重要程度 对角线1&#xff0c;aijaji1 矛盾——>一致性检验

网络安全:OpenEuler 部署 jumpserver 堡垒机

目录 一、实验 1.环境 2.OpenEuler 部署 jumpserver 堡垒机 3.OpenEuler 使用 jumpserver 堡垒机&#xff08;管理Linux&#xff09; 4.OpenEuler 使用 jumpserver 堡垒机&#xff08;管理Windows&#xff09; 二、问题 1.jumpserver 安装报错 一、实验 1.环境 &#x…

【❤️算法笔记❤️】-每日一刷-21、合并两个有序链表

文章目录 题目思路解答 题目 简单 相关标签 相关企业 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4]示例 2&#xff1a; 输入…

【Linux】shell理解及linux权限解读(“花花公子Root”的自由人生)

目录 1.shell外壳理解 1.1 什么是shell外壳&#xff1a; 1.2 为什么存在shell外壳程序&#xff1a; 1.3外壳程序的具体工作阶段是怎么样的&#xff1f;&#xff08;招实习生&#xff0c;工作失败也不影响公司&#xff09; 2.linux下的权限的概念 2.1linux的用户 2.2.文件类型和…

“每一次的感应,都是对环境的温柔拥抱。”#STM32项目二 《感应开关盖垃圾桶》【下】

“每一次的感应&#xff0c;都是对环境的温柔拥抱。”#STM32项目二 《感应开关盖垃圾桶》【下】 前言预备知识1.实现距离感应开盖1.1换另一个定时器进行PWM输出驱动SG90舵机1.2延用超声波传感器介绍及实战工程进行配置PWM输出1.3在主C文件合适位置封装开关盖&#xff0c;开关LE…

Understanding Vulkan Objects

​ 和学习其他API一样&#xff0c;学习Vulkan API中有一个重要部分&#xff1a;了解Vulkan API定义了拿下类型&#xff0c;以及这些类型之间的关系。为了帮助理解这些类型&#xff0c;接下来会绘制一幅关系图&#xff0c;表现它们之间的关系&#xff0c;尤其是创建依赖关系。 …