归纳式Mercury编程与生物语法学习的ILP优化
在逻辑编程和生物序列分析领域,归纳式逻辑编程(ILP)有着重要的应用。下面将详细介绍归纳式Mercury编程(IMP)以及用于生物语法学习的ILP优化。
1. IMP的搜索优化
IMP目前实现了一些搜索优化,主要借鉴了ALEPH的思想:
1. 分支限界搜索 :当IMP检测到给定子句的任何细化都不可能超过目前找到的最佳子句的得分时,会在该点进行剪枝。
2. 父覆盖集交集考虑 :当一个子句有多个父子句时,只考虑父覆盖集交集中的示例作为该子句覆盖集的可能成员。
3. 子句ID优化 :每个生成的子句都有一个ID,它是该子句使用的底层子句中文字的有序列表,这样可以去除仅在主体文字顺序上不同的子句。
4. 最大长度子句负例检查 :在考虑最大长度子句时,先检查负例覆盖情况,如果发现覆盖了太多负例,则提前终止覆盖测试。
目前,IMP中只有一些ILP优化,未来有可能将更多高级优化(如查询包、缓存和制表)集成到IMP中。
2. 诱导子句的地面表示
2.1 Prolog与Mercury的差异
在Prolog ILP系统中,诱导子句(包括底层子句)内部构建为术语,随后进行断言以构建诱导理论。而在Mercury中,子句在运行时既不能被断言也不能被撤销,因此诱导子句必须保持为术语,并且由于当前Mercury实现不允许部分实例化的术语,这些术语将是地面术语。
超级会员免费看
订阅专栏 解锁全文
3795

被折叠的 条评论
为什么被折叠?



