sbass не может прочитать вывод гринго

Я запускаю простую программу ASP:

%Defining possible states of each of the rook space
occupied(t; f).

%Generate all possible grids
{rook(X, Y, D) : occupied(D)} = 1 :- X=2..x, Y=2..y.

%Bound the grid with empty space
rook(X, Y, f) :- X=0, Y=1..y.
rook(X, Y, f) :- X=x+1, Y=1..y.
rook(X, Y, f) :- X=1..x, Y=0.
rook(X, Y, f) :- X=1..x, Y=y+1.

%Surrounding space is considered free path
freePath(X, Y) :- X=0, Y=1..y.
freePath(X, Y) :- X=x+1, Y=1..y.
freePath(X, Y) :- X=1..x, Y=0.
freePath(X, Y) :- X=1..x, Y=y+1.

%Generate empty path from the outside space
freePath(X, Y) :- rook(X, Y, f), freePath(X+1, Y).
freePath(X, Y) :- rook(X, Y, f), freePath(X-1, Y).
freePath(X, Y) :- rook(X, Y, f), freePath(X, Y-1).
freePath(X, Y) :- rook(X, Y, f), freePath(X, Y+1).

%Remove any grid where a rook is not adjacent to a free path
:- rook(X, Y, t), not freePath(X, Y+1),
                  not freePath(X, Y-1),
                  not freePath(X-1, Y),
                  not freePath(X+1, Y).

%Maximize the number of rooks by minimizing empty space
#maximize{1, X, Y : rook(X, Y, t)}.
#show rook/3.

Чтобы попытаться сократить пространство поиска за счет нарушения симметрии, я пытался использовать инструмент sbass, который есть на веб-сайте Potassco.

Я использую Ubuntu 20.04 LTS. После запуска make в файле sbass и получения исполняемого файла я просто запускаю:

gringo ./rooks-game.lp -c x=5 -c y=5 | ./sbass

И это выдает ошибку:

./sbass: unable to read input

Что мне не хватает? Согласно статье, sbass должен просто уметь выводить гринго.

0 ответов

Другие вопросы по тегам