小编wma*_*mac的帖子

C++,两个有共同需求的类

我已经将Java的科学仿真平台转换为C++.我试图尽可能地保持设计与以前的实现相同.在java中,由于后期绑定,循环依赖项在运行时被解析.然而,循环依赖已经在C++中造成了一团糟.

  1. 是否有自动化工具可以分析和列出循环包含和参考?(Visual Studio 2010仅发出大量无意义错误).

  2. 我试图尽可能使用前向引用.但是在某些情况下,两个类都需要另一个类的功能(即调用方法,这使得无法使用前向引用).这些需求存在于Logic中,如果我从根本上改变设计,它们将不再代表真实世界的交互.

    我们怎样才能实现两个需要彼此方法和状态的类?是否可以在C++中实现它们?

例子:

  • 示例1:我有一个名为"World"的类,它创建"Agent"类型的对象.代理需要调用World方法来获取其环境的信息.World还需要遍历代理并执行其"运行"方法并获取其状态(状态更新可能会反向完成以解决问题的这一部分而不是运行方法).
  • 示例2:代理创建其"意图"的集合.每个代理需要迭代其意图并运行/更新/读取意图状态.意图还需要通过代理获取有关环境的信息(如果直接通过"世界"完成,它将再次创建复杂的圆圈)以及代理本身的信息.

下图显示了一个类的子集,以及它们的一些方法和属性:

类的子集,以及它们的一些方法和属性

c++ circular-dependency

12
推荐指数
1
解决办法
1万
查看次数

使用scipy.integrate.complex_ode而不是scipy.integrate.ode

我正在尝试在scipy.integrate中使用complex_ode方法而不是ode方法。complex_ode的帮助页面没有提供示例,因此我可能做错了什么。

此代码可与scipy.integrate.ode一起正常工作:

from scipy.integrate import ode

y0, t0 = [1.0j, 2.0], 0

def f(t, y, arg1):
    return [1j*arg1*y[0] + y[1], -arg1*y[1]**2]
def jac(t, y, arg1):
    return [[1j*arg1, 1], [0, -arg1*2*y[1]]]


r = ode(f, jac).set_integrator('zvode', method='bdf', with_jacobian=True)
r.set_initial_value(y0, t0).set_f_params(2.0).set_jac_params(2.0)

t1 = 10
dt = 1

while r.successful() and r.t < t1:
    r.integrate(r.t+dt)
    print(r.t, r.y)
Run Code Online (Sandbox Code Playgroud)

现在,此其他代码尝试对complex_ode进行相同的操作。

from scipy.integrate import complex_ode

y0, t0 = [1.0j, 2.0], 0

def f(t, y, arg1):
    return [1j*arg1*y[0] + y[1], -arg1*y[1]**2]
def jac(t, y, arg1):
    return [[1j*arg1, 1], …
Run Code Online (Sandbox Code Playgroud)

python numpy scipy ode

5
推荐指数
1
解决办法
1562
查看次数

PHP脚本中收不到Postman发送的header

我正在向 PHP 脚本发送标头和 GET 请求,但 Postman 不发送标头或 PHP 脚本未接收到标头。我在服务器上使用 Nginx(Apache2 在没有 api_token 的情况下给出了几乎相同的结果)。我无法找出问题所在。

截屏

服务端PHP代码如下:

<?php
 $headers =  getallheaders();
 foreach($headers as $key=>$val){
    echo $key . ': ' . $val . '<br>';
 }
?>
Run Code Online (Sandbox Code Playgroud)

从 Postman 控制台检查后,由于某种原因,该标头实际上已发送但未在 PHP 脚本中接收。

截图2

php nginx httprequest postman

4
推荐指数
1
解决办法
1626
查看次数

基于专家系统的规则与普通算法编程中的条件之间的差异

在基于规则的专家系统中,知识库包含大量“if(模板)then(动作)”形式的规则。推理引擎选择与输入事实匹配的规则。也就是说,将其条件部分与输入数据匹配的那些规则列入候选名单,并选择其中之一。

现在可以使用具有类似条件语句的普通程序以某种方式达到可能的结果。

  • 我试图找到两者之间差异的“合理而清晰的描述”,以及为什么我们无法实现专家系统规则可以通过正常算法编程实现的功能?

  • 难道只是算法需要完整且众所周知的输入,而专家系统可以接受任何顺序的不完整信息?

谢谢。

logic artificial-intelligence expert-system inference-engine

2
推荐指数
1
解决办法
2897
查看次数