https://www.sudopedia.org/index.php?title=Nice_Loop&feed=atom&action=historyNice Loop - Revision history2024-03-28T15:50:56ZRevision history for this page on the wikiMediaWiki 1.34.1https://www.sudopedia.org/index.php?title=Nice_Loop&diff=209&oldid=prevRooted: Created page with "A '''Nice Loop''' is a loop that follows a set of rules and notation guidelines. Several types of chains and loops can also be represented as Nice Loops. The basis fo..."2020-06-04T00:46:43Z<p>Created page with "A '''Nice Loop''' is a <a href="/wiki/Loop" title="Loop">loop</a> that follows a set of rules and notation guidelines. Several types of <a href="/wiki/Chain" title="Chain">chains</a> and loops can also be represented as Nice Loops. The basis fo..."</p>
<p><b>New page</b></p><div>A '''Nice Loop''' is a [[loop]] that follows a set of rules and notation guidelines. Several types of [[chain]]s and loops can also be represented as Nice Loops.<br />
<br />
The basis for a Nice Loop is the [[B/B Plot]], which shows all available strong links in the [[grid]]. The nodes in a Nice Loop are [[cell]]s, not individual [[candidate]]s as in [[Alternating Inference Chain]]s. The links between candidates in a single cell are implied. The connections ''between'' the cells tell us how the candidates ''inside'' are interacting.<br />
<br />
Each Nice Loop is a [[Double Implication Chain]], where implications are propagated in both directions.<br />
<br />
== Nice Loop terminology ==<br />
Please make sure that you understand the following terms, which are explained separately in '''Sudopedia'''.<br />
* [[Strong link]] and [[Weak link]]<br />
* Strong and weak [[inference]]<br />
* [[Node]]<br />
<br />
== Links ==<br />
There must be a link between each pair of nodes in a Nice Loop. For two nodes to be linked, they must be [[peer]]s. The type of link plays an important role. A strong link can be used for strong or weak inference, but a weak link can only be used for weak inference. Hence, there are 3 types of links that can exist between 2 nodes:<br />
<br />
* A '''strong''' link with '''strong''' inference<br />
* A '''strong''' link with '''weak''' inference<br />
* A '''weak''' link with '''weak''' inference<br />
<br />
The last two are equivalent in Nice Loops.<br />
<br />
== Propagation Rules ==<br />
The strict Nice Loop propagation rules ensure that all nodes are properly connected. A loop is not a Nice Loop when it does not comply with these rules.<br />
* When a node has 2 links with strong inference, the digits must be different.<br />
* When a node has 2 links with weak inference, the cell must be [[bivalue]] and the digits must be different.<br />
* When a node has 2 links with different inference, the digits must be the same.<br />
<br />
A chain can only be a loop when it starts and ends with the same cell. This cell forms the first and the last node in the chain. These are separate nodes, each with a single link. Both links do not need to comply with the propagation rules.<br />
<br />
== Continuous and Discontinuous Nice Loops ==<br />
To determine whether a Nice Loop is [[continuous]] or [[discontinuous]], we must examine the first and the last node, representing the same cell. When both links to that cell comply with the propagation rules, the loop is continuous, otherwise it is discontinuous.<br />
<br />
=== Continuous Nice Loops ===<br />
These are rare, but very effective. For every node cell having 2 links with strong inference, all candidates in the cell which are not used in the links can be [[eliminate]]d. All remaining candidates in the [[house]]s that provide the weak links can also be eliminated.<br />
<br />
=== Discontinuous Nice Loops ===<br />
In a discontinuous loop, the first/last cell is referred to as the '''discontinuity'''.<br />
Discontinuous loops are more frequent, but they only have an effect on the discontinuity. This effect depends on the type of links it has to the adjacent nodes.<br />
* When the discontinuity has 2 links with weak inference for a single digit, this digit can be eliminated from the discontinuity.<br />
* When the discontinuity has 2 links with strong inference for a single digit, this digit can be placed in the discontinuity.<br />
* When the discontinuity has 2 links with different inference for 2 different digits, the digit providing the weak inference can be eliminated from the discontinuity.<br />
<br />
== Nice Loop Notation ==<br />
Nice loops are written like chains. The chain always starts and ends with the same cell. In a discontinuous loop, this must be the discontinuity. The cell names are enclosed in square brackets. These names are preferably written in '''[[rncn]]''' notation.<br />
[r1c1]<br />
Links with strong inference are represented by '''=X=''', where '''X''' is the digit. Links with weak inference are represented by '''-X-'''. To make a distinction between continuous and discontinuous loops, a single dash or equal sign is placed at the start and end of the loop to indicate how it continues.<br />
=[r1c1]-1-[r4c1]=1=[r4c5]-1-[r1c5]=1=[r1c1]-<br />
These continuation markers are not present in discontinuous loops.<br />
[r1c1]-1-[r4c1]=1=[r4c5]-1-[r5c6]=1=[r1c6]-1-[r1c1]<br />
<br />
== Examples ==<br />
<br />
This example shows a discontinuous nice loop, where the discontinuity has weak inference:<br />
<br />
[[Image:DiscontinuousNiceLoopWeakLinks.gif]]<br />
<br />
[r1c2]-1-[r3c1]=1=[r9c1]=2=[r9c8]=1=[r1c8]-1-[r1c2] => r1c2<>1<br />
<br />
This example shows a discontinuous nice loop, where the discontinuity has different inference:<br />
<br />
[[Image:DiscontinuousNiceLoopMixedLinks.gif]]<br />
<br />
[r1c1]=5=[r1c5]-5-[r6c5]-9-[r6c3]-6-[r2c3]-7-[r1c1] => r1c1<>7<br />
<br />
This example shows a discontinuous nice loop, where the discontinuity has strong inference:<br />
<br />
[[Image:DiscontinuousNiceLoop4.gif]]<br />
<br />
[r4c2]=8=[r6c2]=6=[r6c8]-6-[r5c8]-2-[r5c5]=2=[r4c5]=8=[r4c2] => r4c2=8<br />
<br />
This example shows a continuous nice loop (note - the loop's squares are green):<br />
<br />
[[Image:ContinuousNiceLoop1.gif]]<br />
<br />
-[r1c5]=4=[r9c5]=7=[r9c9]-7-[r3c9]-4-[r3c2]=4=[r1c1]-4-[r1c5]= => r2c9<>7, r3c4<>4, r9c5<>2<br />
<br />
== External Link ==<br />
* [http://www.sudoku.com/forums/viewtopic.php?t=2143 Nice loops for advanced level players - b/b plot]<br />
* [http://www.paulspages.co.uk/sudokuxp/howtosolve/niceloops.htm Nice loops tutorial]<br />
<br />
== See Also ==<br />
* [[Alternating Inference Chain]]<br />
<br />
{{incomplete}}<br />
<br />
[[Category:Solving Techniques]]<br />
[[Category:Chains and Loops]]</div>Rooted