ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2021-2022-1 20211427 《信息安全专业导论》第十周学习总结

2021-11-27 10:31:06  阅读:190  来源: 互联网

标签:transitions newState state 20211427 2021 2022 splitted model txt


2021-2022-1 20211427 《信息安全专业导论》第十周学习总结

作业信息

2020-2021-1信息安全专业导论|
2020-2021-1信息安全专业导论第十周作业
[学习目标] |信息系统
数据库与SQL
人工智能与专家系统
人工神经网络
模拟与离散事件
排队系统
天气与地震模型
图形图像|
作业正文

教材学习内容总结

信息系统是帮助组织和分析数据的软件。

数据库:结构化的数据集合。

SQL:结构化查询系统(Structured Query Language)是用于管理和查询数据的综合性关系数据库语言。

人工智能:研究对人类思维建模和应用人类智能的计算机系统的学科。

专家系统:基于人类专家的知识的软件系统。其使用一套规则来指导处理,因此又叫做基于规则的系统。专家系统的规则集合又叫做它的知识库。推理机是专家系统的一部分,决定了如何执行规则以及从而会得到什么结论。

人工神经网络:尝试模拟人体神经网络的计算机知识表示法。

模拟:设计复杂系统的模型并为观察结果而对改模型进行实验。
离散事件系统:指系统的状态在一些离散时间点上由于某种事件的驱动而发生变化。其数学模型很难用数学方程来表示。

离散事件模拟:由实体、属性和事件构成。实体表示真实系统中必须明确定义的对象,系统的特征或特性是对象。属性是一个特定实体的特征。事件是实体之间的相互作用。

排队系统:一种离散事件模型,它使用随机数表示事件的到达和持续。排队系统由服务器和等待服务的对象队列构成。

天气模型:一般来说,气象模型是以时间相关的流体力学和热力学的偏微分方程为基础的,这些方程的变量包括两个水平风速、垂直风速、气温、气压和水汽浓度。

计算生物学:一种通过计算机、应用数学以及统计学的知识解决生物学问题的交叉性学科。
地震模型:其能够预测地震波在地壳中的传播,地震波既可以来自自然事件,也可以来自人为事件。

计算机图形学是结合了计算机、科学和绘画艺术的领域,它依赖数学方程来模拟图像中要呈现的自然现象。计算机图形学把光的交互、对象的属性、对象的现状和物理属性结合在一起,以生成接近真实照片的图像。

教材学习中的问题和解决过程

问题1:什么是离散事件?

解决过程:计算机模拟离散事件模型的模拟编辑在离散事件模型中,系统的状态改变只出现在离散的时刻,称为离散事件

代码调试中的问题和解决过程

问题1:transitions开源库下载安装有问题

解决过程:在网上寻找教程解决。

[代码托管]

from statemachine import StateMachine

有限状态集合

positive_adjectives = ["great","super", "fun", "entertaining", "easy"]
negative_adjectives = ["boring", "difficult", "ugly", "bad"]

自定义状态转变函数

def start_transitions(txt):
# 过指定分隔符对字符串进行切片,默认为空格分割,参数num指定分割次数
# 将"Python is XXX"语句分割为"Python"和之后的"is XXX"
splitted_txt = txt.split(None, 1)
word, txt = splitted_txt if len(splitted_txt) > 1 else (txt,"")
if word == "Python":
newState = "Python_state" # 如果第一个词是Python则可转换到"Python状态"
else:
newState = "error_state" # 如果第一个词不是Python则进入终止状态
return (newState, txt) # 返回新状态和余下的语句txt

def python_state_transitions(txt):
splitted_txt = txt.split(None,1)
word, txt = splitted_txt if len(splitted_txt) > 1 else (txt,"")
if word == "is":
newState = "is_state"
else:
newState = "error_state"
return (newState, txt)

def is_state_transitions(txt):
splitted_txt = txt.split(None,1)
word, txt = splitted_txt if len(splitted_txt) > 1 else (txt,"")
if word == "not":
newState = "not_state"
elif word in positive_adjectives:
newState = "pos_state"
elif word in negative_adjectives:
newState = "neg_state"
else:
newState = "error_state"
return (newState, txt)

def not_state_transitions(txt):
splitted_txt = txt.split(None,1)
word, txt = splitted_txt if len(splitted_txt) > 1 else (txt,"")
if word in positive_adjectives:
newState = "neg_state"
elif word in negative_adjectives:
newState = "pos_state"
else:
newState = "error_state"
return (newState, txt)

if name== "main":
m = StateMachine()
m.add_state("Start", start_transitions) # 添加初始状态
m.add_state("Python_state", python_state_transitions)
m.add_state("is_state", is_state_transitions)
m.add_state("not_state", not_state_transitions)
m.add_state("neg_state", None, end_state=1) # 添加最终状态
m.add_state("pos_state", None, end_state=1)
m.add_state("error_state", None, end_state=1)

m.set_start("Start") # 设置开始状态
m.run("Python is great")
m.run("Python is not fun")
m.run("Perl is ugly")
m.run("Pythoniseasy")

from transitions import Machine
class Progress(object):
pass
model = Progress()
states = ['New', 'Ready', 'Waiting', 'Running', 'Terminated']
transitions=[
{'trigger': 'Admitted', 'source': 'New', 'dest': 'Ready'},
{'trigger': 'Input', 'source': 'Waiting', 'dest': 'Ready'},
{'trigger': 'Output', 'source': 'Waiting', 'dest': 'Ready'},
{'trigger': 'event_completion', 'source': 'Waiting', 'dest': 'Ready'},
{'trigger': 'event_wait', 'source': 'Running', 'dest': 'Waiting'},
{'trigger': 'Input', 'source': 'Running', 'dest': 'Waiting'},
{'trigger': 'Output', 'source': 'Running', 'dest': 'Waiting'},
{'trigger': 'Interrupt', 'source': 'Running', 'dest': 'Ready'},
{'trigger': 'Dispatch', 'source': 'Ready', 'dest': 'Running'},
{'trigger': 'Exit', 'source': 'Running', 'dest': 'Terminated'}]

machine=Machine(model=model,states=states,transitions=transitions,initial='New')

print(model.state)
model.Admitted()
print(model.state)
model.Dispatch()
print(model.state)
model.event_wait()
print(model.state)
model.Output()
print(model.state)
model.Dispatch()
print(model.state)
model.Exit()
print(model.state)

上周考试错题总结

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 50/50 1/1 8/8
第二周 60/110 3/4 9/17
第三周 80/190 1/5 8/25
第四周 160/350 1/6 9/34
第五周 450/800 1/7 13/47
第六周 700/1500 1/8 16/63
第七周 700/2200 3/11 16/79
第八周 800/3000 1/12 16/95
第九周 800/3800 1/13 16/111
第十周 800/4600 1/14 16/127
  • 计划学习时间:15小时

  • 实际学习时间:16小时

参考资料

标签:transitions,newState,state,20211427,2021,2022,splitted,model,txt
来源: https://www.cnblogs.com/matthamorpheus/p/15535541.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有