文档章节

自动几何推理的研究(一)

刘军兴
 刘军兴
发布于 2015/04/14 17:01
字数 639
阅读 21
收藏 0

继续研究几何学.

网页画板中, 老师们提出需求, 能否更加智能化一些, 如检查学生绘制的图形是否正确, 检查学生的推理是否正确,
为此, 能够让计算机自动的推导出几何图形中的关系, 则是这些应用的实现引擎(之一).

从网上找资料和软件, 一般有吴文俊,张景中院士提出的机器证明方法, 另有一个不错的开源软件 GExpert, 里面
有几何推理的功能. 需要深入学习该软件, 所以自己动手做了一个 javascript 版和一个 c# 版的几何推理引擎,
下面是 js 版的测试地址:

    http://gpad.chinaflc.com/test_jgx.html

由于几何推理比较复杂, 虽然有一个测试程序, 但还是有很多很多疑问, 因此写一些文章和思考下来.

分析方法:
    从底层的数据结构开始, 逐步构建更高一层的结构和算法. 具体理论可参见 GExpert 的文档. 

推理的核心类为 Gdd, 其内部有多个几何对象的容器(如 Point_Container, Line_Container 等), 以及一组
用于推理的函数, 这些函数一般叫 Searcher 函数, 为方便组织为一种几何对象一组(如 Line_Searcher 等).
今按照顺序 几何对象 -> 对象管理容器 -> 搜索算法.

推理中最低层的对象是点, 用 G_Point 类实现(表示), 一个点的信息当前包括:
   name: 点的名字, 如 A,B, 每个点都有唯一名字, 一般是一个大写字母.
   idx: 点的唯一编号. 也是点在管理容器类中的索引, 一般用于比较点的顺序.
   x,y: 点的坐标, 用双精度浮点数表示. 某些推理过程需要数值计算做辅助检查.
   其它属性: 可能以后添加 xactive, name_html 等属性.

点的容器类是 Point_Container, 在别处引用此容器一般用变量名 all_pt, 主要功能有:
   fd_pt(name): 根据指定名字查找点, 如果没有则返回 null
   fadd_pt(name): 查找指定名字的点, 如果没有则创建并返回新点对象.
   set_xy(name, x, y): 设置指定点的 x,y 坐标.

某两三个搜索程序中需要遍历所有的点, 点在容器中用数组存放, 也即 all_pt.pt[] 数组, 点的数量为 all_pt.count 个.

点没有对应的搜索函数, 不作为谓词(pred)加入到待搜索的数据队列中.

 

© 著作权归作者所有

共有 人打赏支持
刘军兴
粉丝 55
博文 185
码字总数 227015
作品 0
昌平
私信 提问
预见未来 | 图像识别的未来:机遇与挑战并存

     编者按:自1998年成立以来,微软亚洲研究院一直致力于推动计算机科学领域的前沿技术发展。在建院20周年之际,我们特别邀请微软亚洲研究院不同领域的专家共同撰写“预见未来”系列文...

微软亚洲研究院
11/16
0
0
MSRA20周年研究趋势文章|图像识别的未来:机遇与挑战并存

文/微软亚洲研究院 代季峰 林思德 郭百宁 识别图像对人类来说是件极容易的事情,但是对机器而言,这也经历了漫长岁月。 在计算机视觉领域,图像识别这几年的发展突飞猛进。例如,在 PASCAL...

人工智能学家
11/16
0
0
想让照片里的美女“回头”?清华MIT谷歌用AI帮你实现了

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yH0VLDe8VG8ep9VGe/article/details/82322470 伊瓢 发自 凹非寺 量子位 报道 | 公众号 QbitAI  “麻烦帮我...

量子位
09/02
0
0
计算机视觉与图像处理、模式识别、机器学习学科之间的关系

在我的理解里,要实现计算机视觉必须有图像处理的帮助,而图像处理倚仗与模式识别的有效运用,而模式识别是人工智能领域的一个重要分支,人工智能与机器学习密不可分。纵观一切关系,发现计算...

小金子
2014/07/07
0
0
学习人工智能AI需要哪些最基础的知识?

人工智能的定义可以分为两部分,即“人工”和“智能”。“人工”比较好理解,争议性也不大。有时我们会要考虑什么是人力所能及制造的,或着人自身的智能程度有没有高到可以创造人工智能的地步...

qq_32539403
2017/06/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Confluence 6 快捷键

快捷键图标。 官方的下载地址为:https://atlassianblog.wpengine.com/wp-content/uploads/2018/01/keyboard-shortcuts-infographics.pdf...

honeymose
今天
2
0
Apache限定目录解析PHP,限制user_agent,PHP相关的配置

Apache限定目录解析PHP 配置前访问upload/index.php [root@test-a ~]# curl -x192.168.77.139:80 'www.test.com/upload/index.php'This is upload diretory 配置,/usr/local/apache2.4/......

野雪球
今天
3
0
java.util.Concurrent.Exchanger源码

类图 源码: package java.util.concurrent;import java.util.concurrent.atomic.AtomicInteger;import java.util.concurrent.atomic.AtomicReference;import java.util.concurrent......

狼王黄师傅
今天
6
0
Kubernetes里的secret最基本的用法

Secret解决了密码、token、密钥等敏感数据的配置问题,使用Secret可以避免把这些敏感数据以明文的形式暴露到镜像或者Pod Spec中。 Secret可以以Volume或者环境变量的方式使用。 使用如下命令...

JerryWang_SAP
昨天
5
0
2018-11-20学习笔记

1. python数据类型: 给变量赋值什么样的值,变量就是什么样的类型 给变量赋值整数,变量就是整数类型 给变量赋值字符串,变量就是字符串类型 123 和“123”一样吗? 在python中 单引号 与双...

laoba
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部