Clingo ответ установить программирование пересечения линии - PullRequest
0 голосов
/ 02 ноября 2019

У меня есть правило, которое генерирует следующее

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 координата второй точки

Я хочу написать ограничение, чтобы эти маршруты не пересекались, но я не уверен, как решить эту проблему. Буду признателен за любую помощь в этом вопросе.

1 Ответ

1 голос
/ 15 ноября 2019

Я использовал следующее ограничение для предотвращения пересечения маршрутов.

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