Solution: Authentic Idiocy


Author: Victor Chan

Solvers are presented with a list of 3D data points ordered numerically, as well as two hyperparameters. The values in the data points are all integers between 1 and 9, inclusive, and are labeled R, C, and V, which can be inferred to mean Row, Column, and Value. Using this information with the flavortext, solvers should realize that these points actually represent the givens of a sudoku.

However, the constructed sudoku cannot have a solution because the givens conflict with each other. The flavortext instructs solvers to run the DBSCAN clustering algorithm on these data points. This can be done programmatically or by hand; because ε^2 is just under 8, solvers can eyeball the values and stratify them into clusters.

Upon completion, solvers should see that while there are several islands of numbers, the “main” cluster consists of exactly half of the givens, and these givens do not conflict with each other. Some progress can be made with these givens, but the sudoku is still indeterminate. However, if the other half of the givens are interpreted as liars, then the sudoku has a unique solution.

The final answer, DUST CART, can be extracted by adding the correct values for the liar cells within each box and taking the corresponding letter of the alphabet.

Initial sudoku (red numbers are liars):


Solved sudoku (red numbers are where the liars were):

4 = D2 + 1 + 3 + 6 + 4 + 5 = U9 + 2 + 4 + 1 + 3 = S
3 + 6 + 4 + 7 = T3 = C
1 = A3 + 2 + 7 + 6 = R2 + 7 + 8 + 3 = T

Author’s Notes

This was the first puzzle that I’ve ever written for a puzzlehunt! I love sudokus, and the intro round was serendipitously in need of a grid logic puzzle. Plus, the solution length was perfect for extraction, with 9 letters including the space.

The other constraint was to tie in the machine learning theme, which inspired me to view the sudoku grid as a set of 3D points. The answer was also an opportune pun for data cleaning. From there, the DBSCAN step was naturally the simplest way for solvers to isolate outliers without the need for any complicated programming algorithms.

Setting the sudoku was the most difficult step in constructing the puzzle. I started with a random placement of liar cells with the correct values for extraction filled out. Then, I constructed the sudoku with most of the givens while validating that the result was still grossly indeterminate. Finally, I used trial and error to place the remaining givens and liar cells to ensure that they would be necessary for a non-trivial solve path. At various points, I wasn’t even sure whether it was possible to construct a sudoku grid with the DBSCAN and liar constraints, but these types of heavily-constrained puzzles are my favorite (one exemplar and source of inspiration is Minor Differences from QoDE). I hope you enjoyed solving it as much as I enjoyed constructing it!