是数学上的假设?物理世界的假设?程序上的假设?
全部都早就有了。而且,你早都用过了。
数学假设:
Quickspec, Tensat, Ruler等工作可以自动找寻mathematical equation,并且交由SMT或Isabelle/HOL等自动化定理证明器来验证/反证猜想的正确性。被证明正确的猜想会自动加入深度学习编译器,又或者传统编译器,来对程序进行优化。
物理假设:
Symbolic Regression通过基因编程或者其他搜索方法对给定数据搜索符合数据的表达式。这种方法被应用于材料学,天文学等科学,用于帮助科学家快速发现新定律。其实,当你每次使用excel的下拉功能去填数据的时候,其实就是在利用这种方法去找寻符合数据规律的定理,然后用这定理来完成填空 (Flash Fill)。
程序假设:
Model Checking的CEGAR方法会试图提出程序的loop invariant,然后当发现反例(loop invariant不够强,无法证明性质)的时候,会通过反例更新自己的invariant,重新尝试,如此反复。此等方法被用于多种软件硬件的形式化验证,包括芯片,分布式系统,C程序等。
所以说,别再想可不可能的事情了,当你打开手机的人脸识别,或者使用excel,更甚至,当你打开电脑的那一刻,你就在享受‘计算机自己发现猜想’的成果了。