Конкурс «КИО 2019»
Конвейер

an image

Ещё до появления роботов появились автоматические линии, которые чудесным образом случайно попадающие на конвейер детали сложной формы приводили в одно положение через серию одних и тех же операций над ними. В этой задаче вам предстоит сделать то же самое. Меняя параметры стандартных воздействий, сделать так, чтобы на всех копиях конвейера с разным исходным расположением детали, после выполнения подобранных воздействий все они оказались в одинаковом положении.

В задаче деталь имеет 10 выступов разной длины, и на каждом из 10 конвейеров она повернута вверх одним из них. На конвейере на каждом шаге на деталь опускается штырь, который имеет одну из трех возможных длин, и если он достает до детали, то деталь поворачивается на одно деление. Есть два вида штырей, они отличаются цветом, одни поворачивают деталь направо, другие — налево.

Требуется расставить штыри таким образом, чтобы после прохождения конвейера все 10 деталей были повернуты одинаково. Первый оцениваемый параметр, это сколько разных поворотов деталей получилось после прохода конвейера, его необходимо минимизировать. Если все детали повернуты одинаково, то значение этого параметра равно 1.

Второй параметр оценки решения — это количество штырей на одном конвейере. Его тоже необходимо минимизировать.

an image

Для рассуждений полезно нарисовать схему, которая называется конечным автоматом. Тогда Вашей задачей будет нахождение "синхронизирующей цепочки", то есть последовательности действий (которые изображены стрелочками на диаграмме), после которых вы окажетесь в одном и том же состоянии (кружочке), с какого бы состояния не начали.

  1. Вы можете двигать мышью конвейеры влево, вправо, вверх и вниз;
  2. При нажатии на штырь у него изменяется длина или направление поворота детали;
  3. При нажатии между штырями появляется новый штырь в месте нажатия;
  4. На каждой детали в середине написано число — какой из десяти углов поворота имеет деталь;
  5. Слева сверху на каждом конвейере написано число — какой из десяти углов поворота имеет деталь после прохождения конвейера;
  6. Внизу располагается слайдер времени, с его помощью можно следить за процессом движения деталей по конвейеру;
  7. Слайдер можно двигать мышью и с помощью расположенных под ним кнопок;