Way back in 2000, an aggregate company asked a colleague of mine if it was possible to write software that could simplify the task of
laying paving slabs of different sizes to make a random patio. Later we chatted about the problem (he likes maths as much as I do) and
after a while we came up with ideas to test some of the principles involved. It sounds quite easy to do, but combinations of stones can
lead to areas that can't be filled, or will be likely to result in tram lines (where the paving slabs form long unsightly lines running
in either X or Y across the whole plot.
It turns out this this problem belongs to a class of math problems known as non polynomial indeterminates (NPN Hard) characterised as
having no right answer, just grades of answers ranging from really bad to really good. The trick was to code something that could get
very close to a good answer but then provide additional editing tools to allow further improvement.
The software was coded in VB6, distributed for free and each year was revamped at the companies request so that new ranges of pavers (with
different dimensions) could be added. In the link below a company is distributing it within their body copy. From time to time I get
complimentary emails from landscape gardeners about this software, which is always a bit of a treat for me.