L16: AC3 Flashcards

1
Q

What is Geelen’s promise?

A

Having chose n the most constrained variable, choose the value that promises the best chance of finding a solution.

That is, the least constraining value by a different measure from min-conflicts.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

When does value assignment order matter?

A

When searching for one solution, clearly.
By assigning the ‘right’ value each time we will reach a solution in linear steps.

Optimisation: the sooner we find a better solution than the current best, the sooner we can prune more of the search tree.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Does the value assignment order matter if we do not have any solutions, or we want to identify all solutions?

A

In d-way branching, if w have to try all value assignments to exhaust the search space, the order doesn’t matter.

However in binary branching, it can reduce the search tree well.
E.g. If there is no solution, both assignments x = 1 and x ≠ 1 will fail. However with d-way branching, all the values will be explored before concluding that there is no solution.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Where can there be inefficiency in AC3?

A

We are adding arcs to the queue where there is no further propagation.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

How can we anticipate whether an arc will be propagated?

A

Use an optimal arc consistency algorithm such as AC4.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Why is AC3 sub-optimal?

A

AC3 wastes a considerable effort in adding arcs onto the queue whose revision will not lead to any domain pruning. This is the root cause of its sub-optimal time complexity of O(ed^3) where e is the number of edges in the constraint graph, and d is the maximum domain size.

It is possible to produce an optimal arc consistency algorithm.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Explain the granularity of AC3.

A

AC3 is smart about which arcs might need to be revised (coarse-grained). However, it does not know how the support of individual domain elements has been affected by a revision. If we have this fine-grained knowledge, we can save some work.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is a coarse-grained algorithm?

A

Coarse-grained algorithms have a queue Q of arcs. When revise is called for an arc, it doesn’t know which value(s) were deleted.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is a fine-grained algorithm?

A

Fine-grained algorithms have a list of deleted values L. When revising an arc, it knows why (specifically it knows which values were deleted).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is AC4?

A

AC4 is a fine-grained algorithm. For each domain element, we know how many supports it has, and for which other elements it provides support.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is the time complexity of AC4?

A

Worst case: O(ed^2)
- e is the number of edges in the constraint graph
- d is the maximum domain size

Initialisation
- O(ed^2)
- For each arc, double-nested loop of length d
Propagation
- At most O(ed) counters, each decremented at most d times.

This is worst-case optimal.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is the space complexity of AC4?

A

Worst case: O(ed^2)

Initialisation
- At most ed^2 additions to S.
- The M array takes O(nd) space
- The counters array takes O(ed) space

AC3 has a worst-case space complexity of O(e+nd)
- This is optimal: require at least this much just to represent constraint graph and domains.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Compare AC3 and AC4.

A

AC4 worst-case time is better than AC3.

But AC4 always reaches this worst (initialisation of data structures), so people often prefer AC3 to AC4 in practice.

AC3 has a better worst-case space complexity.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Is there a better algorithm than AC3 and AC4?

A

AC2001/3.1

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is the time complexity of AC2001/3.1?

A

Worst-case: O(ed^2)
- e is the number of edges in the constraint graph
- d is the maximum domain size

Each arc(xi, xk) is revised at most d times (since Dk can lose at most d elements).
We traverse Dk (size d) once.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is the space complexity of AC2001/3.1?

A

O(ed)

The queue contains at most e elements.
The data structure Last has size at most ed.
Each element in Di needs a Last entry for each arc (xi, xk).