cpressey / Facts-about-State-Machines

I hold the opinion that state machines are underrated
727 stars 16 forks source link

Statements about state complexity and behaviour are misleading #1

Open rwilson-release opened 2 years ago

rwilson-release commented 2 years ago

Great article, first. Found it on Hacker News. But I did notice a section that could be revised. It is the section titled A complex state machine means your system has complex behaviour:

Firstly, the statement is false because it makes a statement about all machines of a type but doesn't include any exceptions. For example, a heavily complex state machine could always result in the output "false" (or "true"). This behaviour is actually quite simple but the state machine to produce it could be incredibly complex for some reason. I suppose you could make an argument that the "internal" behaviour is complex, but even this is a stretch of the possible truths.

Secondly, the converse is false as well; a very simple three-state machine could produce incredibly complex behaviour that could appear completely random to outside observers. I would recommend reading on this topic, especially with a nod to Wolfram's computational reduction arguments. He has produced very simple state machines that produce incredibly detailed and complex behaviours.

I would encourage you to redesign this section to qualify or give specific examples of complex machines with complex behaviours versus simple machines with simple behaviours --- and then describe how the opposite is also possible.

hlovdal commented 1 year ago

A different example of simple behaviour vs complex state: a machine learning algorithm for digit recognition. This could be 64 bit black/white image input and one number in range 0-9 as output. Behaviour does not get much simpler than that. But that does not exclude the ML algorithm from being very complex.