赢脑 (Nikolai Varankine) - 应用 - Thinker™
 介绍   软件   联系方式   关于我   消息   LinkedIn™   Quora™ 

📚 计算点

Thinker™ 允许构建无限层次的数学公式。 一个公式的结果被称为计算点,并在右侧图表中以红色或半红色球体表示,可以作为另一个公式的参数,依此类推。 计算点 在项目和运行时浏览器中的显示方式类似。 它们的层次结构包含指定的名称,并允许折叠和展开分支以方便使用。

Thinker 会在每次参数发生变化时重新计算完整的关联公式链,从而始终提供实际结果。 这是一个事件驱动的过程:当输入没有激活时,所有电路都会等待数据传递。 一般来说,如果值是 NaN(非数字),计算处理器就不会再通过网络传递该值。 这种策略可以防止计算机方案意外陷入无用状态。

计算点允许处理任何数学函数,前提是参数和值均为实数¹。 端点(没有参数的点)不需要特殊的数学定义,因为它的唯一作用是接受来自外部源的值。 它可以被视为主要参数。 但是,在计算层次结构的顶部和中间,没有为计算点定义默认函数。 它们的功能必须在模型中引用或描述。

该函数的关键信息是 Java 名称,包括包名称和简单类名称。 该信息可在项目浏览器中 Java 徽标图标右侧看到。 例如,以下是演示项目中求和函数类的名称: com.varankin.brains.sample.summator.Sum3

仅引用类名的点假定已通过任何方法将 Java 类代码提供给模型,通常是 CLASSPATH 环境变量中指定的 jar 文件。 作为此“静态”规定的替代方案,Thinker 版本 2 允许将 Java 类代码文本直接包含在模型中,无论是针对特定点还是库中。 最后一个变体允许像在 jar 文件中提供类一样引用该类。 Thinker 使用嵌入式 Java 编译器生成类的字节码。 它可以针对特定类以交互方式调用,以确保提供的文本编译无误。 当模型准备好运行时,所有类都会自动编译。

此时引用的 Java 类的最低要求是实现特定的接口。 推荐且最简单的接口提供了一种将参数数组 (float[]) 转换为单个值 (float) 的方法,即卷积。 Thinker 在运行时将此类包装到典型的计算解决方案中。 对于更具体的需求,模型可以提供一个更通用的接口类,与计算层次结构中的终点、中间点和端点相匹配。 提供的类可以与其他 Java 类具有常规的 Java 依赖关系。还可以将自定义类添加到模型中。 为了帮助 Thinker 正确解析类层次结构,可以为任何引用或提供的类分配一个用途标签。

计算点可以通过一个或多个可访问参数进行增强,以便在计算结果的方法中使用。 这些参数可以在模型中被赋初值。 参数的 Java 类型不限于数值类型。 Thinker 使用其自带的数据库工具与 String 类型和其他 Java 类型交换值表示。 此外,类中参数的实现有三种选择:成员变量、getter 方法以及一对 getter 和 setter 方法。 参数的值可以在运行时查看和修改。 为了能够通过 GUI 访问,类代码中的参数应该使用专用接口进行注释。 未注释的任何类型的常规类成员也可以使用。

每个计算点都可以拥有一个名称,以区别于其他点。 此外,当中间计算点和端点作为另一个点的参数时,此名称会参与它们的排序。 为了使参数的顺序与名称无关,可以为点分配一个特定的整数索引。 它不必是 Java 数组索引。 索引之间使用连续的整数序列也只是一种建议。 相同的索引值用作组索引。 组内的进一步排序按点的名称进行。

每个点都会显示一个弹出窗口,用于显示和更新属性。 运行时属性包含该点计算的最后一个值。 每次该点完成下一次预定计算时,该值都会自动更新。 同步功能可以打开或关闭。 这种表示形式允许读取信号的精确数字值。

 

 

笔记:

  1. 软件版本 1.X 和 2.X 使用经济型 32 位浮点数进行操作,即 Java float 类型。

章节
教程