Answer set programming Clingo答案集编程线交点
我有一个规则,生成以下内容Answer set programming Clingo答案集编程线交点,answer-set-programming,clingo,Answer Set Programming,Clingo,我有一个规则,生成以下内容 route(5,1,5,3) route(5,2,5,3) route(5,3,5,3) route(3,1,3,1) route(2,3,5,3) route(3,3,5,3) route(4,3,5,3) route(4,1,3,1) route(5,1,3,1) route(3,2,3,1) route(3,3,3,1) route(3,4,3,1) route(3,5,3,1) 其中,以下部分是从5,1开始到5,3结束的路线 rout
route(5,1,5,3)
route(5,2,5,3)
route(5,3,5,3)
route(3,1,3,1)
route(2,3,5,3)
route(3,3,5,3)
route(4,3,5,3)
route(4,1,3,1)
route(5,1,3,1)
route(3,2,3,1)
route(3,3,3,1)
route(3,4,3,1)
route(3,5,3,1)
其中,以下部分是从5,1开始到5,3结束的路线
route(5,1,5,3)
route(5,2,5,3)
route(5,3,5,3)
途中(x1、y1、x2、y2)
- x1=第一点的x坐标
- y1=第一点的y坐标
- x2=第二点的x坐标
- y2=第二点的y坐标
我想写一个约束,这样这些路径就不会相互交叉,但我不知道如何解决这个问题。在这件事上,我将不胜感激。我使用了以下规则来防止路线交叉
(X',Y') = (X'',Y'') :- route(X,Y,X',Y'), route(X,Y,X'',Y'').
这不是约束,而是规则。我不确定你的规则是否符合你的意愿。如果您提供生成route/4原子的程序,则可以测试和扩展您的解决方案。