Имеются 4 ящика, касающихся друг друга как показано на этой картинке.
http://savepic.ru/12517569.png
Ящики находятся в покое. Потом внезапно во всех ящиках возник импульс (в горизонтальном измерении), показанный числом внутри ящика. Да, важно: степень свободы только 1 — в горизонтальном направлении. Масса ящиков одинакова = 1, так что можно считать это число внезапно возникшей «моментальной» скоростью движения. Но с этой скоростью не каждый из них не поедет ввиду наличия контактов.
Задача - понять, что 1+2+4 образуют «отдельную систему» и блок 3 тоже «отдельную систему» в том смысле, что -200 будет давить на 0, который будет давить на +100 и в итоге вся эта система из 3 ящиков поедет влево со скоростью чуть меньше 100 (масса блока 2 сожрёт немного скорости)), при этом 3 никто воздействовать не будет и он поползёт со своим -1 медленно влево.
Если убрать блок 4, то тогда 1 бы давил сразу на 2 и 3 и потащил бы их вправо.
Ниже показан ещё один пример, который должен решаться алгоритмом. В нём -300 потащит всех влево. Если -300 убрать, то +20 потащит всех вправо.
Ищется наиболее дешёвый алгоритм, разбивающий группу касающихся объектов на отдельные «системы».