其他分享
首页 > 其他分享> > 2021-2022-1 20211427 《信息安全专业导论》第十周学习总结

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

作者:互联网

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

参考资料

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