potassco / clasp

⚙️ A conflict-driven nogood learning answer set solver

Home Page:https://potassco.org/clasp/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Bug with --pre option

javier-romero opened this issue · comments

Hi! For the following program, clasp --pre option does not print correctly the minimize statement.

$ cat bug.aspif 
asp 1 0 0
1 0 1 14 0 0
1 0 1 15 0 1 16
1 0 1 17 0 1 18
1 0 1 18 0 1 17
1 0 1 16 0 1 15
1 0 1 19 0 1 16
1 0 1 20 0 1 18
1 0 1 21 0 1 19
1 0 1 21 0 1 20
1 0 1 24 0 1 -21
1 0 1 25 0 1 24
1 0 0 0 1 25
1 0 1 26 0 1 24
1 0 0 0 1 26
1 1 2 18 16 0 1 14
1 0 1 27 1 1 2 18 1 16 1
1 0 1 28 1 2 2 18 1 16 1
1 0 1 29 0 2 27 -28
1 0 0 0 2 14 -29
2 0 2 19 138629 20 28768
4 17 query(roll(d1,6)) 0
4 10 roll(d1,6) 1 15
4 10 roll(d1,1) 1 17
0
$ cat bug.aspif | clasp 0 --opt-mode=optN --verbose=0
query(roll(d1,6)) roll(d1,1)
Optimization: 28768
query(roll(d1,6)) roll(d1,1)
Optimization: 28768
OPTIMUM FOUND
$ cat bug.aspif | clasp --pre | clasp 0 --opt-mode=optN --verbose=0
query(roll(d1,6)) roll(d1,1)
Optimization: 0
query(roll(d1,6)) roll(d1,1)
Optimization: 0
query(roll(d1,6)) roll(d1,6)
Optimization: 0
OPTIMUM FOUND

The problem actually occurs with any kind of equivalence. Even in something simple like:

{a}.
b :- a.
#minimize{1:b}.

@javier-romero @rkaminsk Thanks for the report. Pushed a fix to dev.

Thanks, that was quick. And the patch does not look too complicated. 😄