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

2020 年 6 月 14 日 THU数据派

来源:七月在线实验室

本文长度为 2000字,建议阅读 5分钟

本文为大家介绍了卡内基梅隆大学开发的一款可自动生成的新工具。


有 A、B 两个集合,A 与 B 相交,C 是 A 与 B 的交集,分别将三个集合命名为 Circles、Diagrams、Venn Diagrams。给出这样一段描述,你要怎么作图?先画两个相交的圆,然后各自命名?太麻烦了!卡内基梅隆大学开发的一款新工具可以帮你自动生成。


在有些人眼里,数学公式就是一堆数字和符号,但在另一些人看来,这些数字和符号是可以动的,而且极富美感。为什么会有这种差距?

那是因为对于后者来说,这些数字和符号的背后是一幅灵动的图,他们可以根据公式约定的规律进行变换,让人感受到数学规律带来的美感。

但问题在于,不是每个人都有这么好的脑补能力,能将数学公式自动想象成图。因此,我们需要借助于工具。

说到工具,你可能想到的是 Adobe Illustrator 等广泛使用的画图工具。没错,这些工具确实好用,但未免有点繁琐,你要不断地花时间手动调整坐标等信息。

有没有简单一点的方法呢?类似于我来说,你来画那种。卡内基梅隆大学开发的 Penrose 就是这样一款工具。

你只需要描述一些数学关系或输入数学表达式,该软件就能自动帮你画图,从而将抽象的数学公式转化为直观的图,文章开头给出的只是一个简单的例子。

如果你不想用圆来表示上述关系,软件还可以帮你换成箭头表示。


不同于普通的图形计算器,你输入的表达式不仅限于基本函数,也可以是来自任何数学领域的复杂关系。

在设计之初,我们问自己《人们是如何在脑海中将数学公式转换为图像的?》卡内基梅隆大学计算机科学系博士生 Katherine Ye 表示。我们系统的秘密武器就是让人们能够很容易地向电脑『解释』这一转换过程,然后将比较困难的作图过程留给计算机。

为了让计算机理解人类所描述的关系,研究团队还专门开发了一种编程语言:


如上图所示,研究者用自己设计的编程语言表述了几个集合的包含关系,即使没学过这种编程语言的同学也能读懂。根据这些描述可以生成如下图形:


这款软件的名字来源于著名数学家、物理学家罗杰 · 彭罗斯(Roger Penrose)。彭罗斯以善用图表交流复杂的数学和科学思想而闻名。

想象一下,你从图书馆的书架上拿下一本尘封已久的数学书,将上面的内容输入计算机,然后就能得到一本带插图、更容易理解的新书,这就是该研究团队的愿景,Penrose 只是迈向这个愿景的第一步。

研究人员将在 SIGGRAPH 2020 大会上展示 Penrose。不过,Penrose 目前还处在开发阶段,因此暂时无法上手。

论文地址:

http://penrose.ink/media/Penrose_SIGGRAPH2020.pdf

GitHub 地址:

https://github.com/penrose/penrose


这款工具到底有多好用


Penrose 可以把抽象的数学表示转化成一或多个不同风格的视觉表示,研发团队在视频 demo 中展示了对多个不同领域数学表达式的转化效果。


比如,几何领域:



线性代数:


集合论:


函数:


看了该研究团队给出的 demo 之后,有人称赞道,这款工具可能变革科学和数学交流。


还有人将其比作科学图表界的 LaTex:


那么,用户要怎么操作才能实现上述效果呢?

界面和基本功能

我们首先来看 Penrose 的界面。

如下图所示,界面顶部是该工具的基本功能和选项。


  • 左侧第一个下拉框:表示用户试图转化的数学公式所属的领域,上图示例显示的是集合论(set theory);
  • 左侧第二个框:可供用户选择想要生成的图样式,上图选择的是维恩图(venn),用户可以点击该下拉框,选择自己喜欢的样式;


  • 右侧run按钮:点击该按钮,等待几秒,即可得到左侧数学内容所对应的图。

只选择数学领域还不够,用户还需要在界面左侧填充数学内容。这里需要注意的是界面第二行的sub、sty、dsl按钮。

Penrose 的语言框架包含三部分:Domain schema(dsl)、Substance program(sub)和 Style program(sty)。

如下图所示,这三部分分别表示:

  • dsl:数学领域中可用的对象、关系和符号;
  • sub:填充数学内容;
  • sty:从数学表述到视觉表示。


用户可以逐个点击这些按钮,填充所需的数学内容,选择所需的视觉表示形式。

高阶优化操作

说完了基本功能,我们再来看优化操作。

  • 右下方resample按钮:如果你对生成的图不满意,点击该按钮,即可重新生成图;
  • autostep按钮:实现图的自动生成,如果你想对图进行调整,只需禁用该功能即可。

UI 界面中的优化过程

Penrose 背后的技术

Penrose 团队设计此工具的目标是:

  • 以用户熟悉的方式表达数学对象;
  • 系统不局限于固定的某些领域;
  • 对相同的数学内容进行不同的可视化展示;
  • 视觉复杂度方面不存在内在限制;
  • 速度快,支持迭代工作流;
  • 为制图所做的努力应该是可泛化和可重用的。

基于以上目标,该团队制定了以下组织原则:

  • 通过从数学对象到视觉图标的映射来规定图;
  • 通过解决相关的约束优化问题来合成图。

工作流程

下图展示了 Penrose 的工作流程:


第一阶段:用编程语言指定数学对象和视觉表示


Penrose 将数学内容与视觉表示分离开来,并使用 language-based specification 来提供该分离所需的抽象。

如前所述,Penrose 为数学内容与视觉表示提供了两种不同的语言:Substance 和 Style。

Substance 借助精确的断言(assertion)来诠释标准的数学表述,参见下图示例:


第二阶段:基于优化的合成

Penrose 使用约束优化来合成与给定描述相对应的图。这个方法主要是受到手绘图的启发:将视觉图标放在画布上,不断地调整直到无需再改进。


此外,Penrose 用户界面提供了插件接口,方便调用 Substance 和 Style 中的外部代码,从而提供系统级的可扩展性。该插件系统可以帮助用户集成可用于解决逻辑或图难题的外部代码。

目前,该项目已发布在 GitHub。不过 Penrose 团队表示,目前版本处于早期阶段,仍在持续开发中。

感兴趣的同学可以访问 Penrose 网站,跟进更多信息。

网站地址:

http://www.penrose.ink/


——END——


登录查看更多
0

相关内容

数学是关于数量、结构、变化等主题的探索。
Python图像处理,366页pdf,Image Operators Image Processing in Python
【硬核书】不完全信息决策理论,467页pdf
专知会员服务
336+阅读 · 2020年6月24日
Python地理数据处理,362页pdf,Geoprocessing with Python
专知会员服务
110+阅读 · 2020年5月24日
【高能所】如何做好⼀份学术报告& 简单介绍LaTeX 的使用
Fariz Darari简明《博弈论Game Theory》介绍,35页ppt
专知会员服务
106+阅读 · 2020年5月15日
做机器学习和AI必备的42个数学知识点
AI前线
8+阅读 · 2018年12月6日
数学思维与编程思维怎样可以完美的结合
算法与数学之美
6+阅读 · 2018年6月11日
用于数学的 10 个优秀编程语言
算法与数据结构
13+阅读 · 2018年1月5日
如何轻松解锁神经网络的数学姿势
ImportNew
6+阅读 · 2018年1月4日
图解高等数学|线性代数
遇见数学
39+阅读 · 2017年10月18日
GAN完整理论推导、证明与实现(附代码)
数据派THU
4+阅读 · 2017年10月6日
GAN的数学原理
算法与数学之美
14+阅读 · 2017年9月2日
【基础数学】- 01
遇见数学
19+阅读 · 2017年7月25日
Arxiv
4+阅读 · 2019年8月7日
Arxiv
6+阅读 · 2018年2月28日
Arxiv
3+阅读 · 2017年12月18日
VIP会员
相关资讯
做机器学习和AI必备的42个数学知识点
AI前线
8+阅读 · 2018年12月6日
数学思维与编程思维怎样可以完美的结合
算法与数学之美
6+阅读 · 2018年6月11日
用于数学的 10 个优秀编程语言
算法与数据结构
13+阅读 · 2018年1月5日
如何轻松解锁神经网络的数学姿势
ImportNew
6+阅读 · 2018年1月4日
图解高等数学|线性代数
遇见数学
39+阅读 · 2017年10月18日
GAN完整理论推导、证明与实现(附代码)
数据派THU
4+阅读 · 2017年10月6日
GAN的数学原理
算法与数学之美
14+阅读 · 2017年9月2日
【基础数学】- 01
遇见数学
19+阅读 · 2017年7月25日
Top
微信扫码咨询专知VIP会员