The previous blog was just an introduction to the problem analysis technique that I want to talk about. And to review, the definition of problem that I’m going with is: Aspects of a situation that makes understanding its behavior difficult. This blog entry is going to talk about the first aspect of a situation that can make understanding it difficult.
The first aspect is just going to be concerned with the blob I. Now back in my previous blog entry I was talking about this blob being a set of valid inputs. The keyword I want to bring your attention to is “set”. If these are sets then why do I keep referring to them as “blobs”. Well this is because of the first aspect.
The Valid Input Blob should be mathematically structured in a way that assists your intuition.
If you have a set of random, unassociated numbers, then it’s much harder to have a good feel for the behavior of your system than if you have a well-structured grouping of numbers. Structures that your intuition works well with are better than structures that don’t. I think metric spaces are probably the ideal structure for most people.
Metric Spaces
The definition of metric space is pretty simple. You take a set and then you pair it with a distance function that has some rules:
- distance( x, y ) ≥ 0
- distance( x, y ) = 0 <=> x = y
- distance( x, y ) = distance( y, x )
- distance( x, z ) ≤ distance( x, y ) + distance( y, z )
You can look over these axioms, but they more or less encode what you expect from a group of points when you can measure the distance in between them.
Why Metric Spaces?
Having your input blob form a metric space is a good thing because it leverages your brain’s spatial processing region. Because we’re already familiar organizing objects that exist in a physical geometry via distance, if your input blob has distance it’s going to be easier to mentally organize the inputs that you care about.
Imagine this blob also being a metric space. Having a distance between the items in the blob makes it easier to mentally keep track of different groupings of items. Instead of having to memorize or lookup information about every input item, you can remember the general regions that the items inhabit.
Additionally, there will be several other aspects that are much easier to measure if our input blob happens to be a metric space or topological space. A topological space is very similar to a metric space except the topological space doesn’t have a concept of distance. You’re left with groups of items that are sort of related to each other in a particular way. I think the metric space is better because you can leverage intuition related to distance, but the topological space is better than nothing if you can’t form a valid distance function with your inputs.
Well-structured blobs mean easy to work with problems. Blobs with no structure or a structure that is hard to form an intuition for indicates a problem that people will have a hard time working with.
Let’s look at some examples.