Problem Analysis: System Complexity
The last post talked about aspects about arrows that could make a problem difficult to deal with. Now I’m going to talk about how a collection of arrows might make a problem difficult to deal with.
The complexity and difficulty of a system isn’t just going to be determined by the aspects of the blobs and the arrows between them. For example, you might have a system that has blobs and arrows that are very easy to comprehend, but you have 5000 blobs and each blob has an arrow connecting it to the blob after it. Even if you have very well behaved blobs and arrows, the large quantity of them may make it difficult to keep track of everything that’s going on.
Additionally, you might have a complicated connection pattern of arrows between all of your blobs. A linear sequence of blobs is probably easier to deal with than an intricate web of blobs, but how exactly do you tell the difference between the two in a quantifiable fashion so you can differentiate between two systems that are otherwise similar to one another.
Well, we’ve been building up a system for measuring how difficult a problem is to deal with. Maybe we can create a blob that we can analyze with the techniques that we’ve already been covering. A meta blob; a blob that measures the difficulty to understand our measurement of difficulty of the system we’re analyzing. Throw all the arrows into a blob and then check to see if it’s a metric space, low dimensional, contains minimal holes, and is path connected.
Transform your arrows into a meta blob
I’m not going to try and create a direct algorithm for converting an arbitrary set of arrows into a new blob because I’m a little bit concerned that the context and specific domain and characteristics of the system/problem you are trying to analyze will have an important effect on how you are going to perform the transform. However, I’m hoping the overall idea is simple enough that any given transform will be relatively easy to perform.
Example of a complex system
Here’s a quick example of a system that is more complex than just two blobs and an arrow. A file system interface that allows you to open a file and then read and write to it before closing it.