面向对象设计之三 类的状态空间和行为

人工智能专栏第十讲——马尔可夫决策过程 马尔可夫决策过程的状态转移差异性是指状态转移概率在系统中具有某些特殊的性质,例如系统的状态只依赖于当前状态和执行的动作,而不与历史状态相关。它包括状态空间、动作空间、状态转移概率、奖励函数以及折扣因子等重要部分,通过这些基本概念的使用和推导,我们可以得到最优的决策策略。与状态空间不同的是,动作空间是由系统自身的一些限制和决策者的意愿共同决定的。奖励函数的设置不仅影响系统的学习效率,也影响系统最终的决策。因此,状态空间可以看作是系统的“现在”和“未来”,经历不同状态会导致不同的动作和收益,影响最终决策结果。 阅读详情

类的状态空间和行为


1 类的状态空间与行为


       一个类表示一种共同的抽象性,这种抽象性是属于这个类的所有个体对象的共有属性。上面这个类的说明十分常见,但这句话的真正意义是什么呢?


       抽象性含义是指我们在软件对象中不必考虑到真实世界中事物所表现出来的每一种可能特性。共有的含义是指我们选取一个类的抽象性之后,可以将这种抽象性应用于这个类的每个对象。属性简单的含义是指:类的状态空间和行为。


         一个类C的状态空间指属于类C的任何对象的允许状态的全部集合。一个类状态空间的维数概略地等于这个类中定义的属性数目。用概略地是因为部分属性是从其它状态空间维的属性中深化而来的。例如一个平面point类,其具有2维状态空间,而所有状态为平面中所有的点的集合。


2 派生类的状态空间


        如果B是A的一个派生类,那么B在A的维度上的状态空间必须完全包含于A的状态空间中。然而B的状态空间的维度至少等于A的维度,如果B包含更多的维度,我们就说B的状态空间是从A的状态空间扩展而来。


         违反状态空间规定限制会造成一个不合法的整合:即无话一个对象是其自己类的合法实例,但却不是其基类的合法实例。


3 派生类的行为

         一个类C的允许行为是指所有允许类C的一个对象在C的状态空间范围内改变状态。这个定义暗示:对于一个对象而言,并非所有可能的转换都是合法的。


4 类的不变式


          对于某些类,其状态空间是完整的,也就是说一个对象可以占据状态空间坐标的任意位置。然而,很多类却不允许它们的对象毫无约束。例如一个三角形的类。可以这么认为,一个类的合理的状态空间是通过其类不变式来约束的。

          一个类的不变式是指一种状态,即在任何时候此类的所有处于平衡状态的对象都满足的条件。

         不变式具有继承性,一个给定的类必须服从其基类的不变式。

         例如对于三角形基类,其类的不变式是:1 a+b>c and b+c>a and c+a>b

         等腰三角形的派生类,其类的不变式需要包括式1及a=b or b=c or a=c

         直角三角形的派生类,其类的不变式需要包括式1及a*a+b*b=c*c or …

         等腰直角三角形若从等腰及直角三角形多重继承下来,则需要同时满足三个不变式。 


5 前置条件和后置条件


        类的每一个操作运算都有一个前置条件和后置条件。这两种条件在一起形成了处于操作运算和此操作运算的客户之间的合约。


        前置条件:即当此操作运算开始执行之前此条件必须是正确的。如果此条件不成立,则该操作运算就可能拒绝执行、并可能产生一些异常情况。


        后置条件:即当操作运算执行结束时此条件必须是正确的。如果此条件是不正确的,则操作运算的执行是不完全的,并且一定是经过调整的。
强化学习p1-基本概念 每个时刻,环境有一个,可以理解为对当前时刻环境的概括有时也被称为,因为有时智能体并不能观测到环境改变后的全部,只能观测到部分。是与智能体进行交互的对象,可以抽象地理解为交互过程中的规则或机制。是智能体基于当前状态所做出的决策。强化学习的主体被称为。通俗地说,由谁做动作或决策,谁就是智能体。是指所有可能存在状态的集合,记作花体字母 S。状态空间可以是离散的,也可以是连续的。状态空间可以是有限集合,也可以是无限可数集合。是指所有可能动作的集合,记作花体字母 A。 阅读详情

相关推荐

python模拟银行交易流水

模拟自动生成银行交易流水,其中包括:入账账号、出账账号、交易金额、交易余额、交易时间、出入表示关键字段

qq_31823889的博客 2910

什么是类的状态/对象的状态?

鶸的博客 1087

Meta DINOv3实战指南:如何用7B参数ViT模型提升你的视觉任务性能(附Hugging Face部署教程)

本文提供了Meta DINOv3 7B参数ViT模型的实战部署指南。文章详细解析了该自监督视觉模型的优势,并重点演示了如何在Hugging Face平台上高效加载这一大规模模型,同时给出了图像分类、语义分割等下游任务的性能提升技巧与代码示例,帮助开发者在实际视觉任务中应用这一前沿技术。

pz89012345的博客 324

gym库的基本使用方法

gym库的基本使用方法

CSU干饭人的博客 4309

深入解析ADC采样电容:从充电误差到LSB精度的关键设计

本文深入解析了ADC采样电容在模数转换中的核心作用,重点探讨了充电时间常数与采样误差的博弈关系。通过推导最小采样时间公式,揭示了精度、速度、源阻抗与内部电容之间的制约关系,并提供了从理论计算到外部驱动电路设计的实战指南,是确保ADC达到LSB精度的关键。

android的专栏 1103

细聊Oracle通过ODBC数据源连接SQL Server数据库

    类似文章搜索引擎上有很多,内容大致相同,今天所谓细聊是因为我在借鉴这些文章时候走了些弯路,所以写此文,为自己备忘,同时如果能为初涉此处知识点的小伙伴提供些帮助就更好了,废话不多说。    我的应用场景:    项目系统使用oracle数据库,与客户的第三方系统供应商实现资源共享,对方为sql server数据库;    我的测试开发环境为64bitwin7PC机,本机上装有64位Oracl...

xueren_83的博客 1万+

java知识2 类和对象【多测师】

JAVA面向对象语言、支持以下的概念: 多态 继承 封装 抽象 类 对象 实例 方法 重载 对象:对象是类的一个实例、有状态和行为 例如:莉斌是一个对象 她的状态有:名字、中国人、黄种人 行为有:吃、喝、睡、说话 类:类是一个模板、而具体的每个人都为该类的对象 JAVA中的类: 局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,...

多测师_王sir的博客 224

FPGA:将FIFO封装成AXI接口的IP

封装AXI_stream的接口IP核

m0_46830519的博客 4214

python 类的介绍

关于类的基本认识 术语解释,均来自维基百科。 1、问题空间 问题空间是问题解决者对一个问题所达到的全部认识状态,它是由问题解决者利用问题所包含的信息和已贮存的信息主动地构成的。 一个问题一般有下面三个方面来定义: 初始状态——一开始时的不完全的信息或令人不满意的状况; 目标状态——你希望获得的信息或状态; 操作——为了从初始状态迈向目标状态,你可能采取的步骤。 这三个部分加在一起定义了问题...

hiekay的博客 664

C#使用OpenCvSharp+微信模型识别多个二维码

本文介绍了一个基于OpenCvSharp和微信开源二维码检测器的多二维码识别项目。该项目通过C# WinForm实现,主要功能包括:加载图片、识别图片中的多个二维码并显示识别结果。核心代码使用了OpenCvSharp.WeChatQRCode类,通过预训练的caffe模型(detect.prototxt/detect.caffemodel和sr.prototxt/sr.caffemodel)进行二维码检测和解码。识别结果包括每个二维码的编号、内容及位置信息。项目适用于批量二维码识别场景,部署简单,识别效果良

遇见--专栏 123

Arduino、ESP32驱动AS3935数字闪电传感器(闪电传感器)

闪电传感器采用AMS独具创新的AS3935数字闪电传感芯片与Coilcraft的MA5532-AE专用天线,可在室内或室外,安全地检测方圆40km范围内发生闪电的距离,闪电相对强度与统计闪电发生次数。

不脱发的程序猿 2009

python开发笔记-类

类的基本概念: 问题空间:问题空间是问题解决者对一个问题所达到的全部认识状态,它是由问题解决者利用问题所包含的信息和已贮存的信息主动的地构成的。      初始状态:一开始时的不完全的信息或令人不满意的状况;      目标状态:你希望获得的信息或状态;      操作:为了从初始状态迈向目标状态,你可能采取的步骤。 对象:对象(obje...

112

【JTAG】1149.6协议详解

JTAG1149.6协议是1149.1协议中Boundary-Scan结构的扩展,1149.1对交流耦合、差分或两者兼有的情况并没有得到充分的处理。该协议支持新的I/O测试结构。需要时变(AC)信号的高级I/O引脚允许测试它们之间的连接,这包括所有差分信号引脚或单端信号引脚,通过设计支持交流耦合。..................

xuhe0206的博客 4573

JAVA类和对象(1)

1.定义一个类,就相当于在计算机里面定义了一种新类型如int、double等,而int和double是 java中自带的类型,而类是用户自己定义的如上述的Cat和下列Student,有这些类后,就可 以使用这些类来定义实例(或者称为对象)。4.this是"成员方法"第一个隐藏的参数,编译器会自动传递,在成员方法执行时,编译器会负责 将调用成员方法对象的引用传递给该成员方法,this负责接收。boolean赋为false.

weixin_74490674的博客 120

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Java编程思想之读书笔记系列一 --- 初章

因为快要找工作了,所以开始看《Java编程思想》这本经典书籍。看的过程中记录了一些笔记,这几天突然想着可以分享到网上,以博客的形式进行记录,同时与广大程序猿一起讨论(哈哈,也不一定会有人看就是啦)。这样如果理解有误,也有人可以帮忙及时指出。下面是第一章的笔记。解空间和问题空间的映射解空间 --> 机器模型,对问题进行建模的地方,例如计算机问题空间 --> 实际待解决问题的模型,问题...

LY猿的博客 292

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

类之间的关联关系是面向对象设计的核心要素之一,深刻影响系统的结构、行为和质量,以下从多个维度解析其关键影响

- **案例**:`DentalStaff`(医护人员)打印治疗项目报表时,可能临时调用 `ReportTool`(报表工具类 )生成 PDF,`DentalStaff` 不长期持有 `ReportTool` ,仅在打印行为中依赖,即 `DentalStaff` 依赖 `ReportTool` 完成特定操作。

[Blog][Domain] programb.blog.youkuaiyun.com 849

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【C++】深入理解类与对象:面向对象编程的核心

深入理解类与对象:面向对象编程的核心

Yui_的博客 1466

Java面向对象类程序设计

Java面向对象程序设计概念,对象的状态和行为,构造方法和封装

weixin_63289399的博客 422

面向对象分析与设计(三、四)

面向对象分析与设计(三、四)三、类与对象3.1.1什么是对象?什么不是对象3.1.2状态3.1.3行为四、分类 三、类与对象 3.1.1什么是对象?什么不是对象 对象:一个可以触摸或可以看见的东西、在智力上可以理解的东西、可以指导思考或行动的东西 一个对象具有状态,能展示某种定义良好的行为,且具有唯一的标识符。 一个对象是一个具有状态、行为和标识符的实体。结构和行为类似的对象定义在他们共同的类中。...

不平凡之路 737

【C++】面向对象的思想和类的认识

文章目录(一)面向对象的思想(二)类的认识(三)类的设计(四)C++对象模型(五)总结 (一)面向对象的思想 (二)类的认识 类是一组相关的属性(变量)和行为(方法)的集合。是一个抽象概念设计的产物; 对象是该类事物的具体表现形式。现实世界存在对应的实体; 成员变量是对象的属性(变量、指针、数组等),属性的值确定对象的状态; 成员函数是对象的方法,确定对象的行为; 变量的值确定了对象的状态; 通过对象的方法可以改变对象的状态; (三)类的设计 在C++中类是一种数据类型; class 类名 //

xiaoxiaoguailou的博客 647

【面向对象的程序设计——类与对象】面向对象方法的特性、类的声明与对象的创建

基于已有的类产生新类的行为,其中新类叫子类,已有类叫父类。指在一个程序中相同的名字有不同含义的情况,父类及其不同子类的对象可以响应同名的消息,具体的实现方法却不同,当出现子类和父类相同名字的情况时,子类将覆盖父类的信息。类是Java程序的基本元素,刚刚提到的抽象的结果就是一个个类,是一类对象的集中描述,它封装了一类对象的状态和方法(就是将一堆变量和函数进行封装)汽车对象:就是指特定的一辆汽车,比如小博同学的小米SU7max,对应的刚刚的轮子(属性)都有自己的值,比如我的梅花轮毂,我的智能驾驶仓。

m0_74050974的博客 777

java一切皆是对象,类和对象,面向对象编程

类和对象基础笔记面向对象的程序设计思想类和对象的不同构造方法无参构造方法有参构造方法构造块静态构造块实例构造块构造方法与构造块的关系初始化基本数据类型变量和引用类型变量的区别 面向对象的程序设计思想 就是要使用对象进行程序设计,对象有自己独特的特性、状态和行为。 对象的状态 由具有当前值的数据域,又称为属性,的集合构成。 状态定义对象是什么 对象的行为 由方法的集合定义的。 行为定义对象做什...

今天可爱了吗ik的博客 607

【JavaSE】类和对象

对类和对象进行简单的介绍,其中包括面向对象的编程思想,类和对象的基本内容,成员变量和成员方法的介绍以及对这些内容的内存解析等等。

weixin_73060900的博客 1500

面向对象编程入门:掌握C++类的基础(1/3)

类的定义是面向对象编程(OOP)的核心。在C++等面向对象的编程语言中,类不仅仅是数据和方法的集合,它还定义了一种新的数据类型。理解类的定义对于掌握面向对象编程至关重要。在C++中,定义一个类涉及到指定类的名称、成员变量(属性)以及成员函数(方法这些成员变量和成员函数描述了该类的对象的状态和行为。public: // 公有访问修饰符// 构造函数// 初始化代码// 公有成员函数// 函数实现private: // 私有访问修饰符// 私有成员变量类的两种定义方式:1.

2301_77754590的博客 1743
上一篇: 面向对象设计之二 类的领域、依赖度与内聚类型
下一篇: 面向对象设计之四 类型一致性和闭合行为原则
zzulp
博客等级 码龄19年 464粉丝 176原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值