This section provides an overview of GNPX v5 link notation, classes, algorithms, etc. Accurate understanding requires reading the GNPX code.
Please note that i are still in the process of sorting things out and the consistency is not yet complete.

 eNetwork

 (1) ULogical_Node

This is a basic element class in eNetwork. It has the attributes of "position, digit, and status (affirmative or negative)" of cells and cell groups.

 (2) eNetwork_Node

 (3) eNetwork_Link

 (4) Implementation of nodes and links in GNPX v5

During the analysis of a Sudoku position, nodes dynamically manage attribute values
When a link is connected to a confirmed node, the state attribute value of the terminal node is confirmed (+/-) and the node is registered in the list (peNetwork_NodeList).
When searching a network, if the state attribute value (+/-) of a node is determined by multiple routes, the search beyond that point can be omitted if the attribute values are the same. If they do not match, it is a contradiction and the premised proposition is false.
In order to handle multiple routes, we adopted a method in which the nodes at both ends of the link do not have state attributes, and the state attributes of the network nodes are managed separately. (This is how to implement in GNPX. There are other ways.)

(5) network search

Once the state attributes of the starting node are determined, we can extend the links that connect to it, and then extend them further... to create a network. This network may form Locked. In other words, it is a Sudoku analysis algorithm.
There are two types of network exploration: radial and loop.

    Radial network search algorithm:
  1. For all links connecting to the starting node, find the state attributes of the terminal node.
  2. If the node is not registered, register it in the node and state attributes. Also, register it in the next search queue.
  3. If the node is registered and the state attributes match, do nothing.
  4. If the node is already registered and the state attributes do not match, the process ends with the discovery of an "inconsistency".
  5. If the target node is reached or if the Queue is empty, exit.
    If not, take the node from the Queue and repeat from 1.
Loop type network search changes the processing at the start of the search from "all links" to "1 link". Leave space for the links that form the loop. After the second link, all links connecting to the node are searched.

Radial Search Loop Search



Top