Файл: Митрофанов, С. П. Автоматизация технологической подготовки серийного производства.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 16.10.2024

Просмотров: 150

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

ТАБЛИЧНЫЕ АЛГОРИТМЫ

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

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

При изучении табличных алгоритмов в основном будем рас­ сматривать лишь условия типа хга. Если оно выполняется (т. е. элементарное высказывание хга истинно), то присвоим некоторой логической переменной I значение 1, если условие не выполняется

(т. е. высказывание хга ложно), то / =

0. Для некоторого набора

(кортежа) условий Р = (Ри Р 2, ■• •,

Рп)> где p i — обозначение

условия хга (Р(- =

(х(, rL, at)), можно образовать некоторый кор­

теж I = (llf 12,

каждая компонента которого есть логи­

ческая переменная для соответствующей компоненты кортежа Р. Для некоторой конкретной ситуации, т. е. для заданных значений переменных, входящих в условия, компоненты кортежа принимают значение 0 или 1 в зависимости от выполнения условий. Например,

имеем набор

условий:

а± = 2, а

2 = 3, а3 = 5. Тогда

 

Р = 1)

Р 2у Р з)>

I ~

(^1>

^ 2> ^з)>

Р\ ~

(*i>'4.»

2);

 

Р 2 = (х2,

3);

Р 3 = (х3,::4:,5),

где компоненты 4,

3,

1

— числовые

коды отношений «меньше»,

«больше или равно», «равно». Пусть в некоторой ситуации пере­

менные

приобрели

значение

х г = 3,

х 2 = 10, х3 =

5.

Тогда

Р 1

=

(3,-4,

2) (3 <

2,

условие

не выполнено,

 

0);

Р 2 =

(10, 3,

3) (10

 

3,

условие выполнено,

/ 2

=

1);

Р3 =

(5, -Т,

5)‘(5 =

5,

условие

выполнено,

13 — 1)

и следовательно,

I

= (0,1,1).

Если

кортеж

Р

имеет

длину п,

т. е. содержит п компонент, то максимальное число кортежей I =

= (/1( / 2,

. . ., /„)

равно

2п. Множество кортежей I

образуют

матрицу L, называемую логическим базисом. Каждый элемент

матрицы

 

Lh ,■ — есть значение

логической

переменной

для i

ситуации и /-го условия

(i =

1,

. . .,

2n, j =

1, . . .,

п),

а строка

206


матрицы — есть кортеж содержащий значение всех логических переменных для i-й ситуации. При решении практических задач обычно не все ситуации теоретически возможны, а из возможных практически используются также не все, поэтому число реально используемых строк (длина базиса) в L намного меньше чем 2п.

Будем различать входные и выходные условия, последние будем обозначать как ZrC, где Z — выходная переменная, С — константа, г — отношение типа «равно». Это отношение наи­ более часто применяют для выходных условий, поэтому, других отношений для них рассматривать не будем, и, следовательно, обозначение отношения можно опустить. При машинной проверке выходных условий истинность высказывания ZrC рассматривается как необходимость в присвоении переменной Z значения С. Вход­ ные и выходные условия могут быть выражены в виде таблицы с заголовком (головка таблицы) или без него (в виде матрицы). Входные условия бывают независимыми (одноуровневыми) и за­ висимыми (многоуровневыми).

Табличное

представление одноуровневых входных

условий

Таблица

I

типа

 

 

 

Таблица

II типа

Р 1 = { х , г. А ) ; А = { а ъ . .

а п)

Р 2 = < х , R , А > ;

R = <г1( . . ., г„>

х г

 

 

 

 

 

X

А

°1

 

 

 

 

Г1

«1

° г

 

 

 

 

Гг

а-г

а п

 

 

С

 

^ ...............

а п

 

 

N

Гп

 

 

 

Таблица

III

типа

 

 

Р 3

= { P i ...........Р п >;

P i

=

( x t , r t , щ )

 

V i

 

х г гг

 

 

 

1

Хтпгт

 

 

 

 

 

a i

 

0-2

 

 

 

ат

Здесь в таблице I типа — условия, имеющие одинаковую пере­ менную х и отношение г; II типа — условия, имеющие лишь оди­ наковую переменную х ; для III типа характерно наличие хотя бы двух разных переменных. При машинной проверке условий I и II типов (Р1 или Р2), т. е. условий хга; или xrfi, обычно необ­ ходимо запомнить номер t, при котором условие выполняется.

При условиях III типа, используемых обычно вместе со своим логическим базисом, необходимо запоминать выполнение или не­ выполнение всех условий для конкретной ситуации. Многоуров­ невые входные условия получаются соединением одноуровневых. Связь между условиями в этом случае носит иерархический ха­ рактер. При^проверке многоуровневых входных условий необ­ ходимо заполнить номер (номера) строки (строк), в которой вы­ полняются все входящие в нее условия.

207


Т аб ли чное п редставлен и е м ногоуровн евы х входны х условий

 

Таблица

IV типа

 

 

 

 

Таблица

V типа

 

Р 4 =

( Р \ , . . Р \ ..........Р т1 )

 

 

Р 5

= { Р { ,

Р ] ,

. .

., Р т2

)

И — /-Я табл.

I типа)

 

 

 

( Р 2 — 1-я табл.

II

типа)

 

■Vi

| . .

хтгт

X

1

 

 

Л

 

 

ЛГ

 

 

 

 

 

 

 

2

 

 

т

«11

«12

ауп

'll

 

«11

^12

^12

 

 

On

a im

«21

«22

&2ГП

Г21

 

«22

Г22

«22

 

 

гчт

т

«/11

«/12

и пт

ЛП1

 

«Л1

г/га

«/12

 

 

Гпт

а пт

 

 

 

Таблица

VI типа

 

 

 

 

 

 

 

Р 8 =

I Р ц К Р ц

= <ЛГ£/>

г Ч,

« //>

 

 

 

 

 

х п г1 1 ап

 

Х12г12а12

 

 

 

 

x im rim^im

 

 

Х21Г21а21

 

ха г22а22

 

 

 

 

хгтггта2 т

 

 

xm rm ani

 

хП2ГП1аП2

 

 

 

 

хптгптапт

 

Аналогичное табличное представление имеют и выходные условия.

Табличное представление выходных условий

I

тип

 

II тип

 

(Z, С>

с = (Ci, . . • 1 с/г)

V2 = <«!,

• *• > Vm) I

Vi = ( Z i

 

Z

Z l

 

Zm

 

 

 

 

 

С,

Cl

c 2

Cm

 

 

 

 

.

С2

 

 

 

Сп

III тип v 3 = (v } ...........V ] ,

i -я табл. I типа)

IV тип

V* = ( V 2...........

V ] ..............

V n2 )

( у 2 i -я табл. II типа)

Z i

z 2

| . . .

Zm

Z n

C n

Z u

С ц

Zim

Cytl

Cu

Cl2

 

C\tn

Z i i

C 21

Z i 2

С ц

Zim

Cim

 

 

 

 

 

 

 

Cl2

C 22

 

(-'Ят.

 

 

 

 

 

 

C m

Cn2

 

^ nm

Z n i

C m

Z m

C m

Znm

Cnm

 

 

 

 

 

 

 

 

 

 

 

 

 

l

208


V тип

V» =

|w</I, v i j = ( Z,

C i j )

С и

с 12 1 • ■ •

С уп

с 21

С 22

С 2т

С щ

Сп2

С пт

Решением по этим таблицам на основе найденных по входным условиям i-го номера строки (строк) является присвоение соот­ ветствующей переменной, константы, записанной в найденной строке. Так, для таблицы I типа присваивается значение С,- одной

переменной Z, т. е. Z = С,; для таблицы II типа Z(- =

Ctдля всех

найденных t'-x столбцов, для таблицы

III типа Z x

= Сп , . . .,

. . Zm — Cim, т. е. одному набору Z

переменных присваивается

константы из любой найденной строки матрицы М = | С;/-1; для таблицы IV типа Zn = Сп , . . ., Zim = Cim, т. е. разным пере­ менным присваиваются разные значения. При использовании таблицы V типа переменной Z присваивают значение С(/, где i и \ — найденные номера строк и столбцов матрицы М. Следова­ тельно, для данной таблицы необходимо иметь две группы входных условий: одна для нахождения нужной строки; другая — для нахождении столбца матрицы М. Соединяя прямо или через логи­ ческий базис входные и выходные таблицы, можно получить ре­ зультирующие таблицы (таблицы соответствия), в которых будет зафиксировано заданное соответствие между входными и выход­ ными условиями. Результирующие таблицы по выходным табли­ цам I—IV типов включают лишь одну группу входных условий и называются одновходными. Если используется выходная таблица V типа, которая требует двух групп входных условий, то в этом случае результирующая таблица называется двухвходной. Для обозначения типа результирующей таблицы будем пользоваться условными символами входных и выходных таблиц. Например запись

Р2

!

L - V1

означает, что результирующая таблица состоит из трех: входной II типа, логического базиса L и выходной I типа. Стрелками обо­ значено направление перехода от одной таблицы к другой. Сокра­ щенное обозначение этого типа таблиц Р 2ЬУг.

14 С. П. Митрофанов

209


Простейшими являются одновходные таблицы без логического базиса, т. е. типа Р1]/2, P4V \ P*V2и т. д. Их используют для записи постоянной технико-экономической информации (о заготовках, оборудовании, оснастке и т. д.). Такой, например является табл. 37.

 

 

 

 

 

 

Т а б л и ц а

3 7

Сортамент круглой горячекатаной стали (ГОСТ 2590—7 Г)

 

 

 

 

Допускаемые откл энения по диаметру

 

 

 

 

 

П ри ТОЧНОС1ги прокатки

 

Теоретиче­

Диаметр

Код

 

 

 

 

 

 

 

 

ский вес

прутка, мм

материала

обычной

повышенной

погонной

длины 1

м,

 

 

верхнее

нижнее

верхнее

нижнее

кг

 

 

 

 

 

18

01

+ 0 ,3

—0,5

+ 0 ,2

—0,3

2,00

 

19

01

+ 0 ,3

—0,5

+ 0 ,2

—0,3

2,23

 

20

01

+ 0 ,4

—0,5

+ 0 ,2

—0,4

2,47

 

21

01

+ 0 ,4

—0,5

+ 0 ,2

—0,4

2,72

 

Эта таблица типа Р 4И3, причем первые два столбца образуют вход­ ную таблицу, а остальные — выходные. Для первого столбца ус­ ловие Drd{ выражает необходимость найти такой номинальный диаметр di прутка, который был бы ближайшим большим или рав­ ным диаметру D заготовки. Для второго столбца отношение М = = mi выражает необходимость совпадения кода марки материала детали с маркой материала прутка. Если найдена строка, в которой выполняются оба заданных условия, то константы из найденной строки заносятся в соответствующие ячейки. Для обработки про­ стейших таблиц создаются стандартные процедуры, из которых одни применимы для входных таблиц, а другие для выходных. Комбинируя соответствующим образом эти процедуры, можно реализовать обработку достаточно большого числа типов резуль­ тирующих таблиц. Например, для входных таблиц может быть предложена процедура

Ft (Т, N, М, X \ l \ , RA | /, 1 1, N S \ 1 1),

где Т — код, обозначающий тип входной таблицы и характер про­ верки условий (по всему массиву RA или только до выполнения всех условий в какой-то строке); N —количество строк массиваRA,

в которых проверяются условия (N

= 1 для таблицы III типа

и N > 1 для всех остальных типов);

М — количество столбцов

массива RA, в которых проверяются условия = 1 для таблиц I

и II типов, М > 1 для всех остальных типов); X \ 1 | — идентифи­ катор первого элемента массива входных переменных; RA \ 1, 1 | — идентификатор первого элемента массива с константами и кодами

210