From:           Yann DAVID <100552.1400@CompuServe.COM>
Date:           5 Jan 1997 19:20:19 GMT
Newsgroups:     comp.theory,rec.puzzles,sci.logic,sci.math
Subject:        Polymino inclusion problem

Hello.

Problem: given a finite family of polyminoes (of any sizes), is the set
of the polyminoes that do NOT contain any member of the family finite
or infinite?

NB:
- polyminoes are those geomatrical figures obtained by sticking some
  squares together along their sides (so as to come up with a connex
  result);
- a polymino A is said to contain a polymino B if one can cover an
  instance of B with an instance of A; in other words, one can get a 'B'
  by chopping off some squares from a 'A'.

My question is: what is the status of the above problem? That is, is there
any general solution to it? If not, is the problem [known to be]
undecidable? If yes, what is its complexity?

The problem was suggested by "Winning Ways" (Berlekamp, Conway & Guy),
volume 2, page 684 -they exhibit a finite family of polyminoes that
are distinguished by the fact that they do not contain any member of 
another finite family of poliminoes.

All I have found out so far is the pretty obvious fact that the set of
the polyminoes which do not contain any instance of the "target" family
is finite if and only if there is a generation of polyminoes (all the
polyminoes of a given size) such that every member of the generation
contains at least one member of the family. All subsequent generations
share, of course, the same property. The problem can then be restated
in terms of finding the order of a "critic" generation, given a target
family (one would have "only" to test every member of the critic generation
- does it contain any member of the target family? that question is NOT
difficult - so as to decide whether the non-containing set is finite or
not.

Notice that the reverse problem is quite entertaining too: given a finite
family of poliminoes, is there any other finite family such that the first
one is the family of all those that do not contain any member of the
second one?

Have fun! All suggestions, clues, hints, remarks, references & solutions
are welcome.

Best regards,

	Yann David
	100552.1400@compuserve.com
	FRANCE

NB: Since I am not a regular reader of this newsgroup,
please e-mail your answers; I'll post a summary of the interesting
ones (if any! :).

"Vous mariez pas, les filles!" - Boris Vian

From:           Yann DAVID <100552.1400@CompuServe.COM>
Date:           31 Jan 1997 20:09:45 GMT
Newsgroups:     comp.theory,rec.puzzles,sci.logic,sci.math
Subject:        POLYOMINOES EXCLUSION SET - ANSWERS

Hello.

Here are the answers I received in response to my post about
polyominoes excluding a finite set of polyominoes (are there
finitely or infinitely many of them?). We did not come up
with any definite solution, but there were some very interesting
hints towards a plausible solution.

Here goes:

Original post:

Problem: given a finite family of polyminoes (of any sizes), is the set
of the polyminoes that do NOT contain any member of the family finite
or infinite?

NB:
- polyminoes are those geomatrical figures obtained by sticking some
  squares together along their sides (so as to come up with a connex
  result);
- a polymino A is said to contain a polymino B if one can cover an
  instance of B with an instance of A; in other words, one can get a 'B'
  by chopping off some squares from a 'A'.

My question is: what is the status of the above problem? That is, is there
any general solution to it? If not, is the problem [known to be]
undecidable? If yes, what is its complexity?

The problem was suggested by "Winning Ways" (Berlekamp, Conway & Guy),
volume 2, page 684 -they exhibit a finite family of polyminoes that
are distinguished by the fact that they do not contain any member of 
another finite family of poliminoes.

All I have found out so far is the pretty obvious fact that the set of
the polyminoes which do not contain any instance of the "target" family
is finite if and only if there is a generation of polyminoes (all the
polyminoes of a given size) such that every member of the generation
contains at least one member of the family. All subsequent generations
share, of course, the same property. The problem can then be restated
in terms of finding the order of a "critic" generation, given a target
family (one would have "only" to test every member of the critic generation
- does it contain any member of the target family? that question is NOT
difficult - so as to decide whether the non-containing set is finite or
not.

Notice that the reverse problem is quite entertaining too: given a finite
family of poliminoes, is there any other finite family such that the first
one is the family of all those that do not contain any member of the
second one?

Wei-Hwa Huang wrote:

(1st message)
>I don't know about the the problem, but if it is true, it would sound
>very similar to Sylvester's Theorem and make a darned good variation
>of Sylver Coinage. 

(2nd message)
>Sylvester's Theorem (in this case; he had a lot of other theorems)
>says that given any two relatively prime positive integers, only
>a finite number of positive integers cannot be expressed as a sum
>of non-negative multiples of these two integers.
>
>For instance, all integers greater than 100 can be expressed as
>some non-negative multiple of 9 plus some non-negative multiple of
>10.
>
>In Winning Ways the game Sylver Coinage is introduced; basically,
>two people alternate saying positive integers, where you cannot say any 
>integers that can be expressed as a sum of non-negative multiples of
>all the integers previously said.  
>
>The person who says 1 loses.
>
>You can see the similarity between your game and Sylver Coinage, I hope.

Dan Hoey wrote:	

>The word "polyomino" is the more widely-used term, or "n-omino" for
>what you call "generation n".
>
>I haven't heard of your problem before, even of it being posed.  I'll
>have a look at _Winning Ways_.  Do you know of any other references?

I answered:

You won't find a clear statement of that problem in _Winning Ways_,
it is just hinted at there. I don't know of any other reference, but
such a simple problem must have been posed in some book or article
already.

He wrote:

>Now that I've looked it up, I see.  One thing I see is that the
>problem is very close to the "unavoidable subgraph" problem that was
>used in solving the four-color theorem.  We ask whether given a finite
>set of graphs H and an infinite set of graphs G, whether all but
>finitely many elements of G have an element of H as subgraph.  In that
>general setting, I'm almost certain it's undecidable.  I don't know if
>there's any way to make it easier by using the fact that G is a
>representation of the polyominoes.
>
>While looking it up, I ran across the Sprouts discussion, and the
>FTOZOM.  It looks surprisingly like another instance of the same
>problem.

David Moews made, in my opinion, the most interesting contribution. He wrote:

>Given any polyomino P, let G(P) be the (connected) graph obtained from P
>by placing a vertex at each square of P and joining two vertices iff their
>squares are neighboring.  Call P a snake if G(P) is a path.  Now we can
>restrict our attention to snakes, in the sense that 
>
>   given a family S, the set of polyominoes not containing any member of S 
>   is finite iff the set of snakes not containing any snake member of S is 
>   finite.
>
>The left-to-right implication is obvious, since no snake can contain a
>non-snake.  For the right-to-left implication, if there are infinitely
>many polyominoes not containing any member of S, then there must be
>polyominoes of arbitrarily large size not containing any member of S,
>and we can trim these polyominoes down to arbitrarily long snakes which
>cannot contain any snake member of S.
>
>We can code snakes by strings: e.g., given a snake
>
>                      ***
>                    *** **
>                    *
>
>we can code it as *AB*CD*CD*AB*CD*CD*BA*CD*, writing a * for each square, AB
>for a move up, BA for a move down, CD for a move right, and DC for a move
>left.  With this code each snake has exactly 2 representations which are
>reversals of each other (depending on which end you start from,) and snake 
>X contains snake Y just when Y's string is a substring of X's string or the
>reversal of X's string.  Unfortunately this does not reduce the problem to 
>the corresponding problem about strings (which would be decidable) because 
>there are many strings which look very much like snakes but are not, owing to 
>self-intersection, e.g., *AB*AB*CD*CD*BA*BA*DC*DC*.
>
>
>|...
>|Notice that the reverse problem is quite entertaining too: given a finite
>|family of poliminoes, is there any other finite family such that the first
>|one is the family of all those that do not contain any member of the
>|second one?
>
>Obviously, the first family has to be closed under downwards inclusion.
>Given that it is, and that the maximal order of polyomino present in the
>first family is N, we can let the second set contain all polyominoes of
>order <=N+1 not present in the first.
>-- 

As I asked why the string problem he stated was decidable, he answered:

>If we have a set S of strings over some alphabet, e.g., {ABC, CCC, CB}
>over the alphabet {A, B, C}, it's easy to write down a regular expression
>that recognizes all strings containing some member of S (in this case,
>
>      ((A|B|C)*ABC(A|B|C)*)|((A|B|C)*CCC(A|B|C)*)|((A|B|C)*CB(A|B|C)*).)
>
>Now it's known that the languages recognized by regular expressions are the
>same (and in fact, effectively the same) as those recognized by finite
>automata; but it's easy to complement the language recognized by a finite 
>automaton (just complement the set of accepting states.)  Hence we can also 
>write down a regular expression that recognizes the set of all strings not 
>containing some member of S.  Then all we have to do is decide whether this 
>expression recognizes infinitely many strings.  This is easy since it 
>recognizes infinitely many strings iff it contains a nonempty expression 
>followed by *.
>
>An alternate proof: let the maximal word length occurring in S be m.
>Start at the empty word, and begin producing a tree of words not containing 
>any member of S by adding all possible characters at the end of the word.  
>If the set of words excluding S is finite, we will eventually stop and realize 
>this.  If not, a node W will eventually occur in the tree such that an ancestor
>V of W has the same last m characters as V.  Then if we write W=VQ,
>{V, W=VQ, VQQ, VQQQ, VQQQQ, ...} is an infinite set of words excluding S.
>
>I am sure there are much better algorithms available. 

I first thought his second algorithm was transposable to polyominoes:

It looks to me like your tree algorithm for strings works just fine
when applied to snakes, resorting to some string representation of
them - the one you introduced, or more simply we can denote the moves 
by E, N, W, S and the nodes by *. When examining whether a snake (A)
contains another one (B), we have to take into account several
representations of B - depending on the geometrical transformations
that map a snake onto an equivalent one (we may retain translations
and/or rotations and/or reflexions), and for each position there are
two descriptions, one starting at each end of the snake. The same
transformations should be considered while developping the snake
tree :) Anyway, these are only details which are easily managed, my
point is that the key idea of the algorithm remains valid; in short:
developping the tree until it can't be developped any more - it is
finite - OR we run accross some node w such that w=vquq and vq is an
ancestor of w and the length of q is the same as that of the longest
snake in the family. Therefore we're left with yet another complexity
problem.

What do you think?

David Moews answered:

>I agree that congruences changing the string representation of a snake
>pose no problem (I did not mention these earlier because I was not sure
>whether you were considering a polyomino as containing congruent images
>of its subpolyominoes or not.)  Unfortunately there is a larger problem,
>because of the fact that some strings which seem to represent snakes
>in fact self-intersect.  For example, suppose we wish to find all snakes not
>containing any polyomino congruent to a member of the following set S:
>
> **    *
>**     ***     ****
>         *
>
>There are infinitely many strings not containing the string representation of
>these snakes: in fact, any initial segment of
>
>*E*E*N*N*W*W*S*S*E*E*N*N*W*W*S*S*E*E*N*N*W*W*S*S*....   (to use your notation)
>
>is OK.  However, these strings do not correspond to infinitely many snakes, 
>because unless an initial segment of the above string is sufficiently short, 
>it self-overlaps, so, in fact, the only snakes avoiding S are subpolyominoes of
>
>***
>* *
>***   .  For a more difficult example, take S' to be
>
> **    *      *
>**     ***    ****    *****        ;
>         *       *
>
>then any string of the form 
>
>(*E)^a (*N)^b (*W)^c (*S)^d (*E)^e (*N)^f ...     (a,b,c,d,e,f,... in {2,3})
>
>would seem to be OK (where (T)^i denotes i repetitions of the string T),
>but again there are only finitely many snakes avoiding S'.
>--

I answered:

I think we are left with two main problems:

1)  Designing an algorithm to find out whether, given a polymino P, a node n on P, and a snake S, we can attach a infinite series of instances of S to n which has got n as only intersection with P;

2) Proving that, if there are infinitely many polyminos avoiding the target set, then there are two snakes V and Q such that the polyminos {V, VQ, VQQ...} are indeed snakes avoiding the target family.

Given an excluding snake W ending with the same last n moves as one of its ancestor V (W=VQ), we could check whether {VQ, VQQ, VQQQ...}, is a set of snakes, thanks to 1);
2) would garantee that we would eventually stumble against a proper (V, Q) pair whenever the avoiding set would be infinite.

Now, 1) looks pretty easy : 
a) check whether {S, SS, SSS...} are valid snakes : they are iff SS is a snake;
b) (if a) holds) consider PS, PSS, PSSS... until you obtained a intersection OR the [city block] distance of each node of the (n+1)th instance to each node of P is bigger than that of its counterpart in the nth instance to the same node of P (I hope that makes sense :) .

But 2) is just a personal guess... Maybe an infinite excluding set can have some sort of an odd "spiral" structure ?

That's all folks! I know it's been a bit lengthy, but if You have found
it inspiring anyway, don't hesitate to send me your suggestions. 

Cheers,

	Yann David
	100552.1400@compuserve.com
	FRANCE

NB: Since I am not a regular reader of this newsgroup,
please e-mail your answers; I'll post a summary of the interesting
ones (if any! :).

"Vous mariez pas, les filles!" - Boris Vian