首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【译】《Thinking in Promises》第三章:对承诺进行评估

从观察者的角度来看,只要代理看起来像是做出了承诺的行为就可以,是否真的做出了实际的承诺并无区别。观察者完全有权根据假设的承诺来假定行为模型。 科学就是这样讨论自然法则的。...同样,我们也可能通过其承诺从 20 个代理接收数据的能力来识别同一代理。无论哪种情况,该代理都是同种类型箭头的集中点。 图 3-1:任命产生的角色,指的是多个承诺指向某种特定代理。...我们可能谈论一个强有力的领导者,而不是单点代理;我们可能谈论弱共识,完全达成共识的一个团体。 观察者的视野 我曾经与某人就美的本质产生过分歧。从承诺理论的角度看,美存在于观察者的眼中。就这么简单。...我的对手提出了一个强加性的论点反对这一点,他说,在评判某物的价值时,我们不能忽视文化规范。 从承诺理论的角度来看,这很简单:每个自主代理确实可以抵抗拒绝的压力,以及同伴的压力。...迪斯科音乐 迪斯科音乐中,旋律角色通常由人声和合成器承担;鼓机和贝斯通常负责保持节奏的韵律;电子键盘和吉他可能提供装饰音和和声填充。

14110

观察者模式(浅谈监听器工作原理)

简述 从某种角度来说,我们总是处于两种生活状态:观察者与被观察者。当处于观察者状态时,被观察的对象会向我们发出某种信息,使我们产生某种心理活动或行为状态的改变。...当我们处于被观察者状态时,我们的行为活动又可以以信息的方式影响观察者。(大多数情况下是两种状态并存。)...作为一种面向对象的编程语言,java中的设计模式跟我们的生活模式十分相似,观察者模式也不例外。...} @Override public void removeWatcher(Watcher watcher) { al.remove(watcher);//从队列中删除观察者...原理图: ? 对于java中的观察者模式 java中的内置观察者模式有两个类:一个是observable被观察者类,一个是observer观察者接口。

1.3K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    黑客帝国量子版:量子力学揭示不存在客观现实,或能解释平行宇宙

    但是,最近发表在《科学进展》(Science Advances)上的一篇论文中,研究人员指出,在受量子力学的奇怪规则支配着的原子和粒子的微观世界中,两个不同的观察者都有权获得自己的事实。...但奇怪的是,只有在它们没有被观察到的情况下,情况才是如此。当你观察一个量子系统时,它会选择一个特定的位置或状态——打破了叠加。...事实上,自然界的这种行为已经在实验室中得到多次证明——例如,著名的双缝干涉实验(见下面的视频)。...从科学上将,直到最近这一实验几乎没有什么进展。但维也纳大学物理教授Časlav Brukner最近的研究表明,在一定的假设下,维格纳的思想可以用来正式证明量子力学中的测量是观察者主观的。 ?...在量子贝叶斯理论中,智能体的行为和经验是该理论的核心关注点。但也有人认为,这是一个强有力的指针,或许量子力学将打破某些复杂度规模。 显然,这些都是关于现实本质的哲学问题。

    72810

    【可解释AI重大突破】DeepMind 构建心智理论神经网络让机器互相理解

    我们的目标不是要提出一种智能体行为的生成模型和反转它的算法。相反,我们关注的是观察者如何自主学习使用有限的数据为其他agent建模。...我们构建了一个观察者(observer),它在每个episode中都可以看到agent的一组新的行为痕迹。观察者的目标是预测agent未来的行为。...在训练过程中,观察者应该从有限的数据中快速形成有关新agent的预测。这种关于新agent的“学习”就是我们所说的meta-learning。...通过这个过程,观察者还应该学习agent行为的有效先验,这些知识隐含地捕捉了训练群体中agent之间的共性。 我们引入两个概念来描述这个观察者网络的组成部分及其功能角色。...我们还表明,ToMnet可以仅从它们的行为推断出不同agent能够看到的内容,以及它们基于此倾向于相信的内容。 图1. ToMnet的架构 图2.随机智能体行为的网格世界示例 图3.

    96191

    图解“管道过滤器模式”应用实例:SOD框架的命令执行管道

    管道&过滤器模型的基本部件都有一套输入输出接口。每个部件从输入接口中读取数据,经过处理,将结果数据置于输出接口中,这样的部件称为“过滤器”。...从最终使用者的角度来说,一个查询有4个关注点: 查询前 查询中 查询后 查询异常  其中,查询中是ADO.NET等数据访问组件内部的处理过程,一般不能直接提供用户可以切入和干预的观察点,那么剩下3个关注点...} 一图胜千言,先看下面的“SOD框架命令处理管道”图: ?  ...由前面接口的定义并结合这个图,可以看到查询命令在“数据访问”这个管道里面流动过程: 首先,它在 OnExecuting 这个过滤插口位置改变命令的行为特征,比如SQL预处理,终止查询等,发起异步操作等;...“管道-过滤器”模式让架构实现松耦合;而观察者模式的观察者和被观察者之间,往往是紧密耦合的关系。

    2.4K90

    深度 | 让机器思考与互相理解:DeepMind提出机器心智理论神经网络ToMnet

    从这个角度,追求机器心智理论(ToM)是建造缺失的机器与人的期望之间的交互界面(Cohen et al., 1981)。...我们构建了一个观察者,它在每一个 episode 都能访问一组新型智能体的行为轨迹,观察者的目标是预测智能体未来的行为。在训练过程中,观察者应该从有限数据中快速形成新智能体的的预测。...这种新智能体的「学习如何学习」通常可以称为元学习。通过这个过程,观察者还应该学习智能体行为的有效先验知识,这些知识隐含地捕捉了训练空间中智能体间的共同点。...我们也展示了 ToMnet 能单独从行为中推断什么智能体具有观看的能力,以及因此它们倾向于相信什么。 ? 图 1. ToMnet 架构。...右边的三幅图根据每个亚种的示例智能体在 N_past = 5 past POMDPs 上的行为输出(示例智能体通常指粉色对象)。

    75570

    Java 中的观察者模式

    3,什么是观察者模式 观察者模式(又被称为发布-订阅(Publish/Subscribe)模式,属于行为型模式的一种,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。...这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己。 下面来认识下观察者模式的四个参与者: ? 图1 •Subject,用于注册观察者。...总结:看上面图1可以知道,观察者与主题之间是“你拥有我,我拥有你”的状态,因为他们之间互相引用。...就像建房子一样,得先搭好房屋的基本框架,然后再砌墙。此时的类图关系就是房屋的基本框架,然后我们根据这个类图去填充代码即可。 ?...图3 根据上面的测试结果图,可以看到观察者(订阅用户)可以实现订阅某个体育赛事,这样当解说员解说比赛比如有比分变化时,此时可以通过短信推送给观察者(订阅用户),而不用观察者主动去获取信息,观察者只是被动接收订阅赛况即可

    71010

    知识总结:设计模式总结(C++和Python实现)前言案例实现 创建型模式 结构型模式行为型模式对比总结

    虚拟代理:根据需要创建开销很大的对象,通过它存放实例化需很长时间的真实对象。HTML中的多图,就是通过虚拟代理代替了真实图片,存储路径和尺寸。...在维护一个大的遗留系统时,新的开发又必须依赖其部分功能。此时,开发一个外观Facade类,从老系统中抽象出比较清晰的简单接口。让新系统只与Facade交互,而Facade与遗留代码交互所有的工作。...若系统可以从多角度分类,且每种分类都可能变化,则把多角度分离独立出来,降低耦合。 享元模式(Flyweight) 享元模式:运用共享技术有效支持大量细粒度对象。...状态模式:一个对象可能拥有多种状态,当内在状态改变时允许改变行为。 状态模式的好处是将与特定状态有关的行为局部化,并将不同状态的行为分隔开。...具体观察者保存一个指向具体主题对象的引用,抽象主题保存一个抽象观察者的引用集合,提供一个可以添加或删除观察者的接口。

    1.4K80

    Rxjava源码解析笔记 | Rxjava基本用法

    Rxjava四要素 被观察者 在Rxjava当中, 决定什么时候触发事件, 决定触发什么样的事件; 观察者 决定事件触发的时候将产生什么样的行为; 类似于传统观察者模式, 观察者会随着被观察者的状态变化而发生相应的操作...:客户端从服务端获取到最新的数据时, 需要通知客户端本身相关模块进行更新(如UI变换显示等); 这其实便是一种响应式编程—— 客户端根据服务端的变化做出相应; 生活中的例子 天气冷了我们就要多穿件衣服...—— 在创建被观察者时,使用了调用了观察者方法的回调方法, 这其实就是一种事件的传递; 最后将这个OnSubscribe()赋给被观察者的创建方法create(); 如此便跟传统观察者模式联系起来了...Observable是用过链式调用来执行的; 为的是让后面的操作符、线程控制等能够跟流式OPI来完善, 而不是其他方式如观察者去订阅被观察者(非链式)—— 这样从意思上容易理解,但在API调用上很不方便...可是这里代码中, “奇怪”的是“被观察者(Observable)去订阅(subscribe)观察者(Observer)”, 这里就是上面说的, 为了后面能够通过流式OPI, 使进行操作符、线程控制等操作时能够通过链式调用来完善

    69220

    观察者模式(设计模式)

    网上这个概念说的太宽泛了,请看图: [图1]  还有一个图,也可以帮助大家理解 [图2] 首先,观察者是一种面向接口编程,包含的角色有: ● Subject(目标):目标又称为主题,它是指被观察的对象。...一共四个类,两个接口,两个接口实现类,被观察者方法参数引用的是观察者对象。 观察者只定义一个自己的行为。具体观察者重写观察者的行为后还提供了构造方法为客户端调用。...UML图 [图 3] 观察者模式代码 Subject(被观察者) public interface Subject { //添加观察者 void addObserver(Observer...(观察者) public interface Observer { //观察者有只有收信息的行为 void collect(String message); } 具体观察者 public...(3) 需要在系统中创建一个触发链,A对象的行为将影响B对象,B对象的行为将影响C对象……,可以使用观察者模式创建一种链式触发机制。 如有订阅性质的,发布性质的都可以使用观察者模式。

    59200

    【设计模式】689- TypeScript 设计模式之观察者模式

    UML 类图 UML 类图 图片来源:《TypeScript 设计模式之观察者模式》 3....三、使用场景 在以下情况下可以使用观察者模式: 在一个抽象模型中,一个对象的行为「依赖于」另一个对象的状态。...即当「目标对象」的状态发生改变时,会直接影响到「观察者」的行为; 一个对象需要通知其他对象发生反应,但不知道这些对象是谁; 需要在系统中创建一个触发链,A对象的行为将影响B对象,B对象的行为将影响C对象...是一种「对象行为型模式」。其定义了一种「对象间的一对多依赖关系」,当观察目标发生状态变化,会通知所有观察者对象,使它们自动更新。 在实际业务中,如果一个对象的行为「依赖于」另一个对象的状态。...或者说当「目标对象」的状态发生改变时,会直接影响到「观察者」的行为,尽量考虑到使用观察者模式来实现。 六、拓展 观察者模式和发布-订阅模式两者很像,但其实区别比较大。

    54341

    TypeScript 设计模式之观察者模式

    UML 类图 [UML 类图] 图片来源:《TypeScript 设计模式之观察者模式》  3....三、使用场景 在以下情况下可以使用观察者模式: 在一个抽象模型中,一个对象的行为依赖于另一个对象的状态。...即当目标对象的状态发生改变时,会直接影响到观察者的行为; 一个对象需要通知其他对象发生反应,但不知道这些对象是谁。...需要在系统中创建一个触发链,A对象的行为将影响B对象,B对象的行为将影响C对象……,可以使用观察者模式创建一种链式触发机制。 四、实战示例 1....是一种对象行为型模式。其定义了一种对象间的一对多依赖关系,当观察目标发生状态变化,会通知所有观察者对象,使它们自动更新。 在实际业务中,如果一个对象的行为依赖于另一个对象的状态。

    1.2K11

    Java面试考点2之语言特性与设计模式

    行为型:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。...观察者模式 观察者模式也被称作发布订阅模式,适用于一个对象的某个行为需要触发一系列事件的场景,例如 gRPC 中的 Stream 流式请求的处理就是通过观察者模式实现的。...除了实现的方式,我们还需要知道填充因子的作用与 Map 扩容时的 rehash 机制,需要知道 HashMap 的容量都是 2 的幂次方,是因为可以通过按位与操作来计算余数,比求模要快。...ConcurrentHashMap 从 HashMap 的非线程安全,面试官很自然地就会问到线程安全的 ConcurrentHashMap。...考察点和加分项 面试考察点 从面试官角度出发,总结本课时对于计算机基础和 Java 语言特性的考察点如下。 第一考察点就是对基本概念和基本原理的考察。要求对这两项的理解必须是正确的,清晰的。

    32320

    设计模式之行为类模式PK

    行为类模式包括: 责任链模式 命令模式 解释器模式 迭代器模式 中介者模式 备忘录模式 观察者模式 状态模式 策略模式 模板方法模式 访问者模式 行为型模式涉及到算法和对象间职责的分配 行为类模式关注如何管理对象的行为...命令模式VS策略模式 策略模式和命令模式相似, 特别是命令模式退化时,比如无接收者(接收者非常简单或者接收者是Java的基础操作,无需专门写一个接收者), 这种情况下, 命令模式和策略模式的类图完全一样...,从外界来看就好像是行为改变....在责任链中, 上下节点没有关系, 都是接受同样的对象,所有传递的对象都是从链首传递过来,,上一节点是什么没有关系,只要按照自己的逻辑处理就成....在责任链中,一个消息从链首传递进来后,就开始沿着链条想链尾运动, 方向是单一的,固定的; 而观察者链则不同, 由于它采用的是观察者模式,所以有非常大的灵活性,一个消息传递到链首后,具体怎么传递时不固定的

    41020

    RxJava && Agera 从源码简要分析基本调用流程(1)

    不难看出这里三个角色的分工: Observable:被观察者的来源,亦或说是被观察者本身 OnSubscribe:用来通知观察者的不同行为 Subscriber:观察者,通过实现对应方法来产生具体的处理...onsubscribe,等等,这个hook是从哪里冒出来的?...[image.jpg] 显而易见,Subscriber作为观察者,在订阅行为完成后,其具体行为在整个链式调用中起着至关重要的作用,我们来看看它内部的构成的主要部分: [image.jpg] [image.jpg...为了便于理解,这里借用一下扔物线的图: [image.jpg] 以上就是一次map()变换的流程,事实上多次map()也是同样道理:最外层的目标Subscriber发生订阅行为后,onSubscribe.onNext...再次祭出扔物线的图: [image.jpg] 至于其他的多种变化的实现流程也都很类似,借助于Operator的不同实现来达到变换数据流的目的。

    9.2K10

    iOS常用设计模式

    如果在一个系统里面有许多类,它们之间的区别仅在于它们的行为,那么使用策略模式可以动态地让一个对象在许多行为中选择一种行为。 一个系统需要动态地在几种算法中选择一种。...当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。 如何使用观察者模式?...优点:观察者和被观察者是抽象耦合的。建立一套触发机制。缺点:如果一个被观察者对象有很多的直接和间接的观察者的话,将所有的观察者都通知到会花费很多时间。...这两种类型的类可被结构化改变而互不影响。 如何使用桥接模式? 在有多种可能会变化的情况下,用继承会造成类爆炸问题,扩展起来不灵活。 实现系统可能有多个角度分类,每一种角度都可能变化。...把这种多角度分类分离出来,让它们独立变化,减少它们之间耦合。 桥接模式的优缺点? 优点 :抽象和实现的分离、优秀的扩展能力、实现细节对客户透明。

    1.9K10

    图像识别泛化能力人机对比:CNN比人类还差得远

    图 1:在(有可能畸变的)ImageNet 图像上从头开始训练的 ResNet-50 的分类表现。(a)在标准的彩色图像上训练后的模型在彩色图像上的测试表现接近完美(优于人类观察者)。...因此,从机器学习角度看,因为终身机器学习所需的泛化能力并不依赖于在测试时间使用独立同分布(i.i.d.)样本的标准假设,所以对一般噪声的稳健性可用作终身机器学习的高度相关的案例 [Chen and Liu...然后将这些不同信号强度的图像呈现给实验室环境中的人类观察者以及预训练的 DNN(ResNet-152、GoogLeNet 和 VGG-19)进行分类。图 3 给出了可视化的结果比较。 ?...图 3:GoogLeNet、VGG-19 和 ResNet-152 以及人类观察者的分类准确度和响应分布熵。「熵」是指响应/决定分布(16 类)的香农熵。...图 4(A1-A9)展示了训练的结果。我们发现,这些特定的网络在其所训练的图像处理类型上总是优于人类观察者的表现(即图中对角线上的优良结果)。

    79220

    美团二面:如何优雅使用观察者模式

    今天讲解一篇行为型设计模式,什么是行为型?行为型主要负责设计 类或对象之间的交互。工作中常用的观察者模式就是一种行为型设计模式 最近在尝试重构之前写过的代码。...所以就有了下面生活中的例子,来帮助读者更好的去理解模式的语义。类图如下所示: 在举例说明前,先让我们熟悉下观察者模式中的 角色类型 以及代码示例。...如果发现犯罪嫌疑人阿祖有动静,龙哥、峰哥负责实施抓捕行动,老三向警察局摇人,流程图如下: 如果说使用常规代码写这套流程,是能够实现需求的,一把梭的逻辑可以实现一切需求。...我们可以通过在 观察者模式行为执行前创建一个线程,那自然就是异步的。当然,不太建议你这么做,这样可能会牵扯出更多的问题。...当然也别像上面代码直接用 Executors 创建,作者是为了图省事,如果从规范而言,还是消停的使用默认线程池构建方法创建 new ThreadPoolExecutor(xxx); EventBus 同步实现有一个比较有意思的点

    1.5K42
    领券