机器之心报道
参与:魔王、张倩
存在两个集合A和B,它们之间存在交集,而集合C则是A和B交集的结果。我们将这三个集合分别命名为Circles、Diagrams和Venn Diagrams。若要绘制这样的图形,首先需要绘制两个相交的圆形,并为它们分别命名,这一过程无疑相当繁琐。然而,卡内基梅隆大学研发的一款创新工具能够自动完成这一任务。
在部分人的观念中,数学公式仅是一串数字与符号的组合,然而在另一些人眼中,这些数字与符号却仿佛拥有生命,充满了一种独特的魅力。这种差异究竟源于何处?原因在于,对于后者而言,这些数字与符号背后隐藏着一幅生动的画面,他们能够依照公式所规定的规则进行变化,从而让人体会到数学规律所蕴含的审美价值。
然而写数学公式的软件,问题在于并非所有人都能具备如此出色的“脑补”技巧,将数学公式自然地转化为图形。所以,我们不得不依赖各种工具。
谈及绘图软件,Adobe Illustrator等普及度极高的绘图程序或许会浮现在你的脑海。确实,这些软件功能强大,然而操作起来却略显复杂,你需要投入大量时间进行坐标等数据的手动调整。
是否有什么更简便的方式呢?比如“我讲述,你描绘”的模式。卡内基梅隆大学研发的 Penrose 正是这样一款软件。
只需输入数学关系或数学公式,该软件便能自动为你绘制图形,将那些抽象的数学公式转化为形象的图表,文章开头所展示的仅是一个基础示例。若你偏好用箭头而非圆形来展现这些关系,软件同样能为你提供相应的转换服务。
此图形计算器与常规的图形计算器不同,它所接受的输入表达式范围广泛,不仅限于基础函数,还包括源自各个数学分支的复杂数学关系。
在设计阶段,我们不禁自问:“人们究竟是如何将数学公式在脑海中转化为图像的呢?”卡内基梅隆大学计算机科学系的博士生Katherine Ye如此阐述。「我们的核心优势在于,我们能够让用户轻松地向电脑『阐述』这一转换过程,而将较为复杂的绘图任务交由计算机来完成。」
为了使计算机能够解读人类所阐述的关联,该研究团队特地设计并创造了一种新的编程工具:
如上图所展示,研究人员运用他们独创的编程工具对若干集合间的隶属关系进行了阐述写数学公式的软件,即便对这种编程工具一无所知的学生也能轻松理解。依据这些说明,我们能够绘制出以下的图形。
该软件的名称源自于知名的数学家与物理学家罗杰·彭罗斯。彭罗斯因擅长运用图表来阐述繁复的数学与科学概念而广为人知。
设想你从图书馆的书架上取下一本积满灰尘的数学教材,将书中的内容输入到电脑中,随后便能够获得一本配有插图、更加易于阅读的新版书籍,这正是该研究团队所追求的目标。Penrose 只不过是实现这一目标的开端。在 SIGGRAPH 2020 大会上,研究人员将向大家展示 Penrose。然而,Penrose 目前尚处于开发进程中,所以目前尚不能进行实际操作。
这款工具到底有多好用
Penrose 能够将抽象的数学概念转换为一种或多种视觉风格的表达,而在研发团队的视频演示中,我们得以目睹了这一转换在多个数学领域表达式上的显著成效。
比如,几何领域:
线性代数:
集合论:
函数:
在观摩了该研究团队所展示的演示之后,一些人士纷纷赞叹,「这款工具有望彻底改变科学和数学领域的交流方式。」
还有人将其比作「科学图表界的 LaTex」:
那么,用户要怎么操作才能实现上述效果呢?
界面和基本功能
我们首先来看 Penrose 的界面。
如下图所示,界面顶部是该工具的基本功能和选项。
仅仅局限于数学领域是不够的,用户还需在页面左侧输入数学相关内容。特别要留意的是页面第二行的「sub」、「sty」、「dsl」三个按钮。
Penrose 的语言结构体系由三个主要部分构成,分别是领域架构(dsl)、物质程序(sub)以及风格程序(sty)。
如下图所示,这三部分分别表示:
用户可以依次点击这些按钮,分别输入需要的数学信息,并挑选期望的视觉呈现方式。
高阶优化操作
说完了基本功能,我们再来看「优化」操作。
UI 界面中的优化过程。
Penrose 背后的技术
Penrose 团队设计此工具的目标是:
基于以上目标,该团队制定了以下组织原则:
工作流程
下图展示了 Penrose 的工作流程:
第一阶段:用编程语言指定数学对象和视觉表示
Penrose 将数学的实质与视觉的呈现区分开来,进而通过基于语言的规范来确保这种区分所依赖的抽象性。
正如之前所述,Penrose 提出了两种不同的语言来阐述数学内容与视觉表示,分别是Substance和Style。
Substance通过精确的断言来阐释数学表述的规范,具体可参考下方的图例说明。
第二阶段:基于优化的合成
Penrose 利用约束优化技术来构建与指定描述相匹配的图形。此方法灵感源自手绘作品:将视觉元素置于画布之上,持续调整直至达到满意效果,无需进一步优化。
此外,Penrose的用户界面配备了插件接口,这一设计使得用户能够便捷地调用Substance和Style中的外部代码。这样的设计使得系统具备了高级别的可扩展性。借助这个插件系统,用户可以轻松地整合那些专门用于解决逻辑或图形问题的外部代码。
该项目现已在GitHub上公开发布。然而,Penrose团队指出,当前版本尚处于初级阶段,开发工作仍在不断进行。
感兴趣的同学可以访问 Penrose 网站,跟进更多信息。
网站地址:
首届“马栏山”国际音视频算法竞赛正如火如荼地进行。该赛事主要围绕图像处理、推荐算法以及画质提升等三大技术领域展开,涵盖了视频特定区域追踪、视频内容推荐、画质损伤修复等三个核心竞赛项目。杰出的参赛者不仅能赢得奖金,其获奖的方案亦有可能被芒果 TV 的核心业务采纳,此外,在读学生还有机会参与芒果 TV 的「青芒计划」,并享受到专属优惠。