I open this thread to address an issue that most new players are interested, ie. How to identify a forcing chain?

To all forcing chain expects, could you please post the methods that you are using to identify forcing chains in a grid. If the solver is a computer program, could you tell us the procedures that your program has adopted to look for forcing chains? Personally, I don't know what brute force is and I don't want to know. So, no one should criticise any methods and there is strictly no room here for discussion of trial and error, bifurcation or guessing and stuff like that.

Thanks in anticipation

Here is my method (you may have to refer to the terminology and definition for forcing chains in the other thread):

I identify forcing chains by hand with the help of Angus' solver, called Simple Sudoku. I use a technique called bilocation/bivalue plot. With Simple Sudoku, I solve the grid up to xy-wings and then using the 'Copy Image' function to paste the graphical image of the grid onto an excel spreadsheet. Using the 'Filtering' function in Simple Sudoku, I filter out each candidate in turn to identify conjugate nodes on the copied image. Using the 'Drawing' functions in excel, I draw "strong links" (solid line), each with a label, for conjugate nodes of all 9 digits. I then use the 'Bivalue' function in Simple Sudoku to highlight all bivalue nodes and draw "links" (broken line), each with a label, between these nodes and also connect them to strong links where possible. Of course, there is nothing wrong to draw all these links by hand onto a print-out grid.

Following a set of nice loop propagation rules of valid link label sequence, I perform a pattern recognition process to find if there are any nice loops and during the process I draw additional "links" as necessary. It is similar to the identification of a swordfish or an xy-chain, except that I have all these links to follow. Once a nice loop is identified, a deduction or a bunch of deductions can be concluded corresponding to specific nice loop characteristic. I then express this nice loop in a nice loop notation for record. Each nice loop represents a forcing chain or a forcing net and the same process repeats.

Some easy grids may be solved by one or 2 nice loops. With difficult grids, if a grid still cannot be solved after the first round, the grid will be updated and a second round of identification will be performed.