3

我从逻辑编程开始,我正在开发一个简单的程序来查找节点之间的最短路径。我能真正理解的唯一教程是关于命令参数的。

有没有办法可以将程序中的 Args 替换为硬编码结构,如列表或其他东西?用asp可以吗?

import com.sap.cxlabs.bewater.logic.asp._
val shortestPath = SModels(Args( %here is where I'd like to use a data structure.
 p.path(X, Y, W) :-(p.start(X), p.edge(X, Y, W)),
 p.path(X, Z, A + B) :- (p.path(X, Y, A), p.edge(Y, Z, B)),
 p.shortest(W) :- (p.end(Y), p.path(X, Y, W), not p.path(X, Y, Z), W < Z),
))
shortestPath.deduct(facts)

编辑 Args 是起始节点、结束节点、边

4

1 回答 1

0

我检查了指南和示例,发现只有实际需要从命令行调用 cligo 的示例,尽管您可以在程序中的#script标签中使用 python 代码。例如这个:https ://github.com/potassco/clingo/blob/master/examples/clingo/addclause/addclause-py.lp

但是,我通常仅将 cligo 用作 python 库,您可以在此处找到一些示例代码: https ://github.com/peschue/ai4eu-sudoku/blob/master/aspsolver/server.py

于 2021-03-22T06:47:53.210 回答