|数学表达式一键变图,CMU开发实用工具Penrose,堪称图解界LaTeX( 二 )



线性代数:
|数学表达式一键变图,CMU开发实用工具Penrose,堪称图解界LaTeX
本文插图

?
集合论:
|数学表达式一键变图,CMU开发实用工具Penrose,堪称图解界LaTeX
本文插图

?
函数:
|数学表达式一键变图,CMU开发实用工具Penrose,堪称图解界LaTeX
本文插图

看了该研究团队给出的 demo 之后 , 有人称赞道 , 「这款工具可能变革科学和数学交流 。 」
|数学表达式一键变图,CMU开发实用工具Penrose,堪称图解界LaTeX
本文插图

还有人将其比作「科学图表界的 LaTex」:
|数学表达式一键变图,CMU开发实用工具Penrose,堪称图解界LaTeX
本文插图

那么 , 用户要怎么操作才能实现上述效果呢?
界面和基本功能
我们首先来看 Penrose 的界面 。
如下图所示 , 界面顶部是该工具的基本功能和选项 。
|数学表达式一键变图,CMU开发实用工具Penrose,堪称图解界LaTeX
本文插图

左侧第一个下拉框:表示用户试图转化的数学公式所属的领域 , 上图示例显示的是「集合论」(set theory);
左侧第二个框:可供用户选择想要生成的图样式 , 上图选择的是维恩图(venn) , 用户可以点击该下拉框 , 选择自己喜欢的样式;
|数学表达式一键变图,CMU开发实用工具Penrose,堪称图解界LaTeX
本文插图

右侧「run」按钮:点击该按钮 , 等待几秒 , 即可得到左侧数学内容所对应的图 。
只选择数学领域还不够 , 用户还需要在界面左侧填充数学内容 。 这里需要注意的是界面第二行的「sub」、「sty」、「dsl」按钮 。
Penrose 的语言框架包含三部分:Domain schema(dsl)、Substance program(sub)和 Style program(sty) 。
如下图所示 , 这三部分分别表示:
dsl:数学领域中可用的对象、关系和符号;
sub:填充数学内容;
sty:从数学表述到视觉表示 。
|数学表达式一键变图,CMU开发实用工具Penrose,堪称图解界LaTeX
本文插图

用户可以逐个点击这些按钮 , 填充所需的数学内容 , 选择所需的视觉表示形式 。
高阶优化操作
说完了基本功能 , 我们再来看「优化」操作 。
右下方「resample」按钮:如果你对生成的图不满意 , 点击该按钮 , 即可重新生成图;
「autostep」按钮:实现图的自动生成 , 如果你想对图进行调整 , 只需禁用该功能即可 。
|数学表达式一键变图,CMU开发实用工具Penrose,堪称图解界LaTeX
本文插图

UI 界面中的优化过程 。
Penrose 背后的技术
Penrose 团队设计此工具的目标是:
以用户熟悉的方式表达数学对象;
系统不局限于固定的某些领域;
对相同的数学内容进行不同的可视化展示;
视觉复杂度方面不存在内在限制;
速度快 , 支持迭代工作流;
为制图所做的努力应该是可泛化和可重用的 。
基于以上目标 , 该团队制定了以下组织原则:
通过从数学对象到视觉图标的映射来规定图;
通过解决相关的约束优化问题来合成图 。
工作流程
下图展示了 Penrose 的工作流程:
|数学表达式一键变图,CMU开发实用工具Penrose,堪称图解界LaTeX
本文插图

第一阶段:用编程语言指定数学对象和视觉表示
Penrose 将数学内容与视觉表示分离开来 , 并使用 language-based specification 来提供该分离所需的抽象 。


推荐阅读