在回答集编程中寻找相似/多样解
人工智能
2013-09-19 v1 计算机科学中的逻辑
编程语言
摘要
对于某些计算问题(例如产品配置、规划、诊断、查询回答、系统发育重建),计算一组相似/多样的解可能有助于更好的决策。基于此动机,我们在回答集编程(ASP)的背景下研究了该问题的几个决策/优化版本,分析了它们的计算复杂性,并引入了离线和在线方法来计算这些计算问题相对于给定距离函数的相似/多样解。所有这些方法都依赖于通过寻找描述问题的ASP程序的回答集来计算问题的解。离线方法预先使用ASP求解器(如Clasp)通过问题的ASP公式计算所有解,然后使用聚类方法识别相似/多样解。在线方法通过以下三种方法之一计算相似/多样解:通过重新表述问题的ASP表示,使用ASP求解器一次性计算相似/多样解;通过使用ASP求解器迭代计算相似/多样解(一个接一个);通过修改ASP求解器的搜索算法来增量计算相似/多样解。我们修改了Clasp以实现最后一种在线方法,并将其命名为Clasp-NK。在前两种在线方法中,给定的距离函数用ASP表示;在最后一种方法中,它用C++实现。我们展示了这些方法在印欧语系相似/多样系统发育重建以及积木世界中的几个规划问题上的适用性和有效性。我们观察到,在计算效率方面,最后一种在线方法优于其他方法;此外,当距离函数无法用ASP表示时,它允许我们计算相似/多样解。
引用
@article{arxiv.1108.3260,
title = {Finding Similar/Diverse Solutions in Answer Set Programming},
author = {Thomas Eiter and Esra Erdem and Halit Erdogan and Michael Fink},
journal= {arXiv preprint arXiv:1108.3260},
year = {2013}
}
备注
57 pages, 17 figures, 4 tables. To appear in Theory and Practice of Logic Programming (TPLP)