状态机高阶讲解-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…

002 Object类

一. Object类介绍 java.lang.Object类是所有类的父类&#xff0c;每个类都使用 Object 作为超类。所有对象&#xff08;包括数组&#xff09;都实现这个类的方法。在不明确给出超类的情况下&#xff0c;Java会自动把Object作为要定义类的超类。可以使用类型为Object的变量指向任…

boost.asio使用简介

文章目录 前言一、计时器使用1. 创建计时器&#xff0c;阻塞等待2. 创建计时器&#xff0c;非阻塞等待3. 周期性计时器4.将3写入类封装5.多线程程序的同步完成事件处理函数 二、Sockets简介1.同步TCP客户端2.同步TCP服务端3.异步TCP服务端4 同步UDP客户端5 同步UDP服务端6 异步…

Ps下载安装免费(专业图像处理软件Ps安装包下载2024【Windows版】)

Adobe全家桶下载方式 将持续更新~ 文章目录 Adobe全家桶下载方式Ps下载方式【点我获取下载链接】我们的网站一、Ps简介声明 Ps下载方式【点我获取下载链接】 迅雷网盘下载&#xff1a;迅雷网盘下载方式百度网盘下载&#xff1a;百度网盘下载方式夸克网盘下载&#xff1a;夸克…

flume系列之:为flume agent组增加新的节点,提高flume agent组消费能力

flume系列之:为flume agent组增加新的节点,提高flume agent组消费能力 一、拷贝服务的systemctl文件二、拷贝jmx导出程序三、拷贝jmx导出数据格式配置文件四、拷贝flume agent配置五、启动flume agent和jmx服务一、拷贝服务的systemctl文件 flume agent服务flume agent jmx服…

登录凭证------

为什么需要登录凭证&#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;…

WPF自定义快捷命令

1、创建一个类 public class CustomCommandTest {private static RoutedUICommand customCommand;public static RoutedUICommand CustomCommand{get { return customCommand; }}static CustomCommandTest(){InputGestureCollection inputGestureCollection new InputGesture…

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;…

JSON查询(ccf 201709-3)解题思路

问题描述   JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式&#xff0c;可以用来描述半结构化的数据。JSON 格式中的基本单元是值 (value)&#xff0c;出于简化的目的本题只涉及 2 种类型的值&#xff1a;   * 字符串 (string)&#xff1a;字符串是由双引号…

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

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