  Wang tiles enable efficient pattern compression while avoiding the
periodicity in tile distribution via programmable matching rules. However, most
research in Wang tilings has considered tiling the infinite plane. Motivated by
emerging applications in materials engineering, we consider the bounded version
of the tiling problem and offer four integer programming formulations to
construct valid or nearly-valid Wang tilings: a decision, maximum-rectangular
tiling, maximum cover, and maximum adjacency constraint satisfaction
formulations. To facilitate a finer control over the resulting tilings, we
extend these programs with tile-based, color-based, packing, and variable-sized
periodic constraints. Furthermore, we introduce an efficient heuristic
algorithm for the maximum-cover variant based on the shortest path search in
directed acyclic graphs and derive simple modifications to provide a $1/2$
approximation guarantee for arbitrary tile sets, and a $2/3$ guarantee for tile
sets with cyclic transducers. Finally, we benchmark the performance of the
integer programming formulations and of the heuristic algorithms showing that
the heuristics provides very competitive outputs in a fraction of time. As a
by-product, we reveal errors in two well-known aperiodic tile sets: the Knuth
tile set contains a tile unusable in two-way infinite tilings, and the Lagae
corner tile set is not aperiodic.
