安装和理解 AlphaGeometry
推荐帖子:【算法】【算法与机器学习索引】(https://jb243.github.io/pages/1278)
1. 概述
2. 安装过程
3. 语法
a. IMO 几何问题求解
b. 【jgex_ag_231问题重构及解决】(https://jb243.github.io/pages/2291)
1.概述
⑴ 简介
① AlphaGeometry:提交给 Nature 出版物的语言模型,实现符号演绎,能够解决国际数学奥林匹克(IMO)级别的几何问题。
② 由 Google DeepMind 开发,它似乎是假设生成模型 FunSearch 的进步。 ([参考](https://jb243.github.io/pages/2379))
⑵ 原理
①符号的含义:将每个命题向量化并放置在嵌入空间上的过程。
② 几何中的符号演绎:与《欧几里得几何原理》类似,从直线、构造、同心圆等公理出发,引出新命题。
③当给定问题的条件时,它在搜索空间内不断搜索新的真命题来证明给定的命题。
④ 这个过程就像一个人思考一道数学题很长时间才最终找到答案。
⑤ 更具体地说,1)它将给定的几何问题表示为点、线、面,2)创建图数据结构,然后3)通过将图数据结构与定理集连接起来进行运算。
○ 那么,是否可以将医疗数据表示为图数据结构,并将其与临床信息联系起来,并实现逻辑推理模型? (受保护_6)
⑶ 工艺流程
① AlphaGeometry 主要通过角度追踪来解决问题。
○ 许多几何问题都可以通过角度追踪来解决。例如,四点在圆上的命题(循环命题)等价于两个同底三角形的周角相等的条件。
② 步骤1. DD+AR:在几何中重复使用循环四边形和相似三角形,更类似于经典算法而不是AI(ref)。
③ 步骤2. AlphaGeometry 模式:随机添加新点,然后执行DD+AR,使用基于LLM 的方法。
○ 添加新点是人类的启发式过程,现在随着基于变压器的法学硕士的出现而创造性地成为可能。
⑷ 局限性
① 限制 1. 虽然几何问题基于确定的命题得出逻辑结论,但现实世界的问题通常依赖于不确定的命题进行决策。
② 限制2. 几何问题大多涉及等式问题,而现实世界的决策经常涉及不等式问题。
○ 等价问题示例:在同一个圆上,M 是 A 和 B 的中点等。
○ 比较问题示例:使用吉西他滨治疗乳腺癌患者会提高生存率吗?» ○ 鉴于三角形的内在局限性,解决等式问题的 AlphaGeometry 能否解决比较问题?
○ 后来,6月25日,推出了解决不平等问题的人工智能。 (IneqMath)
③ 局限性 3. 几何问题处理双向命题关系(其中两个命题互为充要条件),但在现实决策中,存在许多单向命题关系。
○ 换句话说,如果 A → B 成立,则在几何问题中 B → A 也成立。然而,在现实决策中,经常出现 B ⇏ A 的情况。
○ 同样,如果 A → B 成立,则在几何问题中 ~A → ~B 也成立。然而,在现实世界的决策中,经常出现〜A⇏〜B的情况。
⑸ 意义
① 意义1. 第一个逻辑推理模型。 (受保护_7)
② 意义2. 大规模逻辑推理的可能性:如果解决一个IMO问题需要连接几十个命题,那么人类能否通过AI连接上千个命题得出新的结论?这或许可以通过人工智能实现,标志着认知领域的突破。 (受保护_8)
③ 意义3. 即使有错误的命题,也不影响最终的逻辑推理。
2.安装过程
⑴ 由于按照官方文档安装会出现错误,所以我按照以下步骤操作。
⑵ 步骤1: 在Ubuntu服务器上运行以下命令。
① 就我而言,我使用了
Ubuntu 22.04.3 LTS (GNU/Linux 5.15.0-105-generic x86_64)。
受保护_0
⑶ 步骤2: 安装以下软件包。
受保护_1
⑷ 步骤3: 将对应目录下的run.sh替换为【以下文件】(https://blog.kakaocdn.net/dn/uKsVB/btsIQ0w0cZh/CwBJfosgcIk0cQQKe4Q110/run.sh?attach=1&knm=tfile.sh) ([参考](https://github.com/google-deepmind/alphageometry/pull/54/commits/3debb824a1c199c789fb8d4f562dc1319ac9c6c8))。
① 注意: 原论文使用了
BATCH_SIZE=32、BEAM_SIZE=512和DEPTH=16,因此这些值都得到了反映。
⑸ 第4步: 适当注释掉numericas.py中的matplotlib.use('TkAgg')和draw函数。
① 原因: 由于脚本运行在没有 GUI 的无头服务器上,执行与
matplotlib相关的绘图函数会导致以下错误:
受保护_2
⑹ 步骤5: 运行以下命令:
受保护_3
⑺ 在 ddar 模式下运行 AlphaGeometry:将 run.sh 文件中的示例替换为以下代码并重新安装。
受保护_4
⑻ 在 alphageometry 模式下运行 AlphaGeometry:将 run.sh 文件中的示例替换为以下代码并重新安装。
受保护_5
3. 语法
⑴ 点、线、面的定义
①
d = free
○
y = free y
②
a b = segment a b:AB是线段
○
b c = segment:BC 是线段
③
a b c = triangle:ABC是三角形
④
d = eq_triangle d a b:DAB是等边三角形
⑤
s c p = iso_triangle s c p:SCP是等腰三角形,SC和SP长度相等
⑥
c a b = r_triangle c a b:CAB 是直角三角形,∠C 是直角
⑦
c a b = risos c a b:给定一个直角三角形ABC,其中AB等于AC且AB垂直于AC
⑧
a b c d = quadrangle a b c d:ABCD是四边形
⑨
d e = square a c d e:DE是正方形ACDE的两个点
⑩
a b c d = rectangle a b c d:ABCD是一个矩形
⑪
a b c d = trapezoid a b c d:ABCD是AB和CD互相平行的梯形。> ⑫a b c d = eq_trapezoid a b c d:ABCD 是等腰梯形,AB 和 CD 平行,AD 等于 BC。
⑬
a b c d = isquare a b c d
⑭
c = nsquare c b a
⑮
d = psquare d a b
⑯
a b c d e = pentagon a b c d e:ABCDE 是五边形
⑵ 特殊点定义
①
o = midpoint o b c:O是线段BC的中点
②
o = circle o a b c:O是三角形ABC的外心
○
o1 = circle a d c:O1是三角形ADC的外心
○
o = circumcenter o b i c: O 是三角形 BIC 的外心
③
i = incenter i a b c:I是三角形ABC的心
④
t1 t2 t3 i = incenter2 t1 t2 t3 i a b c:三角形ABC的内切圆I分别在T1、T2、T3处与BC、CA、AB相切
⑤
h = orthocenter h a b c:H为三角形ABC的重心
⑥
t = mirror t r s:S 是 RT 的中点
⑦
x1 = reflect x1 h1 t1 t2: X1 是 H1 在线段 T1T2 上的反射
⑧
w@6.9090049230038776_-1.3884003936987552: W 是 (6.9090049230038776, -1.3884003936987552) 处的点
⑨
m l k j = excenter2 m l k j a b c:J 为三角形 ABC 的外心,M、L、K 分别为 J 到 BC、AC 和 AB 的垂线的脚
⑶ 点在特定的直线或圆上
①
a = on_line a b q:A、B、Q 共线(B 不一定位于 A 和 Q 之间)
○
a1 = on_line b c:A1 在线段 BC 上
②
m = on_circle m g1 a:M 在经过 A 的圆 G1 上
③
z = on_aline z a p a b x: ∠ZAP = ∠ABX
○
e = on_aline d a d c b: ∠EDA = ∠DCB
④
o = on_bline o r s:O 在 RS 的垂直平分线上
○
x = on_bline b c:X 位于 BC 的垂直平分线上
⑤
c = on_pline c m a b:线段CM与AB平行
○
q = on_pline p a b:线段 PQ 与 AB 平行
⑥
q = on_tline q m w m:线段 QM 和 WM 垂直或 Q 在 M 点与 WM 相切的圆上
○ ` h = on_tline b a c`:线段HB垂直于AC,或者H是与线段AC相切的圆经过B点的点。
⑦
h1 = foot h1 a b c:H1 是 A 到 BC 垂线的底点
⑧
q = on_dia q a h:AQ 垂直于 HQ
⑨
d = eqdistance d a b c: AD = BC
○
e = eqdistance d b c:ED = BC
⑩
x = parallelogram e a m x:X是平行四边形EAMX的剩余顶点
⑪
q t p s = cc_tangent q t p s i1 f1 i2 f2:当存在以I1为圆心穿过F1、以I2为圆心穿过F2的圆时,两个圆的公切线为QT和PS
⑫
q = intersection_cc q a o p
⑬
f = intersection_lc f e d b
⑭
f = intersection_ll f b d c e
⑮
f = intersection_lp f a c e c b
⑯
d = intersection_pp d a b c c a b
⑰
d = intersection_lt d c e a a o
⑱
e = intersection_tt e b b o c c o
⑲
f = shift f c a e
⑳
r = lc_tangent r p a
㉑
d x = trisegment d x c b
㉒
d e = trisect d e b a c
㉓
d e f = 3peq d e f c a b
㉔
f g h i = 2l1c f g h i a b e d
㉕
e g = e5128 e g a b c d
⑷ 点处于特定角度
①
f = angle_bisector f b a z:F 在 ∠BAZ 的角平分线上
○
d = angle_bisector b a c:D 在 ∠BAC 的角平分线上
②
e = angle_mirror e c a d: ∠EAD = ∠CAD
③
a = eqangle2 b t e: ∠ABT = ∠AET
④
p1 = eqangle3 p c a b c: ∠BAC = ∠P1PC
⑤
c = s_angle b a c 60
⑸ 问题定义
①
? cong o p o q:表明OP = OQ
②
? coll x o a:显示X在OA段上
③
? perp k t o1 t:表明线段KT垂直于线段O1T
④
? para d e f g:表明线段DE与FG平行
⑤
? eqangle e c e j e j e f:证明∠CEJ = ∠JEF,即EJ平分∠CEF
○
? eqangle e c c d d f f c:证明 ∠ECD = ∠DFC
○
? eqangle f g f b c f c b:证明 ∠GFB = ∠FCB
⑥
? cyclic p q r m:证明 P、Q、R 和 M 位于同一个圆上(循环四边形证明)
⑦
? eqratio k k1 l l1 r q r p:证明KK1 / LL1 = RQ / RP(其中AB表示线段AB的长度)
⑧
? midp g a d: 证明G是AD的中点
⑨
? simtri e f g e c b: 表明 ΔEFG 与 ΔECB 相似
⑩
? contri e a b a b e
输入:2024.05.05 22:23