11

How can I prove that at least 8 dominoes are required to allow a placement to which no further domino can be added without two dominoes sharing an edge

Domino grid here

Any help will be appreciated.

edit : For 9 * 9 grid this is the best solution :9*9 grid

Rumi
  • 259
  • I suggest reformulating the question as "How can I prove that on an $8$ x $8$ grid, 8 is the maximum number of dominoes I can place such that no two dominoes share an edge?". In the current formulation, the requirement that the first $8$ dominoes don't share an edge is missing; the claim would be trivially wrong if taken literally. – joriki Jul 19 '18 at 06:09
  • 2
    @JyrkiLahtonen You could easily place 16 dominoes in an admissible configuration. – Parcly Taxel Jul 19 '18 at 06:10
  • @ParclyTaxel: You're right; this is true even under the clarified formulation of the question. – joriki Jul 19 '18 at 06:12
  • @JyrkiLahtonen if I place another domino anywhere it will share an edge with another which is what I don't want. Anywhere on the grid you try and place a domino it will share an edge with the another. This can be accomplished with 8 dominoes and onwards and not 7. 8 is the best solution since it uses a minimum number of dominoes to accomplish this. – Rumi Jul 19 '18 at 06:14
  • 4
    A wild guess: Perhaps one might prove that at least $8$ dominoes are required to allow a placement to which no further domino can be added without two dominoes sharing an edge? Aha -- your new comment above seems to suggest that this is indeed what you had in mind. Then my suggestion above was the wrong clarification of the original question. – joriki Jul 19 '18 at 06:14
  • 1
    I think the wording of the question needs to be changed, otherwise 8 isn't the answer. Seems Joriki's last comment might be the right wording. – coffeemath Jul 19 '18 at 06:17
  • One way I know of is to try every possible domino combination on an 8 x 8 but that is too cumbersome. There has to be a better way maybe something that employs area or perimeter. – Rumi Jul 19 '18 at 06:18
  • 16 is the answer to your question. You can put 2-2 dominos alternatively all 8*2 rectangles(i.e a total of 4 dominos). – Love Invariants Jul 19 '18 at 06:18
  • @LoveInvariants but 16 isn't the least number to place so no more can be added. – coffeemath Jul 19 '18 at 06:20
  • oh least. But how can that be determined. It can be 0 also. – Love Invariants Jul 19 '18 at 06:21
  • 1
    @LoveInvariants on zero you have empty spaces where you can add an domino without it sharing an edge. Similarly this is the case up till 7 where no placement exists such as the one in the picture where adding another domino is impossible without it sharing an edge with the other. – Rumi Jul 19 '18 at 06:23
  • Position of a domino tile can be uniquely determined by its central edge. We have 2×7×8=112 of possible positions of those edges. We can make a graph with 112 vertices and 1948 edges (between position of edge-touching dominoes) with maximal degree of 22. Then the question is too find minimal cover of the graph. Unfortunately, naïve approach gives us the lower bound of ceil(112/23)= 5 (by using walls we can increase it to 6). So some other tricks should be used – Vasily Mitch Jul 19 '18 at 17:36

3 Answers3

6

For the ancient (2018), manual answer go further below.

The modern way to solve problems like this is through integer linear programming – which can always be further converted to a SAT instance, but such conversion is unnecessary here.

There are $112$ binary variables in this problem, the edges across which a domino may be placed. Each variable (edge) has a corresponding constraint expressing that "the virtual domino across this space shares an edge with at least one placed domino".

#!/usr/bin/env python3
from itertools import product
m, n = 8, 8

each edge is labelled by its upper or left square and its orientation (0 for H, 1 for V)

edges = [(i,j,0) for i in range(m-1) for j in range(n)] +
[(i,j,1) for i in range(m) for j in range(n-1)] hitd = {} for (n,(i,j,o)) in enumerate(edges): same = [(i+dij[o],j+dij[1-o],o) for dij in product((-2,-1,0,1,2),(-1,0,1)) if abs(dij[0])+abs(dij[1]) < 3] # same orientation same = [edges.index(e) for e in same if e in edges] opp = [(i+dij[o],j+dij[1-o],1-o) for dij in product((-1,0,1,2),(-2,-1,0,1)) if abs(dij[0]-0.5)+abs(dij[1]+0.5) < 2.9] # opposite orientation opp = [edges.index(e) for e in opp if e in edges] for k in same + opp: hitd[k] = hitd.get(k, []) + [n]

print("Minimize") print("", " + ".join(f"x{n}" for n in range(len(edges)))) print("Subject To") print("\n".join(" " + " + ".join(f"x{n}" for n in hh) + " >= 1" for hh in hitd.values())) print("Binary") print("", " ".join(f"x{n}" for n in range(len(edges)))) print("End")

The above Python program generates an LP file; run it through your favourite LP solver (I used HiGHS) and it will tell you that $8$ dominos is minimal, as claimed.


What seemed a simple question at first turned into a programming challenge. Yes, 8 dominos are required to mandate edge-to-edge contacts with further dominoes, but my eventual approach was somewhat strange…

Instead of thinking about the squares of the grid, think of the edges between adjacent squares, of which there are $2×8×7=112$. Now look at a domino:

A domino and its zone

On the left, the domino itself is in a deep blue. A new domino makes edge-to-edge contact or overlaps the original domino iff the new domino overlaps a light blue square iff the edge between the new domino's two squares coincides with any of the short purple line segments. This set of at most 23 edges I will refer to as the original domino's zone (if close to the board's edge, some segments may lie off the board or fall on the board's boundary; we do not consider such edges).

The problem of placing dominos to mandate edge-to-edge contacts – a dominating covering – now becomes a problem of covering all 112 edges by domino zones. If an edge does not lie in any zone, it can serve as the middle edge of a new domino, with no edge contact.

Now consider the configurations of zones that can cover the two edges incident to a corner square. There are five distinct viable configurations up to reflection, which I will call type 1 to type 5 from left to right:

Corner configurations

The two crossed-out configurations are not viable, because they can be replaced by the configurations immediately below them without uncovering any covered edges. Any dominating covering needs four of these configurations, one for each corner.

We can quite easily show that we can only use at most one instance of the type 4 and type 5 configurations combined. None of the configurations covers the following edges:

Must-be-uncovered edges

Furthermore, at least two zones are required to cover these edges, which means that the corner configurations can use at most five zones.

The last step is to prove that none of the combinations of corner configurations with five and four zones extend to a complete dominating covering on 7 dominos. For this I turned to the computer, brute-forcing each combination of corner configurations and remaining domino zones to show that every one of them could not cover all 112 edges, in a manner reminiscent of Zygalski sheets. The (Python + NumPy) code can be found here. Briefly, I eliminated type 5 from consideration first, showing that no dominating covering could use it. Then I did the same with types 4, 1, 2 and finally 3, proving the non-existence of 7-domino dominating coverings of the 8×8 board.

However, there do exist near-dominating coverings that cover 111 of 112 edges (leaving exactly one place for a new domino without making edge contact). Here is one:

The SVG source of the images in this answer can be found here.

Parcly Taxel
  • 105,904
  • Can this approach be applied to any n * n grid then ? For instance 4 x 4 would have the optimum solution of 2 ? – Rumi Jul 19 '18 at 06:39
  • 2
    Parcly-- In the placement of OP diagram, there are 11 squares not in zones. So in that sense goal not to place dominoes so zones cover all 64 squares. Some covered squares (3 I think) in OP diagram are shared by 2 zones... and with 7 dominoes whose zones cover the max of 56 squares, there may be say 8 squares not in zones; this doesn't seem immediately impossible given OP diagram where 11 are not in zones. As you can see I may be confused about your argument. – coffeemath Jul 19 '18 at 08:14
  • @ParclyTaxel I agree with the above comment now. For a 9 by 9 grid I have a solution of 9. 8 * 9 is 72 which is less then 9 * 9 = 81, yet this grid still works. – Rumi Jul 19 '18 at 08:27
  • 4
    Parcly Taxel, I thought of this argument in the morning, too. But for it to work you need to show that those 7x8 squares cannot be distributed in such a way that the only remaining holes are isolated. After all, to place a domino according to the rules you need two adjacent squares outside of the forbidden zone.. – Jyrki Lahtonen Jul 19 '18 at 11:53
  • @JyrkiLahtonen proof done, see updated answer. – Parcly Taxel Jul 19 '18 at 17:20
  • Great! ${}{}{}$ – Jyrki Lahtonen Jul 19 '18 at 17:54
  • Minor gap alert: There is another corner configuration not listed here: placing two dominoes at c12 and ab3 (using chess notation, see my answer), i.e., walling off a little 2x2 corner of uncovered space. It is not among the 5 (or 7) you listed, but I didnt check your code to see if it's in there. – antkam Jul 19 '18 at 19:35
  • @antkam That configuration is not viable. It can be replaced by the type 4 configuration without losing edge covers. – Parcly Taxel Jul 19 '18 at 19:52
  • @ParclyTaxel - i'm just pointing out that it's not listed. also, "replacing X by Y without losing edge covers" is valid but also contains a very VERY minor gap: you need to show that replacing X by Y can be done without the dominoes overlapping. e.g. when you replace ab8 by bc7, how do you know that c7 is not already occupied by a different domino? lemme be clear: i think this issue is very VERY minor and can be fixed (probably tediously). overall i buy your answer. just pointing out a tiny gap, that's all. :) – antkam Jul 19 '18 at 20:16
  • The "do" in "domino" means "two", so that extended figure is technically not a domino, but an "octomino" (I guess, I've never seen that word, just extrapolated from what I do know). – Henrik supports the community Jul 20 '18 at 07:52
  • Can you please explain how you got 112.@parclytaxel – Srinivasa Ramanujan Jul 20 '18 at 06:05
  • @Henrik They are called octominos, yes. But I don't look at the squares here, rather the edges. – Parcly Taxel Jul 20 '18 at 12:16
1

Partial answer only...

Naming: We will call the initial set of dominoes the "blockers". They collectively make it impossible to place an "invader" domino without the invader sharing an edge with some blocker. The OP asks for a proof that $N=8$ blockers are necessary on an $8 \times 8$ board. My answer proves a lesser result:

If the blockers are not allowed to touch the board edges, then $N=8$ are necessary and sufficient.

Sufficiency:

8 . . . . . . . . 
7 . x . x . x x .
6 . x . x . . . . 
5 . . . . . x x .
4 . x x . . . . . 
3 . . . . x . x .
2 . x x . x . x . 
1 . . . . . . . .
  a b c d e f g h

Necessity:

Since the blockers are not allowed to touch any board edge (in my version), some blocker must occupy b2 in order to prevent an invader at a12. Similarly blockers must occupy b7, g2 & g7. These 4 blockers, no matter how each is oriented, will leave de1, de8, a45, h45 as 4 possible locations for the invader. We will need an extra blocker to eliminate each of these 4 possible invader locations. Thus 8 blockers are necessary.

Further thoughts: As mentioned, this proof is incomplete. I tried to prove that allowing blockers to touch the board edges (as in the OP sample solution) cannot make the blocking task EASIER (i.e. $N < 8$), but without success... Simple transformations don't seem to work. E.g. in the OP solution, the blockers at a34 and cd1 collectively prevent any intruder at a1, and we cannot move either blocker off the board edge without a whole series of other moves.

antkam
  • 15,638
0

Maybe this helps.
Least no. of dominoes which can be placed on $8\times 6$ rectangle is $4$. You can prove it by dividing $8\times 6$ rectangle into $4, 4\times 3$ rectangles.
The remaining $8\times 2$ grid can have 4 dominoes.