10.02.2013 Views

A User's Guide to gringo, clasp, clingo, and iclingo

A User's Guide to gringo, clasp, clingo, and iclingo

A User's Guide to gringo, clasp, clingo, and iclingo

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

2<br />

4.2.3 Problem Solution<br />

3<br />

3<br />

1<br />

3<br />

2<br />

6<br />

2<br />

1 2<br />

4<br />

Figure 6: A Minimum-Cost Round Trip.<br />

1<br />

4<br />

Finally, we explain how the unique minimum-cost round trip (depicted in Figure 6)<br />

can be computed. The catch is that we are now interested in optimal answer sets, rather<br />

than in arbitrary ones. In order <strong>to</strong> determine the optimum, we can start by gradually<br />

decreasing the costs associated <strong>to</strong> answer sets until we cannot find a strictly better one<br />

anymore. <strong>clasp</strong> (or <strong>clingo</strong>) enumerates successively better answer sets w.r.t. the<br />

provided optimization statements (cf. Section 3.1.11). Any answer set is printed as<br />

soon as it has been computed, <strong>and</strong> the last one is optimal. If there are multiple optimal<br />

answer sets, an arbitrary one among them is computed. For the graph in Figure 5, the<br />

optimal answer set (cf. Figure 6) is unique, <strong>and</strong> its computation can proceed as follows: To compute the minimum-cost<br />

Answer: 1<br />

cycle(1,3) cycle(2,4) cycle(3,5) \<br />

cycle(4,1) cycle(5,6) cycle(6,2)<br />

Optimization: 13<br />

Answer: 2<br />

cycle(1,2) cycle(2,5) cycle(3,4) \<br />

cycle(4,1) cycle(5,6) cycle(6,3)<br />

Optimization: 11<br />

5<br />

2<br />

2<br />

2<br />

round trip for the graph in Figure<br />

5, invoke:<br />

<strong>gringo</strong> \<br />

\<br />

| \<br />

<strong>clasp</strong> -n 0<br />

or alternatively:<br />

<strong>clingo</strong> -n 0 \<br />

\<br />

Given that no answer is obtained after the second one, we know that 11 is the optimum<br />

value, but there might be more optimal answer sets that have not been computed<br />

yet. In order <strong>to</strong> find them <strong>to</strong>o, we can use the following comm<strong>and</strong> line options of<br />

<strong>clasp</strong> (cf. Section 5.4): “--opt-value=11” in order <strong>to</strong> initialize the optimum<br />

<strong>and</strong> “--opt-all” <strong>to</strong> compute also equitable (rather than only strictly better) answer<br />

sets. After obtaining only the second answer given above, we are sure that this is the The full invocation is:<br />

unique optimal answer set, whose associated edge costs (cf. Figure 6) correspond <strong>to</strong> <strong>gringo</strong> \<br />

\<br />

the reported optimization value 11. Note that, with #maximize statements in the<br />

| \<br />

input, this correlation might be less straightforward because they are compiled in<strong>to</strong> <strong>clasp</strong> -n 0 \<br />

#minimize statements in the process of generating lparse’s output format [53]. --opt-value=11 \<br />

Furthermore, if there are multiple optimization statements, <strong>clasp</strong> (or <strong>clingo</strong>) will --opt-all<br />

or alternatively:<br />

report separate optimization values ordered by significance. Finally, the two-stage in- <strong>clingo</strong> -n 0 \<br />

vocation scheme exercised above, first determining the optimum <strong>and</strong> afterwards all --opt-value=11 \<br />

(<strong>and</strong> only) optimal answer sets, is recommended for general use. Otherwise, if using --opt-all \<br />

option “--opt-all” right away without knowing the optimum, one risks the enumer-<br />

\<br />

36

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!