I have been thinking about this question because of my decision to go back to school for a PhD in math. Of course when I tell people this, I am confronted by most peoples' misconceptions about what math is. For most people, arithmetic is math - adding, subtracting, multiplying and dividing numbers. If you are good at math, then you must be good at arithmetic. While I am better then most, I have a tendency to make silly mistakes with computations and I am not always the best at arithmetic. In reality arithmetic is only a tiny part of what math is and does not convey its essence. I do not blame people for having these misconceptions, because this is what they were exposed to as being math.
A popular example of what math really is like would be Sudoku. While most instructions say it does not involve math, what they are really saying is that it does not involve arithmetic. A sudoku puzzle involves the layout of the grid and the constraints for filling in the values. Each set of 3 x 3 box can only have the numbers 1-9 in it, with each number appearing only once, and each horizontal and vertical line can only have one occurrence of each number in it.
Given these rules and a partially fulled in grid, you should be able to fill in the remaining blank spots. The process of filling in the remaining grid mimics the process of math. Based off of the constraints in the system, you are able to infer other facts that you did not know before. You can do this using different techniques to eliminate possibilities and reason out the only remaining choice for a square. One way to do this is by using proof by contradiction. You make a reasonable guess for a box and see what the logical consequences are. If this ends up causing a violation of the rules then you know this is not a valid value for that square and eliminate the possibility. You are able to further refine the constraints using deductive logic and finally end up with a completed square.
Now someone with a more mathematically inclined mind would start asking questions of a different sort. One such line of questioning is - What is the minimum number of starting conditions needed to uniquely identify a puzzle and is this unique for each puzzle. If a puzzle can have more then one starting condition, which is not a super set of a different starting condition (i.e. this starting condition has all of the same stuff in a different starting condition plus some additional spots filled out), given two starting conditions can we determine if they are referring to the same puzzle.
Or we could ask questions about the number of puzzles per board size. As the board size increases, how do the number of puzzles for that size increase. Lets say I have a 9 x 9 board, and of all the possible configurations only 20% fulfill all of the conditions. If I move to a 16 x 16 board, does the percentage remain about the same and as I move to bigger and bigger boards does any pattern emerge? Maybe the percentage tends toward 0, or oscillates, or stays about constant. Is there a way to get a count of how many puzzles there are per grid size. Do we have to manually have to find them, can we create a formula to give an approximation?
I could continue on like this, trying to examine various properties and what the properties mean, and what other facts I can infer from what I already know. But the process for exploring these facts are similar to the initial problem of trying to fill in the remaining values given the starting constrains.
Given this example, I can now give one definition of math -
Mathematics is the creation and study of abstract objects and their properties using logic.
In this case our abstract object is the sudoku puzzle. A more common example are the integers or rational or real numbers and their properties. Or we could move on to more complex objects like functions, ploynomials or geometric shapes. The study of these objects will leads us to subjects such as number theory, abstract algebra, real analysis, or topography. Related to the objects we study are the tools we just to study them, such as logic or computers, and how all of these interact.
As you can see, math is much more then simple arithmetic.
Thursday, February 5, 2009
This is just a rant against the advice of not reinventing the wheel, which is often raised when some one creates a new implementation of a well known concept or idea.
My biggest gripe about this phrase is the fact that the idea conveyed does not match reality. The idea behind this advice is to reuse what is already out there and not create you own implementation of something. One problem with this, is every implementation of an idea will have a different set of tradeoffs associated with it. You may have a wheel that is able to work on nearly any terrain, but is dangerous to use at high speeds, or a wheel that is long lasting but costs more money. Certain situations will require you to create your own individual wheel, that is unique to your own needs.
One of the important tradeoffs that needs to be considered is how much you need to understand how the wheel works and how much additional customization you will need to perform to it. When considering these ideas, you start to consider a wheel factory, rather then just a wheel. When you have a wheel factory you can produce a range of different types of wheels to fit your own set of needs. By building the facotry yourself, you gain additional knowledge of not only how the factory operates but how wheels are created. Knowledge of the facotry allows you to make the most use out of it, while knowledge of wheel creation and the wheels themselves can be applied in any situation where wheels are required. The process has added value to your skill set.
Of course, building the factory can be time consuming and resource intensive. The best way to minimize the cost is to only build the bare minimum. After this you will have more knowledge on how to improve it or make additions when the need arises, but until that need arises, nothing extra should be done.
The only time the advice to not reinvent the wheel is useful is when someone is blindly tries to make one, without investigating what is already out there and considering if the time would be best spent learning how to use it. And lets just reinvent the phase to be don't reimplement the wheel, which is what is really meant.