Monday, April 30, 2018

Summation

At this point I ought to cover a few details I may have omitted on my journey. I expect, however, that this checkpoint doesn't signal the end of my bout with examining the Latin square problem. I examined it briefly freshman year with mixed results. This year showed marked improvement; I look forward to potentially continued results.

While I discussed backtracking to an extent, I did not discuss my data structures here employed. In truth, it would appear that my method did not use any data structures. Many data types were employed, notably queues and stacks. I used a queue when attempting to solve the square given pieces. The queue kept track of each incomplete square before it was reprocessed to continue toward the end goal. The stack acted as the function call stack when I checked to see how many possible solutions to a partial Latin square there were. It differed by allowing me to count how many completed squares there were without abandoning the total once one was found.

There never truly was any test data for this experiment. Each run (each square) was generated randomly at runtime. However, I did model the algorithm off of the GRC OTG page. It used an example domain "amazon" and demonstrated certain special edge cases to deal with that random data may include.

Ultimately the project worked as intended for the first tier (generating a square) but not so well for the second tier (recalling the square). Incrementally, I have found various minor coding errors that have potentially hindered progress. It's possible that my approach as a whole, though, even when properly executed, involves some fatal incorrect assumptions. This clarity may come with time. One consideration I am inclined to pursue at the moment is the potential neglecting of the potential for restarting the algorithm with a new word or group of characters. I also may be making a false assumption about the start of the sequences. However, allowing the perpendicular direction to vary freely is inaccurate as it must line up with the end of the previous segment. Blindly adding that modification creates an endless cycle.

A video of this project in action can be found here

No comments:

Post a Comment