Wednesday, January 30, 2019

Problem Calculus: Arrow Complexity

With complexity projection we saw how an arrow could be difficult to comprehend because of the complexity of the spaces that it is related to.  However, arrows can also be hard to comprehend (or at the very least increase the complexity of the system as a whole) because of qualities that they have which have little to do with the spaces they are involved with.

The first type of arrow that is difficult to comprehend is the discontinuous arrow.


A discontinuous arrow is problematic because small changes in the input of the arrow will result in large (or unpredictable) changes in the output.  This will hinder building an intuition with how the arrow works.  This can be highly problematic because it means that the mostly likely way people will use it will be to just kind of try things until they get the right output.  This is mostly fine as long as two things are true 1) the input remains static so it doesn't change once the 'correct' value is picked and 2) the value never needs to be changed without allowing for sufficient analysis to ensure that the output will be okay.  

Discontinuous arrows are also problematic if the destination space is complex.  For example, a destination space with many invalid elements will not pair well with a discontinuous arrow because it will be very difficult to determine when a small change will knock your output value into an invalid value.

Next, non-deterministic arrows.


Non-deterministic arrows are difficult to comprehend because a single input element will produce different output elements at different invocations of the arrow.  This is problematic because you have to handle all possible output elements, but if you're not paying close enough attention you might not notice that different possibilities are even something that can occur.

And finally there are non-injective arrows.


An injective arrow would be one that every input element uniquely maps to a corresponding output element.  Non-injective arrows have more than one input element that can map to a given output element.  This is problematic when you are unaware or forget that you are dealing with a non-injective arrow.  Seeing a given output it is easy to make a bad assumption and believe that you know what the input element was.  The assumption will even sometimes be correct, which will further hinder a correct understanding of the system.

No comments:

Post a Comment