Difference between revisions of "User:Selinger"

From HexWiki
Jump to: navigation, search
(References: Added initials.)
(Created the article on the mustplay region.)
Line 119: Line 119:
 
* [[Climbing]]
 
* [[Climbing]]
  
= Proposed article: Mustplay region =
+
[[category:Edge templates]]
 
+
[[category:Advanced Strategy]]
Informally, a ''mustplay region'' for a player is a set of cells in which the player must move to avoid losing immediately. Mustplay analysis is an important tool for analyzing Hex positions, because it can help narrow down the number of possibilities a player must consider.
+
[[category:Definition]]
 
+
== Example ==
+
 
+
Consider the following position, with Blue to move:
+
<hexboard size="7x7"
+
  coords="show"
+
  edges="all"
+
  contents="R c4 d2 d3 d4 f4 f6 B b3 c3 c5 c6 e2 e3"
+
  />
+
 
+
To determine Blue's mustplay region, Blue should consider the possible ways in which Red could make a connection if it were ''Red's'' turn.  These are called Red's ''threats''. Red has (at least) the following threats:
+
 
+
* If Red plays at e4, Red is [[virtual connection|connected]] by two templates, namely [[edge template II]] and [[edge template IV2d]]. The [[carrier]] of Red's connection is the set of all cells that are required for the connection, and is highlighted: <hexboard size="7x7"
+
  coords="show"
+
  edges="all"
+
  contents="R c4 d2 d3 d4 f4 f6 B b3 c3 c5 c6 e2 e3
+
            R *:e4 S red:(e1--d1--d4--f4 area(f4,f7,c7))"
+
  />
+
 
+
* If Red plays at e5, then Red is connected via two copies of [[edge template II]] and two [[bridge]]s, as shown: <hexboard size="7x7"
+
  coords="show"
+
  edges="all"
+
  contents="R c4 d2 d3 d4 f4 f6 B b3 c3 c5 c6 e2 e3
+
            R *:e5 S red:(e1--d1--d4 area(d4,e4,f5,f7,e7,d5))"
+
  />
+
 
+
* Alternatively, if Red plays at e5, Red is also connected via [[edge template II]] and [[edge template III2e]], as shown: <hexboard size="7x7"
+
  coords="show"
+
  edges="all"
+
  contents="R c4 d2 d3 d4 f4 f6 B b3 c3 c5 c6 e2 e3
+
            R *:e5 S red:(e1--d1--d4 area(d4,e4,f6,f7,c7))"
+
  /> While the last two connections both use a Blue stone at e5, they have different carriers.
+
 
+
* If Red plays at d5, Red is connected via a 3rd row [[ladder]], using f6 as a [[ladder escape]]. In this case, the carrier consists of the path the ladder will take and the space required for the ladder escape: <hexboard size="7x7"
+
  coords="show"
+
  edges="all"
+
  contents="R c4 d2 d3 d4 f4 f6 B b3 c3 c5 c6 e2 e3
+
            R *:d5 S red:(e1--d1--d5 area(d5,f5,f7,c7))"
+
  />
+
 
+
Blue's mustplay region consists of those empty cells that are in the carriers of all of Red's known threats. Therefore, Blue's mustplay region consists of the cells d1, e1, e5, e6, e7, and f7.
+
<hexboard size="7x7"
+
  coords="show"
+
  edges="all"
+
  contents="R c4 d2 d3 d4 f4 f6 B b3 c3 c5 c6 e2 e3
+
            S blue:(d1,e1,e5,e6,e7,f7)"
+
  />
+
 
+
Note that this does not mean that all of d1, e1, e5, e6, e7, and f7 are winning moves for Blue, or even that Blue has any winning moves at all. Rather, what it means is that all ''other'' moves are losing. In other words, if Blue has any winning moves at all, they must be in Blue's mustplay region. Blue must now consider each of the six moves d1, e1, e5, e6, e7, and f7 and check if any of them are winning, or barring that, which one of them is least likely to be losing.
+
 
+
To help narrow down Blue's choices even further, it helps to consider [[captured cell|captured]] and [[dominated cell|dominated]] cells.  In the above example, d1, e1, e7, and f7 are captured by Red, and therefore, Blue should not play there. This leaves Blue with e5 and e6 as the only possible moves to consider. It so happens that e5 is winning and e6 is losing. Therefore, considering the mustplay region has helped Blue identify the only possible winning move. Blue will play e5 and win the game.
+
 
+
== Definition ==
+
 
+
From the point of view of a player, a ''threat'' is a [[virtual connection]] between the opponent's board edges that the opponent can create in a single move. The ''carrier'' of the threat is the set of cells (empty or not) that are required for the virtual connection to be valid. The player's mustplay region is determined as follows:
+
 
+
* Identify as many threats as possible.
+
 
+
* Determine the intersection of the carriers of all of these threats.
+
 
+
* With respect to the chosen set of threats, the ''mustplay region'' is the set of empty cells in that intersection.
+
 
+
== Properties ==
+
 
+
* All moves outside a player's mustplay region are losing. Moves within the mustplay region may be winning or losing.
+
 
+
* If a player's mustplay region is empty, the player is losing.
+
 
+
* If there are no winning moves in a player's mustplay region, the player is losing.
+
 
+
* The mustplay region is not unique. By considering more opponent threats, a player may arrive at a smaller mustplay region.
+
 
+
== Example: no winning move ==
+
 
+
If there are no winning moves in a player's mustplay region, the player is losing. To illustrate this, consider the following position, with Blue to move.
+
<hexboard size="5x5"
+
  coords="show"
+
  edges="all"
+
  contents="R b3 c2 d2 e1 B e2 c3 a4 a3"
+
  />
+
Red's main threats are:
+
* d3, connecting via a [[ziggurat]]: <hexboard size="5x5"
+
  coords="show"
+
  edges="all"
+
  contents="R b3 c2 d2 e1 B e2 c3 a4 a3
+
            R *:d3 S red:(area(e5,b5,d3,e3) d2 e1)"
+
  />
+
* b4, connecting via [[edge template II]]: <hexboard size="5x5"
+
  coords="show"
+
  edges="all"
+
  contents="R b3 c2 d2 e1 B e2 c3 a4 a3
+
            R *:b4 S red:(a5--b5--b3--c2--d2--e1)"
+
  />
+
* c4, connecting via [[edge template II]] and a [[double threat]]: <hexboard size="5x5"
+
  coords="show"
+
  edges="all"
+
  contents="R b3 c2 d2 e1 B e2 c3 a4 a3
+
            R *:c4 S red:(c5,b5,c4,d3,b4,b3,d2,c2,e1)"
+
  />
+
The only empty cell in the carrier of all three threats is b5, hence Blue's mustplay region consists of b5. This means that all moves except possibly b5 are losing for Blue.
+
<hexboard size="5x5"
+
  coords="show"
+
  edges="all"
+
  contents="R b3 c2 d2 e1 B e2 c3 a4 a3
+
            S blue:(b5)"
+
  />
+
Unfortunately for Blue, b5 is also losing, because if Blue plays b5, Red can win as follows:
+
<hexboard size="5x5"
+
  coords="show"
+
  edges="all"
+
  contents="R b3 c2 d2 e1 B e2 c3 a4 a3
+
            B 1:b5 R 2:b4 B 3:a5 R 4:d4"
+
  />
+
Therefore Blue has no winning moves at all and is losing the game.
+
 
+
== Applications ==
+
 
+
=== Foiling ===
+
 
+
Consider the following situation, with Blue to move:
+
<hexboard size="7x7"
+
  coords="show"
+
  edges="all"
+
  contents="R c2 b4 f2 f5 B c4 d4 d5 g3"
+
  />
+
 
+
Red's main threats are:
+
 
+
* e4, connecting via [[bridge]]s and a [[ziggurat]]: <hexboard size="7x7"
+
  coords="show"
+
  edges="all"
+
  contents="R c2 b4 f2 f5 B c4 d4 d5 g3
+
            R *:e4 S red:area(f1,e3,e6,d7,g7,g5,f5,f3,g1)"
+
  />
+
* a6, connecting via a 2nd row [[ladder]] and [[ladder escape]]: <hexboard size="7x7"
+
  coords="show"
+
  edges="all"
+
  contents="R c2 b4 f2 f5 B c4 d4 d5 g3
+
            R *:a6 S red:area(c1,a5,a7,f7,f5,e5,d6,b6,d1)"
+
  />
+
* a6, connecting via a 2nd row [[ladder]] and a slightly different [[ladder escape]]: <hexboard size="7x7"
+
  coords="show"
+
  edges="all"
+
  contents="R c2 b4 f2 f5 B c4 d4 d5 g3
+
            R *:a6 S red:area(c1,a5,a7,g7,g5,f5,e6,b6,d1)"
+
  />
+
 
+
Therefore, Blue's mustplay region consists of the following 5 cells:
+
<hexboard size="7x7"
+
  coords="show"
+
  edges="all"
+
  contents="R c2 b4 f2 f5 B c4 d4 d5 g3
+
            S blue:area(e6,f6,d7,e7,f7) E x:e6 y:f6 z:d7 u:e7 v:f7"
+
  />
+
Of these, y, z, u, and v are losing: if Blue plays there, Red wins by responding at x. Blue's unique winning move is x. This move is also known as a [[foiling]] move, because it takes away Red's template and Red's ladder escape at the same time.
+
 
+
=== Solving Hex puzzles ===
+
 
+
Consider the following puzzle, due to Eric Demer. Blue to move and win.
+
<hexboard size="7x7"
+
  coords="show"
+
  edges="all"
+
  contents="R g3 g2 e5 e3 c5 b5 a2 B d7 e4 d5 c4 b4"
+
  />
+
At first, the situation seems confusing here. Blue's central stones neither seem to have a convincing connection to the left edge nor to the right one.
+
 
+
Mustplay analysis helps clarify the situation. First, let's note that Red's e3 and g3 are already very strongly connected to the top edge; Blue cannot gain anything by intruding into that connection. (In fact, Red has [[captured cell|captured]] rows 1&ndash;3). We therefore concentrate on the bottom part of the board. Within that region, Red's main threats are:
+
 
+
* d4, connecting via [[edge template III2a]]: <hexboard size="7x7"
+
  coords="show"
+
  edges="all"
+
  contents="R g3 g2 e5 e3 c5 b5 a2 B d7 e4 d5 c4 b4
+
            R *:d4 S red:(area(c7,c5,b5,a6,a7),d4,e3)"
+
  />
+
 
+
* f5, connecting via [[double threat]] of f6 and a 2nd row [[ladder]] at d6, for which b5 and c5 are a [[ladder escape]]: <hexboard size="7x7"
+
  coords="show"
+
  edges="all"
+
  contents="R g3 g2 e5 e3 c5 b5 a2 B d7 e4 d5 c4 b4
+
            R *:f5 S red:area(g3,g4,f7,e7,e6,d6,c7,a7,a6,b5,c5,d6)"
+
  />
+
We therefore see that Blue's mustplay region consists of the following six cells:
+
<hexboard size="7x7"
+
  coords="show"
+
  edges="all"
+
  contents="R g3 g2 e5 e3 c5 b5 a2 B d7 e4 d5 c4 b4
+
            S blue:(a6 b6 c6 a7 b7 c7) E x:a6 y:b6 z:c6 u:a7 v:b7 w:c7"
+
  />
+
Of these, x, y, u, v, and w are losing: if Blue plays there, Red can respond at z, re-establishing both threats.
+
The unique winning move for Blue is z. In fact, this is basically a [[foiling]] move.
+
 
+
=== Verification of templates ===
+
 
+
Mustplay analysis is also useful in the verification of templates. In that context, it is sometimes known as ''template reduction''. For example, consider [[edge template V1a]]:
+
<hexboard size="5x10"
+
  visible="area(a5,c3,d3,f1,h1,h2,i2,i3,j3,j5)"
+
  edges="bottom"
+
  coords="none"
+
  contents="R g1"
+
  />
+
 
+
To show that the template is valid, we must show that Blue has no way of disconnecting the template's red stone from the edge. We use mustplay analysis to reduce the number of possiblities. Red's main threats are:
+
 
+
* Connecting via a [[bridge]] to [[ziggurat]], in two different ways: <hexboard size="5x10"
+
  visible="area(a5,c3,d3,f1,h1,h2,i2,i3,j3,j5)"
+
  edges="bottom"
+
  coords="none"
+
  contents="R g1 R *:f3 S red:area(f2,f3,d5,g5,g2)"
+
  /> <hexboard size="5x10"
+
  visible="area(a5,c3,d3,f1,h1,h2,i2,i3,j3,j5)"
+
  edges="bottom"
+
  coords="none"
+
  contents="R g1 R *:f3 S red:area(f2,c5,f5,f3,g2)"
+
  />
+
 
+
* Connecting via [[template IVa]]: <hexboard size="5x10"
+
  visible="area(a5,c3,d3,f1,h1,h2,i2,i3,j3,j5)"
+
  edges="bottom"
+
  coords="none"
+
  contents="R g1 R *:f2 S red:area(e2,c3,a5,g5,g3,f2)"
+
  />
+
 
+
* Connecting via a [[bridge]] and [[template IVa]]: <hexboard size="5x10"
+
  visible="area(a5,c3,d3,f1,h1,h2,i2,i3,j3,j5)"
+
  edges="bottom"
+
  coords="none"
+
  contents="R g1 R *:h2 S red:area(h1,d5,j5,j3)"
+
  />
+
 
+
* Connecting via a [[bridge]] and [[edge template III1b|template III-1-b]]: <hexboard size="5x10"
+
  visible="area(a5,c3,d3,f1,h1,h2,i2,i3,j3,j5)"
+
  edges="bottom"
+
  coords="none"
+
  contents="R g1 R *:f3 S red:area(f2,c5,g5,g2)-e5"
+
  />
+
 
+
* Connecting via [[template IVb]], in two different ways: <hexboard size="5x10"
+
  visible="area(a5,c3,d3,f1,h1,h2,i2,i3,j3,j5)"
+
  edges="bottom"
+
  coords="none"
+
  contents="R g1 R *:f2 S red:area(e2,c3,a5,h5,h3,g2)-e4"
+
/> <hexboard size="5x10"
+
  visible="area(a5,c3,d3,f1,h1,h2,i2,i3,j3,j5)"
+
  edges="bottom"
+
  coords="none"
+
  contents="R g1 R *:g2 S red:area(f2,d3,b5,i5,i3,h2)-f4"
+
  />
+
Therefore, Blue's mustplay region consists of only three cells:
+
<hexboard size="5x10"
+
  visible="area(a5,c3,d3,f1,h1,h2,i2,i3,j3,j5)"
+
  edges="bottom"
+
  coords="none"
+
  contents="R g1 S blue:(f3 f5 d5)"
+
  />
+
To finish verifying the template, it then remains to show that each of these three moves are losing for Blue. See the article on [[edge template V1a]] for the details.
+
 
+
=== Computer Hex ===
+
 
+
Mustplay analysis is used in computer Hex to reduce the number of possibilities that must be considered for a player's next move. This drastically reduces the size of the search tree.
+
 
+
== References ==
+
 
+
R. Hayward, Y. Björnsson, M. Johanson, M. Kan, N. Po, and J. van Rijswijck: [http://webdocs.cs.ualberta.ca/~hayward/papers/s7x7hex1.pdf "Solving 7x7 Hex with domination, fill-in, and virtual connections"], ''Theoretical Computer Science'' 349;123&ndash;139, 2005.
+
 
+
R. Hayward: [http://webdocs.cs.ualberta.ca/~hayward/papers/s7x7hex1.pdf "A puzzling Hex primer"]. In ''Games of No Chance 3'', Cambridge University Press, 56:151&ndash;162, 2009.
+
 
+
[[category:Theory]]
+
[[category:Intermediate Strategy]]
+
[[category:Computer Hex]]
+

Revision as of 01:25, 6 July 2021

Proposed article: Pivoting template

A pivoting template is a kind of edge template that guarantees that the template's owner can either connect the template's stone(s) to the edge, or else can occupy a specified empty hex and connect it to the edge.

More precisely, a pivoting template is a pattern that has a stone A and an empty hex B, such that the template's owner can continuously threaten to connect A to the edge until the point where the template's owner either connects A to the edge or occupies B and connects B to the edge. To be considered a "template", its carrier should moreover be minimal with this property.

Example

The following is a pivoting template.

AB

Proof: Red's main threat is to bridge to c and connect to the edge by ziggurat or edge template III1b. Therefore, to prevent Red from connecting to the edge outright, Blue must play in one of the cells a,...,g.

ABabcdefg

If Blue plays at a, Red responds at b and connects outright by edge template IV1a.

If Blue plays at b, Red responds with a 3rd row ladder escape fork:

A82147635

If Blue plays at c, d, or f, Red responds as follows and is connected by edge template V2f. If Blue plays on the right instead of 3, Red responds as if defending template V2f.

A431211

If Blue plays at e or g, Red responds at c and gets a 2nd or 3rd row ladder, which can reach B by ladder escape fork.

Usage

Pivoting templates can be useful in many situations, but are especially useful in connection with flanks.

[Todo: Add an example.]

More examples

AB
AB
AB
AB

Weak pivoting templates

There is another notion similar to a pivoting template, but slightly weaker. In a weak pivoting template, we merely require that the template's owner can guarantee to either connect A to the edge or occupy B and connect B to the edge, but we drop the requirement that the owner can "continuously threaten to connect A to the edge until" that point. Typically this means that after the player occupies B, the opponent can still choose whether to let the player connect A or B to the edge.

The following are examples of weak pivoting templates:

AB
AB

Weak pivoting templates are sufficient to form a connection when combined with a flank. However, there are some contexts where a proper pivoting template would connect, but a weak pivoting template does not. The following is an example of this:

abcdefghi123456789

The highlighted area is a weak pivoting template, but with Blue to move, the position is losing for Red. On the other hand, if we use a proper pivoting template in the analogous situation, the position is winning for Red:

abcdefghi123456789

See also