packages feed

set-cover-0.1: Changes.md

# Change log for the `set-cover` package

## 0.1

 * `SetCover.Exact.decisionTree`, `SetCover.Exact.Priority.decisionTree`:
   Allow the programmer to generate human-friendly solutions.

 * `SetCover.Cuboid`: `dx`, `dy`, `dz` -> `rotX`, `rotY`, `rotZ`

 * `SetCover.Bit`: method `complement` replaced by `difference`.
   This way, we do not need the cumbersome `SetCover.IntSet` module anymore.

 * `SetCover.BitMap` made private.

 * `SetCover.BitPriorityQueue` made public.

 * `SetCover.Exact.State.usedSubsets`: Only store labels, not assignments.
   This is consistent with `SetCover.Exact.Priority.State`.

 * `SetCover.Exact.minimize`: allow an empty list of available subsets
   `SetCover.Exact.step`, `SetCover.Exact.Priority.step`:
   They do not need to test for an empty `availableSubset` anymore.

 * `SetCover.Exact.step`: Require non-empty set of free elements.
   This is consistent with `SetCover.Exact.Priority.step`.
   Until now, `step` returned an empty list if the were no free elements.
   This is not very helpful
   since it will throw away already completed solutions.
   The test is also redundant when `step` is called from `search`.

## 0.0.8

 * `SetCover.Exact.Priority` implements the Algorithm X
   using a priority queue that registers the sets
   each element is contained in.
   This allows for drastic speedup of the `Nonogram` example.

## 0.0.7

 * `ESC.bitVectorFromSetAssigns` allows to turn sets
   into bit vectors without manual bit position gymnastics.

 * Use it in `Sudoku` and `Nonogram` examples.

## 0.0.6

 * Add `SetCover.Exact.Set` instances for `Map`, `Integer`, `IntSet`.

## 0.0.5.1

 * `example/Nonogram`: explore different encodings of the problem