Consistency and consequences



The sequence of actions is important.



Our world is entangled in numerous invisible connections that we do not feel and, often, do not understand. And if you take the wrong step, the result will be ...



Unexpected!



Least. The goal will not be achieved, and there may be more dire consequences.

Foundation - walls - roof.


Otherwise, the house cannot be built, although there are options . As a result, interesting properties and capabilities of the system appear. An expert can change the sequence of actions, technology. That's why he is an expert. He understands how this or that area of ​​knowledge works. The essence of things is to some extent.



Any system expressed mathematically in terms of a graph (even with cycles) or schema can be easily listed. An electrical or UML circuit, an artificial neural network and even ... the Universe!





A graph is a sequence.



Systems usually have links that carry a functional load. Ideally, they do not need to be combined or mixed:



  • hot and cold water - 2 different pipes or subsystem connections
  • zero and phase in electrics
  • ADC, PCINT, INT, PWM (data bus) in the microcontroller.


Earlier, using a simple example, it was shown how complex relationships are ultimately expressed by simple lists. The functional basis has already been defined. It all comes down to the combinatorial knapsack problem .





Connection options for the circuit. U1, U2, U3 - functions / blocks. A, B, C - typed function parameters. 1, 2, 3 - numbers of inputs and outputs of blocks.



The problem is solved using a genetic algorithm .



Some techniques for reducing the search space, rules of thumb are also used. The target function is spelled out .

But the most important thing is in what sequence the relationships are carried out.




Connection options in the form of a table (gene and chromosome combinations).

Note! If you start connecting from right to left, then the solution will be found immediately. If on the contrary, you will have to sort out the options.




This is perhaps the key point in the entire decision. Links "compete for resources." And if we make a connection , seizing a resource (a pin of a microcircuit or an input / output of a function), then other “consumers” can no longer claim it. Although there are options for them, less than initially, but this is only to our advantage - the number of combinations decreases and, as a result, the time for calculating the solution decreases.





Connection options for each function block parameter. There is more information, but this is how all the possible options are visible - with duplicates and (or) "intersections" of connections. It remains to choose the right solutions.



This view is more applicable, since the connections in the previous table are relative to U1. In a real circuit, most likely there will be no base unit.




The rules of thumb are replaced by randomly sorting the list of "contenders for the throne". Oddly enough, this helps you find a solution very quickly. Lacking Experience, knowledge about the system and even design skills, in the first approximation.



It doesn't matter what interconnections there are in the system: chaos + consistency find a solution.


At the output of the algorithm, we get a list of relationships that form a new system - a circuit with predetermined input and output parameters . It remains for us to connect the blocks according to the list or load the list into some IT system.





As in childhood: do this - understanding will come later.


We cannot know everything and understand everything, but if there is a step-by-step instruction for a device unfamiliar to us or for actions in an unfamiliar environment, it is better to follow it. After all, this sequence is most likely the result of experience ... many hours of thinking and trying by other people and / or machines.



Why don't we save this time by moving towards the goal?



All Articles