Clingo 答案集编程行交集
Clingo answer set programming line intersection
我有一个生成以下内容的规则
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(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'').