Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Мироносецкий Н.Б. Экономико-математические методы календарного планирования

.pdf
Скачиваний:
15
Добавлен:
23.10.2023
Размер:
6.86 Mб
Скачать

Вычисляем сумму

 

 

 

Ч

 

 

 

 

 

 

Q 9 = 2 A ; .

 

 

(3.1.28)

Заметим,

что

станок

So С момента

времени

освобождения

Л о связан

технологически только

с одним

из

множеств

{.®(A'"i)},

. . .,

{3){No)}-

Величина

Л е служит

в формуле

(3.1.27) только точкой отсчета для определения величин Av-

Для всех партии деталей, удовлетворяющих условию

(3.1.26),

независимо от того, какому из множеств

{3){N])},

. . .,

 

{3){Ne)}

принадлежит

партия

деталей

 

3)v,

величина

Л е в

формуле

(3.1.27)

является одинаковой.

 

 

 

 

 

 

 

 

 

Здесь

и в

последующем

для

удобства

изложения

у

AV

нумерация

изменена

так, что

индекс

v

соответствует поряд­

ковому номеру Ач в сумме (3.1.28). Все

AV

положительны

по

условию

(3.1.26) выбора партии

деталей. В силу того, что не

нашлось

пи одной партии деталей из

множества

 

{3)[N{)},...,

{3)(No)},

 

очередная

операция

над

которой может

идти

на

станке S b

..., S„ без простоя, и множество станков Si, ...,

SN

упорядочено по времени освобождения

станка

так, что

Л ^

^ : . . . ^ Л „ ,

то

возникшие

у

станков

5 Ь

 

SQ

простои

являются

для

данного календарного

графика

неустранимы­

ми на подмножестве невыполненных технологических опера­ ций множества деталей {3)}.

Величина неустранимого простоя станка Sv , v = 1(1)9 не меньше разности B%—Av. Здесь 5^ определена нз (3.1.24). Будем считать началом отсчета для следующего такта по­

строения

календарного графика

величину Л о = т а х ( Л ь

Л2 ,._. .,

А о)

и в соответствии с этим

будем называть

величи­

ну AV,

полученную по формуле (3.1.27), величиной

простоя

станка S,i(.V„), который возникает в том случае, если очеред­

ная операция партии деталей 3)ii(Nll)

будет выполняться на

станке 5 Д ; Р ) . Величина Av

не зависит

от индексов

станка

S( l вследствие того, что для

всех станков

S i , - - - ,

Sg

принято

единое начало отсчета времени для

следующих

тактов по­

строения календарного

графика.

 

 

 

 

В соответствии с выбранным критерием при построении

календарного графика

при

выполнении соотношения

(3.1.3)

предпочтение отдается партиям деталей, вызывающим наи­ меньшие простои станков. В процедуре Монте-Карло такое предпочтение партиям деталей отдается на основании исчис­ ленной вероятности попадания партии деталей на станок.

На множестве партий деталей, удовлетворяющих условию

(3.1.26), строится некоторая функция Р=Р(А',

%в, Qe), прини­

мая значения O ^ P ^ l и удовлетворяющая

условию нормиро-

99

вания ^

Р ( Д л ) ) =

1. Для

простоты

записи

обозначим р (д^,

v=l

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ле, fie) =

Р ( А „ ) .

Функция

строится_таким образом, что для

любых значений

ар£ументов

A , t

и A v имеет

место

Р ( Д ч ) < ;

- <Р _ (Д||),

если Д ц < Ду,

и,# наоборот, для А ц >

A v выполняется

Р ( Д ( 1 ) <ГР ( Д у ) .

При

Д у _ = =

Д„

соответствующие

 

значения

функции также равны Р ( Д ц )

= Р (,AV ) .

дающих

 

<•<)

Иначе

говоря, для

партий

деталей,

относитель­

но меньший

простой

станка,

значение

функции

 

Р = Р ( Д ' )

должно быть

относительно

 

больше

и

наоборот.

Значение

функции

Р = Р(Д')

принимается

за

вероятность

попадания

партии деталей на станок, технологический помер которого соответствует технологическому номеру очередной операции над данной партиен деталей.

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

отрезков ®в — A j , . . . ,

Qo — Д - , соединяя которые

получим

отрезок длиной

 

 

Ч

 

 

Й' = 2

fQe — A v ) = (Хв — i ) n e -

( з - 1 - 2 9 )

По подпрограмме генерирования псевдослучайных чисел, рав­

номерно распределенных

на

[0, 1], получаем

псевдослучайное

число

С помощью

известного

преобразования £=£'(Яр—

— l)Qo превращаем иитервал_ [0,1]

в интервал [0 (?.о*—1) fio].

Выпишем

границы отрезков fie — A v

:

 

 

 

 

* о = 0 ,

 

 

 

 

 

 

 

 

 

хх =

х0 -|- 0~е

Д |

=

fie

Ai»

 

 

 

xj = x,-i

+

fie

-

Ai -

/fie -

2

Av ,

(3.1.30)

 

x-r — x-

+

fi0

Ax

=

( h — 1) fie-

 

Формулы (3.1.30) и (3.1.10)_ совпадают^ с, точностью до прин­ ципа образования величин Д . Отрезок fie — А / г , в который по­ пала случайная точка £, определяется по условию

(3-1-31)

100

{2D(Nh)}

или, заменяя A:S _I И хк по формуле (3.1.30), получим:

(/г -

1) о е -

V Av - " I < kih

- 2 А; •

(3.1.32)

 

 

V 1

V 1

 

 

Процедура Монте-Карло в данном

случае

выполняется

так же, как и в

случае

поиска партии

деталей

для

проведе­

ния очередной операции в условиях выполнения неравенства (3.1.2). Точнее говоря, в программе ЦВМ процедура МонтеКарло вынесена в стандартный блок, работающий в любой из ситуации построения календарного графика. Перед рабо­

той блок

«процедура Монте-Карло» настраивается подпро­

граммой формирования на заданные параметры.

Особый

случай выполнения процедуры Монте-Карло

в условиях

выполнения соотношения (3.1.3) возникает при

Яо—1: процедура обходится, выбирается единственная деталь

множества {<2)(Ni)},

 

. ..,

{3>{NQ)}.

процедуры

Монте-Карло

 

13 общем

случае

выполнение

требует такое

же

количество

просмотров, что

и при

розы­

грыше в условиях

неравенства (3.1.2). Первый просмотр мно­

жества {3){N\)},

 

. . ., {2){NQ)}

предпринимается

для получе­

ния

ло и Q.Q, а второй — для

определения интервала

попада­

ния

случайной

точки

по соотношению (3.1.32) и параметров

партии деталей для проведения очередной операции.

 

 

Среди станков

S b . . . ,

Se

могут

встречаться

взаимозаме­

няемые станки, имеющие одинаковый технологический номер,

такие станки в описываемой

задаче различаются параметром

и (номер рабочего места).

В информации об очередной опе­

рации над партией деталей станок определяется с точностью до рабочего места. Чтобы выяснить номер рабочего места, не­ обходимо при нахождении по формуле (3.1.32) интервала Qo—Aft, в который попала случайная точка £, фиксировать множество {3){Nlt)}, которому принадлежит даннаяt партия деталей, соответствующая отрезку Qo—Д,,. Для фиксации мно­ жества достаточно при проверке условия (3.1.31) организовать счетчик, фиксирующий порядковый номер мно­

жества

{з> (N„)},

k = l (l) е.-

 

 

Если

среди

станков

S \ , .

.., Sn имеется большое

количест­

во взаимозаменяемых,

то

экономию машинного

времени

дает следующая модификация процедуры Монте-Карло. Из

множеств {3)(N\)},

. . . ,

{30{No)},

соответствующих станкам

S u ..., So, выберем

по

одному из совпадающих множеств, со­

ответствующих взаимозаменяемым станкам.

В полученной

последовательности множеств {SD{N^)},

. . . ,

{<Z5(We ')} пег

совпадающих. Из данной последовательности выбираем все партии деталей, удовлетворяющие условию (3.1.26), определя­ ем число партий Л, величины Д' по формуле (3.1.27), сумму

101

£2— формуле

(3.1.28), после чего выполняем

процедуру Мон­

те-Карло. По

формуле, аналогичной (3.1.31),

устанавливаем

интервал попадания точки £ и, следовательно, партию дета­ лей для проведения очередной операции.

Определить по имеющейся информации рабочее место, па котором должна производиться очередная операция над данной партией деталей, невозможно. Снова воспользуемся процедурой Монте-Карло. Из последовательности S i , . . . , SQ выберем все взаимозаменяемые станки с технологическим номером, определяемым выбранной операцией. Пусть количе­

ство таких станков х ¥. Псевдослучайное число

£;, полученное

с помощью соответствующей

подпрограммы,

преобразуется

в порядковый номер v станка в последовательности

взаимоза­

меняемых станков Sj.1,, S^a ,..., Sp,v , S^

с помощью

формулы

v = [ & . 4 ' ] +

l .

 

(3.1.33)

Здесь, как и ранее, оператор [

] означает выделение целой

части числа.

 

 

 

 

Выигрыш во времени в данной процедуре получается при отборе партий_деталей по критерию (3.1.26), при формирова­

нии величин

Д' по формуле (3.1.27), при

вычислении сумм

(3.1.28)—за

счет уменьшения количества

Л (членов суммы)

п при втором просмотре множеств партий деталей для опре­ деления интервала попадания псевдослучайной точки по фор­ мулам (3.1.30), (3.1.31). Уточнение границы количества взаи­ мозаменяемых станков множества {S}, после которой необхо­ димо переходить к модифицированной процедуре Монте-Кар­ ло, аналитически исследовать трудно, но эта граница может быть найдена экспериментальным путем, на основе определе­ ния статистических характеристик при расчетах на ЦВМ.

Итак, по одной из процедур Монте-Карло, работающих при выполнении условий (3.1.2) или (3.1.3), партия деталей для проведения очередной операции на стайке 3)f выбрана.

По принятому в данном варианте алгоритма допущению длительность выполнения операции t% и подготовительно-за­

ключительное время операции 0|. £-— 1(1) и,-, i — 1(1) т являются детерминированными величинами. После разыгры­ вания партии деталей на станок необходимо выполнить детерминированную процедуру для определения начального н конечного моментов времени выполнения операции. В силу детерминированности величин t\, и / | эта процедура

совпадает

с соответствующей процедурой в алгоритмах реше­

ния задач

I и 1.4

 

 

 

При установлении момента Г„ начала выполнения очеред­

ной операции 0\(t%.,

 

ЛМ

над партией деталей 3)t на

 

I \ i

i

AS/

 

102

{3){Nk)}
3)i(h\l)

станке

S k следует учитывать, что

если

сменность

всех стан­

ков S \ , . . ., 5А одинакова,

то момент Та начала

обработки

партии

деталей

SDi па станке 5к

можно

найти

по

формуле

 

 

Тп = tn =

max | 4 _ ь

А к ] .

 

(3.1.34)

Однако если

станки S b

.. ., S h

имеют

различные

парамет­

ры сменности, то

 

 

 

 

 

 

 

 

 

 

T„^tH.

 

 

 

 

(3.1.35)

Определить Т„ в этом случае необходимо по формулам (2.1.23), которые означают, что если в данный день партия деталей поступила па обработку на станок до того, как последний отработал положенное время, партия деталей запускается в обработку немедленно, однако если она посту­ пила на станок позже момента времени K,^{t„), то партия деталей попадает на обработку в начале следующего дня.

После установления 7",, величина Те подсчитывается по формуле (2.1.24) с предварительным определением величины То из уравнения (2.1.25). По процедуре (2.1.26) пересчитыва-

ются новые значения Ак и .

i

При решении задачи 1.1 в технологической последователь­ ности партии деталей 125,- могут встретиться нестаночные опе­ рации типа «старение». Разыгрывание партий деталей на про­

ведение таких операций производится по общей

процедуре

Монте-Карло, но при оформлении

календарного

графика, как

н в модификации 1.1, всегда

полагается А к = 0 .

Функция прио­

ритета Дт,- партии

деталей

3)i

пересчитывается

по формуле

(2.1.27).

 

 

 

 

 

 

 

 

Sbi имеет

Пересчет

индекса приоритета

партии

деталей

некоторые особенности по сравнению с алгоритмом задачи I .

Эти особенности

связаны

с разбиением

множества {ЗУ) на

попарно непересекающиеся подмножества {3)(Nk)}.

 

Индексы

приоритета

можно

пересчитывать по общей формуле, описан­

ной в начале настоящего параграфа, но, очевидно,

этот путь,

не использующий информацию о предыдущем

упорядочении,

не является рациональным'и ведет к значительным

затратам

машинного

времени. Предлагается

следующая

 

процедура.

К моменту окончания перевычисления функции приорите­

та Дт( обрабатываемой партии деталей 3)i

операция

0~.(Nk)

оформлена в календарном графике, в

качестве

очередной

выбрана следующая операция

0|.+i (при Ъ Ф и,-),

которая

должна выполняться па одном из станков с технологическим номером Л'ц. В соответствии с переходом партии деталей 3 ) t на очередную операцию необходима процедура перенесения информации о партии деталей из множества

в множество {.2>(Л'„)}. Процедура организована достаточно экономным образом: дело сводится к упорядочению множест­ ва {55(Л'ц)} по приоритету Axv в связи с появлением нового элемента St) и Доупорядоченпе состоит в определении места элемента 2); в упорядоченном по Ах,- множестве SD(\\t). Вся процедура выполняется за один просмотр информации о пар­ тиях детален.

Для всех остальных партий детален SD-, не попавших на

обработку в данном

такте построения календарного

графика

и принадлежавших

множеству {St>(Nu)},

из которого была

выбрана

партия детален для проведения

очередной

операции,

функция

приоритета

псресчптывастся

в соответствии с форму­

лами (2.1.8) п (2.1.9). Это возможно

потому, что

пересчет

индексов

приоритета

партии деталей

3)}^{&(N,)}

происхо­

дит в одном подмножестве {.25(Л'',,)}. Информацию о границах

подмножества {S/)(Nk)}

необходимо

заслать в блок

 

настройки

процедуры

(2.1.8),

(2.1.9).

При

упорядочении

множества

{St>(Nh)}

по Ах процедура строится с учетом

того, что: а) мно­

жество

3)(Nh)

было

упорядочено по

старому

Ах; б)

vgy}^{3)(Nk)}

 

 

имеет место

' A X J < A T J .

 

 

 

Такая

тщательность

при организации процедуры

переупо­

рядочения

множества

{SD{N,,)} вызвана тем, что эта процеду­

ра выполняется

в каждом

такте

построения календарного

графика. У станка

S h , на котором в данном

такте

построения

календарного графика производилась обработка партии дета­

лей, изменился

момент времени

освобождения A h в соответст­

вии с оператором присваивания

А к : = Тв. При пересчете

индек­

са приоритета

станка S h и переупорядочении множества

стан­

ков 5'i, . . . , S n

в соответствии

с индексами приоритета учиты­

вается тот факт, что всегда

прежний момент времени

осво­

бождения Ак<Тв.

Следовательно, станок Sh при выполнении

этой процедуры не может переместиться вперед в упорядочен­ ном множестве S i , S 2 , •. •, S n .

После пересчета индексов приоритета и упорядочения мно­ жеств станков н партий детален начинается новый такт по­ строения календарного графика проверкой условий (3.1.1) — (3.1,3) для станков S u 5 2 , ... , S n . График считается построен­ ным, когда выполнено условие.

V,(i6=[l, Ш]), £,•="/.,•+1.

(3.1.36)

После построения календарного графика фиксируем его параметры: первоначальное псевдослучайное число t, с ко­ торого началось построение r-го экземпляра календарного графика, и К {г), определяемое по формуле

m

 

 

 

 

Kr = K(r) --=

т а х а , - [ 0 , В х . ( / - ) - т Л

+

maxB'K_ (r). (3.1.37)

/-•1

l 1

I

i

1

104

Здесь fi^ (г) означают величины

в r-м экземпляре

календарного

графика. Напомним, что через

5 ^

обозначен

момент

времени

освобождения партии деталей

S)i от у.{ опера­

ции, и, принимая

во внимание,

что и,- означает

номер

послед­

ней

операции

в технологической последовательности

партии

деталей, будет говорить,

что

В*. (/')— момент времени вы­

пуска партии детален 3 ) t

в r-м календарном графике.

 

Из

непосредственного

сравнения с

критерием

(2.1.5) и

(2.1.6)

видно,

что min/((/') есть критерий задачи календар­

ного планирования. Параметры

[г, £;г, К (г)) календарного гра­

фика NT для

краткости обозначим через

(£„

Кг). Определе­

ние

числа Кт

связано с фиксированием двух массивов чисел

{а,-},

{т,}. В

каждом массиве находится

по /«чисел,

 

которые

в процессе решения задачи не могут быть размещены в опе­ ративной памяти ЦВМ, а размещаются на внешних накопи­ телях. После построения r-го календарного графика, точнее, после определения величин В * , £=1(1)/п массивы {а,} и величина К (г).

{ T J переписываются в оперативную память и вычисляется Обращение к внешней памяти резко снижает скорость статистического моделирования процесса, поэтому практиче­ ские частные случаи, ие требующие обращения к внешней памяти для определения характеристик r-го календарного

графика, должны быть рассмотрены отдельно.

Одним из распространенных частных случаев критерия (2.1.5), (2.1.6) является критернен Джонсона, который в при­ нятых обозначениях можно записать следующим образом:

 

min max в1

lr).

 

 

 

г i

i

 

 

 

Для

определения величины

Тг —• max В х . (/•) массивы {а,} н

{т,,}

 

 

i

'

 

не используются, и процедура

моделирования

существен­

но упрощается. Поэтому при построении

программы

статисти­

ческого моделирования определение параметров построенного календарного графика предусматривает режим, при котором вместо вычисления величины Кт по формуле (3.1.37) вычис­ ляется величина Тг по формуле

Г г = т а х В к . ( г ) .

(3.1.38)

Дальнейшие шаги процедуры статистического моделирова­ ния будут излагаться для общего вида критерия (3.1.37) (не­ обходимые различия в процедурах для К (г) и ТГ будут отме­ чены). Итак, после построения /"-го экземпляра Nr календарно­ го графика его параметры (£,. Кг) фиксируются, и передачей

105

управления блоку восстановления исходной информации на­ чинается построение (г+1)-го календарного графика.

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

ную для работы основной

программы.

Блок восстановления

информации

осуществляет

обратное

перемещение массива

с магнитных

барабанов в

оперативную память машины п

передает управление процедуре статистического моделирова­ ния, которая начинает построение (г+1)-го календарного графика проверкой соотношении (3.1.1) — (3.1.3).

После построения N календарных графиков имеем стати­ стическую выборку, из которой можно извлечь разнообразную информацию. Из всех полученных календарных планов опти­ мальным с позиций выбранного критерия будет календарный план с порядковым номером г°, на котором достигается

 

/ 0 » = min

г)-

(3.1.39)

 

/--1(1)Л'

 

 

 

Заметим, что если'при решении календарной задачи инте­

рес представляет только календарный план

г°, то мет необхо­

димости

хранить информацию о всей выборке (£i,

К ) ) , . . . ,

( £ г , К г

) , • •-, (£.v, К п ) - В этом

случае

необходимо

перейти

к такому режиму работы описываемой процедуры, в котором после получения календарного плана запоминаются характе­ ристики плана г°, па котором достигается

Кр, = min (K-r_v Kr). (3.1.40)

Здесь за Ко берется произвольное, достаточно большое машинное число. При r=N оба минимума совпадают: Kj-. =

=

Кг"-

При

таком способе запоминаются характеристики

(£i

К jo)

только одного плана.

 

После выполнения процедуры Монте-Карло и получения Л'

календарных

графиков на печать выдается календарный гра­

фик г0 , удовлетворяющий условию (3.1.39). Для восстановле­

ния

календарного графика

необходимо

псевдослучайное

число

£го переслать на место

исходного

числа программы

генерирования псевдослучайных

чисел и выполнить процеду­

ру построения календарного графика еще один раз. Восста­ новленный таким образом календарный график выдается на печать для исполнения.

Режим восстановления календарного графика г°, удов­ летворяющего условию (3.1.39), существенно зависит от спо­ соба генерирования случайных равномерно распределенных чисел, используемых в процедуре построения каждого из N

106

экземпляров календарного графика. Если случайные равно­ мерно распределенные числа генерируются датчиком случай­

ных чисел, то восстановить календарный график

по числу

£г ,

с которого началось построение календарного

графика

но­

мер г, невозможно. Для восстановления календарного графи­

ка в

этом случае

необходимо запомнить все его

элементы.

При

выполнении

процедуры (3.1.40) календарный

график f°

единым массивом

переписывается при

во внеш­

нюю

память.

 

 

Если календарные графики генерируются с помощью псев­ дослучайных равномерно распределенных чисел, получаемых по специальной программе, то восстановление календарного графика, удовлетворяющего условию (3.1.39), происходит как построение (/V+l)-ro календарного графика с начальным случайным числом £го . Это удается сделать истому, что все программы генерирования псевдослучайных чисел устроены как некоторые рекурсивные процедуры. Использование датчи­ ков случайных чисел в статистическом моделировании слож­ ных систем с последующим восстановлением одного из наблю­ давшегося состояния системы, как правило, менее эффектив­

но, чем применение программы генерирования

псевдослучай­

ных чисел.

 

 

 

 

 

 

 

В описываемой процедуре псевдослучайные числа получи­

лись программным путем. По заданным

условиям планирова­

ния

производится

на отрезке

[z°,

г],

где z°

определяется

соответствующей

подпрограммой

при

первоначальном

анали­

зе

исходной информации по условию

(2.1.7),

а г

наперед

заданное число. Календарный график /- 0 считается восстанов­

ленным, если

выполнено

либо условие

(3.1.36),

либо

 

V i ( < x ( ( i e [ l , ' " L

& = £ ° ( 1 ) и »

m i n ( s l . ) > 2 .

(3.1.41)

Условия (3.1.36), (3.1.41)

проверяются в каждом

такте

восстановления

календарного

графика,

проверка

происходит

не непосредственным образом, а с помощью некоторого более общего условия, а именно, в процессе поиска станка под за­

грузку

не рассматриваются

станки Sh, для которых

Ah^z.

Множество {3)(NH)}

партий

деталей, претендующих на

этот

станок, считается пустым.

 

 

 

Процесс восстановления календарного графика заканчи­

вается,

если, для всех

станков

S i , . . . , Sn каждое подмножест­

во деталей {3)(М\)},

..., {3){NQ)}

является пустым.

 

Попутно заметим, что в изложенном алгоритме календар­ ный график как таковой строится только при процедуре вос­

становления

календарного

графика,

удовлетворяющего

(3.1.39)

или

(3.1.40).

 

 

При процедуре построения календарных графиков со зна­

чениями

минимизируемой функции К\,.

• •, Кг,. • • > Кн для

107

определения оптимального календарного плана из выборки объема .V в программе отключаются блоки оформления кален­ дарного плана. Необходимая информация для следующего такта построения календарного графика выбирается из харак­ теристик множеств {S)(Ne)} П {5} . Отключение блоков оформ­ ления календарного графика позволяет после выполнения процедуры (2.1.26) переходить непосредственно к процедуре (2.1.27). Если программа работает в режиме восстановления календарного плана, то при настройке программы на этот режим, процедура оформления календарного графика испол­ няется в каждом такте построения графика между процеду­ рами (2.1.26) и (2.1.27). Такое отключение блоков дает эконо­ мию времени н места в оперативной памяти ЦВМ. При изло­

жении

алгоритма такие подробности были опущены.

В производственных условиях заводские технологические

номера

станков Nk п деталей U являются длинными буквен­

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

лям_ присваиваются новые технологические

номера Nh и 1к,

и для сохранения

взаимно-однозначного соответствия между

Nk и Afh, /,• и

организуется специальный словарь. Мы не

затрагиваем здесь

вопросов, связанных с

рациональным по­

строением таких словарей. Заметим лишь,

что в том случае,

когда каждый из массивов {Nh} и (/;} заводских технологи­ ческих номеров станков и номеров чертежей деталей может быть целиком размещен в оперативной памяти вычислитель­

ной машины, одним, из наиболее рациональных методов со­

ставления

является

следующий.

 

Каждое

слово

массива {Nk)[{lt})

можно рассматривать

как некоторое число независимо от его буквенно-цифрового содержания. Массив чисел {N'k} ({/;))упорядочивается. В дан­ ном случае применяется лексикографическая процедура упо­ рядочения массива как одна из самых простых и экономич­ ных. После упорядочения массива [Nk\((/;)) одинаковые слова оказываются в списке соседними. Последний шаг — собствен­

но перенумерация слов

упорядоченного

массива — осущест­

вляется очевидным образом. Если массив

{Nh} [Ut))

не уме­

щается в оперативной

памяти полностью,

то в этом

случае

алгоритм перенумерации усложняется, время для осуществ­ ления перенумерации резко увеличивается. Один из алгорит­ мов перенумерации, применяемый в случае больших масси-. BOB {Nb\ и основанный на процедуре Монте-Карло с исполь­ зованием программных псевдослучайных чисел, был указан в нашей работе (Мнроносецкий, Рабинович, 1966).

108

Соседние файлы в папке книги из ГПНТБ