Comparing Algorithmic Approaches to Solving Sudoku:
For our final project in the Artificial Intelligence (CS 151) course at Harvey Mudd, I and another student used multiple AI approaches to solve Sudoku puzzles and compared their performances experimentally in order to identify the best performing approach. We implemented a variety of searches like random-restart local search, simulated annealing and constraint satisfaction (CSP) using backtracking DFS with arc-consistency (with and without heuristics for variable and value ordering). Then we performed empirical evaluation to determine and analyze the performances of these different approaches. Constraint-satisfaction turned out to perform better than all different kinds of local search, and heuristics for search became increasingly important when the complexity and size of Sudoku boards were increased.
We wrote a paper / report with our results, which you can check out here!
Knot Theory (Tying it Up Without Loose Ends):
In 2016, I attended a pre-collegiate course at Stanford in Knot Theory, a mathematical subtopic under topology. At the time, this was not a topic commonly covered in Indian education, even in college. I decided to write an article as a basic introduction to the topic, including explanations about projections, knot invariance, Reidemeister moves, tri-colorability and other invariants. My article was published in At Right Angles, a mathematics magazine created by the Azim Premji Foundation.