# Binary Puzzles

As you can probably tell, I’m a big fan of puzzles. On one hand you can say that a good puzzle is nothing but particular instance of a complex problem that we’re being asked to solve. What exactly makes a problem complex though?

To a large extent that depends on the person playing the puzzles. Different puzzles are based on different concepts and meant to highlight different concepts. Some puzzles really focus on dynamic programming like the Triangle Sum Puzzles or the Unidirectional TSP Puzzles.

Other puzzles are based on more complicated problems, in many cases instances of NP-complete problems. Unlike the puzzles mentioned above, there is generally no known optimal strategy for solving these puzzles quickly. Some basic examples of these are ones like Independent Set Puzzles, which just give a random (small) instance of the problem and ask users to solve it. Most approaches involve simply using logical deduction to reduce the number of possible choices until a “guess” must be made and then implementing some form of backtracking solution (which is not guessing since you can form a logical conclusion that if the guess you made were true, you reach either (a) a violation of the rules or (b) a completed puzzle).

One day a few months back i was driving home from work and traffic was so bad that i decided to stop at the store. While browsing the books, I noticed a puzzle collection. Among the puzzles I found in that book were the Range Puzzles I posted about earlier. However I also found binary puzzles.

Filled Binary puzzles are based on three simple rules
1. No the adjacent cells in any row or column can contain the same value (so no 000 or 111 in any row or column).
2. Every row must have the same number of zeros and ones.
3. Each row and column must be unique.

There is a paper from 2013 stating that Binary Puzzles are NP Complete. There is another paper that discusses strategies involved in Solving a Binary Puzzle

Once I finished the puzzles in that book the question quickly became (as it always does) where can I get more. I began writing a generator for these puzzles and finished it earlier this year. Now i want to share it with you. You can visit the examples section to play those games at Binary Puzzles.

Below I will go over a sample puzzle and how I go about solving it. First lets look at a 6 by 6 puzzle with some hints given:

 0 1 0 1 0 1 1 0 1 0 0 1 1 0

We look at this table and can first look for locations where we have a “forced move”. An obvious choice for these moves wold be three adjacent cells in the same row or column where two have the same value. A second choice is that when we see that a row or column has the correct number of zeros or ones, the remaining cells in that row or column must have the opposite value.

So in the above puzzle, we can see that the value in cells (2, 2) and (2, 5) must also be a 0 because cells (2, 3) and (2, 4) are both 1. Now we see that column 2 has 5 of its 6 necessary values, and three 0’s. So the last value in this column (2, 6) must be a 1 in order for there to be an equal number of 0s and 1s.

For some easier puzzles these first two move types will get you far enough to completely fill in all the cells. For more advanced puzzles though, this may require a little more thorough analysis.

As always, check it out and let me know what you think.

# The Cost of Learning

I often hear phrases like “the value of a college education” or “the importance of a college education”. These are phrases that I grew up on. These and many similar others have been a part of my life for as long as I can remember. What was not ingrained in my head was the cost of this education. Unfortunately, the concept of students or recent graduates struggling with debt due to student loans is not uncommon in this day and age. Generally, there are things like scholarships and fellowships available to a select few who prove themselves the cream of the crop in a matter of speaking. For the rest, though, the concept of education seems heavily related to the size of one’s pocket books.

With this in mind, I created this site to use as a resource to those who are interested in learning. I truly believe in the power of education. This belief originates from a concept that education equals empowerment. There are several examples of people throughout history using education as an asset that is only available to a select few. To those whom education was not available, neither was power.

This site is meant to empower those who wish to learn. This site is not meant to stand in place of any course covering any topic listed here. Instead, it is meant to grant exposure to those who do not have a chance to learn the fundamentals of these courses in an academic setting. This site is meant to empower workers looking to increase their skills when applying for a new job. This site is meant to serve as a refresher to those who may have learned these concepts long ago, or those students who do not understand their professor’s lectures.

I will go through a variety of topics, updating and adding to them regularly. I will cover these topics by introducing different software that I have written.