Алгоритмика плетения резинок. Глава 6

Мир Когнито
начало http://www.proza.ru/2015/07/31/1688
назад http://www.proza.ru/2015/08/05/1210

Разберём теперь более сложные структуры. Следующая по сложности (после простейшей цепочки) – такая (рис.10):
0.зн над р1
1.р1 над р3
2.р1 над р2
3.р2 над р3
4.р2 над р4
5.р3 над зк
6.р3 над р4
7.р4 над зк
8.р4 над зк
Алгоритм её сборки получается такой:
0.н(р1,ст1,в(по),ст2) (подготовка шага 1 и шага 3)
1.ц(зн,у0(р1)) (реализация утв. 0.зн над р1)
2.н(р2,ст2,ст3) (подготовка шагов 3 и 4)
3.м(п(2),ст2,л,ст2) (реализация утв. 1.р1 над р3? А как вам то, что р3 еще не установлена? Может, тогда подготовка к  реализации утв. 1.р1 над р3? Но где же тогда сама реализация? Может, в шаге 6, заодно с тем, что написано ниже для него. Как вариант, не забываем о том, что существуют и шаги, реализующие отношение р3 под р1. Возможно, они и применяются для реализации опережающих отношений. И возможно, что шаг 6 реализует сразу два отношения: р2 над р3, р3 под р1.
Ни то и ни другое. А вот что: реализация утв. 2.р1 над р2. И это удаётся легко определить, прикрепляя к идентификаторам резинок цвета. Далее, для «восстановления справедливости» (коррекции смысла шагов алгоритма) применяется тот же метод.)
4.м(п(2),ст3,л,ст3) (реализация утв. 2.р1 над р2. Неверно, это ложный, то есть ненужный, шаг.)
5.н(р3,ст1, ст2) (подготовка к реализации шагов 6 и7)
6.м(п(2),ст1,л,ст1) (реализация утв. 3.р2 над р3. Нет, р3 под р1 (то есть обратка, как и ожидалось для 1.р1 над р3))
7.м(п(2),ст2,л,ст2) (реализация утв. 4.р2 над р4. А как вам то, что р4 еще не установлена? Может, тогда подготовка к  реализации утв. 4.р2 над р4? Нет, 3.р2 над р3)
8.н(р4,ст2,ст3) (подготовка реализации шагов 9 и 10)
9.м(п(2),ст2,л,ст2) (реализация 6.р3 над р4)
10.м(п(2),ст3,л,ст3) (реализация р4 под р2, то есть обратки для 4.р2 над р4)

Перепишем эти 10 шагов алгоритма заново начисто:
0.н(р1,ст1,в(по),ст2) (подготовка шага 1 и шага 3)
1.ц(зн,у0(р1)) (реализация утв. 0.зн над р1)
2.н(р2,ст2,ст3) (подготовка шагов 3 и 4)
3.м(п(2),ст2,л,ст2) (реализация утв. 2.р1 над р2)
5.н(р3,ст1, ст2) (подготовка к реализации шагов 6 и7)
6.м(п(2),ст1,л,ст1) (реализация р3 под р1 (вместо 1.р1 над р3))
7.м(п(2),ст2,л,ст2) (3.р2 над р3)
8.н(р4,ст2,ст3) (подготовка реализации шагов 9 и 10)
9.м(п(2),ст2,л,ст2) (реализация 6.р3 над р4)
10.м(п(2),ст3,л,ст3) (реализация р4 под р2 (вместо 4.р2 над р4))
Какие утверждения описания структуры были реализованы? 0,2,1,3,6,4.
Значит, не реализованы 5,7,8. Поэтому продолжаем описание алгоритма:
11.м(п(1),ст1,ст2) (подготовка реализации шага 13)
12.м(п(1),ст3,ст2) (подготовка реализации шага 13)
13.ц(зк,п(1-3),ст2) (реализация утв. 5.р3 над зк, 7.р4 над зк, 8.р4 над зк.
Но разберём это по позициям:
13-3.ц(зк,п(3),ст2) (реализация утв. 7.р4 над зк, то есть для левого конца резинки4)
13-2.ц(зк,п(3),ст2) (реализация утв. 5.р3 над зк)
13-1.ц(зк,п(3),ст2) (реализация утв. 8.р4 над зк, то есть для правого конца резинки4)
А в целом оказалось удобнее это делать, во первых, снизу вверх. А во-вторых – повернув все нити на столбике2 так, чтобы на вогнутой стороне столбика (ибо с неё и снимаем) эти нити располагались наиболее просто (то есть не пересекались)))
14.с(п(1-3),ст2) (отделение изделия от приспособления)

Итак, в результате получена дополнительная информация для теории (А5-) построения описания алгоритма (А4-) сборки изделия по описанию структуры.
А именно, что:
1)реализация некоторых утверждений описания структуры (а именно опережающих (в описании) подготовительные действия) происходит реверсно (то есть за счёт реализации отношения под (а не над, как обычно))
2)реализация утверждений описания структуры происходит по позициям нитей на столбиках.

Исследуем теперь, каким же образом такой алгоритм
1.повт(н(р1,ст(и,1),ст(и+1,1)),и=1..дл-1)
 2.н(р1,ст(дл,1),в(пр),ст(дл,1))
 3.повт(м(п(п),ст(и,1),под(),ст(и-1,1)),и=дл..2)
 4.ц(з,п(1-2),ст(дл,1))
 5.повт(с(п(),ст(и,1)),и=дл-1..2)
 6.ц(з,п(),ст(1,1)) (зацепить застежку за узел0. Это резинки всех позиций на ст(1,1))
 7.с(п(),ст(1,1))
 8.конец
даёт тот же результат, что и такой:
1.н(р1,ст1,в(пр),ст2)
 2.повт([н(р1,ст1,ст2), м(п(п),ст[1,2],между(1,2))],и=1..дл)
 3.повт([ц(з,п(),ст(и),с(п(),ст(и))],и=1,2)
 4.ц(з,у0)
 5.конец
Ибо ответ на этот вопрос позволит, наконец, ответить на вопрос о роли приспособления (А6-) в сборке структуры.

Но прежде – перейдём от (вышеприведённого) описания алгоритма для станка с помощью цикла на описание алгоритма сборки конкретного изделия (того же типа)(то есть с конкретным количеством элементов (А7-) Традиционное значение которого =4)
1.н(р1,ст1,ст2) (подготовка шагов 9 и 11)
2.н(р2,ст2,ст3) (подготовка шагов 8 и 9)
3.н(р3,ст3,ст4) (подготовка шагов 7 и 8)
4.н(р4,ст3,ст5) (подготовка шагов 6 и7)
(в отличие от предыдущего описания, я здесь изменил обозначение резинок. а именно, сделал это в соответствии с их идентификаторами.)
5.н(р5,ст5,в(пр),ст5) (подготовка к реализации шагов 6 и 10)
(ага, вот и новый элемент понадобился, р5. А всё потому, что я не сделал начальным элементом р4, надев её с поворотом. Тогда бы р5 не нужен был бы, а зк зацеплялся бы за р4.
Да и по идее (согласно графическому описанию структуры) зн должен был зацепляться за р5, а зк – за р1. И это всё – шуточки станочного метода сборки.)
6.м(п(3),ст5,под(1-2),ст4) (реализация р4 над р5)
7.м(п(3),ст4,под(1-2),ст3) (реализация р3 над р4)
8.м(п(3),ст3,под(1-2),ст2) (реализация р2 над р3)
9.м(п(3),ст2,под(1-2),ст1) (реализация р1 над р2)
10.ц(зн,п(1-2),ст5) (реализация 2*зк под р5)
11.ц(зк,п(1-2),ст1) (реализация 2*зн над р1)
12.повт(с(п(),ст(и)),и=1..5) (отделение изделия от приспособления)
13.конец

Теперь сделаем тот же самый переход (и с тем же самым изменением идентификации резинок) для алгоритма плетения того же изделия на рогатке:
1.н(р1,ст1,в(пр),ст2) (подготовка ш.2,4,5)
2.ц(зн,у(р1),между(ст1,ст2)) (реализация зн над р1)
3.н(р2,ст1,ст2) (подготовка ш.4,5,7,8)
4.м(п(2),ст1,между(1,2)) (реализация р1 над р2 (для н1(р1) – 1-ой (левой) нити р1))
5.м(п(2),ст2,между(1,2)) (реализация р1 над р2 (для н1(р1) – 2-ой (правой) нити р1))
6.н(р3,ст1,ст2) (подготовка шагов 7,8,10,11)
7.м(п(2),ст1,между(1,2)) (реализация р2 над р3 (для н1(р1) – 1-ой (левой) нити р2))
8 м(п(2),ст2,между(1,2)) (реализация р2 над р3 (для н1(р1) – 2-ой (правой) нити р2))
9.н(р4,ст1,ст2) (подготовка ш.10,11,13)
10.м(п(2),ст1,между(1,2)) (реализация р3 над р4 (для н1(р1) – 1-ой (левой) нити р3))
11.м(п(2),ст2,между(1,2)) (реализация р3 над р4 (для н1(р1) – 2-ой (правой) нити р3))
12.м(п(1),ст1,ст2) (подготовка ш.13)
13.ц(зк,п(1-2),ст2) (реализация н1(р4) над зк, н2(р4) над зк)
14.с(п(1-2),ст2) (отделение изделия от приспособы)

Итак, что же мы в итоге ответим на поставленный вопрос?
Что то же самое изделие в данном случае получается потому, что на станке операции подготовки операций непосредственной реализации – возможно весьма сильно (по позиции выполнения) отдалять от операций непосредственной реализации. (то есть сначала все подготовки, потом все реализации) Но это, конечно, создаёт дополнительные проблемы при построении алгоритма. (а может, это просто с непривычки?) И особенно для сложных структур.

Например, для структуры на рис.10. Как её нарисовать при помощи станка?
Впрочем, неправильно сформулировал. Не с помощью станка, т.к. в предыдущем алгоритме я тоже использовал станок. Но в нём для плетения использовал операцию вида м(п(2),ст2,л,ст2) (то есть перекидывание нитей с правой стороны (столбика) на левую) Что, как выяснилось, вполне имитирует плетение на рогатке (или много-столбцовой рогатке) При котором нет разделения на этапы надевания и вязания.(а эти операции делаются поочерёдно)
Поэтому на самом деле я говорил о такой технологии плетения на станке (данного изделия), при которой обеспечивается разделение на такие этапы. А так получается при использовании для плетения операции вида м(п(3),ст(1),под(1-2),ст(2)), то есть при пропускании крючка под те нити, на которые не распространяется провязка.
Как получить такую технологию из технологии плетения на рогатке (или перпендикулярного (когда полотно изделия выходит перпендикулярно ряду станка) плетения на станке)?
Вот так, и новый вопрос появился: получить технологию (на другом приспособлении) из технологии (на базовом приспособлении) В ответе на который ключевым является, конечно, различие приспособлений друг от друга. И описанное желательно формально. Но как это сделать? Только формально описав структуру (и методы) приспособлений. А потом и выработав технологию их сравнения.

Вот так, и новая задача появилась: разработать формализм описания приспособлений (для плетения резинок)(ибо только после этого можно их (формально) сравнивать) Ну что ж, выбор у нас тут небольшой:
1)рогатка
2)вилка (многозубчатая)
3)последовательные конструкции из нескольких вилок (как правило, из 2-х)
4)параллельные конструкции из нескольких вилок (как правило, из 2-х)
5)классический станок
6)станок "монстер тейл"
Как видно, эти варианты отличаются не только количеством столбиков в ряду и количеством рядов столбиков, но и (крое вилок) расположением вогнутых сторон столбиков. (потому что именно в этой стороны удобно делать операции провязывания)
Но тему это разовьем позже. А пока займемся конкретным изготовлением описаний алгоритмов на основе описаний структур. (и это сделаем в следующей главе)

вперёд