УДК 519.685
АЛГОРИТМ ПОРОЖДЕНИЯ ПОДСИСТЕМ ТЕХНИЧЕСКОГО ОБЪЕКТА НА ОСНОВЕ БИНАРНЫХ МАТРИЦ
ЯМШАНОВ И.С.______________________________
Предлагается алгоритм для порождения генерального множества подсистем системного технического объекта сборки, который позволяет представить процесс порождения в виде трехмерных бинарных матриц. Описываемый алгоритм может использоваться при разработке систем автоматизированного проектирования технологических процессов сборки.
В рассматриваемой задаче объектом исследования выступает системный технический объект сборки (СТОС), под которым понимается изделие машиностроения или приборостроения, расчленяемое на такие структурные элементы, как детали — элементы СТОС и технологические сборочные единицы
— подсистемы СТОС, формируемые из элементов СТОС с учетом конструктивно-технологических требований доступа и базирования и обладающие свойством целостности.
Под структурой или схемой расчленения СТОС понимается такое распределение его структурных элементов по уровням иерархии, которое удовлетворяет условиям:
— на нижнем (нулевом) уровне располагаются только элементы СТОС;
— на первом уровне располагаются только подсистемы с одноступенчатым расчленением, т.е. такие, которые образуются из элементов СТОС;
— на втором и последующих, более высоких уровнях располагаются подсистемы с многоступенчатым расчленением, которые могут включать в свой состав структурные элементы любых расположенных ниже уровней и при этом обязательно, по крайней мере, одну подсистему из непосредственно предшествующего уровня;
— на самом верхнем уровне иерархии располагается СТОС или просто система.
В реальных задачах для конкретного СТОС может быть сформировано некоторое конечное, однако достаточно мощное множество вариантов таких структур, причем априори нельзя указать наиболее предпочтительный вариант, так как критерии предпочтения и их приоритеты могут широко варьироваться в зависимости от поставленной цели.
Варианты структуры СТОС используются при проектировании широко применяемых в сборочном процессе технологических схем сборки (ТСС) для СТОС. ТСС является наглядным средством для отображения последовательности ввода в сборочный процесс элементов структуры СТОС, определяемой отношениями предшествования на основе
конструктивно-технологических требований доступа и базирования.
При построении множества вариантов структур необходимо решить задачу нахождения множества всех возможных подсистем рассматриваемого СТОС. Это множество называют генеральным множеством подсистем СТОС. В настоящее время в реальном производстве проблема нахождения данного множества в общей постановке не решается, выделение подсистем в СТОС производится эвристическим путем на основании опыта и интуиции технолога. В результате в силу трудоемкости решаемой задачи рассматривается только одна или несколько структур СТОС, что обуславливает низкий уровень обоснованности принимаемых решений при определении оптимальных схем сборки. Такое положение связано с отсутствием формальных универсальных методов, способных обеспечить решение данной задачи за приемлемый промежуток времени.
Для формирования генерального множества подсистем можно использовать различные подходы. Наиболее простым и наименее эффективным из них является полный перебор. При этом если СТОС состоит из n элементов, то необходимо
рассмотреть n “ 2 _ n _ 2 вариантов их сочетаний, для каждого ответив на вопрос, является ли данное сочетание подсистемой или нет. Определение сочетания элементов как подсистемы производится на основании формализованных правил образования подсистем, в соответствии с которыми:
— множество, состоящее из некоторого подмножества элементов СТОС, является подсистемой, если это множество может рассматриваться как СТОС, к которому предъявляются соответствующие требования, а именно:
—все элементы СТОС ограничены в перемещениях по всем координатным направлениям є {x,y,z};
— каждый элемент СТОС ориентирован относительно других элементов этого СТОС;
— все элементы СТОС связаны между собой;
— конструкция любого СТОС собираема;
— в состав подсистемы могут входить только те элементы, которые не будут ограничивать доступ к месту установки другим элементам, не вошедшим в состав рассматриваемой подсистемы.
Однако большинство вариантов, формируемых в результате полного перебора, состоят из групп элементов, между которыми отсутствует непосредственная связь. Такие варианты, как правило, не образуют подсистему. Следовательно, при построении генерального множества подсистем для сокращения количества рассматриваемых вариантов со -четаний необходимо учитывать существующие между элементами СТОС связи.
Существуют различные подходы к классификации и описанию связей между элементами СТОС. В
РИ, 2002, № 4
109
работе [1] предлагается модель, в которой СТОС описывается связями между его элементами двух типов: фиксированного и нефиксированного сопряжения. На множестве элементов СТОС D = {&|ie1,nj по всем координатным направлениям +£e{x,y,z} эти понятия могут быть выражены следующим образом:
1. Между элементами di и dj в координатном
направлении є {x,y,z} существует прямая связь
типа фиксированное сопряжение в тех случаях, когда:
- воображаемое перемещение элемента di в направлении непосредственно ограничивается некоторой поверхностью элемента dj;
- элемент di имеет ортогональную проекцию на элемент dj в направлении .
2. Между элементами di и dj в координатном направлении +^є {x,y,z} существует прямая связь типа нефиксированное сопряжение, если воображаемое перемещение элемента di в направлении ±Е, возможно без перемещения элемента dj из-за предусмотренных конструктором некоторых деформаций детали di, специальных усилий или движений.
Таким образом, СТОС описывается 12-ю матрицами (по 6 каждого типа) в соответствии с количеством координатных направлений. Используется обозначение С±$ и И±^ — для матриц связей типа фиксированное и нефиксированное сопряжение соответственно, где ±Е, є {x,y,z}. Матрицы заполняются на основании конструкторских чертежей и спецификаций вручную или частично с применением пакетов проектирования.
Матрицы связей типа фиксированное и нефиксированное сопряжение являются исходными данными при формировании генерального множества подсистем СТОС. Вид представления этих матриц может варьироваться для увеличения удобства работы с ними и повышения эффективности формирования генерального множества подсистем.
В теории алгоритмов доказано [2], что выбор вида представления исходных данных и получаемых результатов существенно влияет на скорость и эффективность работы алгоритма в целом. При выборе вида представления необходимо учитывать следующие особенности. Человек легче воспринимает графические данные, а его работа с длинными наборами чисел низкопроизводительна и зачастую приводит к ошибкам. Для алгоритмов, проектируемых в целях реализации на вычислительной технике, более важным является представление в компактной, обычно бинарной форме. Также существенно наличие аппаратной реализации всех или наиболее часто производимых над данными действий, или, по крайней мере, возможность их простого и эффективного описания на программном уровне.
Для матриц связей могут быть использованы такие виды представления:
— матрицы с количеством строк, равным количеству элементов СТОС; в строке, соответствующей определенному элементу, указываются индексы других элементов, которые имеют связь соответствующего типа в рассматриваемом координатном направлении с этим элементом; количество столбцов в такой матрице определяется наибольшим количеством связей одного элемента с другими;
— квадратные матрицы с длиной стороны, равной количеству элементов в СТОС; каждая строка такой матрицы описывает связи соответствующего ей элемента с другими; в случае существования такой связи в соответствующей позиции строки записывается 1, иначе — 0; по главной диагонали матрицы всегда содержится 0.
Для сравнения этих двух видов представлений матрицы связей типа фиксированное сопряжение в координатном направлении “+X” для условного СТОС, представленного на рис. 1, содержатся в табл. 1 и 2 соответственно (табл. 1 повернута).
Таблица 1
1 2 3 4 5 6 7 8 9 10 11 12 13
9 1 1 5 1 4 5 1 - 11 12 - 9
10 8 6 3 8 6 13
11 4 8
12 6
13
Таблица 2
1 2 3 4 5 6 7 8 9 10 11 12 13
1 0 0 0 0 0 0 0 0 1 1 1 1 1
2 1 0 0 0 0 0 0 0 0 0 0 0 0
3 1 0 0 0 0 0 0 1 0 0 0 0 0
4 0 0 0 0 1 1 0 0 0 0 0 0 0
5 1 0 1 1 0 1 0 0 0 0 0 0 0
6 0 0 0 1 0 0 0 1 0 0 0 0 0
7 0 0 0 0 1 1 0 1 0 0 0 0 0
8 1 0 0 0 0 0 0 0 0 0 0 0 0
9 0 0 0 0 0 0 0 0 0 0 0 0 0
10 0 0 0 0 0 0 0 0 0 0 1 0 1
11 0 0 0 0 0 0 0 0 0 0 0 1 0
12 0 0 0 0 0 0 0 0 0 0 0 0 0
13 0 0 0 0 0 0 0 0 1 0 0 0 0
110
РИ, 2002, № 4
Очевидно, что эти два вида представления взаимно преобразуемы. Так, для получения из матрицы первого вида матрицы второго вида необходимо выполнить следующие действия. Квадратную матрицу с длиной стороны, равной количеству элементов в СТОС, заполнить нулями. В каждой строке в ячейках, соответствующих элементам, индексы которых указаны в данной строке в матрице первого типа, нули заменить единицами. Для обратного преобразования в соответствующие строки матрицы первого вида выписываются только те индексы, которым соответствуют ячейки, содержащие единицы.
Преимуществом использования первого вида представления является большая наглядность, компактность и неизбыточность. Следовательно, такое представление более предпочтительно при отображении связей в рассматриваемом СТОС для непосредственного восприятия их человеком.
Второй вид представления более машинно-ориентированный в силу своей битовой природы. Следствием использования такого представления при реализации описываемого алгоритма на вычислительной технике является снижение затрат на хранение информации, так как связь или ее отсутствие между двумя элементами можно описать одним битом, а также повышение производительности, поскольку основу рассматриваемого алгоритма составляют логические операции — проверки условий, а они над битовыми данными выполняются параллельно.
Следует отметить, что при использовании второго вида представления процедура транспонирования — получения из матрицы одного координатного направления матрицы противоположного координатного направления—совпадает с транспонированием в математическом смысле. Для первого вида представления эта процедура более трудоемка.
Для порождения генерального множества подсистем в соответствии с алгоритмом, описанным в [3], необходимо получить множество перспективных сочетаний. Формирование этого множества производится путем построения деревьев порождения. По сравнению с полным перебором использование деревьев порождения позволяет значительно сократить количество рассматриваемых сочетаний, так как формирование новых сочетаний производится путем рекурсивного добавления в ранее сформированные сочетания индексов тех элементов, с которыми уже включенные в сочетание элементы имеют связь типа фиксированное сопряжение.
Для формирования корней деревьев порождения используется обобщенная по всем координатным направлениям матрица связей типа нефиксированное сопряжение. В качестве корней деревьев полагаются различные неповторяющиеся подмножества вида {di,H(di)}, в которых и(ф) ^0 , т.е. при наличии у элемента связи типа нефиксированное сопряжение. При этом, как было показано в [4], следует отбросить множества, содержащие базовый элемент СТОС. Базовыми называют элементы,
выполняющие в подсистеме роль соединительного звена, которое обеспечивает при сборке соответствующее относительное положение других элементов. Очевидно, что число корней, а значит и самих деревьев порождения конечно и не превышает (n-1), если n — количество элементов в СТОС.
Каждая вершина дерева порождения описывается двумя множествами: первое содержит элементы, образующие соответствующее рассматриваемой вершине сочетание; второе — путь из корня дерева в данную вершину, т.е. те элементы, связи которых были использованы для получения первого множества, соответствующего данной вершине. Очевидно, что для корневой вершины первое множество соответствует одному из подмножеств {di,H(di)}, а второе является пустым.
Алгоритм построения дерева порождения формализуется следующим образом:
1. Задается базовый элемент системы dbase . Определяется множество Sstop индексов элементов, имеющих связь типа фиксированное сопряжение с элементом dbase .
2. Берется подмножество {di,H(di)}, для которого необходимо построить дерево. Корневая вершина дерева описывается парой множеств
М’} ЧМф)}, М.
3. Определяется разность множеств, соответствующих рассматриваемой вершине: д = Si - S2 - Sstop.
4. Для элемента i = 1,n , n = |д| множества А определяется, расширит ли его связи типа фиксированное сопряжение є(і), обобщенные по всем координатным направлениям, первое множество рассматриваемой вершины: Si U c(di) - Si . Если да, то шаг 5, иначе шаг 6.
5. Из рассматриваемой вершины проводится на следующий уровень ребро, обозначаемое индексом i. На другом конце ребра строится вершина, для которой рассматриваемая вершина становится родительской. Первое множество новой вершины есть объединение первого множества родительской вершины и множества индексов, описывающих связи типа фиксированное сопряжение элемента i:
S/ = s1 U c(dO. Второе множество есть объединение второго множества родительской вершины и индекса i: s’ = S2 U {i}.
6. Если i<n, то i=i+1 и возвращение на шаг 4. Иначе, если на текущем уровне дерева есть еще не рассмотренные вершины, то выбирается одна из них, и переход на шаг 3.
7. Производится переход на следующий уровень и анализируются расположенные на нем вершины. Если среди них есть такие, у которых первое множество Si содержит индексы всех деталей данного ТО (кроме dbase), то они обозначаются как “система” и дальнейшее построение ветвей из них
РИ, 2002, № 4
111
не производится. Если на данном уровне две или более вершин имеют идентичные первое и второе множества, то далее производится рассмотрение только одной из них, а остальные помечаются как “дублирующие”.
8. Если имеются вершины, не помеченные как “система” или “дублирующие”, то выбирается одна из них; переход на шаг 3.
9. Из построенного дерева выбираются все не дублирующиеся множества Sj и заносятся во множество перспективных сочетаний.
10. Если имеются корни, для которых еще не построено дерево, то берется один из них, и переход на шаг 2.
В случае ручного счета алгоритма или при анализе результатов его работы человеком процесс порождения следует представлять в виде дерева. При машинной реализации такое представление громоздко и избыточно, так как в данном случае дерево является средством для формирования искомого множества. Поэтому отображение компонентов, не связанных с достигаемой целью, следует считать нецелесообразным. В данном случае в качестве альтернативы для представления процесса порождения может быть рассмотрена трехмерная битовая матрица порождения, общий вид которой приведен на рис. 2.
Рис. 2. Трехмерная битовая матрица порождения
Выбор именно такой формы матрицы объясняется следующими причинами:
— при машинной реализации битовое представление данных наиболее естественно и экономично;
— три измерения матрицы позволяют четко разграничивать уровни и отдельные вершины в процессе порождения, тогда как меньшее число уровней привело бы к необходимости внедрения дополнительных средств для реализации таких разграничений.
Такое представление имеет следующие преимущества:
— формализуемость — простота представления информации о процессе порождения в электронном виде;
— единообразие — использование представления, аналогичного представлению матриц связей;
— высокая производительность — логические операции над битовыми данными выполняются на компьютере параллельно.
Основной недостаток — сложность восприятия матрицы порождения человеком — может быть исправлен визуализацией информации, содержащейся в матрице, в графическом виде.
Предлагаемое представление в виде трехмерной матрицы не подразумевает сохранения информации о связях между вершинами дерева порождения (отношение “предок” — “потомок” между вершинами соседних уровней). Однако легко заметить, что любая вершина однозначно описывается парой множеств {sbS2}, и последующий процесс порождения зависит только от этих двух множеств вне зависимости от того, на каком уровне располагается вершина. Следовательно, можно считать целесообразным отказ от хранения информации о связях между вершинами в процессе порождения.
Представление процесса порождения в виде трехмерной битовой матрицы имеет ряд особенностей, которые могут быть показаны на примере ранее рассмотренного представления в виде дерева порождения.
Каждый горизонтальный слой матрицы порождения соответствует определенному уровню дерева порождения. Очевидно, что если число элементов в СТОС равно n, то максимальное число слоев и соответственно размерность матрицы в этом направлении будет (п-2).Это связано с тем, что:
— корень дерева порождения содержит индексы не менее двух элементов;
— при переходе от уровня к уровню в процессе порождения происходит расширение множества Sj индексом, по крайней мере, одного элемента;
— индекс базового элемента системы dt»se никогда не добавляется.
Приведенная оценка является завышенной и для реальных СТОС, каждый из элементов которых имеет несколько связей с другими элементами. Эта оценка из-за более быстрого расширения множества sj будет в несколько раз меньше.
Строка матрицы любого слоя соответствует вершине дерева порождения. При этом наличие “1” в определенной позиции означает, что элемент с таким индексом включен в описание данной вершины. Наличие “0” обозначает обратное. Размерность матрицы в этом направлении равна п или 2п. В первом случае хранится только множество Sj, во втором — оба множества.
Как было показано в [4], построение нового ребра не целесообразно, если не происходит расширение множества Sj . Тогда информация о множестве S2 может не фиксироваться, но вместо этого возникает необходимость анализировать возможность расширения множества Sj связями каждого элемента, содержащегося в нем, т.е. в процессе построения
112
РИ, 2002, № 4
ребер в качестве кандидатов рассматриваются все элементы множества Sj, а ребра строятся только в случае расширения. Если индекс элемента применялся для построения ребра на предыдущих уровнях, то расширение отсутствует. Таким образом, при использовании размера 2n объем вычислений меньше, но для хранения информации требуется больше памяти, и наоборот.
Размер матрицы в этом направлении может быть уменьшен до n-1 или 2(n-1) соответственно, если исключить ячейки, соответствующие базовому элементу СТОС, так как там всегда “0”.
Размерность матрицы в третьем направлении определяется максимальным количеством вершин в одном слое.
Алгоритм построения трехмерной битовой матрицы порождения аналогичен описанному ранее алгоритму построения дерева порождения. Отличия существуют не в логике работы алгоритма, а в особенностях работы с данными, имеющими битовую природу и представленными в виде строк матрицы. Далее эти отличия рассматриваются подробно.
Предполагается, что матрицы связей представлены в виде битовых квадратных матриц. На основании обобщенной матрицы связей типа нефиксированное сопряжение определяются корни, не содержащие базовый элемент системы dt»se , т.е. из обобщенной матрицы отбираются строки, удовлетворяющие условиям:
— ячейка, соответствующая dbase , содержит 0;
— хотя бы одна из остальных ячеек содержит 1.
В ячейку индекса элемента, которому соответствует рассматриваемая строка, заносится единица. Сформированная таким образом строка Sj соответствует первому множеству в описании вершины и образует первый слой матрицы порождения. Если в ней будут содержаться оба множества, описывающих вершину, то сформированную строку необходимо с конца дополнить строкой S2, заполненной нулями. Длина обеих строк равна числу элементов в СТОС. Далее рассматривается именно такой случай.
Для формирования строк следующего слоя необхо -димо выполнить такую последовательность действий:
1. Вычислить строку А = Sj - S2 - Sstop, определяющую индексы тех элементов, для которых будет анализироваться возможность построения ребер.
2. Для каждого элемента, индексу которого в д соответствует ячейка с “1”, произвести попытку расширения строки Sj, т.е. выполнить логическую
операцию “ИЛИ” над строкой Sj и строкой c(di), описывающей обобщенные связи типа фиксированное сопряжение рассматриваемого элемента.
3. Если в результате выполнения указанной операции количество ячеек, содержащих “1”, увеличится, то в следующий слой необходимо добавить строку, составленную из Sj = Sj v c(di) и s2 = S2 v .
Для сравнения преимуществ и недостатков обоих видов представлений процесса порождения рассматривается пример, изображение которого приведено на рис. 1.
Исходная информация о СТОС в виде обобщенных по координатным направлениям матриц связей типа фиксированное и нефиксированное сопряжение представлена в табл. 3 и 4.
Таблица 3
1 2 3 4 5 6 7 8 9 10 11 12 13
2 1 5 5 3 3 6 1 1 1 1 1 1
8 6 6 4 4 8 6 13 11 10 11 9
9 6 5 7 13 12 10
10 7
11 8
12
13
Таблица 4
1 2 3 4 5 6 7 8 9 10 11 12 13
2 1 6 5 4 3 8 1 1 1 10 1 10
8 6 4 7 11
9 13
10
12
Процесс порождения рассматривается для корня {3, 6}. Результат построения дерева порождения представлен на рис. 3.
Рис. 3. Пример построения дерева порождения
Построение матрицы порождения для того же корня приводится послойно в табл. 5-8.
Таблица 5
1 2 3 4 5 6 7 8 9 10 11 12 13
Si 0 0 1 0 0 1 0 0 0 0 0 0 0
S2 0 0 0 0 0 0 0 0 0 0 0 0 0
Расширение проводится для элементов с индексами 3 и 6. В первом случае добавляется элемент с индексом 5, во втором — 4, 5, 7, 8. Соответственно следующий слой матрицы содержит две строки.
Таблица 6
1 2 3 4 5 6 7 8 9 10 11 12 13
S1 0 0 1 0 1 1 0 0 0 0 0 0 0
S2 0 0 1 0 0 0 0 0 0 0 0 0 0
S1 0 0 1 1 1 1 1 1 0 0 0 0 0
S2 0 0 0 0 0 1 0 0 0 0 0 0 0
РИ, 2002, № 4
113
Расширение проводится для элементов из первой строки с индексами 5 и 6. В первом случае добавляется элемент с индексом 4, во втором — 4, 7, 8. Ни для одного из элементов второй строки расширение не может быть произведено. Соответственно следующий слой матрицы содержит две строки.
Таблица 7
1 2 3 4 5 6 7 8 9 10 11 12 13
S, 0 0 1 1 1 1 0 0 0 0 0 0 0
s2 0 0 1 0 1 0 0 0 0 0 0 0 0
Si 0 0 1 1 1 1 1 1 0 0 0 0 0
s2 0 0 1 0 0 1 0 0 0 0 0 0 0
Расширение проводится для элемента из первой строки с индексом 6. В этом случае добавляются элементы с индексами 7, 8. Ни для одного из элементов второй строки расширение не может быть произведено. Соответственно следующий слой матрицы содержит одну строку.
Таблица 8
1 2 3 4 5 6 7 8 9 10 11 12 13
Si 0 0 1 1 1 1 1 1 0 0 0 0 0
s. 0 0 1 0 1 1 0 0 0 0 0 0 0
Дальнейшее расширение матрицы порождения невозможно. Следовательно, для данного корня процесс порождения закончен.
В каждой матрице, соответствующей горизонтальному слою трехмерной матрицы, первая строка с индексами элементов приведена исключительно для облегчения восприятия человеком; при компь-
ютерном представлении данных она является избыточной.
Основные преимущества представления данных в двоичном виде при компьютерной реализации алгоритма:
— сокращение объема памяти, требуемой для хранения данных;
— сокращение времени, затрачиваемого на проведение требуемых алгоритмом операций, так как архитектура современных П К позволяет проводить операции логического типа над данными двоичной природы параллельно.
Литература: 1. Тамаюн И.П. Эвристический алгоритм сборки-разборки сложной машиностроительной конструкции // Механика и машиностроение / АН Высшей школы Украины. Отделение механики и машиностроения. 1998. № 1. С. 146-149. 2. Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. М.: Мир, 1979. 536 с. 3. Тамаюн И.П. Комбинаторный алгоритм порождения множества подсистем системного объекта сборки // Управляющие системы и машины. 2002. №2. С. 12—19. 4. Ямшанов И. С. Совершенствование метода порождения сочетаний элементов, образующих подсистемы объектов сборки //Вестник НТУ “ХПИ”. 2002. Т. 2, №6. С. 88-93.
Поступила в редколлегию 14.11.2002
Рецензент: д-р техн. наук Невлюдов И.Ш.
Ямшанов Игорь Сергеевич, аспирант кафедры АСУ НТУ “ХПИ”. Научные интересы: автоматизация технологических процессов, разработка эффективных алгоритмов, комбинаторика и комбинаторная оптимизация. Адрес: Украина, 61002, Харьков, ул. Фрунзе, 21.
114
РИ, 2002, № 4