【问题标题】:Clingo answer set programming line intersectionClingo 答案集编程线交叉点
【发布时间】:2019-11-02 17:37:32
【问题描述】:

我有一个生成以下规则的规则

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 坐标

我想写一个约束,这样这些路线就不会相互交叉,但我不知道如何解决这个问题。在这件事上我将不胜感激。

【问题讨论】:

    标签: answer-set-programming clingo


    【解决方案1】:

    我使用以下规则来防止穿越路线。

    (X',Y') = (X'',Y'') :- route(X,Y,X',Y'), route(X,Y,X'',Y'').
    

    【讨论】:

    • 这不是约束而是规则。我不确定您的规则是否符合您的意图。如果您提供生成 route/4 个原子的程序,则可以测试和扩展您的解决方案。
    猜你喜欢
    • 1970-01-01
    • 2022-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多