Последовательность и последствия


Последовательность действий важна.

Наш мир опутан многочисленными невидимыми связями, которые мы не ощущаем и, зачастую, не понимаем. И если сделать неверный шаг, результат будет…

Неожиданным!

Как минимум. Цель будет не достигнута, а могут быть и более плачевные последствия.

Фундамент — стены — крыша.

Иначе дом не построить, хотя есть варианты. В итоге, появляются интересные свойства и возможности системы.
Эксперт может менять последовательность действий, технологию. На то он и эксперт. Он понимает, как устроена та или иная область знаний. Суть вещей в некотором объеме.

Любую систему, выраженную математически через граф (даже с циклами) или схему, можно легко уложить в список. Электрическую или UML схему, искусственную нейросеть и даже… Вселенную!

Граф — последовательность.

Системы обычно имеют связи, которые несут в себе функциональную нагрузку. В идеале, их не надо соединять или смешивать:
— горячая и холодная вода — 2 разные трубы или связи подсистем
— ноль и фаза в электрике
— ADC, PCINT, INT, PWM (шина данных) в микроконтроллере.

Ранее на простом примере было показано как сложные взаимосвязи, в итоге, выражаются простыми списками.
Функциональный базис уже определен.
Всё сводиться к комбинаторной задаче о рюкзаке.


Варианты соединений схемы. U1, U2, U3 — функции/блоки. A, B, C — типизированные параметры функций. 1, 2, 3 — номера входов и выходов блоков.

Задача решается с помощью генетического алгоритма.
Так же используются некоторые методики уменьшения пространства поиска, эмпирические правила. Прописана целевая функция.

Но самое главное — в какой последовательности проводятся взаимосвязи.


Варианты соединений в виде таблицы (гена и комбинаций хромосом).
Обратите внимание! Если начинать соединять справа налево, то решение найдется сразу. Если наоборот — придется перебирать варианты.

Это, пожалуй, ключевой момент во всем решении. Связи «конкурируют за ресурсы». И если мы проводим соединение, захватывая ресурс (пин микросхемы или вход/выход функции), то другие «потребители» уже не могут на него претендовать. Хотя и для них есть варианты, меньше чем изначально, но это нам только на руку — количество комбинаций снижается и, как следствие, уменьшается время на расчет решения.


Варианты соединений для каждого параметра функционального блока. Информации стало больше, но так видно все возможные варианты — с дубликатами и (или) «пересечениями» соединений. Осталось выбрать правильные решения.
Такое представление более применимо, так как в предыдущей таблице соединения ведутся относительно U1. В реальной схеме, скорее всего, не будет базового блока.

Эмпирические правила заменяются случайной сортировкой списка «претендентов на трон». Как ни странно, это помогает находить решение очень быстро. Не имея Опыта, знаний о системе и даже навыков проектирования, в первом приближении.

Не важно, какие есть взаимосвязи в системе: хаос + последовательность находят решение.

На выходе работы алгоритма мы получаем список взаимосвязей, которые формируют новую систему — схему с заданными заранее входными и выходными параметрами. Нам остается соединить блоки согласно списку или загрузить список в некую IT систему.

Как в детстве: делайте так — понимание придет потом.

Мы не можем всего знать и всё понимать, но если есть пошаговая инструкция к незнакомому нам устройству или для действий в незнакомой обстановке — лучше ее выполнять. Ведь эта последовательность, скорее всего, является результатом опыта… многих часов раздумий и попыток других людей и (или) машин.

Почему бы нам, двигаясь к цели, это время не сэкономить?

 

Источник

генетические алгоритмы, графы, последовательность, последствия, схемы, хаос

Читайте также