Динамические расписания для гибких производств: 12 компьютерных программ [Ю. Е. Мауэргауз] (pdf) читать онлайн

Книга в формате pdf! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]
  [Оглавление]

12
компьютерных
программ

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

ш

Программьгвыполнены в виде макросов MS Excel на языке VBA, которые
обрабатывают данные, расположенные на листах MS Excel. Результаты
выводятся как к виде текстовых записей, так и виде диаграмм в вектор­
ной графике. Тексты программ являются доступными для чтения.

ГП

ГП

го

о
m

ш

ш

2

к

«Классика операционного менеджмента»

ДИНАМИЧЕСКИЕ РАСПИСАНИЯ
ДЛЯ ГИБКИХ ПРОИЗВОДСТВ

12

X

Серия книг

MEScenter.ru

го

Юрий Мауэргауз - инженер-механик, окончивший Одесский политехнический
институт в 1963 г. Работая в оборонной промышленности в Казахстане, он в
1970 г. защитил диссертацию на степень к.т.н. в Ленинградском ЦНИИ «Гидроприбор» в области подводного оружия. В дальнейшем большинство его работ
связано с планированием и управлением промышленным производством на ряде
заводов и исследовательских институтов. Работая в качестве доцента в
Уральском и Одесском политехническом институтах, преподавал применения
компьютерной техники для управления производством. В настоящее время
является консультантом Московского инженерно-внедренческого центра ИВЦ
Информ. Опубликовал более 50 научных работ и 5 книг по производственному
планированию на русском и английском языках.

ISBN 978-5-9906448-1-6

Мауэргауз Ю.Е

компьютерных программ

Ю.Е. Мауэргауз

Динамические расписания
для гибких производств
12 компьютерных программ

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

Программы размещены на прилагаемом компакт-диске (или до­
ступны для загрузки по коду, размещённому на стр. 313) и вы­
полнены в виде макросов MS Excel на языке VBA, которые
обрабатывают данные, расположенные на листах MS Excel.

Москва • 2018 • НГСС

Рецензенты:
Д.т.н., профессор Бурков В.Н.
Д.ф.-м.н., профессор Лазарев А.А.
Институт проблем управления РАН

УДК 658.51
ББК 65.05

Ю.Е. Мауэргауз
Динамические расписания для гибких производств: 12 компьютерных программ / Мауэргауз
Ю.Е., М.:НГСС - 2018, 312 стр. с илл.
В книге описывается набор из двенадцати компьютерных программ, имеющих общий алго­
ритм, основанный на двух критериях: суммарной функции полезности заказов и стоимости
переналадки гибкого производства, причем функция полезности каждого заказа вычисляется
по его производственной напряженности. Во всех программах учитывается календарный гра­
фик работы цеха, в различных программах используются отдельные ограничения, указанные
выше.
Программы охватывают большинство используемых цеховых машинных структур: одиночные
машины различных типов; не одинаковые параллельные машины с работой «под заказ» и «на
склад»; гибкие поточные линии как в дискретном, а так и в процессном производстве; универ­
сальное производство; планирование работы производственных бригад.
Программы выполнены в виде макросов MS Excel на языке VBA, которые обрабатывают дан­
ные, расположенные на листах MS Excel. Результаты выводятся как к виде текстовых записей,
так и виде диаграмм в векторной графике. Тексты программ являются доступными для чтения.

Книга может быть полезна всем специалистам в области организации и планирования производ­
ства, студентам и аспирантам технических ВУЗов, пользователям и разработчикам прикладного
программного обеспечения класса ERP и MES.

Книга подготовлена и издана при поддержке Российского MES-центра
www.MEScenter.ru

ISBN 978-5-99064484-6

© Мауэргауз Ю.Е., 2018
Вёрстка © ООО «Нефтегазсофтсервис», 2018
Обложка Бондарева Е.Б., 2018
www.ogss.ru

Оглавление

Предисловие рецензентов

1

Предисловие автора

3

Глава 1. Базовые сведения о производственных расписаниях
1.1
Место производственных расписаний в процессе планировании............................
1.2 Масштаб и стратегия производства..............................................................................
1.3 Календарно-плановые нормативы.................................................................................
1.4 Критерии качества планирования.................................................................................
1.5 Стандартная классификация оптимизационных моделей планирования...............
1.6 Гибкое производство.......................................................................................................

7
7
9
И
13
15
17

Глава 2. Ежедневное планирование
2.1 Групповые методы при составлении расписаний
2.2 Правила приоритета.......................................................................................................
2.3 Динамические расписания.............................................................................................
2.4 Алгоритмы динамического планирования.................................................................
2.5 Составление расписаний при нескольких критериях выбора..................................

19
19
21
23
27
28

Глава 3. Построение многокритериальныхдинамических расписаний
3.1 Понятие производственной напряженности..............................................................
3.2 Функция текущей полезности заказа .......................................................................
3.3 Построение дерева расписания....................................................................................
3.4 Критерии отсечения ветвей..........................................................................................
3.5 Типовый алгоритм построения расписания ..............................................................
3.6 Вычисление интегралов напряженности заказов

31
31
34
37
39
44
47

Глава 4.

4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9

Стандартные функции для расчета расписаний

Функции расчета интегралов напряженности...........................................................
Функция вызова интегралов напряженности
Функции расчета критериев..........................................................................................
Функция пересчета трудоемкости работы к календарным часам
Функция поступления работ на машину в рабочее время.....................................
Функция числа рабочих часов в заданном календарном сроке...............................
Функция определения возможности начала непрерывного процесса ..................
Вспомогательные функции ..........................................................................................
Функции графического отображения результатов планирования

55

55
56
57
58
63
64
65
68
69

Построение расписания для одиночной машины с последовательным вы­
полнением работ
73
5.1
Введение ...........................................................................................................................
5.2 Исходные данные для группового последовательного выполнения работ на оди­
ночной машине.........................................................................................................
75
5.3 Работа с программой........................................................................................................
5.4 Анализ результатов планирования..............................................................................
5.5 Блок-схема программы .................................................................................................
5.6 Листинг основной части программы...........................................................................
5.7 Перепланирование расписания.....................................................................................
5.8 Моделирование расписания...........................................................................................
5.9 График загрузки и критический горизонт планирования........................................
5.10 Планирование и перепланирование при выполнении работ с большой длительно­
стью ............................................................................................................................ 101

Глава 5.

Глава 6.
6.1
6.2
6.3
6.4
6.5
6.6
6.7
6.8

Расписание для одиночной машины с группами одновременно выполня­
емых работ
105
Введение ...........................................................................................................................
Исходные данные для группового выполнения работ на одиночной машине . . .
Работа с программой........................................................................................................
Анализ результатов планирования..............................................................................
Блок-схема программы .................................................................................................
Листинг основной части программы...........................................................................
Перепланирование расписания.....................................................................................
Моделирование расписания...........................................................................................

73

76
79
81
83
92
97
98

105
106
106
108
ПО
ПО
118
120

Глава 7. Построение расписания для обрабатывающего центра
123
7.1
Введение ..........................................................................................................................
123
7.2 Исходные данные для группового выполнения работ на одиночном обрабатыва­
ющем центре............................................................................................................ 124
7.3 Работа с программой.......................................................................................................
126
7.4 Анализ результатов планирования.............................................................................. 128
7.5 Блок-схема программы ................................................................................................. 129
7.6 Листинг основной части программы........................................................................... 129
7.7 Перепланирование расписания.................................................................................... 138
7.8 Моделирование расписания........................................................................................... 142
Глава 8. Расписания для параллельных машин
8.1
Введение ...........................................................................................................................
8.2 Расписания для параллельных машин с последовательным выполнением работ .
8.3 Расписания для параллельных машин с работой «на склад»....................................
8.4 Расписания для параллельных машин с переналаживаемым формоизменяющим
инструментом............................................................................................................ 174

145
145
146
162

Глава 9. Расписания для гибких поточных линий
9.1
Введение ...........................................................................................................................
9.2 Расписания для гибких линий с заданными ипостоянными размерами партий .
9.3 Расписания для гибких линий с ограниченнымиразмерами партий.......................

185
185
186
199

ii

9.4

Расписания для гибких линий процессного производства с позаказным планиро­
ванием ....................................................................................................................... 219

Глава 10. Расписания дляуниверсального производства
10.1 Введение .........................................................................................................................
10.2 Расписания призаданном набореработ.......................................................................
10.3 Расписания при выпуске комплектов деталей на склад............................................

239
239
240
253

Глава И. Расписания для производственных бригад
11.1 Введение .........................................................................................................................
11.2 Исходные данные задачи
11.3 Работа с программой.......................................................................................................
11.4 Анализ результатов планирования.............................................................................
11.5 Листинг основной части программы..........................................................................
11.6 Коррекция расписания...................................................................................................

275
275
278
280
281
283
290

Заключение

293

Список литературы

297

Приложения
Приложение 1. Список условныхобозначений.................................................................
Приложение 2. Пример планирования производства в информационной системе

Ш

301

303

Предисловие рецензентов

Задачи производственного планирования - это задачи оптимального распределения огра­
ниченных ресурсов во времени. Различные модели и методы производственного планирования
рассматриваются в рамках теории расписаний, в которой производится размещение внешних за­
казов на обрабатывающих машинах. Если для получения готовой продукции достаточно одной
машины, такая система является одностадийной, в противном случае система рассматривается
как многостадийная. Для дискретного производства существуют одни методы планирования, в
то время как для процессного производства обычно используются существенно другие методы.
Кроме того, значительно отличаются позаказное планирование и планирование «на склад».
При планировании часто стремятся получить такие варианты расписаний, которые являют­
ся оптимальными относительного того или иного критерия. В частности, такими критериями
может быть минимизация момента завершения обслуживания всех заказов, минимальное от­
клонение от заданных директивных сроков и т.д. Выбор такого критерия при реальном плани­
ровании часто является для пользователя весьма непростой задачей.

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

Отметим, что своевременное выполнение заказов, обеспечивающее высокий уровень их вы­
полнения (эффективности), может быть достигнуто, как правило, за счет уменьшения размеров
партий, однако это противоречит требованию низкой себестоимости производства. Необходи­
мость одновременного улучшения этих характеристик представляет собой так называемую «ди­
лемму планирования». В книге основным методом решения указанной проблемы является груп­
повое планирование, заключающееся в определении рациональных размеров технологических
партий и составлении производственных расписаний. Размеры партий и последовательность их
выполнения существенно зависят от объемов и сроков выполнения внешних заказов. Эта связь

1

Предисловие рецензента

формулируется так: изготовление продукции производится партиями, а отгрузка осуществля­
ется по заказам.
В качестве основного метода составления расписания предлагается разработка набора недо­
минируемых решений, причем окончательное решение, т.е. выбор из предлагаемого набора,
остается за пользователем. Для этих целей используются системы поддержки решения, позво­
ляющие проводить моделирование расписаний при различных входных параметрах и выбирать
вариант, наиболее подходящий в конкретных условиях.
В качестве примеров «группового» многокритериального планирования описаны 12 задач
цеховых расписаний. Для их решения разрабатываются динамические расписания с двумя
критериями одновременно: первым критерием является своевременность выполнения заказов,
вторым критерием - стоимость обработки и переналадки изготовляемых объектов. Возмож­
ность высокого уровня обслуживания заказчиков (своевременность) в книге рассчитывается с
помощью функций текущей полезности заказов, базирующихся на понятии производственной
напряженности. На примерах демонстрируется, что предлагаемый метод функций полезности
заказов является достаточно устойчивым, причем метод вполне адекватно реагирует на случа­
ющиеся изменения, включая необходимость выполнения срочных работ.
Значительную часть книги занимают программы установления соответствия календарных
часов расписания и рабочих часов функционирования машин с учетом рабочего календаря.
Во всех рассмотренных задачах генерируемые расписания полностью учитывают календарный
график работы цеха, включая режим работы каждой смены. Если работа может прерываться
(например, в дискретном производстве), программа полностью использует имеющийся резерв
суточного рабочего времени. Если график предусматривает нерабочие дни, или рабочий день
меньше 24 часов, то в некоторых случаях (например, в процессном производстве) программа
предварительно проверяет возможность окончания работы до наступления нерабочего времени.
Если резерва времени недостаточно, работа автоматически переносится на следующий рабочий
день.
Главной целью монографии является последовательное изложение метода функций полезно­
сти заказов для построения рациональных цеховых расписаний. На каждом предприятии есть
свои отличия, влияющие на составление расписаний, практическое использование любой из
описанных в книге компьютерных программ, как правило, требует их определенную доработку.
В монографии достаточно подробно проводится анализ исходных данных поставленных задач,
их решений и хорошо проиллюстрирована графически.
Книга будет полезна работникам производственных и вычислительных служб промышлен­
ных предприятий и проектных организаций самого различного профиля, студентам, аспирантам
и исследователям технических вузов.

Д.т.н., профессор Бурков В.Н.
Д.ф.-м.н., профессор Лазарев А.А.
Институт проблем управления РАН

2

Предисловие автора

Обычно полагают [Pinedo, 1995], что предметом составления расписания является распре­
деление ограниченных ресурсов по предстоящим задачам. Это определение, вообще говоря, от­
носится к расписаниям в любой сфере деятельности: производство, транспорт, обучение, сервис
и т.д. Однако, по некоторым параметрам расписания по этим направлениям сильно отличаются.
Прежде всего, такие отличия заключаются в степени повторяемости основных плановых собы­
тий, которые характеризуются моментами поступления заданий для планирования, моментами
поступления ресурсов и моментами планового и фактического выполнения расписания.
В ряде видов бизнес-процессов расписания характеризуются прогнозированием плановых
событий с очень высокой вероятностью. Именно такие расписания используются для между­
городнего пассажирского транспорта, проведения учебных занятий, зрелищных мероприятий и
т.п. Циклическая повторяемость событий также имеет место в массовом производстве.
При составлении расписания используются два возможных метода: статический и динами­
ческий. Статический метод базируется на распределении ресурсов, которое фиксируется до на­
чала функционирования расписания и в дальнейшем не изменяется. При динамическом подходе
некоторые (или даже все) параметры расписания могут изменяться по мере его выполнения.
Разумеется, использование статического расписания существенно проще, чем динамического,
хотя составление статического расписания большого размера может быть достаточно сложным.
Очевидно, что статическое расписание может использоваться только при высокой вероятности
его осуществления. Во всех тех случаях, когда события, влияющие на выполнение расписания,
либо являются случайными, либо имеют значительную случайную составляющую, удовлетво­
рительным может быть только динамическое расписание.
Динамичность цехового планирования обусловливается всей совокупностью событий, про­
исходящих в производственном подразделении за некоторый плановый период. Последователь­
ность работ в расписании существенно зависит не только от длительности и срока их выполне­
ния, но также от стоимости переналадки машин, их первоначальной настройки, календарного
графика работы цеха, обеспеченности операторами, от износа инструментов, графика обслужи­
вания машин, графика поставки материалов и других необходимых ресурсов.
Наличие расписания не всегда означает его полного и соответствующего выполнения, но
чрезвычайно полезно с точки зрения подготовки и организации производственного процесса.
Качество расписания обычно оценивается с нескольких точек зрения. Прежде всего, расписание
должно предусматривать выполнение работ согласно срокам в действующих производственных
заданиях. С другой стороны, расписание должно способствовать достаточно высокому уровню
экономической эффективности производства.
Еще одним фактором оценки динамического расписания является его устойчивость. Т.к. в
процессе выполнения производственного расписания очень велика возможность возникновения
разнообразных «помех», корректировка расписания, как правило, необходима, но она должна
быть не очень значительной.

3

Предисловие автора

Динамичность производственных расписаний в рыночной экономике определяется не толь­
ко, и даже не столько, возможными оперативными сбоями, сколько необходимостью частой
перестройки производства исходя из требований заказчиков. Расписания должны отражать
требованиям гибкости современного производства, от которой существенно зависит положе­
ние предприятия на рынке. В настоящей книге, так же, как и в предыдущей книге автора
[Мауэргауз, 2012], последовательно приводятся примеры т.н. «группового» многокритериально­
го планирования. Для этого разрабатываются динамические расписания с двумя критериями
одновременно: первым критерием является своевременность выполнения заказов, вторым кри­
терием - стоимость обработки и переналадки изготовляемых объектов.
В первой и второй главах приводятся необходимые для дальнейшего известные сведения в
области планирования. В третьей главе излагаются основные понятия о производственной на­
пряженности и функциях полезности заказов. Начиная с четвертой главы, в книге описываются
программные модули для различных задач производственных расписаний. Здесь существенную
часть занимают программы установления соответствия календарных часов расписания и рабо­
чих часов функционирования машин с учетом рабочего календаря.
Изложение всех задач в книге проводится единообразно, что способствует более простому
ознакомлению с ними. Каждая задача решается на числовом примере, данные для которого
подробно описываются, а полученное решение анализируется с помощью таблиц и графиков.
Кроме того, рассматривается применение каждой задачи в динамике при пересчете в новых
условиях - с новой датой планирования и новым заданием. Следует отметить, что подготовка
для пересчета расписания подробно описывается в соответствующих разделах и в ряде слу­
чаев является довольно трудоемкой. Автоматизация этой подготовки возможна, но выходит за
пределы данной книги.
Основой для всех дальнейших задач является приведенная в главе 5 задача о планировании
для одиночной машины при последовательном выполнении работ. Эта задача рассматривает­
ся достаточно подробно, описываются возможности моделирования расписания при различных
условиях, определяется понятие критического горизонта, приводятся примеры перепланирова­
ния расписания. В главах 6 и 7 рассматриваются еще две задачи для одиночных машин для машины (печи) с параллельной обработкой и для планирования работы обрабатывающего
центра с программным управлением.
В главе 8 приведены три задачи построения расписания для параллельных машин, в главе
9 - три задачи для гибких поточных линий, а в главе 10 - две задачи для универсального про­
изводства. Наконец, в главе И описана задача составления расписаний для производственных
бригад. Во всех главах подробно описываются алгоритмы и программные листинги соответству­
ющих задач. Каждая из двенадцати задач снабжена макросом на языке VBA Excel с открытым
текстом. Исходные данные для каждой задачи записываются на листе Excel, и там же помеща­
ются результаты планирования. Почти все задачи иллюстрируются с помощью диаграмм Ганта,
а также различных других диаграмм.
В некоторых задачах в книге используется позаказное планирование, в других - планиро­
вание «на склад»; часть задач характерна для дискретного производства, другая - для процесс­
ного. Несмотря на столь широкий охват, для всех этих задач оказалось возможным применить
общий подход с использованием упомянутых выше функций полезности.
Цель книги состоит в том, чтобы, во-первых, продемонстрировать возможности излагаемо­
го метода, а, во-вторых, снабдить разработчиков производственных расписаний конкретными
программными решениями, применимыми для большинства из промышленных отраслей. Необ­
ходимо учесть, что на практике весьма редко можно применить какую-нибудь задачу из опи­
санных в этой книге непосредственно и без доработок. Как правило, на каждом предприятии
(и даже в каждом цехе) есть свои отличия при составлении расписаний. Наличие открытых

4

© 2018, Мауэргауз Ю.Е.

Предисловие автора

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

© 2018, Мауэргауз Ю.Е.

5

Глава 1

Базовые сведения о производственных
расписаниях

1.1

1.2
1.3

1.1

Место производственных расписаний в процессе
планировании ...........................................................................
Масштаб и стратегия производства....................................
Календарно-плановыенормативы..........................................

Критерии качества планирования........................................
Стандартная классификацияоптимизационных моде­
лей планирования
15
1.6 Гибкое производство ..............................................................

1.4
1.5

7
9
11

13

17

Место производственных расписаний в процессе планировании

Широко известная схема на рис. 1.1 хорошо отражает основные задачи планирования в
цепочках поставок и имеет вид т.н. матрицы «производственные процессы - временные гори­
зонты».
Как следует из рис. 1.1, модули планирования должны обеспечить разработку заданий на
перспективу, заданий средней срочности и краткосрочных расписаний для четырех производ­
ственных процессов - снабжения, производства, распределения и сбыта. Необходимо отметить
разницу в понимании главного планирования в схеме на рис. 1.1 и общепринятого понятия
Производственные процессы:
Планирование:

Разработка сети поставок

Долгосрочное

Среднесрочное

Главное планирование

Закупки и
материальное
планирование

Краткосрочное

Производст­
венное
планирование

Планирование
распределения
продукции

Составление
расписаний

Транспортное
планирование

Планирование
спроса

Резервирование и
вьшолнение
заказов

Рис. 1.1 Модули планирования для матрицы цепочек поставок по [Stadtler,

Kilger, 2008]

7

Базовые сведения о производственных расписаниях

главного плана в ERP (Enterprise Resource Planning) - системах. Фактически под главным
планированием на рис. 1.1 понимается разработка плана продаж и производства ERP-систем.
Соответственно понятие производственного планирования на рис. 1.1 равносильно главному
плану и номенклатурному плану в ERP-системе, а составление расписания - оперативному
планированию.
Главный план представляет собой набор планово-учетных единиц, которые должны быть
произведены в течение нескольких плановых периодов от начала действия этого плана до го­
ризонта планирования. Плановый период, как правило, равен одному месяцу или, при больших
масштабах производства, одной неделе. Горизонт составления главного плана (учет заказов)
может устанавливаться в пределах 3-12 плановых периодов в зависимости от того, какое
положение продукция предприятия занимает на рынке.
При формировании главного плана планово-учетные единицы (ПУЕ) могут быть представ­
лены с различной степенью детализации. Существует определенная связь ПУЕ с типом произ­
водства и принятой на предприятии системой формирования объемно-календарных планов. Как
указано в [Грачева и др., 2005], система оперативного планирования характеризуется видом
планово-учетной единицы, составом календарно-плановых нормативов и порядком оформления
плановой и учетной документации.
Из матрицы на рис. 1.1 непосредственно не следует, какие составляющие планирования
должны быть выполнены в рамках ERP-системы, а какие возложены на APS (Advanced
Planning System) - систему или какую-либо еще систему. Как правило, разработчики раз­
личных APS-систем выбирают из этой схемы некоторую часть, создают для нее программное
обеспечение и согласуют его с базовой ERP-системой. При этом неизбежно, с одной стороны
имеет место дублирование функций, а с другой - цели планирования могут не достигаться.
Оперативное (внутрицеховое) планирование, главным образом, заключается в составлении
расписания выполнения заданий, установленных номенклатурным или главным планом. Ино­
гда, например, при переналаживаемом крупносерийном процессном производстве, оперативный
план совпадает с главным планом. В этом случае составление расписания является состав­
ной частью разработки главного плана. В настоящее время объемно-календарное планирова­
ние обычно осуществляется с помощью ERP-системы или комбинации ERP и APS систем.
Для оперативного планирования возможно применение этих же систем или специальных MES
(Manufacturing Execution System) - систем. Например, фирма SAP использует комбинацию
ERP-системы R3 и APS-системы SAP APO как для объемно-календарного планирования, так
и для составления внутрицеховых расписаний. Известны примеры совместного использования
ERP-системы Альфа и MES-системы Фобос.
В системе Technoclass предусмотрена последовательная работа ERP и MES модулей соот­
ветственно для объемно-календарного и оперативного планирования (рис. 1.2). Как видно из
рис. 1.2, APS-система в данном случае является составной частью MES модуля.
Цель этапа ежедневного планирования состоит в разработке автоматизированного ежеднев­
ного плана обработки изготовляемых объектов в одном цехе или блоке цехов промышлен­
ного предприятия, работающих по директивно установленным срокам выпуска этих объектов.
Этот этап планирования проводится внутрицеховыми службами или производственным отделом
предприятия.
Заданиями для ежедневного планирования являются календарные план-графики, разраба­
тываемые производственным отделом для каждого производственного подразделения на период
до горизонта планирования. Как правило, последний совпадает с величиной планово-учетного
периода (неделя, декада, месяц).
Ежедневное плановое задание составляется в каждом цехе или блоке цехов в качестве
документа, обязательного для выполнения конечными исполнителями. Задание может состав8

© 2018, Мауэргауз Ю.Е.

Базовые сведения о производственных расписаниях

Рис. 1.2

Последовательное планирование ERP и MES модулей

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

1.2

Масштаб и стратегия производства

Для построения модели планирования необходимо учитывать характерные особенности кон­
кретного производства. Часто полагается, что планирование следует вести различными спосо­
бами в зависимости от того, является производство дискретным или процессным. Напомним,
что в дискретном производстве единицами продукции являются штуки, а в процессном - едини­
цы массы или объема. Однако оба эти вида производства имеют существенное общее свойство,
заключающееся в том, что во всех случаях конечный продукт отгружается потребителю в
размере одной или нескольких партий продукции.
Если рассматривать процессное производство, то следует различать два его вида - пери­
одическое производство и непрерывное производство. В периодическом процессном производ­
стве все его стадии осуществляются последовательно в одном аппарате, в непрерывном одновременно в разных аппаратах. Вместо термина «аппарат», характерного для процессно­
го производства, в дальнейшем везде будем употреблять более общий термин «машина». При
периодическом производстве, естественно, готовая продукция выгружается из машины по ис­
течение периода обработки в виде некоторой партии. В процессном непрерывном производстве,
несмотря на непрерывность самого процесса, отбор продукции также возможен только ча­
стями, которые также образуют партию. Поскольку основной задачей планирования является
определение размеров партий и интервала между ними, использование «партионного» свой­
ства продукции позволяет однотипно подойти к вопросам планирования как дискретного, так
и процессного производства.
С точки зрения использования тех или иных методов планирования наиболее важными
характеристиками производства являются его техническая структура (тип), масштаб и произ­
водственная стратегия.

© 2018, Мауэргауз Ю.Е.

9

Базовые сведения о производственных расписаниях

Характер планирования сильно зависит от использования на производстве той или иной
технической структуры, которая тесно связан с его масштабом (табл. 1.1).
Наиболее универсальным с точки зрения масштаба, является применение одной машины.
Более сложные технические структуры тяготеют либо к большому, либо к малому масштабу
производства. Промежуточным является случай не синхронизированного поточного производ­
ства (предметно-замкнутого участка), при котором характерный для массового производства
поточный способ комбинируется с некоторыми возможностями универсального производства.
Стратегия производства характеризует степень готовности выпускаемой продукции к удо­
влетворению потребительского спроса. Эта степень готовности определяет скорость реагирова­
ния производственного предприятия на получаемые им заказы и очень существенно влияет на
статус предприятия на рынке. Известны четыре стратегии производственной готовности:

-

производство «на склад» (make-to-stock, MTS);
производство «под заказ» (make-to-order, МТО);
сборка «под заказ» (assemble-to-order, АТО);
разработка «под заказ» (engineer-to-order, ETO).

На рис. 1.3 видно, как точка проникновения заказов (decoupling point), соответствующая
границе серой области, перемещается в глубину производственной деятельности по мере при­
ближения стратегии к отслеживанию внешних заказов. На выбор стратегии производства вли­
яют длительность производственного цикла, допустимое время ожидания выполнения заказа в

Таблица 1.1

Связь типа производства и его масштаба

Основные типы производства

Масштаб производства

Одиночная машина
Несколько специализированных
параллельных машин

Любой возможный

Синхронизированное поточное
производство

Массовый с модификациями или
крупносерийный

Массовый, крупносерийный

Предметно-замкнутый участок

Серийный, мелкосерийный

Универсальное производство

Мелкосерийный и индивидуальный

Проектное производство

Индивидуальный

Рис. 1.3

Глубина проникновения заказов для разных производственных

стратегий

10

©2018, Мауэргауз Ю.Е.

Базовые сведения о производственных расписаниях

конкурентной среде, необходимость адаптации продукции к требованиям покупателя, наличие
достаточных оборотных средств и т.д. Может показаться, что выбор стратегии производства
жестко связан с его масштабом, однако это не всегда так. Стратегия «на склад» может использо­
ваться даже при мелкосерийном производстве, если наблюдается достаточно постоянный спрос.
Если в этом случае возможно варьирование состава продукции при заказе, то стратегия «на
склад» видоизменяется в стратегию «сборка под заказ», при которой основная масса компонен­
тов все же изготовляется «на склад». В то же время стратегия «под заказ» часто используется
при крупносерийном производстве.
Тип модели планирования существенно зависит от способа организации производства «выталкивание» (push) или «вытягивание» (pull). Как известно, при выталкивающем способе
материальный поток перемещается от одного исполнителя к каждому последующему адреса­
ту строго по распоряжению (команде), поступающему из центра управления локальным (цех,
участок) или общим (предприятие) производством. Вытягивающий способ производства, на­
оборот, предусматривает определение объёмов продукции на каждом производственном этапе
исключительно по потребностям последующих этапов.

Календарно-плановые нормативы

1.3

Основой проведения плановых расчетов являются текущие исходные данные о выпуска­
емой продукции, оборудовании и заказах. Кроме того, используются сведения нормативно­
справочного характера, например, о режиме работы предприятия в целом и его отдельных
подразделений. Результатом планирования являются некоторые расчетные данные.
Выше было указано, что система оперативного планирования, кроме вида планово-учетной
единицы, характеризуется составом календарно-плановых нормативов. При автоматизирован­
ном планировании, однако, этот состав не является жестко фиксированным. Прежде всего,
использование той или иной плановой величины в качестве нормативной или расчетной за­
висит от этапа планирования. Например, длительность производственного цикла для изделий
конкретного вида при объемно-календарном планировании может считаться нормативно задан­
ной величиной, а при оперативном планировании эта длительность определяется в процессе
планирования.
Кроме того, система может автоматически менять использование расчетных нормативов по
заложенным в систему правилам их приоритетов. Например, при наличии в базе данных норма­
тива сменности конкретного цеха для расчетов используется эта величина, в противном случае
для этого же цеха в качестве норматива сменности используется сменность по предприятию в
целом.
При планировании могут использоваться различные календарно-плановые нормативы шести
видов:

-

нормативы, характеризующие работу предприятия в целом;
нормативы, относящиеся к организационной группе (цеху);
нормативы по группе оборудования;
нормативы по каждому конструкторскому объекту;
нормативы версии технологического процесса на объект в целом;
нормативы на операции техпроцесса.

Весь набор нормативов предприятия в целом можно разделить на две группы. К первой
из них относятся нормативы, описывающие характер работы предприятия как единого произ­
водственного организма. Использование этих нормативов не зависит от параметров структуры
предприятия. Ниже приведен примерный перечень таких нормативов:

© 2018, Мауэргауз Ю.Е.

И

Базовые сведения о производственных расписаниях

- размер планово-учетного периода предприятия (год, полугодие, квартал, месяц, декада,
неделя, сутки);
- способ определения начала отсчета номеров партий запуска продукции (с начала произ­
водства, текущий год, квартал, месяц, декада, неделя, сутки);
- норматив времени на приобретение материалов и комплектующих изделий для обеспече­
ния производственной программы в сутках;
- время на разработку лимитно-заборных карт в сутках;
- норматив времени на получение материалов со складов в часах;
- норматив времени на передачу цехам данных по календарному плану в часах.
Под планово-учетным периодом предприятия понимается период определения его
финансово-экономических показателей, что, как правило, производится ежемесячно.
Выпуск готовой продукции и ее составляющих осуществляется партиями, причем обозна­
чение каждой партии выпуска состоит из номера партии запуска и порядкового номера партии
выпуска в соответствующей партии запуска - например, 132/2. Если партия запуска не дро­
бится на партии выпуска, то обозначение партий запуска и выпуска совпадает. Таким образом,
в обозначении партии готовой продукции и ее составных частей определяющее значение имеет
порядковый номер партии запуска.
Такой порядок нумерации отражает тот факт, что для всех объектов в одной партии запуска
соблюдается один и тот же технологический процесс. В то же время само значение порядкового
номера партии запуска для любого объекта зависит от точки начала отсчета, которая может
устанавливаться в зависимости от принятой на предприятии традиции.
К остальным нормативам первой группы по предприятию в целом относятся, в основном,
показатели, регламентирующие затраты времени на передачу информации междуподразделе­
ниями предприятия, а также усредненные данные по работе с поставщиками и клиентами.
Ко второй группе нормативов предприятия в целом можно отнести приведенные ниже нор­
мативы, затрагивающие характер работы подразделений:
- количество рабочих смен;
- размер цехового планово-учетного периода (месяц, декада, неделя, сутки);
- продолжительность передачи партии с операции на операцию внутри цеха в часах с
учетом среднего времени ожидания момента освобождения оборудования;
- продолжительность передачи партии между цехами в часах с учетом среднего времени
ожидания момента освобождения оборудования;
- продолжительность передачи и возвращения партии предприятиям-смежникам для обра­
ботки в сутках.
Для каждого подразделения эти нормативы могут быть продублированы, и в таком случае
будут обладать приоритетом перед нормативами, находящимися в общем списке предприятия.
В то же время, для многих подразделений часто оказывается достаточным использования нор­
мативов второй группы предприятия в качестве цеховых.
Основным нормативом, устанавливаемым для каждой единицы оборудования, является фонд
рабочего времени. При отсутствии данных по каждому оборудованию может устанавливаться
нормативный фонд времени на группу оборудования, находящегося в одном цехе. При этом под
такой группой понимается перечень единиц оборудования, которые могут выполняться одинако­
вые технологические функции. Если данные по фонду времени для всех единиц оборудования
имеются, то фонд времени для группы оборудования из норматива превращается в расчетную
величину.
По каждому виду готовой продукции, а также каждому виду сборочной единицы или детали
в процессе планирования могут использоваться несколько плановых нормативов. Например,
для крупных деталей и сборочных единиц может устанавливаться как норматив наибольшее
12

©2018, Мауэргауз Ю.Е.

Базовые сведения о производственных расписаниях

количество объектов в партии. Для заготовок часто устанавливаются нормативные размеры
заделов, а иногда и размеры партий - например, при определенном количестве мест для литья.
Кроме описанных выше категорий, для объекта номенклатуры могут быть наложены специ­
альные ограничения по длительности изготовления партии, совмещению циклов изготовления
и сборки и т.д., которые следует рассматривать как нормативные.
Например, для деталей с большой продолжительностью технологического цикла может уста­
навливаться нормативный коэффициент допустимой длительности производственного цикла.
Этот коэффициент устанавливает наибольшее допустимое отношение длительности производ­
ственного цикла одной партии деталей к длительности производственного цикла партии готовой
продукции.
Для каждого объекта номенклатуры должна иметься возможность до планирования устано­
вить значение нормативного коэффициента совмещения времени изготовления объекта со вре­
менем сборки вышестоящей сборочной единицы. Этот коэффициент может меняться в пределах
от 0 до 1, и по умолчанию равен 0. На объекты номенклатуры могут устанавливаться такие
нормативы, как размеры возможных потерь на брак. Возмещение брака может проводиться
несколькими способами. В первом случае устанавливается параметр номенклатуры (детали) плановый нормативный коэффициент потерь на брак от величины изготовляемой партии. Если
брак не планируется, его возмещение может предусматриваться из специально поддерживае­
мого нормативного страхового запаса (задела), величина которого также является параметром
номенклатуры.
В том случае, если норматив страхового запаса на отдельно взятую номенклатуру деталей
не устанавливается, он поддерживается автоматически по коэффициенту страхового запаса.
Этот коэффициент определяет величину обязательного страхового запаса как процент от опти­
мальной партии и устанавливается для каждого цеха.
На операцию может устанавливаться норматив (параметр) количества одновременно обра­
батываемых объектов на единице оборудования. Под этим параметром понимается, например,
количество мест для деталей в камере сушки, в гальванической ванне, в окрасочной камере
при одновременном выполнении операции над несколькими однородными объектами.
На операцию может устанавливаться нормативное количество работников, одновременно
выполняющих операцию на единице оборудования. Это количество может быть меньше едини­
цы при многостаночном обслуживании.

Критерии качества планирования

1.4

Для описания, анализа и оценки конфигурации цепи поставок была разработана модель
SCOR (Supply Chain Operation Reference), устанавливающая основные понятия взаимоотноше­
ний между участниками цепи поставок. В целом модель SCOR базируется на трех основных
идеях:
- моделирование бизнес-процессов;
- количественная оценка качества процессов;
- использование наилучших (эталонных) образцов.

Модель SCOR предусматривает 4 категории оценки качества каждой цепочки поставок:

-

уровень обслуживания заказчиков;
экономическая эффективность;
гибкость в удовлетворении спроса;
способность к развитию.

© 2018, Мауэргауз Ю.Е.

13

Базовые сведения о производственных расписаниях

Таблица 1.2

Основные критерии и ограничения

Виды критериев и ограничений

Направления улучшения

Обозначение

Уровень обслуживания заказчиков

С1

Минимальное запаздывание

Поддержание складских запасов

С2

Своевременное пополнение

Прямые издержки

K1

Минимизация трудоемкости

Эффективное использование сырья
и материалов

K2

Оптимальный выход разных видов
продукции, минимум отходов

Длительность производственного
цикла

КЗ

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

Производительность (загрузка
оборудования)

К4

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

Динамика потребления сырья,
материалов и компонентов

К5

Равномерность использования,
уменьшение складских и
межоперационных запасов

Экономия ресурсов,
обеспечивающих производство

Кб

Уменьшение расхода энергии,
моторесурса оборудования и т.п.

Мощность производства
Баланс основной продукции,
побочной продукции и сырья

01
02

Установка рационального значения

Емкость хранилищ

03

Обеспечение рациональных
размеров

Определение правильных
соотношений

Одним из важнейших бизнес-процессов в SCOR является планирование, поддерживающее
определенный баланс между спросом и предложением. В процессе планирования определяются
необходимые действия по производству, закупкам и доставке разнообразных продуктов.

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

Не претендуя на абсолютную полноту, приведем примерный перечень возможных критериев
оптимизации и основных ограничений (табл. 1.2).
Первые 2 критерия в табл. 1.2 прямо или косвенно оценивают уровень обслуживания по­
требителей, 3 последних параметра являются ограничениями, остальные представляют собой
различные факторы экономической эффективности. Кроме трех основных ограничений, при­
веденных в табл. 1.2, в конкретных задачах на математическую модель могут накладываться
разнообразные дополнительные условия, связанные, например, с возможными размерами пар­
тий, их последовательностью, возможностью прерываний при обработке и т.п.
14

© 2018, Мауэргауз Ю.Е.

Базовые сведения о производственных расписаниях

1.5

Стандартная классификация оптимизационных моделей
планирования

В последние 2 десятилетия было опубликовано очень большое число работ, рассматривав­
ших оптимизацию производственного планирования методами исследования операций. Напри­
мер, в обзоре [Allahverdi et al., 2008], посвященном только работам, оптимизирующим плани­
рование с переналадками, начиная с 2000 г., упоминается более 350 статей. Большую роль
в упорядочении исследуемых задач сыграла классификация, предложенная в [Graham et al.,
1979] и имеющая вид

а|Ж

(1-1)

В этой классификации любые виды оборудования называются машинами (machine), а со­
вокупность операций по производству партии какого-либо продукта называется работой (job).
Поля классификации соответствуют трем направлениям:
- типу производства (виду используемых машин);
- типу проводимых работ и различных ограничений;
- виду целевой функции.
Использование этой классификации позволяет достаточно подробно описать основные ха­
рактеристики практически каждой рассматриваемой задачи, хотя с усложнением этих задач в
классификационных полях каждого из трёх направлений приходится записывать все больше
различных параметров.
В первоначальном варианте классификации предполагалось рассматривать 5 типов произ­
водства.
- Одиночная машина (single machine). Этот тип не только используется для планирования
работы одной имеющейся машины, но и считается базовым для разработки алгоритмов
планирования в более сложных случаях.
- Параллельные машины (parallel machines), которые могут быть абсолютно одинаковы,
подобны по своим параметрам, а также совершенно различны по параметрам, но приме­
няться с одинаковой целью.
- Поточное производство (flowshop). В этом случае машины выстраиваются в порядке тех­
нологического процесса, а все работы на этих машинах - в одинаковой последовательно­
сти. При этом допускается, что операционное время для различных машин и различных
работ также может быть различным.
- Универсальное производство (jobshop). При таком варианте производства для различных
работ возможен любой порядок технологического процесса.
- Производство с не установленным порядком технологического процесса (openshop). Здесь
различные операции каждой работы могут выполняться в любой последовательности.
В поле а может также указываться количество машин для соответствующего типа произ­
водства.
Типы ограничений, записываемые в поле /3, могут иметь самый разнообразный характер.
Прежде всего, это ограничения различных типов, налагаемые на даты окончания и начала ра­
бот. Затем могут указываться обозначения ограничений по приоритетам работ, возможности их
прерывания в процессе обработки, необходимости обработки партиями, характеру последова­
тельности операций и т.д.
В качестве целевой функции, описываемой в поле 7 стандартной классификации, часто
используется один из показателей времени проведения задаваемого объема работ, приведенных
ниже.

(с) 2018, Мауэргауз Ю.Е.

15

Базовые сведения о производственных расписаниях

Наиболее известным является критерий, определяемый по полному времени завершения
всего объема запланированных работ Стах (makespan). Величина Стах равна отрезку времени
от начала работ (момента, равного нулю) по разработанному плану до момента окончания
последней работы, указанной в этом плане. Очевидно, что

(1.2)

Стах ~ max(Ci),

где Ci - момент завершения г-ой работы.
Критерий Fmax определяет наибольшую длительность проведения г-ой работы, т.е. продол­
жительность производственного цикла

Fmax = max(Fi), Fi = Ci - ri,

(1.3)

где ri (release date) - момент запуска г-ой работы.
Критерий Ттах равен наибольшему запаздыванию окончания г-ой работы, т.е.

Ттах = max(Tj), Ti = max(0, Ci — di),

(1.4)

где di (due date) - момент окончания работы, заданный заказчиком.
Критерий Lmax равен наибольшему отклонению г-ой работы от заданного срока, т.е.

Lmax ~~ m.ax(|jLi|), Li = Ci

di.

(1.5)

Существуют также различные другие критерии планирования и их комбинации, которые
могут быть использованы в качестве целевой функции. Например, в качестве критерия может
быть использована сумма по всем п работам
Tw = ^WiTi

(1.6)

г=1

запаздываний каждой работы Ti с весом Wi.
Стоимостной критерий f может относиться либо к прибыли, либо к издержкам. В первом
случае критерием является величина fmax, а во втором fmin. При использовании в качестве
критерия взвешенной стоимости запаздываний определяется величина
п
Г=^ШгТгСг,
г=1

где Сг - цена одного дня запаздывания.

16

(с) 2018, Мауэргауз Ю.Е.

(1.7)

Базовые сведения о производственных расписаниях

Гибкое производство

1.6

Гибкое производство облегчает возможность оперировать различными изменениями в про­
изводственной ситуации. Такое производство должно обладать определенными специальными
свойствами:
- объекты производства должны обладать четкой системой идентификации;
- производство должно легко управляться с помощью системы планирования и диспетчи­
рования;
- должна быть хорошо организована переналадка производства.
Различают 7 разновидностей гибкости:
-

операционная гибкость отдельной машины;
гибкость выпуска различных модификаций продукции;
возможность чередования выпуска различной продукции;
способность к переходу на новую продукцию;
гибкость технологического маршрута;
гибкость выпускаемого объема продукции;
гибкость в обслуживании готовой продукции.

Гибкость использования конкретной машины обусловливается значением времени перена­
ладки, степенью сложности составления и ввода программы выполнения операций, и, в боль­
шой степени, квалификацией персонала. Значение имеют также конструктивные особенности
машины, позволяющие выполнять различные операции с продукцией различных размеров и
объемов.
Необходимость в выпуске различных модификаций продукции вызывается значительным
разбросом потребностей различных заказчиков. Гибкость производства в данном случае, преж­
де всего, зависит от возможностей разработчиков продукции и организаторов подготовки про­
изводства, а также от вышеописанной операционной гибкости.
Чередование выпуска продукции различного вида существенно определяется размерами вы­
пускаемых производственных партий. Размеры партий и порядок из запуска представляют со­
бой основную задачу производственного планирования, и настоящая книга посвящена именно
решению таких задач. Возможность перехода на новую продукцию обычно, прежде всего, оце­
нивается с экономической точки зрения. Здесь учитывается такие факторы как возможность
разработки продукции, наличие оборудования, трудности освоения, а также финансовые воз­
можности.
Гибкость маршрутизации возможна, если существует достаточное количество оборудования,
способного выполнять операции необходимого технологического процесса. Кроме того, такое
оборудование должно быть оснащено соответствующим инструментом, материалами и т.п. Если
используется цифровое оборудование, то оно также должно быть снабжено соответствующим
программным обеспечением.
Изменение объемов выпуска продукции осуществляется, как правило, при изменение усло­
вий ее сбыта на рынке. Основными факторами при таких изменениях являются возможности
оборудования, наличие персонала и финансовое состояние предприятия. Проблемой объема
выпуска может явиться не только увеличение, но и снижение объемов, т.к. в этом случае
необходимы специальные мероприятия с персоналом, а также с оборудованием.
После выпуска продукции предприятие часто сталкивается с необходимостью ее дальней­
шего обслуживания. Гибкость в этом вопросе связана со стоимостью создания специальных
станций и рабочих мест для обслуживания, подготовкой специального персонала, транспорт­
ными расходами, специальной аппаратурой и т.п.
© 2018, Мауэргауз Ю.Е.

17

Базовые сведения о производственных расписаниях

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

18

© 2018, Мауэргауз Ю.Е.

Глава 2

Ежедневное планирование

2.1 Групповые методы при составлении расписаний ..............
2.2 Правила приоритета.................................................................
2.3 Динамические расписания.....................................................

2.1

2.4 Алгоритмы динамического планирования............................
2.5 Составление расписаний при нескольких критериях
выбора.................................................................................
28

19
21
23

27

Групповые методы при составлении расписаний

Для большинства видов производства основными проблемами оперативного управления яв­
ляются:
а)
б)
в)
г)
д)
е)
ж)

своевременное выполнение заказов;
снижение продолжительности производственного цикла;
снижение трудоемкости переналадки оборудования;
снижение стоимости транспортировки материалов и заготовок;
достаточная загрузка оборудования;
равномерная загрузка персонала;
повышение коэффициента использования материала.

Рассмотрим эти вопросы более детально.
Часто полагают, что главная задача работы каждого цеха состоит в том, чтобы не со­
рвать заданные сроки поставки изготовляемых объектов для последующей обработки и сбор­
ки. Действительно, контролирующий аппарат предприятия, как правило, нацелен на выявление
запаздываний таких поставок, после чего часто следуют различные меры воздействия на ис­
полнителей. В то же время изготовление ранее назначенного срока практически никогда не
контролируется. Однако в этом случае изготовленные объекты обречены на длительное пролеживание в местах хранения, что приводит к омертвлению оборотных средств и захламлению
цеховых площадей. Поэтому следует стремиться не просто к выполнению контрольных то­
чек поставки, а к изготовлению заготовок, деталей и узлов в моменты, наиболее близкие к
необходимым. Такой подход привел к появлению известной стратегии Just-in-Time, хорошо
зарекомендовавшей себя в крупносерийном производстве.
Снижение продолжительности производственного цикла связано с уменьшением времени
нахождения материальных запасов в процессе производства. Проблемы, перечисленные в п.п. в)
и г) связаны со стремлением снизить трудоемкость подготовки изготовления и транспортиров­
ки. Большие значения этих величин приводят к увеличению продолжительности производства,
19

Ежедневное планирование

удлинению производственного цикла и соответствующему увеличению стоимости изготовле­
ния. Указанные трудоемкости затрачиваются на каждую технологическую или транспортную
партию, поэтому снижение количества партий приводит к уменьшению этих затрат.
Во многих случаях, особенно при использовании нового дорогостоящего оборудования, ме­
неджмент предприятия стремится плотнее загрузить такое оборудование, чтобы оправдать сде­
ланные затраты. Конечно, никакое оборудование не может быть загружено на 100%, но такие
попытки иногда наблюдаются. Более разумной является политика загрузки на достаточно вы­
соком уровне (70-80%), при которой остаются промежутки времени на корректировку сменных
заданий, а также на систематическое техническое обслуживание.
Большое влияние на качество работы цеха оказывает характер отношений между работни­
ками в процессе производства. Необходимо учитывать естественные желания рабочих иметь
высокий и стабильный заработок, равномерную загрузку в течение рабочей недели и рабочего
дня, а также избегать усталости от длительной монотонной работы. К сожалению, при работе
на рынке предприятие часто подвержено колебаниям спроса на выпускаемую продукцию, что
неизбежно ведет к изменениям в потребности в рабочих и служащих.
Результатом деятельности любого производства являются не только продукция, но и отходы
материала. Разумеется, количество таких отходов должно быть по возможности меньше, что
может достигаться использованием, например, рациональных карт раскроя. Однако при резких
и частых изменениях в производственных планах, такие составленные заранее карты быстро
становятся не актуальными.
Подводя итог изложенного выше, заметим, что большинство перечисленных проблем, а
именно п.п. б), в), г), д), ж) сводятся к вопросам экономическим, т.е. к стоимости производ­
ственных затрат. Действительно, повышение трудоемкости в п.п. б), в), г) непосредственно
вызывает необходимость в росте затрат на оплату труда; недостаточная загрузка оборудова­
ния по п.д) влечет затраты на компенсацию простоя (амортизационные расходы); появление
отходов в п.ж) вызывает рост стоимости исходного материала. В то же время необходимость
своевременного выполнения заказов по п.а) непосредственно к стоимости сведено быть не мо­
жет. Любые попытки назначения т.н. «штрафов за просрочку» являются субъективными и, как
правило, имеют мало общего с фактической действительностью.
Что касается п.е), то эта проблема носит социально-психологический характер, и также не
может сводиться ни к экономическим, ни к каким-либо другим аспектам.
Переходя к рассмотрению путей решения описанных проблем, заметим, что своевременное
выполнение заказов, обеспечивающее высокий уровень их выполнения (эффективности), может
быть достигнуто, как правило, за счет уменьшения размеров партий, однако это противоречит
требованию низкой стоимости производства. Необходимость одновременного улучшения этих
характеристик представляет собой т.н. «дилемму планирования».
Поскольку улучшение показателей по стоимостным критериям практически всегда приводит
к ухудшению критериев эффективности, получить единственное решение методами оптимиза­
ции, по большей части, невозможно. В таких условиях вычислительными методами возможно
получить только набор т.н. недоминируемых (неулучшаемых, Паретовских) решений, а окон­
чательное решение, т.е. выбор из предлагаемого набора, остается за пользователем. Для этих
целей удобно использовать системы поддержки решения, позволяющие проводить моделирова­
ние расписаний при различных входных параметрах и выбирать вариант, наиболее подходящий
в конкретных условиях.
Основным методом решения рассматриваемых задач является групповое планирование, за­
ключающееся в определении рациональных размеров производственных партий и составлении
соответствующих планов и производственных расписаний. Размеры партий и последователь­
ность их выполнения существенно зависят от объемов и сроков выполнения внешних заказов.

20

(с) 2018, Мауэргауз Ю.Е.

Ежедневное планирование

Эта связь может быть кратко сформулирована так: изготовление продукции производится пар­
тиями, а отгрузка осуществляется по заказам.
Групповое планирование является естественным развитием идеологии групповых тех­
нологий в производстве. Групповая технология представляет собой производственно­
организационную концепцию, которая позволяет использовать аналогии, существующие между
конструктивными и технологическими особенностями разных объектов, для чего производится
выявление похожих (или одинаковых) объектов с их последующим группированием. Подобные
объекты объединяются в семейства, внутри каждого семейства объекты могут классифициро­
ваться по различным признакам. На нижнем уровне деление семейства обязательно заканчи­
вается типом объекта - совокупностью объектов одного семейства, имеющих в определённых
производственных условиях очень близкие параметры технологических операций.
Групповая технология создает значительные возможности снижения времени и стоимости
переналадки оборудования. Однако это не означает, что такая экономия всегда реализуется
в действительности. Степень использования этих возможностей определяется совершенством
применяемой системы оперативно-календарного планирования.
Попытки технологического группирования известны уже в течение 80 лет и в условиях
стабильного производства часто приводили к успешным результатам. Однако последние деся­
тилетия во всем мире характеризуются быстрыми изменениями во всех областях человеческой
деятельности, в том числе, конечно, и производственной. Поэтому группирование производ­
ственных заданий в современных условиях может быть эффективным только, если оно осу­
ществляется «on-line», т.е. непосредственно перед моментом начала производства.
Сегодня при каждом планировании на любом уровне имеет место новый набор заданий, и
для технологического группирования необходимо иметь возможность быстро рассчитать соот­
ветствующий производственный план, что можно сделать благодаря появившейся доступности
вычислительной техники. Наиболее просто плановое группирование объектов может проводить­
ся по их типам, например по конструктивным обозначениям. В частности, при планировании
производства нескольких партий деталей, обозначение которых отличается указанием на раз­
личные модификации, их целесообразно отнести к одному типу, и рассматривать целесообраз­
ность их группирования. Групповое планирование может осуществляться как на межцеховом,
так и на внутрицеховом уровне. В настоящей книге мы ограничимся рассмотрением только
внутрицехового уровня.
Для оценки степени группирования положим, что коэффициент группирования Кдт на
т-ой машине равен отношению количества работ rim к количеству переналадок от.

Кдт

2.2

Пт

От

(2.1)

Правила приоритета

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

© 2018, Мауэргауз Ю.Е.

21

Ежедневное планирование

именно на этом оборудовании, руководствуюсь при этом различными эвристическими алгорит­
мами, которые называются правилами приоритета. Правила приоритета формулируются исходя
из рассмотрения очередности работ, выполняемых на одной машине.
Все правила приоритета можно разбить на 5 следующих групп.
- Простые правила, базирующиеся на информации, касающиеся конкретной работы - на­
пример, обязательной даты выпуска, трудоемкости, числе операций и т.п.
- Комбинация простых правил, в которой вся очередь работ делится на части, в каждой из
которых действует свое простое правило.
- Взвешенные приоритеты, при которых простые правила используются для каждой работы
с учетом ее весового индекса.
- Более сложные правила, использующие различные составные комбинации простых пра­
вил, а также изменения характеристик конкретных работ во времени.
- Другие правила, используемые в различных специфических условиях.
Перечислим наиболее известные простые и взвешенные правила.
FIFO (First In First Out) - классическое правило очереди, в которой раньше выполняется
г-ая работа из очереди, которая появилась первой, т.е. момент запуска которой п является
самым ранним.
LIFO (Last In First Out) - правило, при котором первой выполняется только что поступив­
шая работа.
EDD (Earliest Due Date) - правило выполнения, в первую очередь, той работы, договорной
срок выполнения di которой является ближайшим.
SPT (Shortest Processing Time) - правило наименьшей трудоемкости pi.
LPT (Longest Processing Time) - правило наибольшей трудоемкости pi.
WSPT (Weighted Shortest Processing Time) - правило взвешенной наименьшей трудоемко­
сти. В этом случае работы выполняются в порядке уменьшения отношения Wi/pi коэффициента
приоритета Wi г-ой работы к ее трудоемкости pi.
MST (Minimum Slack Time) - правило наименьшей свободы планирования. Величина те­
кущей свободы планирования для каждой г-ой работы в момент планирования t определяется
как шах^г — Pi — t,0), т.е. текущая свобода планирования существует, если di — pi — t ^ 0 и
отсутствует в противоположном случае.
CR (Critical Ratio) - правило критического отношения. Согласно этому правилу выполнение
начинается с работы, для которой величина di — t/pi минимальна. Аналогично предыдущему
правилу, при di — t ^ 0 величина CR считается равной 0.
Описанные выше правила, кроме двух последних, являются статическими, т.к. они непо­
средственно не зависят от момента времени, в котором осуществляется планирование. По­
следние два правила содержат значение текущего момента времени t и поэтому называются
динамическими.
В качестве составного правила приоритета приведем наиболее известное правило «кажу­
щейся стоимости запаздывании» АТС (Apparent Tardiness Cost). Эта величина определяется по
формуле
Ii(t) =

— exp
Pi

max(di — Pi — t, 0)
kp

(2.2)

где к - т.н. параметр масштаба, р - средняя трудоёмкость для всего объёма планируемых
работ.
В зависимости от значения к правило работает либо ближе к правилу WSPT, либо к правилу
MST.
Для правил приоритета справедливы следующие утверждения.

22

© 2018, Мауэргауз Ю.Е.

Ежедневное планирование

- Наименьшая средняя длительность производственного цикла F достигается при исполь­
зовании правила наименьшей трудоемкости SPT. При этом обеспечивается также наи­
меньшее значение для максимальной длительности Fmax каждой из всего набора выпол­
няемых работ.
- Наименьшее значение для наибольшего отклонения г-ой работы от заданного срока Lmax
достигается при использовании правила EDD, при котором приоритет отдается работе с
ближайшим договорным сроком выполнения di.
- Наименьшее среднее отклонение L планового срока выполнения от договорного для всего
набора работ получается при работе по правилу наименьшей трудоемкости SPT.
- Если все работы должны быть выполнены к одной назначенной дате, то наименьшее
значение среднего запаздывания Т для всего набора работ получается при использовании
правила SPT.
- Наименьшее значение для максимального запаздывания Ттах каждой из всего набора
работ достигается при работе с правилом EDD.
Для оценки количества запаздывающих работ применяется коэффициент запаздывания,
равный отношению числа запаздывающих работ nz к полному числу работ в задании п, т.е.
Kz = —.
71

(2.3)

Более подробно с правилами приоритета можно ознакомиться в книге [Мауэргауз, 2012].
Там даются примеры их использования.

2.3

Динамические расписания

Динамичность цехового планирования обусловливается всей совокупностью событий, про­
исходящих в производственном подразделении за некоторый плановый период. Перечислим
типы таких событий.
- Поступление планового задания с работами, включенными на период до установленного
планового горизонта, и содержащего ожидаемые моменты поступления соответствующих
заготовок и материалов.
- Фактическое поступление в цех материалов и заготовок, предусмотренных плановым за­
данием.
- Поступление материалов и заготовок на каждую машину для обработки.
- Окончание операции на каждой машине.
- Появление срочной работы, немедленно обеспеченной заготовками и материалами.
- Неожиданные события, связанные с поломками, отсутствием операторов, израсходовани­
ем материалов и т.п.
Среди всех этих событий, только само поступление планового задания и его данные являют­
ся детерминированными (четко определенными), тогда как остальные события либо являются
случайными, либо имеют значительную случайную составляющую.
В целом, для динамического планирования используется один из двух возможных методов.
В первом случае применяются методы, основанные на правилах приоритета последовательно­
сти выполнения работ. При втором методе используются различные алгоритмы, позволяющие
строить расписание с помощью эвристических методов поиска решения.
Наличие планового задания позволяет плановикам цеха разработать производственный
план, учитывая выполнение текущих работ и плановые сроки поступления заготовок и ма­
териалов для новых работ. Под плановым периодом G понимается количество рабочих дней, по
© 2018, Мауэргауз Ю.Е.

23

Ежедневное планирование

прошествии которых план регулярно пересчитывается. Такой пересчет обязательно проводится
для учета накопившихся изменений в производственной обстановке даже в случае полного вы­
полнения ранее составленного плана. В настоящей книге рекомендуется принимать плановый
период в размере рабочей недели - обычно 5 рабочих дней.
Расписание составляется на период, ограниченный плановым горизонтом h в календарных
часах. Плановый горизонт обычно равен или больше планового периода, причем в последнем
случае часть составленного плана неизбежно подвергается корректировке. Корректировка так­
же возможна в любой момент выполнения плана вследствие возникающих непредвиденных
обстоятельств.
Динамическое расписание обязательно должно быть привязано к календарному графику
работы цеха. При составлении расписания отсчет времени целесообразно вести, начиная от О
часов первого дня выполнения расписания. Моментом начала выполнения расписания в настоя­
щей книге полагается момент начала первого рабочего дня в формате 10.09.2016 8:00. Плановая
служба цеха обычно работает в одну (первую) смену и, как правило, должна составить или
откорректировать расписание для следующего рабочего дня.
Расчет расписания всегда ведется с некоторой точностью. В настоящей книге полагается,
что вследствие неточностей исходных данных имеет смысл округлять временные параметры
до величины 0,1 часа, т.е. 6 минут. Таким образом, величина в 6 минут является квантом
(неделимой величиной) времени при составлении расписания.
Важным параметром динамического планирования является количество рабочих смен. Здесь
полагается, что первая смена начинается в начале текущего рабочего дня, которое обычно рав­
но 8 часов. Длительность рабочей смены может устанавливаться в зависимости от характера
производственного процесса. Наиболее часто длительность смены равна 8 часов, но это не обя­
зательно. В цехах с достаточно большой загрузкой обычно используется двухсменная работа с
8-часовыми сменами. При очень большой загрузке или, если процесс не допускает прерываний,
в цехе осуществляется круглосуточная работа. В этом случае возможно использование трех
смен по 8 часов, или двух смен по 12 часов, или еще какой-нибудь другой вариант.
Следует иметь в виду, что при круглосуточной работе, только первая смена всегда полно­
стью относится к текущему календарному дню. При двухсменной работе с 8-часовыми сменами
вторая смена также заканчивается до конца календарного дня. Однако при трехсменной работе
с такими сменами, последняя смена текущего рабочего дня фактически имеет место в начале
следующего календарного дня.
В некоторых случаях необходимо учитывать возможность изменения длительности отдель­
ных смен. Например, в предвыходные или предпраздничные дни, последняя (или даже един­
ственная) смена часто укорачивается, или вообще отменяется. В рабочий день, который следует
после выходного дня, начало работы первой смены обычно совпадает с установленным момен­
том начала работы всего предприятия.
В течение каждой смены возможны перерывы в работе для приема пищи, физические паузы
и т.п. Поскольку длительность таких перерывов сравнима с точностью исходных данных, то
при планировании ими можно пренебречь.
Плановое количество цехового персонала ^ в каждую смену длительностью Н может из­
меняться. Суточный фонд времени персонала для fc-ого календарного дня Fp для всех смен п
рабочего дня равен
п

F^^NikHik.
г=1

24

© 2018, Мауэргауз Ю.Е.

(2.4)

Ежедневное планирование

В этот же день машинный фонд времени цеха Fp по всем машинам М определяется по
суточному рабочему времени Е с учетом времени планового обслуживания машин
м
Fmk = Ek-^Tki.

(2.5)

i=l

Отношение фонда времени персонала к машинному фонду времени назовем суточным ко­
эффициентом обеспеченности персоналом К3
К,к = ^-

(2.6)

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

Кп = ^.

(2.7)

На последовательность работ в расписании существенно влияет первоначальная настройка
машин. Настройка может задаваться в исходных данных двумя способами: номером последней
выполняемой работы либо ее видом. В описываемых программах в первом случае указывается
ожидаемый процент выполнения работы на начало расписания, во втором случае - ожидаемый
момент освобождения машины в календарных часах. Первый случай характерен для задач,
выполнение которых может прерываться, второй - для задач, не допускающих прерывания.
Величина цеховой загрузки Kw в данной книге определяется по соотношению суммарной
трудоемкости всех работ W и полного фонда времени F на горизонте планирования с уче­
том количества машин М. Горизонт планирования устанавливается по заказу с наибольшим
резервом времени в рабочих часах. Коэффициент загрузки Kw равен

W
К” = FM-



Расписание основывается на сроках поступления материалов и заготовок, указанных в пла­
новом задании цеху. Составленное расписание можно рассматривать как дерево плановых со­
бытий, отражающих установленные начало и конец выполнения каждой операции. Процесс
составления расписания в таком случае заключается в определении новой ветви после каждого
произошедшего планового события.
Поскольку заготовки и материалы для новых работ должны поступать в различные момен­
ты времени, производственное расписание невозможно сформировать, пользуясь в начальный
момент планирования статическими правилами приоритета, описанными в предыдущем па­
раграфе. Однако этими правилами, вообще говоря, можно пользоваться в каждый плановый
момент поступления новой партии заготовок и материалов для новой работы, если использо­
вать т.н. вычисляемые приоритеты [Фролов, 2010]. В этом случае планирование становится
динамическим даже при использовании статических правил приоритета.
Примером использования правил приоритета для построения расписан-ия является мето­
дология многокритериального моделирования гибких производственных систем, предложенная
© 2018, Мауэргауз Ю.Е.

25

Ежедневное планирование

в [Schnits et al., 2004]. Методология предусматривает два этапа выбора решения на каждом
плановом событии. На первом этапе выбирается главный критерий качества расписания и соот­
ветствующие этому критерию правила приоритета. Выбор этого критерия производится, исходя
из производственной обстановки на основе базы знаний, формирующейся самим пользователем
по имеющемуся опыту. Во время второго этапа производится моделирование поведения системы
в условиях принятого решения и оценка его качества.
В описываемом примере возможно использование двух критериев расписаний: критерия F
средней продолжительности производственного цикла и критерия Т среднего запаздывания
окончания работы. Для определения выбора критерия для следующей ветви дерева решений,
после каждого планового события используется алгоритм, приведенный ниже.

ЕСЛИ выполняется

il>>-E>-0 и ^Щ>СЬ
п ^
i

М^
г

п^
г

(2.9)

ТО
критерием является величина Т

ИНАЧЕ
ЕСЛИ существует
хоть одна работа с номером г, для которой

С Ri < К2

ИЛИ

CRi < 0,

(2.Ю)

ТО

ЕСЛИ выполняется
TCi > с2,

(2.И)

ТО

критерием является величина Т;
ИНАЧЕ
критерием является величина F\
ИНАЧЕ
критерием является величина F.

Здесь используются обозначения: pi - трудоемкость г-ой работы; di - плановый момент
выполнения г-ой работы; п - количество работ; М - количество машин; t - текущий момент
времени; TCi - стоимость запаздывания единицы времени г-ой работы; CRi - критическое
отношение г-ой работы, равное {di — t)/pi\ Ki и К2 - коэффициенты, устанавливаемые в
системе; Ci и Сг - стоимостные коэффициенты.
В первом из неравенств 2.9 сравнивается трудоемкость всей совокупности заказов, приходя­
щаяся на одну машину, со средней величиной резерва времени di—t, умноженной на системный
коэффициент Ki. Во втором неравенстве 2.9 проверяется соотношение между средней стоимо­
стью единицы времени запаздывания и установленным стоимостным коэффициентом.

26

©2018, Мауэргауз Ю.Е.

Ежедневное планирование

Если эта трудоемкость в левой части первого неравенства 2.9 больше среднего допусти­
мого резерва времени, и кроме того стоимость запаздывания во втором неравенстве больше
допустимой величины Ci, то критерием заведомо является величина среднего запаздывания Т.
Если хотя бы одно из условий 2.9 не выполняется, то возможен переход к использованию
критерия длительности цикла F. При этом все множество работ проверяется по значениям
критического отношения С Ri.
Если критическое отношение для всех работ больше установленного системного коэффици­
ента (это имеет место при значительном резерве времени для выполнения каждой из работ), то
критерием заведомо является величина F. Если для некоторых работ резерв времени недоста­
точен и, соответственно,критическое отношение меньше установленной системной величины,
производится дополнительная проверка по значению стоимости запаздывания г-ой работы 2.11.
При большой стоимости запаздывания выбирается критерий Т, а при малой - критерий F.
Выбор критериев обусловливает выбор соответствующего правила приоритета работ. Дей­
ствительно, согласно предыдущему параграфу, наименьшая средняя длительность производ­
ственного цикла F достигается при использовании правила наименьшей трудоемкости SPT, а
наименьшее значение для максимального запаздывания Ттах каждой из всего набора работ
достигается при работе с правилом EDD.
Использование описанной методологии существенно зависит от адекватного выбора кон­
стант Ki, К2, Ci и С2. Эти величины должны устанавливаться для каждого подразделения с
различной структурой, что является затруднительным.
Как указывалось выше, альтернативой использованию правил приоритетов, является при­
менение эвристических алгоритмов поиска решения. Характер таких алгоритмов существенно
зависит от вида решаемых задач, классификация которых приведена в п. 1.5.

2.4

Алгоритмы динамического планирования

Согласно классификации в п. 1.5. все задачи расписаний, прежде всего, разделяются по ти­
пу производства (технической структуре используемых машин). Наиболее простыми являются
алгоритмы поиска решения для одиночной машины, поэтому в качестве примера приведем один
из таких алгоритмов для работ, прибывающих в различное время и имеющих различное время
доставки.
В данной задаче доставка производится немедленно после окончания обработки. Поскольку
длительность доставки включается в период выполнения работ, то общая продолжительность
выполнения работ определяется последним моментом доставки. В [Carlier, 1982] было предло­
жено каждую рассматривать работу как состоящую из трех операций: поступление работы на
машину; обработка на машине; доставка потребителю. Предполагается, что первая и третья из
них обеспечивается неограниченными ресурсами, а вторая требует определенной трудоемкости.
В таком случае каждая г-ая работа характеризуется тремя параметрами - моментом по­
ступления ri, трудоемкостью pi и длительностью доставки qi. Часто эти параметры называют
«головой», «телом» и «хвостом» работы (head, body, tail, НВТ), а целевой функцией этой задачи
является минимизация общей продолжительности СтахДля решения НВТ задачи был разработан эвристический алгоритм, который из несколь­
ких возможных работ выбирает ту, которая обладает наибольшим «хвостом» (largest tail, LT).
Рассмотрим работу LT алгоритма на примере, данные для которого приведены в табл. 2.1.
В момент времени t = 0 доступны работы 1 и 4. Поскольку длительность доставки q^
больше, чем qi, то первой по порядку на шаге 1 выбирается работа 4. К моменту окончания
этой работы, равному 2, доступны работы 1 и 2. На следующем шаге 2 выбирается работа 2 с
длительностью доставки, равной 12.

© 2018, Мауэргауз Ю.Е.

27

Ежедневное планирование

Таблица 2.1

Исходные данные набора работ

Номер работы

1

2

3

4

5

_6_

Трудоемкость pi

4

3

5

2

6

4

Ожидаемая дата поступления ri

0

4

0

Длительность доставки qi

9

1
12

15

16

3
10

11

6

Воспользуемся способом описания последовательности работ, предложенной в [Sule, 2008].
Для этого запишем параметры последовательности в строку, которой укажем момент начала
работы, трудоемкость и момент окончания. При этом для каждой работы последовательно
записывается дата начала, затем в скобках номер работы и ее трудоемкость. Дата окончания
одной работы служит началом последующей.
Последовательность после второго шага имеет вид
0 (4/2) 2 (2/3) 5
К моменту 5 доступны еще не выполненные работы 1, 3, 5, причем наибольшая длитель­
ность доставки имеет место для работы 3. Продолжая выполнение алгоритма до включения
в последовательность всех работ, получим последовательность (первая строчка) и моменты
доставки (вторая строчка):
0 (4/2) 2 (2/3) 5
(3/5) 10 (6/4) 14 (5/6) 20 (1/4) 24
4
18 2
17 3
22 6
25 5
30 1
33
Величина общей длительности, получаемой в результате использования LT алгоритма равна
п(к)
Стах = Г/ “И ^Pi(n) Н- Qk,

(2.12)

п=1

где I - номер работы, с которой начинается последовательность, г к - номер работы, которая
называется критической, п - порядковый номер работы в последовательности. Критической
является та работа, для которой момент доставки имеет наибольшее значение. В данном случае
запуск начинается с работы 4, а наиболее поздняя доставка осуществляется для работы 1 и
поэтому I = 4, к =1, п(к) = 6.
Доказано, что в том случае, когда qk ^ qi для всех i в пределах от I до к, решение является
оптимальным, т.е. Стах равно минимально возможному. В приведенном примере qk = qi =
9 < qi для любого г ^ 1, и соответственно, в данном случае получен оптимальный результат.
Решение приведенной задачи для одной машины часто эффективно используется при расчете
расписаний для набора различных машин.

2.5

Составление расписаний при нескольких критериях выбора

В постановке задач группового планирования, как задач с одним критерием, содержится
внутреннее противоречие. Действительно, причиной появления групповых способов обработки
является стремление найти рациональный компромисс между высоким уровнем выполнения
заказов и низкой стоимостью производства. Высокий уровень сервиса может быть достигнут
только своевременным их выполнением, однако это противоречит требованию низкой стоимо­
сти производства. Необходимость одновременного улучшения этих характеристик представляет
собой т.н. «дилемму планирования» [Nyhuis and Wiendahl, 2009], решение которой в принципе
не может быть получено в однокритериальной постановке.

28

© 2018, Мауэргауз Ю.Е.

Ежедневное планирование

В этих случаях могут использоваться два метода оптимизации - с помощью весовых коэф­
фициентов и выбор на множестве Парето. В первом случае всю совокупность критериев можно
представить в виде одного интегрального критерия
F = (aiFi + &2F2 + ... + afFf),

(2.13)

где ai - весовой коэффициент частного критерия Fi.
Для весовых коэффициентов вводится условие нормировки

«1 + а2 + ••• + 07 = 1.

(2.14)

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

Wo) = т^гА^г х юо%.
V z
т^тах _ Т^тгп
i
i

(2.15)
х

'

Вычисление интегрального критерия по формуле 2.13 не составляет трудностей, однако на­
значение весовых коэффициентов методом экспертных оценок, как правило, вызывает серьезные
затруднения.
Если при составлении расписания одновременно использовать несколько критериев, то каж­
дое состояние системы с переменными х±,Х2,.. .Хщ можно оценить при помощи набора значе­
ний целевых функций f(x)i,f(x)2, • ■ • f(x)f в этом состоянии.
Говорят, что решение f1 доминирует решение /2, если значения всех целевых функции
первого решения больше или равны значениям второго, причем хотя бы одно из значений
целевых функций первого решения больше, чем у соответствующей функции второго решения.
В рассмотренном случае решение fB доминирует fG, а решение fc доминирует fH. В то же
время решение не доминируется никаким другим решением.
Множество недоминируемых решений называется множеством оптимальности по Парето
или просто множеством Парето. Каждому недоминируемому решению f(x) в пространстве т
переменных соответствует точка х с координатами (xi, #2, ...хт). Такие точки называются
эффективными.
Для оптимального решения многоритериальных задач чрезвычайно важно определить эф­
фективные точки в пространстве переменных и построить соответствующее множество Парето
недоминируемых решений.
Наиболее частым и, в то же время легко иллюстрируемым графически, является случай
двух целевых функций. Пусть количество независимых переменных равно п. Кривая Е на рис.
2.1а представляет собой проекцию кривой эффективных точек в пространстве с размерностью
п на плоскость некоторых двух переменных из общего числа п. Соответствующая кривая Ё
на рис. 2.16 содержит множество Парето недоминируемых решений в пространстве критериев.
Заштрихованная область D возможных значений на плоскости переменных xixn (рис. 2.1а)
ограничивается некоторыми значениями j?i и хп, а также кривой с заданным значением крите­
рия /2 = /2.
Выберем на множестве (кривой) эффективных точек Е какую-либо точку Ао. Каждая такая
точка является одновременно точкой касания линий уровня критериев Д и /2, проходящих
через эту точку.
На плоскости критериев (рис. 2.16) область D отображается в область D, кривая Е отоб­
ражается в кривую Ё, точка Ао переходит в точку Во с координатами а и Ь. Сама область

© 2018, Мауэргауз Ю.Е.

29

Ежедневное планирование

Рис. 2.1 Эффективные точки в пространстве переменных и паретовские
точки в пространстве критериев

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

30

(с) 2018, Мауэргауз Ю.Е.

Глава 3

Построение многокритериальных
динамических расписаний

3.1 Понятие производственной напряженности .........................
3.2 Функция текущей полезности заказа..................................
3.3 Построение дерева расписания.............................................
3.4 Критерии отсечения ветвей..................................................
3.4.1 Критерий функции средней полезности заказов..........

3.1

3.4.2 Критерий относительных издержек................................
3.4.3 Проверка требуемого момента запуска..........................
3.4.4 Проверка полной длительности выполнения работ....
3.5 Типовый алгоритм построения расписания..........................
3.6 Вычисление интегралов напряженности заказов................

31
34
37
39
39

42
42
43
44
47

Понятие производственной напряженности

При определении критериев оптимального плана, выполняемого конечными исполнителями,
следует исходить не только, а, может быть, и не столько из технических или экономических
факторов, сколько из соображений некоторых взаимоотношений между людьми, исполняющи­
ми этот план. Как указывается в книге [Афоничкин, Михайленко, 2009], существуют два
основных направления принятия решений: рациональное и психологическое. В первом случае
решение целиком опирается на математически рассчитанный результат; во втором - в значи­
тельной степени на интуицию и психологию сотрудников. Конкретный хорошо составленный
производственный план должен являться некоторым компромиссом между пожеланиями всех
участников производственного процесса.
В течение этого процесса между его отдельными участниками всегда образуется разветв­
ленная сеть взаимоотношений, которую можно рассматривать как некоторое психологическое
поле. Каждое поле, например магнитное или электрическое, имеет числовую характеристику,
называемую напряженностью. Аналогично можно считать, что психологическое поле, возника­
ющее в процессе производства, тоже может быть описано числовой величиной, которую назовем
производственной напряженностью Н [Мауэргауз, 1999]. В отличие, однако, от физических по­
лей, напряженность психологического поля не может быть измерена физическим прибором и,
соответственно, не может иметь физической размерности - т.е. должна быть безразмерной
величиной.
Оценка безразмерной напряженности психологического поля (большая она или маленькая)
может быть произведена только в сравнении с другим полем или с другим состоянием этого
же поля - например, в другой момент времени. Возникает естественный вопрос о том, как
вычислить возникающую производственную напряженность.
Для численного определения напряженности заметим, что оперативная обстановка в произ­
водственном подразделении характеризуется, в основном, двумя факторами: полным временем,
необходимым для выполнения работ, и имеющимся запасом рабочего времени. Необходимо

31

Многокритериальные расписания

отметить, что в предыдущей главе были описаны несколько т.н. динамических правил прио­
ритета, которые учитывают эти два фактора. Это правило наименьшей свободы планирования
MST, правило критического отношения CR, правило кажущейся стоимости запаздывании АТС.
Однако критерии, рассчитываемые по любому из этих правил, имеют серьезные недостат­
ки. Прежде всего, их значения невозможно определить в том случае, когда обусловленный
договором срок выполнения работы к моменту планирования уже истек. Самое главное, одна­
ко, состоит в том, использование этих критериев не позволяет определить степень загрузки
оборудования и персонала от совокупного действия различных работ.
В отличие от приведенных выше динамических правил приоритета, вычислять производ­
ственные напряженности можно не только по каждой работе, но и по каждой единице оборудо­
вания и в целом по производственному подразделению. При этом напряженность по конкретной
единице оборудования равна сумме напряженностей по тем работам, которые ждут обработку
на этой единице оборудования, а напряженность по цеху в целом равна сумме напряженностей
по всем работам или, что то же самое, по всем единицам оборудования.
Величина полного времени, необходимого для выполнения «спущенного сверху» планового
задания складывается из двух величин - из трудоемкости изготовления и времени на передачу
и переналадку работ с одной операции на последующую. Запас рабочего времени может быть
как положительным, так и равным нулю, и отрицательным. Учитывая последнее, следует поло­
жить, что расчетные зависимости для определения напряженности должны быть разными при
разных знаках запаса времени.
Поэтому положим для одной г-ой работы

Тд

Ч- T2i
Zli
(Гц + T2i)

при

di — t ^ О

при

di — t^Oy

(3.1)
X

Z2i

где Тд - продолжительность изготовления, определяемая трудоемкостью, не выполненной на
момент планирования; T2i - составляющая, возникающая из-за необходимости в передаче ра­
боты на остающиеся операции; zg - расчетный запас времени производства по отношению к
плановому заданию; Z2i - расчетное отставание по времени от планового задания.
Величина Тд может быть определена зависимостью
1

Ni

3=Ь

рЛД - WiQQ)
m,ij

(3.2)

где ki - номер первой незаконченной J-ой операции для г-ой работы; Ni - полное количество
операций для выполнения г-ой работы; pij - трудоемкость каждой оставшейся операции в
часах или днях; гщ - коэффициент готовности j-ой операции в процентах mij - количество
одновременно обрабатываемых объектов г-ой работы во время j-й операции; G - количество
часов или дней в плановом периоде.
Величина riij может быть отлична от 0 только при j = кг, т.е. в процессе проведения первой
незаконченной операции. Использование этого коэффициента позволяет при планировании учи­
тывать напряженность работы, находящейся в процессе обработки. Если планируемая работа
представляет собой изготовление партии деталей или сборочных единиц, то при планировании
конкретной операции возможна одновременная обработка нескольких этих объектов, напри­
мер, параллельно на нескольких машинах. Если при этом на каждой машине обрабатывается
по одной детали, то величина mij равна количеству машин, параллельно выполняющих одну
плановую работу. Знаменатель G введен в формулу 3.2 для того, чтобы составляющая Нд
стала безразмерной.

32

© 2018, Мауэргауз Ю.Е.

Многокритериальные расписания

Величину Тг; определим зависимостью

где Sij - трудоемкость необходимой транспортировки и наладки оборудования при проведении
j-ой операции для г-ой работы.
Для остающегося в распоряжении плановика безразмерного запаса времени можно поло­
жить
(3.4)

где а - коэффициент настройки для конкретного предприятия, отражающий степень «благоду­
шия» при имеющихся запасах времени или «нервозности» при срыве сроков производства.
Наконец,

(3.5)

Напряженность конкретной работы может включать соответствующий весовой коэффици­
ент приоритета ип, аналогично, например, описанным выше правилам WSPT или АТС. В част­
ности, в наиболее простом случае, когда все коэффициенты готовности rpj = 0, количество
одновременно обрабатываемых объектов одной работы mij = 1, планирование ведется для
первой операции и все fe = 1, а трудоемкостью транспортировки и переналадки Sij можно
пренебрегать, напряженность можно определять по формулам

Hi =

WiPi
1
G di-t
+1
aG

при

di —t ^ О

(3.6)

Рассмотрим зависимость напряженности от имеющегося запаса времени или отставания по
срокам (рис. 3.1).

d-t
Рис. 3.1

Напряженность заказов

(с) 2018, Мауэргауз Ю.Е.

33

Многокритериальные расписания

На рисунке 3.1 по оси абсцисс откладывается имеющийся запас времени - разница между
заданной датой для каждой работы di и текущим моментом времени t. В положительной части
диаграммы, т.е. при di > t, значения напряженности с ростом имеющегося запаса времени
уменьшаются по гиперболическому закону. Если запас времени отрицателен, т.е. имеет место
опоздание по сравнению с заданием di < t, то с нарастанием этого запаздывания напряжен­
ность растет по линейному закону.
В выражениях 3.4 и 3.5 при di = t, т.е. в точке перехода от одной зависимости к другой,
значения zi = 22 = 1. Соответственно совпадают и значения напряженности, вычисленные
по обеим формулам. Более того, в этой точке совпадают значения производной dH/d(di — t),
вычисленные по обеим формулам. Поэтому прямая в левой части графика в точке перехода
является касательной к гиперболе правой части графика в этой точке.
Производственная напряженность безразмерна и соответственно не имеет физического
смысла. Однако она имеет т.н. психологический смысл. Действительно, рост этого параметра
заказа вызывает усиление беспокойства по поводу его выполнения. На рисунке приведены две
кривые изменения Н, отличающиеся значением «психологического» коэффициента а, причем
аг > «1. Очевидно, что чем больше коэффициент а, тем более спокойно, с меньшей напря­
женностью, воспринимается запаздывание, но и меньше «расслабление» при наличии запаса
времени.

3.2

Функция текущей полезности заказа

Возможность и желательность обеспечения высокого уровня обслуживания заказчиков
можно оценить с помощью функций текущей полезности заказов V. Будем исходить из того,
что наличие заказа в определенной перспективе весьма полезно для предприятия- производи­
теля, причем эта полезность повышается, во-первых, с ростом объема заказа, а, во-вторых, с
увеличением времени, предоставленным для подготовки заказа. Таким образом, возможность
выполнения заказа в будущем имеет явную положительную полезность и должно принести
соответствующий доход.
С другой стороны, с приближением договорного срока выполнения заказа предприятие
практически всегда начинает испытывать определенные трудности самого различного харак­
тера. Величина полезности, очевидно, начинает падать, однако, если заказ удается выполнить
в срок, то до самого последнего момента эта полезность остается положительной, а в момент
выполнения становится равной 0. В том случае, когда заказ в срок выполнить не удается,
предприятие-изготовитель, как правило, начинает получать неприятности различного характе­
ра. Соответственно, заказ начинает приносить убытки и полезность заказа для предприятия
становится отрицательной.
Таким образом, при наличии резерва времени для выполнения заказа, предприятие- изго­
товитель обычно рассчитывает на получение прибыли, а при запаздывании с выполнением как правило, несет убытки. Существует многочисленная литература, в которой описывается
характер изменения полезности как функции возможного выигрыша или проигрыша, причем
результаты этих исследований обычно можно свести к одному из двух вариантов, представлен­
ных на рис. 3.2.
По оси абсцисс на рис. 3.2 откладывается значение выигрыша (ожидаемой прибыли П), по
оси ординат - полезность выигрыша в положительной области оси абсцисс или проигрыша - в
отрицательной.
Кривая 3.2а была названа S-образной кривой после получивших большую известность ис­
следований [Канемана и Тверского, 1984], заслуживших Нобелевскую премию по экономике за
34

©2018, Мауэргауз Ю.Е.

Многокритериальные расписания

Рис. 3.2

Возможные графики полезности прибылей и убытков

2002 г. В этих исследованиях было доказано, что в условиях вероятного возможного проигрыша
(левая часть графика 3.2а) обычные люди склонны к риску.
Вогнутость левого участка кривой в этом случае говорит об отрицательной несклонности к
риску - знак второй производной на этом участке кривой 3.2а положительный. В отличие от
кривой 3.2а, для кривой на рис. 3.26 несклонность к риску остается положительной независимо
от перспективы получить прибыль или убыток. Необходимо отметить, что график типа 3.26 или
функция полезности [Grayson, 1960] была получена существенно раньше, чем график типа 3.2а.
Отличия результатов, отражаемых кривыми 3.2а и 3.26, были, по всей вероятности вызваны
кругом опрашиваемых лиц и направлением применения денежных сумм. Если в исследованиях
[Канемана и Тверского, 1984], как было сказано выше, опрашивались лица небольшого достат­
ка, суммы фигурировали незначительные и их направлением было личное потребление, то в
исследованиях [Grayson, 1960] речь шла об инвестициях, проводимых крупными компаниями.
Применим описанные выше результаты экономико-психологических исследований к постро­
ению функции текущей полезности заказов. Положим, что для г-ого заказа текущая полезность
(3.7)

Vi = ^-Нг,

где, как и раньше, pj - остающаяся до окончания работы трудоемкость в сутках (часах); ил
- весовой коэффициент приоритета; G - фонд времени в сутках (часах) в течение планового
периода; Hi - производственная напряженность заказа (работы).

П
Р
о
и
г
р
ы
ш

Рис. 3.3

-

В
ы
____ k и
^-;

ы
ш

Функция текущей полезности заказа

© 2018, Мауэргауз Ю.Е.

35

Многокритериальные расписания

Рассмотрим зависимость функции текущей полезности от запаса времени до требуемого
момента выполнения заказа (рис. 3.3), предполагая, что выполнение заказа еще не начато, т.е.
Pj не зависит от времени.
Кривая на рис. 3.3 в положительной области di —t^ О стремится к асимптоте

(3.8)

Vi = ^.
В отрицательной области ^ -1 ^ 0 кривая превращается в прямую, для которой

d(dt -1)

в ь

d(dt -t)

(3.9)

или
teY =

d(^ гц^+о
\ G \ aG
// =
d(di-t)
aG2'

Сравнивая кривую на рис. 3.3 с кривыми на рис. 3.2, видим, что роль выигрыша или
проигрыша на диаграмме 3.3 играет запас времени для выполнения работы. Наличие заказа
в отдаленной перспективе представляется существенным выигрышем, но скорость роста этого
выигрыша по мере отдаления падает. В этой области кривая функции полезности заказа ведет
себя полностью аналогично обеим кривым на рис. 3.2.
Отрицательная область диаграммы 3.3 аналогична области проигрыша на рис. 3.2. В этой
области кривые на рис. 3.2 имеют различный вид. Для установления правильности кривой на
рис. 3.3 в отрицательной области будем исходить из описанного выше характера поведения
людей. Поскольку функции текущей полезности используются менеджерами компаний, то их
поведение скорее должно быть ближе к кривой на рис. 3.26, а не к кривой 3.2а, т.к. вряд ли
они будут иметь какую-либо склонность к риску даже в области проигрыша.
В то же время формальное использование для функции полезности заказов кривой 3.26
невозможно, т.к. наличие положительной несклонности к риску, характерное для этой кривой,
приводит к резкому возрастанию отрицательной полезности и, соответственно, к ограничению
по величине возможного проигрыша. Для функции полезности заказа такое ограничение су­
ществовать не должно, т.к., вообще говоря, возможно любое запаздывание выполнения заказа.
Поэтому правильным является линейное падение функции текущей полезности заказа, при ко­
тором несклонность к риску (вторая производная функции) равна 0. Именно такая зависимость
и имеет место на рис. 3.3.
Важнейшим свойством как напряженности, так и функции полезности, является свойство
аддитивности, т.е. эти величины для разных заказов можно складывать. Например, полезность
двух независимых заказов равна сумме полезностей каждого из них, поскольку эти полезности,
как говорят математики, линейно независимы. Благодаря этому свойству можно рассчитывать
среднюю полезность всей совокупности заказов за период.
Положим, что количество заказов на горизонте планирования равно п. Тогда их общая
текущая полезность равна сумме полезностей каждого, т.к. заказы, как правило, независимы
и суммарное значение функции текущей полезности заказов
п

v=Ev<

36

1
п
п
^^WiPi-^Hi.
г=1

г=1

©2018, Мауэргауз Ю.Е.

(3.10)

Многокритериальные расписания

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

3.3

Построение дерева расписания

Дерево решений - это схематическое представление проблемы принятия решений. Ветви
дерева решений представляют собой различные события (решения), а его вершины - ключевые
состояния, в которых возникает необходимость выбора. Чаще всего дерево решений является
нисходящим, т. е. строится сверху вниз.
На рис. 3.4 показана схема построения дерева расписаний, на которой вершины (узлы)
обозначены кругами, а ветви являются лучами, исходящими из узлов одного уровня и направ­
ленные к узлам следующего уровня. Узлы последнего уровня п называются листьями.
Каждая ветвь дерева расписаний отображает событие, состоящее из одной работы (или опе­
рации), производимой на конкретной машине. В полученном узле записываются соответству­
ющие параметры системы: устанавливаемая оснастка; время выполнения; возможный объем
работы и т.п.
Предположим, что количество работ, планируемых на горизонте h равно п, и каждая работа
может быть выполнена на любой машине из множества М. Тогда количество возможных лучей,
исходящих из корневого узла (уровень 1) равно
(3.11)

ц = Мп.

В общем случае, на следующем уровне, количество планируемых работ уменьшается на
единицу и, соответственно

(3.12)

Х2 = Х1М(п — 1).
Продолжая этот процесс, имеем на уровне к

Xk = Xk-iM[n - (к - 1)] = Xk-iMn 1 -

- ^^] .
п J

(3.13)

Начало

Уровень 1
Уровень 2

©J

О

d

Уровень п-1

Уровень п

Рис. 3.4

Ч_/



Дерево расписаний

© 2018, Мауэргауз Ю.Е.

37

Многокритериальные расписания

Зависимость 3.13 является геометрической прогрессией с переменным знаменателем. Отли­
чие от обычной геометрической прогрессии с постоянным знаменателем заключается в наличии
множителя 1 —(fc — 1)/п, зависящего от номера члена к геометрической прогрессии. Используя
выражения 3.11 - 3.13, для Дс-ого члена прогрессии имеем выражение
/С-1 ,

хк = {Мп)к

П 1-1

(3.14)

Согласно 3.14, количество узлов с возрастанием номера уровня к сначала быстро нарастает,
но затем с некоторого момента из-за наличия множителя типа П^о (1 — Vn) начинает падать.
На рис. 3.5 приведена зависимость этого множителя от уровня к при количестве работ п = 15.
Определим, на каком уровне имеет место максимум количества узлов дерева. Для этого
прологарифмируем выражение 3.14:

1п(ж/с) = к In(Mn) + In
\

1----- )+1п(1------ ) 4-------- h In ( 1---------^/
\
п/
\
п

(3.15)

Поскольку логарифм некоторой переменной является монотонной (возрастающей) функцией
этой переменной, то условие максимум значения этой переменной происходит в той же точке,
что и максимум ее логарифма. Возьмем производную от выражения 3.15 и приравняем ее к
нулю.

d(ln(xfc)) = }п(Мп}ктах/п

=

(3.16)

Из 3.16 получим значение уровня, на котором имеет место наибольшее количество узлов
дерева
к

=

х
1 + 1/1п(Мп)‘

(3.17)

Например, при п=15 и М=4 максимум количества узлов имеет место при номере уровня,
равном 13 и, соответственно формуле 3.14, примерно равен 1019.

Рис. 3.5

38

Значение множителя в знаменателе прогрессии с ростом уровня

© 2018, Мауэргауз Ю.Е.

Многокритериальные расписания

3.4

Критерии отсечения ветвей

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

3.4.1

Критерий функции средней полезности заказов

Первым таким критерием является функция средней полезности заказов V.
Пусть в момент времени Ci заканчивается работа в узле дерева возможных вариантов
расписаний, находящемся на уровне I. Если на уровне I 4- 1 к-я работа начинается на машине
т в момент tk, который больше или равен Ci, и эта работа длится без перерывов, то средняя
полезность всего имеющегося набора работ J за все время от начала работ до окончания
выполнения к-й работы в момент tk+pk в узле на уровне I 4-1 определяется как

Vi+i,k =

1
tk “Ь Рк

*к+Рк

J Vd‘=
о

1
tk 4- Рк

*к+Рк

Vkdt

Vi х Ci +

(3-18)

Cl

В выражении 3.18 величина Vi равна средней полезности всего объема планируемых работ
за время от начального момента t = 0 до момента окончания последней уже запланированной
работы Ci. Например, в начальный момент t = О машина свободна, количество выполненных
работ Z = 0 и, соответственно Со = 0. Величина tk определяется моментом Ci или моментом
поступления к-й работы.
Если в течение выполнения к-й работы возможны перерывы суммарной продолжительно­
стью Ьк, то момент окончания этой работы
(3.19)

Fk = tk + Рк + Ьк,
и зависимость 3.18 примет вид
Vl+lrk = jr[vdt=^
Гк

Fk
VtxCi + J Vkdt

(3.20)

с‘

Интеграл в 3.20 согласно 3.7 равен


у

Ci

Р^

F^

j vkdt = - f

52

Ci iEJ — Ц

WiPidt

— J 52 Hidt’

0. Допустим, что величина (х + l)/aG » 1, обозначим
а = 1 + aG и b = (dk - Ci)/aG + 1. Тогда
Ci+Pk

J

Hkdt = awk [pk- (x + a) In(d)],

(3.31)

Ci

откуда видно, что интеграл напряженности линейно уменьшается с ростом х. Из этого следует,
что, чем раньше происходит планируемый запуск по отношению к значению требуемого момента
запуска git тем, согласно 3.18, выше величина V. Аналогичный результат можно получить и
для случаев, когда dk - Ci - рк < 0.
Полученный результат показывает, что для повышения полезности составляющей V от каж­
дой работы следует стремиться к уменьшению интервала времени между требуемым моментом
запуска и его фактически возможным значением. Для случаев, когда приоритет работ одина­
ков, логично допустить, что наилучшей возможностью добиться минимизации этих интервалов
является запуск работ в порядке возрастания требуемого момента запуска дг.
Отсюда следует, что при проведении отсечения ветвей необходимо учитывать величину
требуемого момента запуска каждой работы gi. Если работа проводится с перерывами, величина
требуемого момента запуска отсчитывается по необходимому моменту выполнения работы в
рабочих часах.

3.4.4

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

Использование возможности группирования однотипных заказов, прибывающих а различ­
ные моменты времени, приводит к появлению узлов, в которых длительность г-ого процесса
намного превышает его наименьшую возможную длительность С(г) на этом уровне Стгп- По­
этому имеет смысл на каждом уровне ограничивать рассмотрение теми узлами, для которых,
для которых справедливо неравенство
© 2018, Мауэргауз Ю.Е.

43

Многокритериальные расписания

С(i) < KCmin,

(3.32)

причем коэффициент возможного диапазона длительности К определяется зависимостью

^ = 1+ ae-b('/^-^.

(3.33)

В формуле 3.33, как и выше, I - уровень построения дерева; количество работ равно п,
количество машин - М, а, Ь, с - постоянные коэффициенты. Значения коэффициентов а,Ъ,с
устанавливаются при рассмотрении конкретной задачи планирования.

3.5

Типовый алгоритм построения расписания

Отсечение излишних ветвей на каждом уровне построения дерева позволяет на следующем
уровне использовать только остающиеся узлы, из которых производится дальнейшее ветвление.
На рис. 3.8 приведена блок-схема типового алгоритма поиска возможных решений.
Из рис. 3.8 видно, что блок-схема может быть поделена условно поделена на несколько ча­
стей: ввод исходных данных и массивов (блок 1); цикл по уровням (блок 2); вложенные циклы
внутри каждого уровня (блоки 3-7); расчет критериев (блок 8); выделение недоминируемых
узлов (блоки 9-10); окончание расчета (блок 11). Кроме того, в программу могут дополнительно
включаться блоки формирования групп совместно выполняемых работ, механизмы визуализа­
ции и построения графиков, функции пересчета расписания, блоки моделирования и т.п.
На каждом следующем уровне отбираются несколько вариантов возможных решений, не
доминирующих друг друга, используя следующий алгоритм.
Шаг 1. Расчет функций полезности в начальный момент планирования
Определяются начальные состояния машин и объектов в процессе обработки.
Положим номер уровня I = 0; начальная функция издержек Uo = 0; начальная полезность
заказов Vq определятся по формуле 3.7; количество узлов Zo = 1.

ЦИКЛ по уровням

ЦИКЛ по узлам уровня
Шаг 2. Определение возможных работ в узлах уровня
Для каждого узла z построенного дерева на уровне I устанавливаются возмож­
ные работы г и определяются значения gZi при помощи формулы 3.28.
ЦИКЛ по работам в узле

Шаг 3. Определение необходимой машины для работы в узле
Для каждой fc-ой работы, которая возможна к моменту Ciz, и не является
выполненной ранее, определяется необходимое семейство машин т.
ЦИКЛ по машинам для каждой работы
Шаг 4. Расчет функций полезности на следующих уровнях
Для каждой m-ой машины с учетом момента ее возможного освобожде­
ния, рассчитываются значения Ui+iiZtk,m и Vi^ifZtk,m по формулам 3.27 и
(3.20, 3.26).
КОНЕЦ ЦИКЛА по машинам для каждой работы
КОНЕЦ ЦИКЛА по работам в узле

44

© 2018, Мауэргауз Ю.Е.

Многокритериальные расписания

КОНЕЦ ЦИКЛА по узлам уровня
Шаг 5 Определение доминируемых узлов дерева
ЕСЛИ уровень Z +1 не является последним, то для доминирования на Z + 1-ом уровне
возможного узла у дерева над возможным узлом х необходимо, чтобы соблюдались
неравенства

W+i,y ^

Ui+\,x,Vi+i,y

^ Vi+i,!,^!^ <

gi+i,x.

(3.34)

причем первое или второе неравенство должно быть строгим.
ИНАЧЕ для доминирования на последнем уровне I 4-1 необходимо, чтобы
Ui+i,y ^ Ui^-iyX,Vi+i,y

^ Vi+i)X.

(3.35)

Шаг 6 Проверка длительности ветви на уровне
ЕСЛИ для отобранной ветви дерева несправедливо неравенство 3.32, такая ветвь
решения отбрасывается.

Шаг 7 Переход на новый уровень или окончание работы программы
ЕСЛИ уровень больше последнего (выполнены все операции), то окончание работы.
ИНАЧЕ Увеличение номера уровня / = / + 1 и переход на шаг 2.
КОНЕЦ ЦИКЛА по уровням

Поскольку механизм отсечения ветвей построен на отборе ветвей с хотя бы одним наилуч­
шим критерием U или V, этот алгоритм является многокритериальным «жадным» алгоритмом
[Canon and Jeannot, 2011]. Правда, такая «жадность» несколько смягчается условием проверки
величины требуемого момента запуска каждой работы gi. Это условие обеспечивает включение
во множество отобранных ветвей работ с более ранним моментом запуска.
После проведения отсечения по неравенствам 3.34 проводится определение ветви с наи­
меньшей возможной длительностью. Затем остальные ветви сравниваются с наиболее короткой
ветвью, и часть ветвей, не удовлетворяющих условию 3.32 отбрасывается. Таким образом, обес­
печивается устранение наиболее продолжительных, и соответственно, неприемлемых решений
и уменьшается количество вычислений.

© 2018, Мауэргауз Ю.Е.

45

Многокритериальные расписания

Рис. 3.8

46

Блок-схема вычислений по дереву расписаний

(с) 2018, Мауэргауз Ю.Е.

Многокритериальные расписания

3.6

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

Положим, что в некоторый момент времени Ci уже закончено выполнение Z работ и после
этого в момент tk начинается выполнение к-ой работы. Средняя полезность всего имеющегося
набора работ за все время Fk от начала работ до выполнения к-ой работы с учетом возможных
перерывов определяется по рекуррентной формуле 3.20. Для нахождения величины интеграла
^к+Рк
J Vkdt используется выражение функции текущей полезности заказов по формуле 3.10.

Значения напряженности определяются по формулам 3.6. Таким образом, для определения
значения средней полезности Vi+iyk требуется вычислять значения определенных интегралов
Fk
J Hidt.
Cl

Для г-ых работ, которые не являются выполняемыми в момент tk, вариант расчета напря­
женности определяется взаимным расположением моментов Ci, di и Fk. Для работы к, которая
является выполняемой в момент tk, вариант расчета напряженности определяется взаимным
расположением моментов Ci, tk, dk и Fk а также точек начала перерыва Bi и конца перерыва
В2. На рис. 3.9 показаны 9 таких возможных вариантов.

Вариант 1

Вариант 2

»
Fk

>
G

t


------- »
С1

-

»
d.

>
s2

»
в\

.



>..,,»„,,
Fk
dk

»
t

»
t

Вариант 3 _^---------------------------------- ^
Cl

Fk

di

t

Вариант4 -----------»

»

»



С/

tk

В\

В2 dk Fk

Вариант 5 -■<

•♦•

cl
Вариант 6

Вариант 7 ...

<

»

Cl

tk



Bi dк

tk

dk B}

»

»

di

C,

»

■■■

f

»



B2 Fk

e -■■

<

• »

t

#

e

B2

Fk

»

t


B2

■»-.............. ►
Fk
t

Варианты расположения параметров

© 2018, Мауэргауз Ю.Е.

47

Многокритериальные расписания

В варианте 1 интеграл напряженности вычисляется для работы г, которая не является вы­
полняемой в момент tk, и требуемый момент выполнения которой di находится за точкой tk+pk
выполнения к-ой работы. Вариант 2 отличается от варианта 1 тем, что напряженность опреде­
ляется для работы к, выполнение которой начинается в момент tk.
Вариант 3 существует для невыполняемой работы в том случае, когда требуемый для нее
момент выполнения di находится между точками Ci окончания предыдущей работы и точкой
Fk выполнения к-ой работы. В варианте 4 интеграл напряженности определяется для работы,
выполнение которой начинается в момент tk, а требуемый момент выполнения находится между
точками В2 окончания перерыва в работе и точкой Fk. В варианте 5 требуемый момент выпол­
нения находится между точками Bi начала перерыва и точкой В2 его окончания. В варианте
6 момент выполнения di находится между точками tk и Bi.
В варианте 7 для невыполняемой работы г требуемый для нее момент выполнения di на­
ходится раньше точки Ci. В случае варианта 8 для работы, выполнение которой начинается в
момент tk, требуемый момент ее выполнения находится между точками Ci окончания преды­
дущей работы и точкой tk. В последнем варианте 9 требуемый момент выполнения работы,
начинающейся в tk, находится раньше точки Ci.
Правила выбора конкретного варианта приведены в табл. 3.1. Параметр агк может иметь
одно из трех значений: 0 - для работ, уже выполненных к моменту ifc; 1 - для работ, еще
не выполненных и не включенных в /с-ую партию; 0,5 - для еще не выполненных работ,
включенных в /с-ую партию.
Если агк = 0, интеграл напряженности не рассчитывается.
В табл. 3.1 предполагается, что суммарная величина перерывов в течение одной работы
расположена на одинаковом расстоянии от начала и окончания работы, и поэтому точки Bi и
В2 находятся на одинаковом расстоянии от точек tk и Fk, равном Рк/Ъ. Во всех колонках таб­
лицы неравенства, содержащие отношение больше нуля, не могут применяться для вычислений
при равенстве левой и правой части. Причина такого положения состоит в том, что интегра­
лы напряженности в этих случаях содержат логарифмы от разности вычитаемых величин, и
соответственно, не могут быть вычислены, когда такая разница равна нулю.
Для вывода расчетных выражений из интегралов напряженности используются три формулы
для неопределенных интегралов:

Г(а + bt -\- ct ^dt — at -h —t “Ь

Таблица 3.1

(3.36)

,

q^

Правила выбора варианта формулы расчета интегралов на­

пряженности

48

ак
1
0.5

di ~ Fk

di - tk

di - Ci

di — (Fk - Pk/2)

di — (Fk + Pk/2)

> 0
> 0

-

1
0.5
0.5
0.5
1
0.5
0.5

^ 0

-

> 0

-

> 0
> 0
> 0

> 0
> 0
> 0

> 0

-

^ о
^ о
о

^ о
> 0
о

-

^ 0
-

-

-

^
^
^
^
^

0
0
0
0
0
0

^ о
-

© 2018, Мауэргауз Ю.Е.

> 0

Bap. для

1
2
3

4
5
6
7
8
9

Многокритериальные расписания

Г —= -ln|at + b|,
J at ~{~ b
а

а / О,

(3.37)


а/О.

tdt
i
b . ।
-7—7 =--------2 In at+ 6,
at + b а
а2

(3.38)

Ниже приведены значенияопределенных интегралов напряженности.
Самым распространенным является первый вариант, используемый для работ, не являющи­
мися выполнимыми в текущий момент, т.е. при i ^ к, и для которых момент окончания текущей
работы находится раньше, чем их срок выполнения, т.е. di — Fk ^ 0. Используя зависимость
Нг от времени, согласно первому из выражений 3.6 и формуле 3.37, по правилам вычисления
определенного интеграла получим для варианта 1

J Hidt = awipi In \di-Ci)/aG+l'
(di-Fk)/aG + l. ’
Ci

(3.39)

В варианте 2 напряженность определяется для работы к, выполнение которой начинается
в момент tk- Поскольку каждый момент времени выполнения этой работы меньше ее срока
выполнения dk, величина напряженности, как и в предыдущем случае, может определяться по
первому из выражений 3.6.
Для вычисления соответствующего определенного интеграла, имеем 4 участка: первый уча­
сток от точки Ci до точки tk, на котором работа еще не начала выполняться, и второй участок от tk до начала перерыва точки В^\ третий участок заканчивается точкой В2 конца перерыва;
четвертый участок длится до точки Fk непосредственного выполнения:
Fk

tk

В2

Bl

Fk

dk

J Hkdt = J Hkdt + J Hkdt + J Hkdt + J Hkdt + J Hkdt.
Cl

Cl

tk

Bl

(3.40)

dk

B2

На первом участке интеграл от напряженности может вычисляться по формуле, аналогичной
3.39, т.е.
f„,.

1

/о л\

[№-Ci)/aG + l]

J Hkdt = awkPk In -----^ .
Ci

(3.41)

На втором участке величина остающейся трудоемкости работы уменьшается со временем.
Полагая это изменение линейным, получаем для второго участка
Нк =

wk{pk ~ (t- tk))______ 1______
G
{dk — t) / olG + 1

(3.42)

Используя для вычислений интегралов формулы 3.33 и 3.34, получим для второго участка
tk+Pk/2

J

Hkdt =

tk
/
(dk — tk)JaG- + 1
\
Рк
- (dk -tk -pk+ aG) In
= awk
2
\ (dk -tk- pk/2)/aG + 1 /
© 2018, Мауэргауз Ю.Е.

(3.43)

49

Многокритериальные расписания

На третьем участке, полагая, что трудоемкость работы равна рк/2, имеем формулу, анало­
гичную 3.41
Fk~Pk/2

J

Hkdt =

awkPk ,
"“2“1П

tk+Pk/2

(dk — (tk + pk/2))/aG 4-1
(dk-(Fk-pk/2))/aG + l

(3.44)

На четвертом участке с учетом уменьшения трудоемкости со временем, имеем

wk(Fk - t)______ 1______
G
(dk - t)/aG + 1 ’

Hkdt =

(3.45)

и выражение
Fk

J

Hkdt =

(3.46)

Fk-Pk/2

= awk

(л _ Л + „G) ,„ (оц^Жг^!)]

Eh
2

\

(dk-Fk)/aG + l

/]

Таким образом, интеграл напряженности для варианта 2 определяется как сумма выражений
3.41, 3.43, 3.44 и 3.46.
В варианте 3 сложность вычислений обусловлена тем, что выражение для напряженности
невыполняемой работы г для различных участков вычисления различна. На участке от точки
Ci до точки di напряженность рассчитывается по первому выражению 3.6, а на участке от
точки di до точки tk+pk - по второму выражению 3.6. Поэтому на первом участке интеграл
напряженности вычисляется с помощью формулы 3.37, а на втором - по формуле 3.36. В
результате имеем

f Hidt = awipi In ( ■ - --- + 1 ) +
ci

, WiPi (,
+ ~G~ k

(3.47)
di \ ,
4
WiPi
2 j2\
^-d^+2^^~di)-

Для расчета интеграла напряженности выполняемой работы k в варианте 4, заметим, что
весь интервал расчета должен быть разбит на 5 участков: первый от точки Ci до точки tk',
второй участок от точки tk до начала перерыва - точки В\\ третий участок заканчивается
точкой В2 конца перерыва; участок 4 длится до точки dk и, наконец, пятый участок от точки
dk до точки Fk, т.е.
Fk

Bl
В2
dk
Fk
J Hkdt = J Hkdt + J Hkdt + J Hkdt + J Hkdt + J Hkdt.
Cl

Cl

tk

B\

B2

(3.48)

dk

В данном случае на первом участке интеграл рассчитывается по формуле 3.41, на втором
участке по формуле 3.43, на третьем участке - по формуле 3.44.
На четвертом участке и пятом участках напряженность имеет вид:
50

(с) 2018, Мауэргауз Ю.Е.

Многокритериальные расписания

Wk(Fk -1)______ 1______
G
(dk - t)/aG + 1

нк =

и
Нк =

Wk(Fk -1)
G

(3.49)

1^
+1
aG

Поэтому на четвертом участке, пользуясь формулами 3.37 и 3.38, имеем
dk

J

Hkdt =
(3.50)

Fk-Pk/2

= awk

dk - (Fk - у) - (Fk + aG) In ^^(^P*/2) + ^

Используя формулу 3.36, получим для пятого участка

Fk
/
л \
f Hkdt = ^Fk (l-^\(F
k- dk)~
J
G
\
aG /
— А
2G V

Fk + dk
aG

(3.51)

3^^к ~dk>'

Полное значение интеграла напряженности по варианту 4 определяется суммированием
выражений 3.41, 3.43, 3.44, 3.50 и 3.51.
В варианте 5 интервал расчета должен быть разбит на 5 участков: первый от точки Ci до
точки t^ второй участок от точки tk до начала перерыва - точки Bi; третий участок длится
до точки dk\ четвертый участок заканчивается точкой В2 конца перерыва; и, наконец, пятый
участок от точки В2 до точки Fk, т.е.
Fk

tk

dk

Bl

Fk

B2

J Hkdt = J Hkdt + J Hkdt + J Hkdt + J Hkdt + J Hkdt.
Cl

tk

Cl

dk

Bi

(3.52)

B2

В данном случае на первом участке интеграл рассчитывается по формуле 3.41, на втором
участке по формуле 3.43. На третьем участке и четвертом участке имеем формулу, аналогичную
3.47
Fk~Pk/2

dk

J

tk+Pk/2

Hkdt+

J

я^ = ^|п

/ »

1

^-^-^2+1

к

+

(3.53)

dk

+^ (^^ ^-pk/2 ~d^ + ^ № - W2)2 - d^ •

На пятом участке используется формула, аналогичная 3.51

J

1-^

^«=^.

Fk-Pk/2

4

7

(3.54)

"В 0 " ^) ^‘ " (^ - Р*/2)2] - 3^2 № - (^ -Р*/2)3] •

© 2018, Мауэргауз Ю.Е.

51

Многокритериальные расписания

В варианте 6 интервал расчета должен быть разбит на 5 участков: первый от точки Ci до
точки tk; второй участок от точки tk до точки dk; третий участок - начала перерыва точки
Bi; четвертый участок заканчивается точкой Вг конца перерыва; и, наконец, пятый участок от
точки Вг до точки Fk, т.е.
Fk

dk



Bl

B2

Fk

J Hkdt = J Hkdt 4- J Hkdt 4- J Hkdt 4- J Hkdt 4- J Hkdt.
Cl

Ci

Bi

dk

tk

(3.55)

B2

На первом участке интеграл рассчитывается по формуле 3.41. На втором участке использу­
ется зависимость, аналогичная 3.43
dk
J Hkdt = aw к dk-tk- (dk -tk-pk + aG) In
tk

dk tk
+1
aG

(3.56)

На третьем участке имеем
tk+Pk/2

Hkdt - ^-(tk+pk)

Ст

(1-^)(t‘+p‘/2- / 6 'половктельное слагаемое в функции полезности
If suD - snFk > О Thea 'если срок заказа болъве окончим* выполнения
Vybor • забав - В2(мЯ, лаРк, Шг мС1, лаТк, #nFk) 'вычитается напряженность в варианте 2
lire 'если срок заказа мемьве окончания ашаямения
If aaD - «аТк > 0 Thea ' если срок заказа болъве момента начала
'If anD - (snFk - ваРк / 2) > О Then 'если срок заказа ботве конца перерыва
If aaD - «Fk > О Then
'если срок заказа болъве конца перерыва
vybor • забав - Веслея, ваРк, лао, япС!, лаТк, лаГк) 'вычитается напряженность в варианте 4
Е1зе 'если срок заказа мемвве коша перерыва
If лаО - О Thea 'если срок заказа болъве начала перерыва
Vybor ■ лабав - В5(зпЯ, лаРк, лаО, лаС1, лаТк, aaFk) 'вычитается напряженность в варианте 5
Eire 'если срок закала мемьве мчала перервал
vybor • лабав - Вб 0 Thea 'если срок заказа болъве момента освобождения малины
vybor * лабав - Вб (лая, лаРк, aaD, rad, лаТк, anFk) ‘вычитается напряженность в варианте Л
Е1ае 'если срок заказа мемьве момента освобождения мамины
vybor • забав - 89(«ан, лаРк, заО, заС1, зпТк, saFk) 'вычитается напряженность в варианте 9
End If
End If
End If
ELee *дм непосредственно нс выполняемой работы
забав - заЯ * заР1 * (заРк - «С1) / б 'положительное слагаемое в функции полезности
If заО - snFk > О Then ‘есяк срок заказа болъве окончания выполнения
vybor • забав - В1(зВЯ, aaFl, впО, заС1, snFk) 'вычитается напряженность в варианте I
Else 'если срок заказа мемьве окончания выполнения
If лаб - лпС1 > 0 Then 'если срок заказа болъве момента освобождения мамины
Vybor - забав - ВЗ(зпЯ, зпР1, enD, snCl, anFk) 'вычитается напряженность в варианте 3
Else 'если срок заказа мемьве момента освобождения навыки
Vybor • зобам - Я7(зпЯ, anFl, заб, end, snFk) 'вычитается напряженность в варианте 7
End If
End If
End If
End If
End Function

Рис. 4.3

56

Листинг функции VyborQ

(с) 2018, Мауэргауз Ю.Е.

Стандартные функции

ния новой работы snTk, планируемый момент окончания непосредственно выполняемой работы
к-ой работы snFk.
Указатель выполнения текущей работы может иметь 3 значения: 1, 0,5 и 0. В первом случае
работа непосредственно не выполняется, во втором случае - происходит ее выполнение. Для
уже выполненных работ указатель устанавливается в значение 0.
В соответствии с табл. 3.1, при выборе текущего варианта функции Я1() - H9Q учиты­
ваются параметры di — Fk, di — tk, di - Ci, di — (Fk - pk/2), di - (tk + pk/2), которые в
обозначениях функции Vybor() имеют выражения snD — snFk, snD — snTk, snD — snCl,
snD — (snFk — snPk/2), snD — (snTk + snPk/2).
Функция VyborQ используется для расчета средней полезности всего объема планируемых
работ за время от начального момента £ = 0 до момента окончания последней уже запланиро­
ванной работы Ci по формуле 3.20. Поэтому значение функции VyborQ равно разнице между
составляющей первого интеграла в правой части 3.21 от г-ой работы угк и соответствующей
функцией интеграла напряженности, поделенной на отрезок времени до момента окончания
выполняемой к-ой работы Fk. Величина угк в листинге на рис. 4.3 описывается переменной
snGam, которая определяется по формуле 3.22 или 3.23.
В табл. 3.1 для варианта 4 в соответствии с допущением о том, суммарная величина пере­
рывов в течение одной работы расположена на одинаковом расстоянии от начала и окончания
работы, используется неравенство di — (Fk — Рк/2) > 0. В том случае, если это допущение
нарушается, возможно возникновение ситуации, при которой di - (Fk - рк/2) < 0, что при­
водит к нарушению работы программы. Поэтому в листинге на рис. 4.3 вместо неравенства
di — (Fk —рк/2) > 0 используется более сильное неравенство di —Fk > 0. Расчеты показывают,
что такая замена весьма незначительно влияет на величину функции VyborQ.

4.3

Функции расчета критериев

Средняя полезность всего имеющегося набора работ J за все время от начала работ до
окончания выполнения к-ой работы в момент tk + Рк в узле на уровне I 4-1 определяется по
реккурентной формуле 3.18
vi+i,k=/ L
tk + Pk

tk+Pk

f
J

tk+Pk

..

Vdt ~--------tk+Pk

VtxCi +

J

Vkdt

При построении каждой ветви дерева решений рассчитывается значение интеграла в правой
части этой формулы при помощи специальной программной функции VZakQ, листинг которой
приведен на рис. 4.4. При этом используется выражение 3.10.
При вызове функции VZakQ указывается полное количество работ inBeta, номер строки
выполняемой работы ink, момент окончания предыдущей работы машины snCl в календарных
часах, момент начала выполнения новой работы snTk, планируемый момент окончания непоhmctiw VZak(inBet*, ink, snCl, snTk, snFk)
VZ*k - 0
For 1 ■ 1 To inBet* 'law. по всем работам
VZ*k • VZak ♦ Vybor(aJ(x), W(i), p(i), p(ink), dU), snCl, snTk, snFk)
Hext i
End Function

Рис. 4.4

’накопление функции nonesaocw

Листинг функции VZakQ

© 2018, Мауэргауз Ю.Е.

57

Стандартные функции

средственно выполняемой работы к-ой работы snFk. В процессе расчета величина функции
накапливается суммированием полезности для всех планируемых работ.
Величина относительных издержек на переналадку на уровне Z + 1 до окончания выполне­
ния к-ой работы на машине т определяется в системе по формуле 3.27 как сумма издержек
переналадок, включая все ранее выполненные работы.
Для этого используется специальная функция UZakQ, листинг которой приведен на рис.
4.5. При вызове функции UZakQ указывается новая строка работ ink, предыдущая строка
работ ini и вид работы при начальном состоянии машины inVid. Величина функции UZakQ
определяется значением трудоемкости s переналадки машины в часах. В расчет входят кон­
станты стоимости одного часа наладки СН и стоимости смены с.
Fraction Ш(1й, ini, inVid) ’ink - оды стрем работ, ml - цреждутя стром работ,inVid - одыыы уставом изд ра(
If laVid > 0 Then
UZat • СВ • i(VU|iBk), inVld) / с
'гжшыж м^аш досею перевалите'
Пае
UZak - СН • з {Vid (ink), Vid (ini)) / с
End If
End Fraction

Рис. 4.5

4.4

Листинг функции UZakQ

Функция пересчета трудоемкости работы к календарным часам

В задании на планирование продолжительность планового выполнения работы (партии)
указывается в часах непрерывной работы. В то же время календарный график работы подраз­
деления обычно предусматривает нерабочее время. В рабочие дни используется только часть
суточного времени - в одну или несколько смен; часть дней являются нерабочими или празд­
ничными. Поэтому система использует функцию CalendQ пересчета расчетной продолжитель­
ности выполнения работы с учетом календарного графика. Листинг верхней части функции
CalendQ для одиночной машины приведен на рис. 4.6.
При вызове функции указывается начальный момент выполнения работы в календарных
часах inBeg, длительность непрерывного выполнения работы inD в часах и флаг типа исполь­
зования функции inF. Флаг имеет значение 1, если функция применяется для расчета момента
начала выполнения работы, и равен 2, когда функция используется для момента завершения
работы.
В начале расчета рассчитывается количество полных календарных дней п начала выпол­
нения плановой работы, отсчитывая от момента планирования. Затем определяется остаток
рабочих часов Ost в день начала выполнения работы. Величина этого остатка зависит от того,
является ли рабочий день круглосуточным. Кроме того, на величину Ost влияет продолжи­
тельность предыдущего рабочего дня или наличие нерабочего дня.
Выше в п. 2.3 указывалось, что плановая служба цеха составляет расписание для следу­
ющего рабочего дня. Длительность этого дня существенно зависит от длительности работы в
предыдущий календарный день. Если смены предыдущего дня не переходят на последующий
день, т.е. работа посменная, но не круглосуточная, то расписание следующего рабочего дня
полностью укладывается в течение нового календарного дня.
При круглосуточной работе последняя (ночная) смена предыдущего дня работает фактиче­
ски в течение нового календарного дня. Поэтому при составлении задания на новый рабочий
день необходимо учитывать состояние производства в период от начала календарного дня до

58

©2018, Мауэргауз Ю.Е.

Стандартные функции

Function Cal*nd(inBtg, inD, inF) ’ функция преобразования работе# длительности в квленларну»
Ош tar As Single
Dia Ort A> Single
If inBeg > 0 And Int (inBeg / 24) “ inBeg / 24 then ‘если момент начала ссладдет е моментом изменения даты
п • Inc(inBeg / 24)
’количество полню календарных дней начала
Else
п • Inc (inBeg / 24) ♦ 1 • количество солпых календарных явей начала
End If
If E(n) > 0 Then 'если день рабочий
If Е(п) 0 And n ■ 1 And КО О Tn Aad КО >- 0 Then ’если в первый день есть начальная настройка на вид работы
Ost • ШВед * остаток рабочих часов равен исходному началу
Else ’если мет начальной настройки, а также для других дней
Ost • inBeg - Tn - (п - 1) • 24 ’остаток рабочих часов в последний рабочий день начала
If Ost < 0 Then 'остаток рабочих часов равен куле
Ost - О
End If
End If
If n > 1 Then 'для дней после первого
If Е(п - 1) * 24 Thea 'если прелмяужкй рабочий день равен сутках
Ost ■ inBeg - (п - 1) • 24 ’остаток рабочих часов в последний рабочий день начала
End If
End If
Else 'если длительность рабочею дня равна сутках
Ost • inBeg - (п - 1) * 24 ’остаток рабочих часов в последний рабочий день начала
If п > 1 Then ’для дней после первого
If Е(п - 1) «О Then ’если предыдуиий лень нерабочий
Ost ■ Ost - Th 'остаток рабочих часов в первый рабочий день после нерабочего
End If
End If
End if
Else ‘если день нерабочий
If E(n - 1) • 24 Then ’если предыдущей рабочий день круглосуточный
Ost • InBeg - (а - 1) * 24 'остаток рабочих часов в последний рабочий день начала
End If
End If
Bad Function

Фрагмент верхней части листинга функции Calend() для оди­
ночной машины

Рис. 4.6

момента начала его первой смены. Особенно это важно при корректировке плана последующего
дня при появлении в этот день срочной работы.
Если продолжительность нового рабочего дня составляет 24 часа, величина остатка рабочих
часов Ost равна начальному моменту расчета inBeg за вычетом количества времени прошедших
дней. Если длительность нового рабочего дня меньше 24 часов (например, в предпраздничный
день), то ситуация усложняется.
В функции CalendQ проводится анализ описанного варианта. Для этого проверяется на­
личие первоначальной настройки VidO в первый день нового планирования п, а также момент
освобождения машины КО. Полагается, что в случае, когда настройка машины на конкретный
вид работы VidO отлична от нуля, а время освобождения машины приходится на ночной период,
этот период является рабочим, и в таком случае остаток рабочих часов Ost равен начальному
моменту расчета inBeg. В противном случае остаток рабочих часов Ost должен отсчитываться
от момента начала первой смены Тп.
В том случае, когда длительность рабочего дня после первого дня меньше 24 часов, а
длительность предыдущего рабочего дня составляет 24 часа, величина остатка рабочих часов
Ost равна начальному моменту расчета inBeg за вычетом количества времени прошедших
дней.
Затем в цикле по календарному графику определяются рабочие дни (рис. 4.7). Для каждого
дополнительного рабочего дня m вычисляется перенос Per остающейся продолжительности

© 2018, Мауэргауз Ю.Е.

59

Стандартные функции

Calend - О
и - О
Гог 3 • n То Delta 'цикл по календарю
If I(j) >0 Then 'если день рабочий
а ■ ж 4 1 ‘количество добавляемых рабочих дней
If в - 1 Then
Fer “ Dec ♦ inD 'необходимая длительность в рабочих часах
Use ‘для дополнительных дней
Fer • Fer - Exec 'остаток длительности
End If
If E(3) < 24 Then 'если текулий рабочий день меньве суток
If InF * 1 Then 'если определяется начало работы
If VidO > 0 And п • 1 And КО • 0 Then
I'если в первый день планирования есть начальная настройка на вид работы
If Fer < Е(3) 4 Тп Then ‘если перенос остатка меньне длительности первого рабочего дня
Calend • □ - 1) * 24 + Fer ’ начало работы
3 • Delta 'конец цикла
End If
Else 'если кет начальной настройки
If Fer < Е(3) Then * если перенос меньяе длительности рабочего дня
Calend " (3 ~ 1) * 24 4 Fer 4 Тп 'календарная длительность работы в часах
If 3 > 1 Then 'для дней после первого
If Е(3 - 1) • 24 Then 'если предолуоп1Й рабочий день равен суткам
Calend - Calend - Тп 'календарная длительность работы в часах
End If
End If
3 • Delta 'конец цикла
End If
End If
Else 'если вычисляется окончание работы
Exec • Е(3) ' мпепммамке продолжительности текущего рабочего дня
Else 'если день нерабочий
If Е(3 - 1) - 24 Then
Fer * Ost 4 inD 'необходимая длительность в рабочих часах
If Fer 0 Then 'если день рабочей
ж • ж ♦ 1 • количество добавляемых рабочих дней
If ж - 1 Then
Per • Oat + inD 'необходимая длительность в рабочих часах
Пае 'яда дополнительных дней
Per ■ Per - Емс 'остаток длительности
ЕМ If
If ВЦ) < 24 Then "если текущей рабочий день мемьае суток
If ДО • 1 Пиа 'ясли определяется начало работы
If VldO(lnK) > 0 And п - 1 And КО (ДО) - 0 Thea
'если в первый день плакирования есть начальная настройка на вил работы
If Per < (EO) - НЕ (ДО, D) • Application., Mln (1, Ka О)) * Th Then
'если перелое остатка меньше длительности первого рабочего дня
Calend ■ О ~ 1) * 24 ♦ Per ' качало работы
1 - Delta * конец цикла
ЕМ If
Else ‘если нет начальной настройки
If Per < (Е0) - МЕ(ДО, ))) • Application.Min(1, Ka|j)) Than ' если перенос меньше длительности рабочего дня
Calend ■ Ц - 1) • 21 ♦ Fer + Та ’календарная длительность работы в часах
If 3 > 1 Then *дм дней после первого
If E(j - 1) • 24 Then ‘если предыдущий рабочий день равен сутках
CaleM ■ Calend - Тп "календарная длительность работы в часах
ЕМ If
ЕМ If
3 • Delta "конец цикла
ЕМ И
ЕМ If
Elae ‘если вываляется окончание работы
ЕМ If
ЕМ If
ЕМ If
Свес - (Е(3) - ME (ДО, 3)) * Application. М1я(1, Ка(3)>
ЕМ If

' заземмнаяме продолжительности текущего рабочего дня

мем з
ЕМ Function

Фрагмент функции CalendQ для нескольких машин с учетом
коэффициента обеспеченности персоналом
Рис. 4.10

ции CalendQ для нескольких машин используется, например, в макросе электронной книги
MBook4.xls.
Функция CalendQ может быть использована для определения моментов выполнения работ с
учетом коэффициента обеспеченности цеховым персоналом Ks (рис. 4.10). В этом случае фонд
времени оборудования в цехе уменьшается в соответствии с величиной коэффициента Ks,
меньшего единицы. Функция CalendQ для этого случая используется в макросе электронной
книги MBook6.xls.

4.5 Функция поступления работ на машину в рабочее время
Поступление материалов и заготовок на склад для выполнения работ возможно в любой
момент, включая нерабочее время и праздничные дни. В то же время их подача на машину
осуществляется только в рабочее время. Поэтому система использует функцию Arrival^) для
определения момента поступления работы на машину с учетом календарного графика, листинг
которой приведен на рис. 4.11.
© 2018, Мауэргауз Ю.Е.

63

Стандартные функции

hmctiOB Arrival(inR) * #умкши доступлехмж работ на ммшму ж рабочее арена
Шж Оде ta Slagle
If 1лй > О tad Int(iaR / 24) - inR / 24 Then ‘если иоиеят мчала сомлеет с монелтом изненеямя даты
п • Inc(inR / 24)
'количество лояких халекларкых шей мчала
им
п ■ Int(inR / 24) 4 1 'количество полиш календарных шей мчала
End If
Qtt « 1пй - (a - 1) *24 'момент прибшмя в календарных часах в деле прибыли
Arrival • 0 'прявшие равно О
If Оде < (Е(п) а Л And Е(п) > 0) От £(п) • 24 Then 'если поступление пркходмтсл до окотяямя рабочего дал
Arrival • (п - 1) * 24 + Оде 'прибшиек считаете# поступление работы в цех
Е1*е 'поступление либо после рабочего дня, либо в нерабочий дек»
If п > 1 Then 'дал дней после первого
If Оде < Tn And Е(п - 1) • 24 Thea 'если дрелмяушй рабочий ми» равен суткам
Arrival ■ (п - 1) * 24 4 Оде 'момент прибыли в млешарных часах в лен» пркбшхя
End If
End If
If Arrival ■ 0 Thea 'если момент поступления еме не определен
For j • п 4 1 То Delta 'цикл по календарю, начихал со сжедуонего календарного дал после поступления
If E(j) > 0 Thea 'если дем» рабочий
Arrival “ О - 1) * 24 t Тп 'прибытием считается момент мчала нового рабочего дня
j • Delta ' комп цикла
End If
Next J
End If
End If
End Function

Рис. 4.11

Листинг функции Arrival^)

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

4.6

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

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

64

© 2018, Мауэргауз Ю.Е.

Стандартные функции

function WorkRourx(inll) 'функция числа рабочих часов в заминок календарном сроке
01в GDaya Ав Integer
'Первмй плановый день обязательно рабочий
If ШИ > 0 And Inc (ШИ /21) * me / 24 Thin ’«ели момент шполхенид совпадает с началом лил аяаюфоааюм
СОауя * 1т(1пИ / 24)
’количество полных калеммримх дней выполнения
Else
COayu ■ 1м(1аЯ / 24) ♦ X ’количество полк*» каяеммрных дней выполнения
End If
KorkHours - О
For J • X То CDaya
’дал всех дней до момент* ваподкеммя
If 3 > 1 Лед
If j - 2 And Е(1) - 24 Лап
ПогкЯсшгя • 1(1) - Тп ’вмятинке первого планового рабочего дня для круглосуточной работ
Е1м
WorkBour* • WorkSoure ♦ Е() - 1) ’включение всех дрелклуомх рабочих дней
End If
End If
Hext 3
If E(CO*y*) > 0 Then 'если последний день рабочий
If E(CDaye) • 24 Then ’при круглосуточной работе
If CDaya ■ 1 Then ’в первай день
If ink > Тп Then ’если момент выполнения больпе начала работ
Ехес ■ 1пЙ - Int(inH / 24) * 24 - Тп 'число часов добавки к суткам
Exit
Ехес * О
End If
Else
Ехес * 1п8 - Int(lnB / 24) • 24 'число часов добавки к суткам
End If
ЕХае
If 1пИ > InttinB / 24) * 24 ♦ Тп Then
'время выполнения бельме начала рабочего лид
Ехес * 1пК - Int(inE / 24) * 24 - Тп 'число часов добавки к суткам
ЕХве
'время выполнения мемьяе начала рабочего дня
Ехес • 0
'число часов рабочей добавки равно нулю
End If
If Фаун > 1 Then
If E(CDaya - X) • 24 Then ’если арелкаупий рабочий день круглосуточный
Ехес ■ ХпИ - ХпсОпЕ / 24) * 24
End If
End If
End If

End If
WorkRour* • WorkHoura a Exec
End Function

Рис. 4.12

4.7

’срок выполнения в рабочих часах от начала рабочего дня'

Фрагмент листинга функции WorkHoursQ

Функция определения возможности начала непрерывного процесса

Если выполнение работы возможно только без ее прерываний, то необходимо проверять
возможность начала процесса до истечения рабочего дня, или до имеющихся в календаре
выходных дней. Фрагмент листинга верхней части программы приведен на рис. 4.13.
При вызове функции указывается начальный момент выполнения работы в календарных
часах inBeg и длительность непрерывного выполнения работы inD в часах.
Как и в функции CalendQ, в начале расчета рассчитывается количество полных кален­
дарных дней п начала выполнения плановой работы, отсчитывая от момента планирования.
Наличие нерабочего дня фиксируется приданием флагу Flag значения, равного единице. Затем
определяется остаток рабочих часов Ost в день начала выполнения работы. Величина этого
остатка зависит от того, является ли рабочий день круглосуточным. Кроме того, на величину
Ost влияет продолжительность предыдущего рабочего дня или наличие нерабочего дня.
(с) 2018, Мауэргауз Ю.Е.

65

Стандартные функции

Function Соятппе 0 And 1st (inBeg / 24) • inBeg / 24 Then •если момент начала ©опадает с моментом изменения даты
а ■ Int (inBeg / 24)
'количеств© полных календарных дней начала
Else
п ■ Inc (inBeg / 24) ♦ 1 'количество полных календарных дней начала
End If
Flag - 0 'флат нерабочих дней
If n > 1 Then
If Е(п - 1) • 0 Then 'если дрелшуомй лень нерабочий
Flag * 1 'флат наличия нерабочих дней
End If
End If
If E(n) < 24 Then 'если длительность текущего рабочего дня мальве суток
If VidO > 0 And n ■ 1 Then 'если в первый день есть начальная настройка на вид работы
Ost • inBeg * остаток рабочих часов равен исходному началу
Else 'если нет начальной настройки, а такие для других дней
Ost • inBeg - Тп - (п - 1) * 24 'остаток рабочих часов в последний рабочий день качала
If Ost < 0 Then 'остаток рабочих часов равен кулю
Ost - О
End If
End If
If n > 1 Then 'для дней после первого
If Е(п - 1) ■ 24 Then 'если нредыдужий рабочий день равен суткам
Ost • inBeg - (п ’ 1) * 24 ‘остаток рабочих часов в последний рабочий день качала
End If
End If
Else 'если работа круглосуточная
if nag • 0 Then
If n • 1 Then
Ost • inBeg - KO - (n - 1) • 24 'остаток рабочих часов в последний рабочий день начала
Else
Oat • inBeg - (п - 1) • 24 'остаток рабочих часов в последний рабочий день начала
End I f
Else 'если прелмлупий день нерабочий
Ost ■ InBeg - Тп - (п - 1) ♦ 24 'остаток рабочих часов в последний рабочий день начала
End If
End If

End Function

Фрагмент верхней части листинга функции Commence^) для
одиночной машины
Рис. 4.13

В функции Commence^ проводится анализ описанных вариантов. Для этого проверяется
наличие первоначальной настройки VidO в первый день нового планирования п Полагается,
что в случае, когда настройка машины на конкретный вид работы VidO отлична от нуля, весь
этот период является рабочим, и в таком случае остаток рабочих часов Ost равен начальному
моменту расчета inBeg. В противном случае, если длительность текущего рабочего дня со­
ставляет меньше суток, остаток рабочих часов Ost должен отсчитываться от момента начала
первой смены Тп.
Если продолжительность нового рабочего дня составляет 24 часа, величина остатка ра­
бочих часов Ost равна начальному моменту расчета inBeg за вычетом количества времени
прошедших дней. Если в первый день Flag предыдущего выходного дня равен 0, то величина
Ost уменьшается на длительность до момента освобождения машины /СО.
Если работа не является круглосуточной, начало работы в момент inBeg возможно, если
величина Per меньше установленной продолжительности текущего рабочего дня E(j). Если
это условие не соблюдается, программа добавляет еще один рабочий день из календарного
графика и очередная работа начинается с начала новой смены.
Значение возможного начала работы существенно зависит как от количества смен, так и от
количества рабочих часов в каждую смену. При круглосуточной работе прерывание производ-

66

© 2018, Мауэргауз Ю.Е.

Стандартные функции

ства возможно в нерабочие дни, а также в период планового обслуживания машины. Вообще
говоря, количество рабочих часов в каждой смене может варьироваться в самых различных
случаях. Если длительность обработки inD не превышает суток, величину Per можно срав­
нивать с суммой полной длительности количества рабочих часов в календарный день начала
выполнения работы E(j) + Тп и рабочего времени последующего рабочего дня E(j -I-1). Если
это сравнение не выполняется, программа переносит начало выполнения работы на очередной
рабочий день.
На рис. 4.14 приведен фрагмент нижней части листинга, относящийся к определению дли­
тельности окончания работы при круглосуточной работе. Для первого планируемого дня п
значение самой функции Commence^ определяется по величине остатка Ost с учетом необ­
ходимых добавляемых дней и моменту освобождения машины. В последующие дни значение
функции определяется только остатком Ost с учетом необходимых добавляемых дней.
Независимо от числа смен, после выходных дней первая смена начинает работу в момент
установленного начала работы цеха Тп. В случае необходимости нового включения машины
учитывается время ее соответствующей подготовки Тр. При изменении вида работ на машине
необходима ее переналадка. Полностью листинг программы Commence^ приведен в программе
MBook2.xls.
В случае использования функции Commence^) при работе с несколькими машинами, для
вызова этой функции необходимо указать номер машины гпМ. Такая функция содержится,
например, в макросе электронной книги MBook5.xls.

If 2(J) < 24 Thea ’если рабочий день меньше суток

Else ‘при 1фуглсмсуточяой работе
If j > д ♦« - 1 Then ‘если подвился нерабочий день
Flag ■ 1 'флаг нерабочего дня
End If
If Flag ■ 0 Then 'если преждуяий день рабочий
If Per 0 Then 'если не определен момент окончания работы
МвдВох • Оревшается дяхтельжость календаря ■
Exit Sub
End If
VScaM(n) • (VO • KO ♦ VZakfBeca, 1, KO, Tk(n), Соирбсам(n))) / CapSugt|n) 'полезность набора работ
If VidO > 0 Then ’если начальная установка махины не определена
СЗсафе(п) ■ OZak(i, 0, VidO) 'трудоемкость начальной наладки
Elie
UStage(n) ■ в 'трудоемкость начально* наладки
End If
ParStage(п) ■ О
'номер родительского узда в дереве рек»*
RMtegt(n) ■ i
'номер текуве* строки
aJ(i) • 1
'возврат указателя выполняемо* работы
Е1ве
aJ(i) ■ 0
'работа вшолнена или находится за горизонтом
End If
Hext i

Рис. 5.18

Фрагмент программы по расчету параметров узла на первом

уровне

(с) 2018, Мауэргауз Ю.Е.

85

Одиночная машина с последовательным выполнением

функцию CalendQ, определяется момент окончания работы CompStage^n). Если в работе нет
перерывов, момент окончания работы первого уровня равен сумме Тк и трудоемкости работы
р, при наличии перерывов этот момент включает их длительность. Соответственно величина
CompStage^n) совпадает с длительностью Fk в формуле 3.20.
Полезность всего объема работ, выполняемых в n-ом узле VStage(n) определяется по этой
формуле как сумма начальной полезности Vo в момент начального освобождения машины ТО
и полезности всех планируемых работ, определяемой с помощью функции VZakQ (п. 4.3),
отнесенных к моменту CompStage(n). При этом входные параметры inBeta = Beta, ink = i,
snCl = TO, snTk = Tk, snFk = CompStage(i).
Если начальная установка машины VidO определена, функция затрат UStage^n) рассчи­
тывается с помощью программной функции UZakQ, приведенной в п. 4.3, со входными па­
раметрами ink = i, ini = 0, inVid = VidO. В противном случае функция затрат UStage(ri)
приравнивается к средней трудоемкости переладки.
На первом уровне дерева предыдущий родительский узел дерева ParStage(n) = 0, а номер
выполняемой строки NP(n) = i. После организации узла указатель выполняемой работы aJ(i)
возвращается в единицу.
Отсечение узлов по критериям (блок 4 на рис. 5.13) производится в рамках двойного цикла
(рис. 5.19). Отсечение проводится в соответствии с правилами, описанными в п.п. 3.4.1, 3.4.2
и 3.4.3. Оставшиеся ветви на первом уровне имеют метку MetCurStage(j) = 0.
Оставшиеся ветви пересчитываются и переносятся в полные массивы недоминируемых узлов
дерева решений (рис. 5.20)
На последующих уровнях построения дерева решений все этапы программы первого уровня
повторяются с некоторыми изменениями. Прежде всего, устанавливаются параметры ограни­
чения вариантов по длительности согласно п. 3.4.4. (рис. 5.21). Под параметром sngDiap по­
нимается наибольшее возможное отношение длительности допустимого варианта к варианту с
наименьшей продолжительностью.
Затем проводится цикл по исходящим узлам предыдущего уровня (рис. 5.22). В начала
цикла осуществляется подготовка параметров каждого такого узла. Номер узла intZ в дереве
1м» • Beta
’начальное возможное количество узлов разветвления на первом уровне’
For 1 • 1 То Beta
’подготовка меток для узлов первого уровня'
NetCurStage(i) • 0
Next 1
For j * Beta To 1 Step -1
'нахождение недомкнируема узлов первого уровня*
If Ex(j) ■ 100 Or d(j) > HGor Then 'для мерассматрмваема работ на горизонте
IntN ■ incN - 1
'количество разветвляемых узлов умешивается
MetCurStage CD - 1
'мет доминирования
Fine
For 1 » 1 To Beta
If 5 о 1 Then
If UStageCD >• UStage(i) And VStage(j) gs(i) Then 'условие лоюшмрованхя’
intN - IntN - 1
'количество разветвляема узлов первого уровня '
MetCurStage(j) • 1
’метка докикхровакхя над текувей работой*
1 • Beta
’выход из цикла'
End If
End If
Next 1
End If
Next j

Рис. 5.19

86

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

©2018, Мауэргауз Ю.Е.

Одиночная машина с последовательным выполнением

п • О
For 1 • 1 То Beta
If NetCurStage(1) * 0 Thea ’если ветка ле дсюсмируекая
п • n + 1
’счетчик не доминируема ветвей
TreeStage(п) ■ 1
’номера разветвляема узлов первого уровня'
End If
Hext 1
№вЪег(1) * 0
' узел перед первый*
For 1 • 1 То inti 'по веек недомоофуемле узлам первого уровня
к ■ TreeStage(1) 'номер исходного узла
0(1) * UStage(k) 'включение недоюоафуемых узлов первого уровня в полные массивы недокинируемых узлов'
V(i) • vstage(k)
₽«(!) ■ ParStage(к)
Соцр(1) - CoapStage(k)
NF(1) - HPStage (к)
Consent!) • Тк(к)
TreeStage(1) ■ 1 'номера узлов полных массивов, соответствуова недомкнируемм узлам первого уровня'
Hext 1

Рис. 5.20

Перенос параметров узлов первого уровня в полные массивы

дерева
IntNach - Beta 'гранила начала работы переменного ограничителя вариантов
For intY * 2 То Beta
'цикл по уровням'
If Ex(intY) < 100 Then ’для незаконченных работ
If IntMach er(i))
'последний узел варианта'
Result ■ • •
'выходная строка номеров работы в последнем узле'
ResSort • ■ "
’ строка номеров работы в в одной труппе'
1 ■ Beta
‘полное число работ
■ * Vid (HP (Г))
'текущей вил работа*
Cd(l) • Соир(к) 'Момент окончания работа варианта*
MStage(HP(k)) ■ Coap(k) 'момент выполнения работа
q “ 1
'количество работ одного вида в группе*
ж • 1
Celle (Alfa ♦ 1, Gama) .Value • des (ИР (k)}
Do Ontil Par(k) - 0
k • Pax(k)
’цикл до качала дерева поиска'
х ■ х ♦ 1 * количество запланированных работ
MStege(HP(k)) - Соя»(к) 'момент выполнения работа
If Vid (ИР (к)) • a Then
'проверка условия нахождения в одной группе’
1 • 1 - 1
'сдвиг ячейки записи вверх*
Cells (Alfa ♦ 1, Gama) .Value ■ des (ЯР (k)) ’накопление разных работ одного вида’
q ■ Я ♦ 1
'количество работ одного вила '
Пае
'переход на другу» группу*
Z “ Z ♦ 1 ’расчет количества перенастроек
Shift - Alfa + Beta
'начальное положение ячеек записи*
For ) ■ 1 То я
'цикл по группе'
ResSort ■ ResSort с CStr(Cells(Shift - я ♦ Ь Gama) .Value) a ",• 'наполнение строки номеров группы'
Cells (Shift - я ♦ Ь банам) .Clear
’очистка ячеек '
Next J
Result * ResSort 4 * ■ t Result
’перенос группы я выходную строку’
ReaSort - ■ ■
'подготовка работа со следухадей группой'
Я - 1
1 * Beta
и • Vid(ЯР(к)) 'запоминание нового вида работ’
Cells (Alfa ♦ 1, Gama) .Value • des (ЯР (к)) * запись номера работы в строке текущего узла
End If
Loop

Рис. 5.28

Фрагмент составления выходной записи варианта

© 2018, Мауэргауз Ю.Е.

91

Одиночная машина с последовательным выполнением

Fer 1 - 1 То п
'цикл по иодомоофуепм мрмамтам*
ШЦ) ■ U(TrMSt«geUB
'массмам фуххцмй полемоетж U
V8U) ■ V(Tr**3t*g*(i))
'иассмш функций подемостя V
Мехе 1
вехи • Appliettion.tex (09(>)
ainU - Application.Kla(UG())
■*XV - Application.Mex(VG(>)
■inV - Application .Min (VMD)
aagOur* • Celia 11, "?*) .value 'Эалакшй коэффиомеят метода Гурама*'
If aaxU • nine Then
'цредохрампехь на случай, когда на расчетном горизонт* асе вармакти олимаксам'
1 • 1
■ - 1
Им
for i * 1 То п
‘махокхехме шмбояинк сожалений сю метолу Сэвиджа'
30(1) • (06(1) - adaD) / (naxU - BlnO) 'насекам функций сожалений О
SV(i) - 1 - (VB(1) - BlnV) / (b*xv - BlaV) «маесмав фуххпмй сожалений V
naxS(i) - Application.Ках(30(1), 3V(i))
'массой мамболавмх сожалений по 0 или V
text 1
1-1
for 1 • 2 То а
'определение варках** с мккимахсюм сожалением'
If вахЗ(1) < anxS(l) Then
1-1
'нахождение номера варианта с мшм^мом мамбольхего сожаления
End If
text 1
For 1 - 1 То п
'нахождение характеристик варианте* по методу Гурвица'
30(1) - 1 - (06(1) - BinU) / (вами - BlnU) 'массивы корюфовакмой полезности no V
SV(1) - (V6(l) - BlnV) / (aaxV - alnV)
'массивы норюфованкой полезности по V
вахОаг - Арр11с*11ап.Мм(30(1)' SV(i))
'критерий притаила оптимизма
BlnGux - Applicatiotn.Min(SU(l), 3V(1)> 'критереА принципа гарантированного результата
в*хЗ(1) * авдОют • BlnGux + (1 - sngGnr*) * вахбпг 'массив комбинате* Гурвица
Vext 1
в - 1
For 1 ■ 2 То п
'определение варианта с махсикальгам критерием Гурвица'
If вахЗ(1) > а*хЗ(в) Then
в• 1
'определение лучвето варианта по Гурвицу
End If
text 1
End If
Results - " no методу Сэвхяжа - варках* * ( 1
ResultG - * no методу Гурвица - вариант "la

Рис. 5.29

Фрагмент листинга с поиском наилучшего решения

Для выбранного варианта осуществляется запись его расписания в календарных часах.
Параллельно создается массив исходных данных для построения диаграммы Ганта в рабочих
часах (п. 4.6).

5.7

Перепланирование расписания

В п. 5.4 описывалась работа программы с некоторой начальной датой, или без изменения
ранее заданной даты. В настоящем параграфе рассмотрим составление расписания при любом
изменении начальной даты планирования. Такое изменение возможно как при появлении нового
календарного задания, так и при необходимости выполнения срочной работы.
Рассмотрим действия пользователя на примере задания, первоначально имеющего вид, при­
веденный на листе 2 в книге MBookl.xls. Задание на 12.10.16 8:00 состоит из 20 работ семи
видов, причем в начальный момент машина настроена на вид 3. В случае, показанном на ка­
лендарном графике, в течение первого рабочего дня планируются две 8-часовые рабочие смены.
Следующий рабочий день предвыходной, и в нем предусматривается только одна смена. После
92

© 2018, Мауэргауз Ю.Е.

Одиночная машина с последовательным выполнением

выходного дня планируется двухсменная работа. Поскольку работа 1 в начале планирования
уже серьезно запаздывает, для нее установлен весовой коэффициент 3.
Запуск программы приводит к девяти не доминируемым вариантам, причем метод Сэвиджа
рекомендует вариант 5, а метод Гурвица - вариант 7. Изучая возможные варианты расписания,
видим, что они значительно отличаются по своим показателям. Например, среднее запазды­
вание Тс имеет наименьшее значение, равное 6,7 часа, в варианте 4. Допустим, что именно
вариант 4 выбран в качестве действующего расписания, показанное на рис. 5.30.
Поскольку продолжительность первого рабочего дня в данном случае составляет 16 часов,
при работе в точном соответствии с расписанием, в течение дня должны быть полностью вы­
полнены работы 1, 5, 2, 6, 3, 4, а также начата работа 8. На следующий день запланировано
окончание работы 8, выполнение работ 12, 10, 7, 15, 9, 13. Поскольку третий календарный день
является не рабочим, то продолжение работ приходится на четвертый календарный день. Вна­
чале должна быть выполнена работа 16, затем выполняются работы 18, 14, 19, 11 и начинается
работа 20. В течение пятого календарного дня должна быть закончена работа 20 и выполнена
работа 17.
Допустим, что к концу первого дня выполнения расписания, составленного для упомянуто­
го выше задания, появляется срочная работа с номером 21, которая должна быть включена в
составленный ранее план. Очевидно, что к началу следующего рабочего дня необходимо прове­
сти перепланирование, в котором нужно учесть как появление новой работы, так и результаты
прошедшего рабочего дня.
Для перепланирования целесообразно полностью скопировать предыдущее задание на сле­
дующий лист MS Excel - в данном случае, на лист 3. В таблицу задания A4:G23 необходимо
внести данные о выполнении за прошедший рабочий день: 100% выполнения работ 4, 1, 5, 2,
6, 9. Допустим, что работа 3 также уже начата и выполнена на 60%.
При внесении данных о работе, которая переносится на следующее планирование, имеются 2
возможности: в первом случае можно только указать процент ее выполнения, причем начальный
момент освобождения машины при перепланировании равен началу работы следующего дня. В
этом случае программа не гарантирует, что первой планируемой выполняемой работой во всех
вариантах будет именно эта работа, в данном случае работа 3.
Если пользователь считает, что, несмотря на новые обстоятельства, необходимо продол­
жить выполнение уже начатой работы, то для работы 8 так же, как и для предыдущих работ,
нужно указать 100% выполнения, но при этом необходимо задать начальный расчетный момент
освобождения машины.
Кроме того, в конце таблицы задания допишем данные новой работы 21. Поскольку работа
срочная, присвоим ей весовой коэффициент 3. На рис. 5.31 приведена таблица предыдуще­
го задания с внесенными изменениями, в которой указано, что работа 8 была выполнена в
предыдущий день на 70%.
Кроме внесения изменения в таблицу задания, необходимо провести сдвиг влево рабочего
календаря на количество дней, прошедших после первоначального планирования. В данном
случае этот сдвиг равен одному дню. В заголовке рабочего календаря изменяем дату нового
планирования на 13.10.2016 8:00.

План обртботки повадками 4 в каледорных часах
10,4(1) W;1t4(5)1X4; 13.8 (2) 15,8:16 (8) 17; 17,4 0) 18,4:18.8(4)21,8; 21,8(8)32,8; 32,8(12) 35,6; 36 (10) ЗД38^(7)41Д41Д(15)43Д
43.4 (9> 48.4; 48,8 (13) 47,8; 80 (18) 83; 83,4 (18) 86,4; 86.6 (14) 89,6; 89.8 (19) 91Д 92 (11) 95; 95,4(20) 106.4; 107 (17) 109;

Рис. 5.30

Расписание работ на листе 2

© 2018, Мауэргауз Ю.Е.

93

Одиночная машина с последовательным выполнением

№работы Трудоемко Требуемый
сть работы момент
готовности,
н/час
календ, часы

Ожидаемый Вид
момент
поступления.
календ, часы работы

Весовой

Выполне

коэффициент

ние, *

12

-1

-3

1

3

100

?

2

10

0

2

1

100

3

1

15

1

7

1

100

4

3

12

1

3

1

100

5

1

18

2

1

1

100

61

20

3.

4

1

100

7

3.................. 31

2

5

1

°

8

3

30

2

3

1

70

9

3

44

13

4

г

°;

10

2

48

20

6

1

°

11

3

54

28

2

1

0

12

3

60

30

3

1

°

13

1

65

30

7

1

о

14

3

72

35

6

1

°

15

2

79

40

5

1

0

16

3

82

48

7

1

о

17

2

84

55

4

1

°

18

3

86

60

3

1

°

19

2

94

65

1

1

0

20

3

106

85

3

1

0

21

2

32

16

7

3

0

Рис. 5.31 Таблица задания на 12.10.16 8:00 с изменениями к концу первого

рабочего дня

На рис. 5.32 приведена форма подготовки к новому планированию.
В окна формы необходимо ввести данные о моменте перепланирования и имена ячеек начала
и конца списка работ. После проведения перепланирования таблица задания в данном случае
примет вид, показанный на рис. 5.33.
Из рис. 5.33 следует, по результатам предыдущего рабочего дня работа 3 оказалась про­
сроченной, и появилась срочная работа 21 с весовым коэффициентом 3. После подготовки
можно снова запустить программу, выбрать опции «без моделирования» и «без подготовки к
перепланированию» и перейти к форме ввода данных (рис. 5.34).
Форма на рис. 5.34 полностью совпадает с формой на рис. 5.3. При ее заполнении следует
обратить особенное внимание на имя последней ячейки списка работ, поскольку этот список
изменялся при подготовке планирования. Кроме того, начальная настройка вида работ опреде­
ляется номером вида последней работы предыдущего дня, а момент освобождения определяется
из соображений, описанных выше при заполнении таблицы на рис. 5.31. Момент планирования
на рис. 5.34 должен совпадать с датой рабочего календаря.
Результат перепланирования показан на рис. 5.35.
Как видно из рис. 5.35, в новых вариантах плана предлагаются несколько возможностей,
причем в данном случае метод Гурвица рекомендует варианта 2, а метод Сэвиджа рекомендует
вариант 3. В большинстве вариантов рекомендуется сначала закончить начатую работу 8, и
только потом перейти к срочной работе 21, хотя один вариант с немедленным переходом к
работе 21 также существует.
94

(с) 2018, Мауэргауз Ю.Е.

Одиночная машина с последовательным выполнением

Рис. 5.32

Форма подготовки к новому планированию

№работы Трудоемко Требуемый

Ожидаемый

Вид

г
момент
стъ работы
готовности,

момент

н/час

календ, часы

Весовой

Выполне

поступления,

календ, часы

работы

коэффициент

ние, %

7

3

7

0

0

8

3

6

0

70

0

9

3

20

0

10

2

24

0

11

3

30

4

12

3

36

6

0

13

1

41

6

°

14

3

48

11

0

15
16
17
18
19
20
21

2
3
2
3
2
3
2

55
58
60
62
70
82
8

16
24
31
36
41
61
0

0
0
0
0
0
0
0

Рис. 5.33

Таблица задания после подготовки к перепланированию

Интересно сравнить расписание для рекомендуемого варианта 3 на рис. 5.35 с действующим
расписанием, составленным ранее по состоянию на начало второго рабочего дня (рис. 5.29).
Из рис. 5.36 следует, что появление срочной работы приводит только к небольшим измене­
ниям в ранее составленном плане, т.е. разработанный метод расчета расписания обеспечивает
его устойчивость к внешним воздействиях. В данном случае, необходимость в срочном выпол­
нении работы 21 привела к сдвигу во времени остальных работ, а также к переносу работы 12
из группы с работой 8 на более поздний срок. Отметим также, что использование для срочной
работы 21 весового коэффициента, равного 1, приводит к расписанию, в котором предлагается
не только закончить ранее начатую работу 8, но и совместить выполнение работы 21 с работами
13 и 16 одного вида 7 (рис. 5.37).

© 2018, Мауэргауз Ю.Е.

95

Одиночная машина с последовательным выполнением

Рис. 5.34

Ввод данных при перепланировании

Недоминируемые варианты
Вариант 1:

8, 21.13. 10. 7. 9, 15,16, 18,12, 14, 19. 20. 11. 17

Вариант 2:
Вариант 3:

8, 21,13, 10, 7,15, 9,
8, 21,13, 10. 7Д5, 9?

16, 18,12, 14, 19, 20, 11, 1716, 18,12, 14, 19, 11? 1Л 20 [

Вариант 4:

8. 21,13, 10. 7,15, 9,

16. 18.12.20, 14, 19. 11, 17 !

Вариант 5: 21.13. 10,14, 7,15, 8.12,18,20, 16, 11, 9.17? 19^^^^

Рис. 5.35

Не доминируемые варианты плана для задания работ

10, 7Л5,9, 13Л6, 18. 14. 19, 11, 20,17

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

Ноеое растесаниенаШО: 8. 21,13, 10, 7.15. 9. 16. 18,12, 14, 19, 11, 17, 20

Рис. 5.36

Действующее расписание и его корректировка

Недоминируемые варианты

Вариант ! 8, 10,14, 7, 9, 21,13,16, 18.12, 11. 15. 20, 19, 17
B*E^J^15. 11. 20. 19, 17
Вариант 3: 8,

10,14,7. 9~ 21,1X16, 18.12, 15. 19, 11. 17, 20

Вариант 4: 8.

10.14, 7. 9, 21.1316. 18,12,20, 19. 11. 17. 15

Вариант 5: 8.

10,14. 7, 9, 21.13.16, 18,12,20, 19. 15, 11. 17

Bap^Kl W
Не доминируемые варианты плана при весовом коэффициенте
1 для работы 21

Рис. 5.37

96

© 2018, Мауэргауз Ю.Е.

Одиночная машина с последовательным выполнением

5.8 Моделирование расписания
Целью моделирования расписания является выявление изменений процесса составления
расписания и его результатов в зависимости от варьируемых параметров, предусмотренных
соответствующей формой моделирования (рис. 5.38).
Форма моделирования на рис. 5.38 содержит 5 возможных параметров для варьирования.
Сначала рассмотрим т.н. ограничители ветвления Bl, В2 и ВЗ, используемые в листинге на
рис. 5.21. Эти ограничения в совокупности устанавливают наибольшее возможное отношение
длительности sngDiap допустимого варианта к варианту с наименьшей продолжительностью.
Параметр В1 определяет величину количества работ, после которой величина sngDiap, вначале
равная амплитуде В2, начинает уменьшаться с ростом количества работ и номера уровня
планирования. Степень этого уменьшения устанавливается с помощью декремента затухания
ВЗ.
Ограничители ветвления весьма существенно уменьшают количество не доминируемых
ветвей построения дерева решений за счет отбрасывания «длинных» ветвей с большой про­
должительностью выполнения. Поэтому использование ограничителей позволяет уменьшить
продолжительность выполнения программы. В то же время, слишком жесткие ограничения по
длительности ветвей могут излишне уменьшить количество получаемых вариантов, исключив
из этого количества ряд вполне целесообразных вариантов плана.
Варьирование ограничителей имеет смысл при большом количестве работ, поскольку при
таком количестве продолжительность выполнения программы может стать значительной. Рас­
смотрим пример задания на листе 4 MS Excel, в котором приведено 40 работ, каждая из
которых может быть начата в любой момент. При варьировании ограничителей целесообразно,
исходя из календарного графика, установить наибольший возможный горизонт планирования,
а также снять зависимость затрат от простоя машины.
При моделировании выполнения этого задания необходимо сначала провести ввод данных
на лист в обычном режиме «без моделирования» и «без подготовки планирования». После
такого ввода следует убрать с листа полученные результаты и запустить программу в режиме
«моделирование».

- Ограничители ветвления--------------------------------------

Параметр начала ограничения

Психологический
коэффициент (альфа)



Декремент

Амплитуда В2

[ 200

Текущие
параметры

Имя первой ячейки
результата расчета

Дистан^я до таблицы
полезностей в колонках

р5

| СМв

Ввод данных в Excel

затухания ВЗ

_

Гз
Плановый горизонт Н
в часах работы

В1

Запуск программы

Выход из программы

ОК

Рис. 5.38

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

© 2018, Мауэргауз Ю.Е.

97

Одиночная машина с последовательным выполнением

При работе программы с параметрами моделирования, приведенными на рис. 5.38, длитель­
ность ее работы составляет 19 секунд. Результаты работы записываются на листе 4, причем
значения критериев выводятся в таблице справа от соответствующего варианта. При проведе­
нии моделирования не обязательно выводить на лист расчет плана по какому-то варианту, а
можно ограничиться только записью набора вариантов. В данном случае, система предлагает
пользователю набор из 12 вариантов. Можно попробовать несколько ужесточить ограничители
ветвления, что уменьшит продолжительность расчета.
Не удаляя полученный вариант с параметрами на рис. 5.38, повторно вызовем программу
моделирования и зададим, например, параметры, показанные на рис. 5.39
Отметим, что имя первой ячейки результата смещено вниз по отношению к форме на рис.
5.36, что обеспечивает параллельную запись на листе. При параметрах на рис. 5.39 продолжи­
тельность составляет И секунд, число вариантов падает до восьми.
Рассмотрим также характер изменения вариантов плана при варьировании психологического
коэффициента а. На листе 4 приведены несколько вариантов расчета плана при коэффициенте
а в пределах 0,05 - 0,15. Эти результаты показывают, что при больших горизонтах уменьшение
величины а увеличивает количество возможных вариантов, и наоборот, увеличение а это
количество снижает.
При моделировании необходимо отрегулировать значения коэффициенте а и параметров
Bl, В2 и ВЗ с учетом их взаимного влияния. В общем случае с уменьшением коэффициента а
количество рассматриваемых вариантов приходится увеличивать, для чего коэффициенты В1
и В2 должны увеличиваться, а коэффициент ВЗ уменьшаться.

- Ограничители ветвления

Параметр начала ограничения

В1

Психологическим
коэффициент (альфа)

Амплитуда В2

Декремент
затухания 83

0,02
Плановый горизонт Н
в часах работы

Текущие
параметры

Рис. 5.39

5.9

Имя первой ячейки

результата расчета

Ввод данных в Excel

Дистанция до таблицы
полезностей в колонках

Запуск программы

Выход из программы

Форма моделирования с измененными параметрами

График загрузки и критический горизонт планирования

В зависимости 3.6 для производственной напряженности и 3.7 для функции полезности
заказов входит величина - количество рабочих дней в плановом периоде. В общем случае,
увеличение приводит к расписаниям с некоторым увеличением коэффициента группирования,
особенно при относительно малых значениях G. При значениях G порядка 5 и более рабочих

98

(с) 2018, Мауэргауз Ю.Е.

Одиночная машина с последовательным выполнением

дней, дальнейшее увеличение G существенного влияния на характер расписания оказывает
незначительно.
Качество расписания весьма существенно зависит от величины горизонта планирования h,
поскольку с увеличением горизонта планирования в расписание включаются дополнительные
работы.
На листе 5 MS Excel приведено задание из 30 работ, причем наибольший срок выполнения,
равный 105 календарных часов, имеет работа 27. Перед моделированием следует убедиться,
что все необходимые данные правильно вносятся с листа в массивы программы. Для этого це­
лесообразно запустить программу в режиме «без моделирования», а затем удалить результаты
расчета.
При работе в режиме «моделирование» для изучения влияния планового горизонта его
величина последовательно изменяется при постоянных остальных параметрах моделирования.
На листе 5 приведены результаты таких расчетов при увеличении планового горизонта от 20
до ПО календарных часов. Величина планового горизонта устанавливается по заданному сроку
выполнения работ, при этом количество учитываемых работ соответственно изменяется. На
рис. 5.40 приведены результаты расчета расписаний в этом диапазоне, причем для каждого
горизонта выбран один вариант расписания. Если как метод Сэвиджа, так и метод Гурвица
предлагают одинаковый вариант расписания, то этот вариант используется для рассмотрения
на рис. 5.40. В том случае, когда методы рекомендуют разные варианты, использован один из
вариантов, находящихся между этими вариантами.
Как следует из рис. 5.40, на первом месте в расписании находится работа 4, которая имеет
тот же вид 3, как и первоначальная настройка. С ростом горизонта в одну группу с рабо­
той 4 присоединяется работа 8 того же вида, а, кроме того, работа 10 вида 6, трудоемкость
переналадки на которую с вида 3, очень мала.
Затем выполняется группа работ 1,5 вплоть до горизонта 80 календарных часов. При этом
происходит резкое изменение расписания, а группирование довольно быстро нарастает.
На рис. 5.41 приведена зависимость коэффициента загрузки от горизонта планирования. Как
следует из рисунка, эта зависимость в данном случае подвержена значительным колебаниям.
На участке 20-50 календарных часов наблюдается существенное снижение загрузки, которая
затем увеличивается и резко возрастает на горизонте порядка 100 часов.
На рис. 5.42 приведены фрагменты листинга программы, в которых рассчитываются неко­
торые наиболее важные параметры расписаний. Для оценки расписаний при моделировании на
различных горизонтах планирования используются 3 параметра:
- полезность выполняемого набора работ, обозначаемая на рис. 5.42 как V0;
- приведенные затраты переналадок за один рабочий день [70;
- коэффициент группирования G0.
Горизонт 20: 4, 1.5.

2 3. 6. 7

Горизонт 30: 4. 1.5.

2, 3, 6, 7

Горизонт 40: 4,8. 1,5, 2, 6.9. 7. 3. 10
Горизонт 50: 4. 1,5, 2. 6. 3.13, 10. 7.16, 9. 8.12, 11
Горизонт 60: 4, 1,5, 2, 6, 3.13, 10. 7.15, 8.12, 14. 9. 16, 11
Горизонт 70: 4, 1.5. 2, 6, 3,13, 10. 7,15. 8.12,18, 14, 9. 11,16, 17
Горизонт 80: 4,8. 10. 5,1, 15,7, 6. 3,13,23, 2,11. 17,9, 21,12,18. 14. 16
Горизонт 90: 4,8, 10, 5,1, 15.7, 6. 3,13.23.16. 14. 9, 2,11, 17. 20,12,21,18, 19, 24, 22
Горизонт 100: 4,8, 10. 5,1, 15,7, 6.9.17,26. 3.13,23,16, 12,18,20,21, 19, 2,11,25. 30. 14, 24, 28, 22
Горизонт 110: 4,8, 10. 5.1, 15.7. 6.9,17.26. 3.13.23.16, 12,18,20.21, 19, 24. 28. 30. 2,11,25, 29,14, 27. 22

Рис. 5.40

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

© 2018, Мауэргауз Ю.Е.

99

Одиночная машина с последовательным выполнением

Рис. 5.41

Зависимость загрузки от горизонта планирования

Как видно из рис. 5.42, при моделировании используется не полная величина относитель­
ных затрат за период до горизонта планирования U(k), а отношение этой величины к полной
трудоемкости на горизонте Тг в рабочих часах, взятое за один рабочий день длительностью Е
рабочих часов.
На рис. 5.43 приведены графики параметров для расписаний, показанных на рис. 5.38.
С ростом горизонта планирования приведенные затраты переналадок за один рабочий день
на кривой 2 постепенно уменьшаются до величины, примерно равной 0,5 и далее колеблются
относительно этого значения. Полезность выполняемого набора работ с ростом горизонта
планирования колеблется относительно величины 0,6. Коэффициент группирования на кривой
3 постепенно повышается до величины 2, а затем колеблется относительно этой величины.
Тг • 0 * печальное значение трудоемкости на горизонте планирования
For 1 ■ 1 То Beta
'наполнение массивов работ '
р(1) • Cells (Alfa* Game + 1) .Value ’трудоемкость рабств
p(i) * р(1) * (1 - Ex(i) / 100) ’остающаяся трудоемкость
If d(i) (Ш Wp « ft работав часа. Сям» 119, Тс «296, Тпж-0. Тлях»*) амидов чаем
Вадо 7:11*025. V^UK; Kg-Ш. fa-0.5. fa*0.ft. Wp=76 работав чаем; Сям=131, Тс = 35.9; Там*». Тюк* С амидов мама
Вариан BU=0,125; V=2H Кд=Ш fa «0,52. fa^Oft; Ир* Обработав часта. Сапах =1». Тс-402 Тпж«0. Тлях «99 амидов чаем

Рис. 6.7

Показатели вариантов расписания

© 2018, Мауэргауз Ю.Е.

109

Одиночная машина с группой работ

6.5

Блок-схема программы

Блок-схема программы состоит из тех же четырех основных частей, что блок-схема на рис.
5.13. В то же время, при определении недоминируемых узлов как первого, так и последующих
уровней, программа включает механизмы формирования групп совместно выполняемых работ.
На каждом уровне все возможные группы образуют совокупность узлов дерева решений, после
чего эти узлы сравниваются по критериям U, V.
При формировании групп отдельные работы одного вида (требующие одинаковых пара­
метров обработки) могут объединяться, если их суммарный физический объем не превышает
рабочего объема машины. Если какая-нибудь из работ имеет объем, больший рабочего объема
машины, то она может быть выполнена только при условии ее деления на несколько отдельных
работ.
Процесс обработки в машинах рассматриваемого типа не может быть прерван и повторно
запущен. Поэтому программа автоматически проверяет возможность начала каждого цикла
обработки с тем, чтобы этот цикл закончился в течение текущего рабочего дня. Если времени
на обработку недостаточно, цикл обработки автоматически переносится на следующий рабочий
день.

6.6

Листинг основной части программы

На рисунках ниже приведены отдельные компоненты листинга программы. На рис. 6.8 опи­
саны данные о переменных и массивах, действующих по всей программе. На каждом уровне по­
строения дерева 4 массива UStageQ, VStaged ParStageQ, CompStageQ имеют назначение,
совпадающее с назначением аналогичных массивов в предыдущей главе. Массив NPStageQ
номеров строк работ в каждом узле может содержать несколько одновременно выполняемых ра­
бот, и поэтому имеет строковый тип. Надобность в использовании массивов Тк() и Comment)
для записи моментов начала каждой работы, здесь отсутствует, т.к. обработка партии не пре­
рывается, и момент начала выполнения партии загрузки всегда меньше момента окончания на
величину процессного времени.
Кроме указанных пяти основных массивов, в описываемой программе необходимы масси­
вы VidStageQ, YStageQ, GStageQ, MStageQ и LStage() для запоминания значений вида
работы, суммарного физического объема, возможного начала обработки, необходимого нача­
ла обработки и количества одновременно выполняемых работ в текущем узле. Семь массивов
U(y ^0» ?аг0, Сотр(), NP(y УР(), YPQ используются для дальнейшего построения вет­
вей дерева путем перезаписи значений параметров недоминируемых узлов, остающихся после
отсечения. Ниже глобальных переменных в программе описывается ряд вспомогательных ло­
кальных переменных и затем вызывается форма ввода параметров (рис. 6.1).
Для расчета загрузки машины в цикле по строкам работ накапливается продолжительность
машинной обработки всего набора работ Wip (рис. 6.9). Для каждой г-ой работы эта величина
(плановая загрузка) определяется по величине процессного времени соответствующего вида
работ p(Vid(i)) с учетом процента выполнения Ex(i) и доли рабочего объема машины, которая
физически занимает текущая г-ой работа. Полный фонд времени Fond по всем работам на
горизонте планирования устанавливается по строке с наибольшим резервом времени в рабочих
часах. Коэффициент загрузки KWip определяется как частное от деления полной трудоемкости
на фонд времени.
При моделировании коэффициент загрузки определяется в рамках установленного горизонта
планирования. Соответственно, как фонд времени, так и накопленная загрузка подсчитываются

110

©2018, Мауэргауз Ю.Е.

Одиночная машина с группой работ

ppclon Вы* 1
ОШ
ОШ
ОШ
ОШ
ОШ
ОШ
ОШ
ОШ
ош
Ош
ОШ
ОШ
ОШ
ОШ
БШ
Ош
БШ
БШ
БШ
БШ
БШ
Бш
БШ
Бш
БШ
БШ
БШ
БШ
БШ
БШ
БШ
БШ
БШ
БШ
БШ
БШ
БШ
БШ
DIM
БШ

‘хзссил исмерез р«вег*
de# 4 > A# ifitwt
’массив пдюцессмогс времени * ч*с*х к«дрер*ан«й работе'
рО Ал Single
'массив требуема моментов охохчанхл в рабочих часах после начала планирование’
МО Аз Slagle
'массив требуема моментов охоичаммл в калеиларма часах после начала плакирования’
d() Ал Single
'массив требуема дат начала в рабочим часах песне начала плаикроваимл'
дзО Аз Single
'массив лат поступления в календарных часах после начал* планироваки*’
£0 Ал Single
'массив видев работ'
Vid О As Integer
V() Ал Single
'массив весов работ'
'массив метек выполнения
1«0 Аз integer
'массив меток рабочих дней’
Merk* О Ал Integer
•массив физических объемов работе в литрах '
ГО Аз Single
'массив стоимости переналадок’
л 0 Ал Single
'массив координат графика ’
бхКмзО Ал Slagle
G Ал Single, а Ал Single 'длительности планового периода, психологический коэфф.’
е A# Single, СТ A# Single, СИ A# Single ' стоимость еиете, стоимость мормочаса аресты,, стоимость нермочаеа наладки
Delta Ал Integer 'количество шей в календаре
ВО Ал Single 'массив длительности рабочего дня
Тп Ал Single, Тр Ал Single ' момент начала первой смете в часах, длительность начальной подготовки маните
КО Аз Single ' момент освобождения махины -начала первого дня планированиях
VidO Ал Integer "вид работе в начальной момент
С1 Ал Single, Tk Ал Single ' момент скончания работе, момент начала работы’
rf() Ал Single 'массив меток выполнения работ’
0(> Ал Single, V() Ал Single ’массивы функции затрат и функции полеэносте заказов, кедоммкируемые узлы всех уровней'
Йех (} Ал Integer
'массив номеров родительских узлов для иедемкиируемнх узлы всех уровней'
Соер О Ал Single
'массив моментов скончания работ для медамхихруетех узлов всех уровней'
MoberO Ал Integer ’массы» номеров, предзвествуптех первым узлам в уровнях'
СТО Ал String 'полный массив строк работ нелоюммруема узлев'
СТО Ал Integer
'полный вигов работ в труплаж’
СТО Ал Integer
'полный массив объемов труте’
YStageO Ал Single
'массив текуамх объемы групп’
UStaget) Ал Single, VStageO Ал Single 'массивы функции затрат и функции полезности заказов на текущем уровне'
FarStageO Ав Integer
'массив номера* родительских узлов на текущем уровне"
CaapStageO Аз Single
’массив моменте» окончания работ на текущем уровне'
KFStageO Ал String 'массив номеров строк работ в узлах на текущем уровне'
VldStageO Ал Integer
'массив видов групп'
GStageO АлSingle
'массив возможного начала работе с группой'
NStage() АлSingle
‘массив необходимого начала работе с группой'
LStaget) АвInteger
'массив количества выполненных работ'
intY Ал Integer, inti Ал Integer 'уровень дерева, узел
luxtSAret Ал Worksheet

Рис. 6.8

Глобальные переменные программы

в пределах этого горизонта. Количество рабочих часов в заданном сроке для каждой работы
определяется с помощью функции WorkH(mrs(d(i)).
После подготовки исходных массивов рассчитываются значения исходных значений крите­
риев в корне дерева. Величина относительных затрат в корне Uo = 0, функция полезности
заказов Vo определяется с помощью функций Napr2() и NaprlQ.
Важнейшей частью описываемой программы является механизм формирования групп сов­
местно выполняемых работ. На рис. 6.10 приведен фрагмент начала формирования групп для
формирования узлов первого уровня. Программа включает внешний цикл г по видам работ
и внутренний цикл j по списку заданных работ. Для каждой незаконченной работы теку­
щего вида устанавливается возможный момент начала ее выполнения Тк. На первом уровне
этот момент, прежде всего, определяется временем начала рабочего дня и длительностью на­
чальной подготовки машины. После этого момент начала выполнения с помощью функции
ArrivalQ проверяется по поступлению текущей работы на машину, а также с помощью функ­
ции CommenceQ - на возможность выполнения в течение текущего или последующего рабо­
чего дня.
При формировании каждой новой или пополняемой группы номеруется новый n-ый узел и
добавляются элементы массивов NPStage, GStage и МStage (рис. 6.11). Если физический
объем работы, добавляемой к уже запланированной работе, это позволяет, создается еще один
узел, содержащий несколько одновременно выполняемых работ. Если объема машины недоста­
точно, чтобы добавить еще одну работу к ранее запланированным для совместного выполне© 2018, Мауэргауз Ю.Е.

111

Одиночная машина с группой работ

Wip - 0 'начальное значение загрузки*
Fond - 0 *начальное значение резерва времени*
Тг - О ' начальное значение трудоемкости на горизонте плакирования
For 1 * 1 То Веса
*наполнение массивов работ *
If dd(i) > Fond Then
Fond - dd(i)
"полный резерв времени всех заказов в рабочих часах*
End If
If Celia (1, -У) .Value - 0 Ox (Cello (1, -Y") .Value - 1 And d(i) * Y(i) / engV
♦накопленная плановая загрузка в рабочих часах с учетом занимаемого объема
End If
Next 1
If Celled, "Y").Value • 1 Then ‘при моделировании
Fond * Gor "фонд времени равен рабочим часам на горизонте плакирования.
End If
KNip * Round (Nip / Fond, 1)
'загрузка малины

Рис. 6.9

Расчет коэффициент загрузки

п • О
'начальное количество узлов на первом уровне'
Flag “ 0
'флаг возврата к наполнение лредыдуыих групп'
For 1 • 1 То BetaVid
'цикл по видам работ'
к ■ О
'начальный объем группы*
For } • 1 То Beta
'цикл по работам*
If Ex(i) < 100 Aad (Cells(1, "У).Value - 0 Or (Celled, "Т").Value - 1 And d(i) 0 Then 'при круглосуточной работе
Tk ■ КО + s(l, VidO) 'возможное начало первой работы
Нэе 'если число рабочих часов в день меньяе 24 (вид работы выставлен в 0)
Tk • Та + Тр 'первая работа начинается после начальной подготовки
End If
sngDur " Arrival (г (Я) 'момент поступления работы на канику
If sngDur > Tk Then 'учет времени поступления заготовки (материала)
Tk ■ sagDur "возможный момент начала работы малины в календарных часах
End If
Ехес * Tk
Tk * Сонвепсе(Тк, p(i)) 'возможный момент начала работы кашны в календарных часах
If Tk - 0 Aad Ехес > 0 Then

NsgBox "Цреваомется длительность календаря"
Exit Sub
End if
ReDin Preserve YStage(n)
ReDi* Preserve VidStage (a)
YStage(n) ■ k
'запоминание объема в группе*
VidStage (n) * i
'запсмшание вида труппы'
End If
End If
Next j
Hext 1

Фрагмент начала формирования групп совместно выполняемых
работ на первом уровне
Рис. 6.10

112

© 2018, Мауэргауз Ю.Е.

Одиночная машина с группой работ

ния, программа начинает проверять все ранее созданные группы на возможность выполнения
текущей работы совместно с одной из этих групп. Если такая возможность осуществляется,
устанавливается флаг дополнения групп в единицу. При отсутствии возможности выполнения
текущей работы с запланированными ранее, программа создает новую группу. После организа­
ции каждого n-ого узла физический объем и вид работы запоминаются в массивах YStage и
VidStage (рис. 6.10).
На рис. 6.12 приводится цикл расчета основных параметров всех созданных узлов первого
уровня.
Для каждого г-ого узла первого уровня в массиве QP запоминается номер строки всех
работ, совместно выполняемых в соответствующей группе. Каждой такой работе присваивается
параметр обработки aJ = 0,5, что означает ее выполнение в текущем узле. Далее определя­
ются моменты готовности машины к обработке С1 и ожидаемый момент окончания обработки
текущей группы CompStage. Наличие этих данных позволяет определить величину полезности
в узле V Stage, а также трудоемкость UStage и номер родительского узла Par Stage. В конце
каждой итерации параметры обработки для текущей группы работ возвращаются в единицу.
Отсечение узлов по критериям производится в рамках двойного цикла (рис. 6.13). Отсечение
проводится в соответствии с правилами, описанными в п.п. 3.4.1, 3.4.2 и 3.4.3. Оставшиеся
ветви на первом уровне имеют метку MetCurStage(j) = 0. Отличие механизма отсечения на
рис. 6.13 от фрагмента программы, приведенной выше в главе 5 на рис. 5.19, состоит в том, что
сравнение по датам производится не непосредственно по массиву gs необходимых моментов
начала каждой работы, а по массиву MStage необходимых моментов начала для всей группы
одновременно выполняемых работ.
Оставшиеся ветви пересчитываются и переносятся в семь массивов недоминируемых узлов
дерева решений, которые были перечислены выше. На последующих уровнях построения дерева
решений все этапы программы первого уровня повторяются с учетом параметров ограничения
вариантов по длительности согласно п. 3.4.4. Механизм этих ограничений подробно описан в
главе 5 (рис. 5.21 и 5.22). Отсечение узлов по критериям производится аналогично отсечению на
первом уровне. Отличие состоит в том, что при исчерпании всех возможных работ программа
должна автоматически остановиться и выдать полученные варианты расписания.
Полученные варианты решений сортируются по убыванию значения функции полезности
заказов. Для каждого г-ого варианта в массиве WP накапливается процессное время работы
машины. Одновременно в массиве MStage записывается плановый момент выполнения каждой
работы (рис. 6.14). По полученным данным программа определяет значения основных парамет­
ров для каждого варианта (рис. 6.15).
Для полученного набора вариантов проводится поиск наиболее целесообразного варианта
методами Сэвиджа и Гурвица, полученные результаты печатаются на листе MS Excel. Для
выбранного варианта осуществляется запись его расписания в календарных часах. Параллельно
создается массив исходных данных для построения диаграммы Ганта в рабочих часах.

(с) 2018, Мауэргауз Ю.Е.

113

Одиночная машина с группой работ

'начале формирования группы *
If к - 0 Then
создание узла '
п • п ♦ 1
Red* Preserve BPStage(n)
Red* Preserve вводе (п)
Red* Preserve Вводе (п)
ИРводе(п) * CStr(j) 'помер строки в узле
вводе (п) • Тк
'возможный момент начала работы в узле
Вводе (а) • 990)
‘необходимый момент начала работы в узле
к ■ Y0)
'объем первой работы в группе’
Else
к - к + Y0)
'возможный объем в группе'
If к 0 Then 'если начальная установка маикны определена
UStage(n) - UZak(i, 0, VidO) 'трудоемкость начальной наладки
Else 'если начальная установка манимы не установлена
UStage(i) - Тр 'трудоемкость начального запуска малины
End If
Zlnd(i) - 0
ParStage (1) - 0
For 3 - 1 To 1
•Дв₽О)) • 1
Next 5
Next i

Рис. 6.12

'номер исходящего узла для текущего уровня
'номер родительского узла в дереве ревекий
'возврат параметров обработки*

Фрагмент программы по расчету параметров узла на первом

уровне
Number(1) - О
' узел перед первом*
intN - IntD
'начальное возможнее количество узлов разветвления на первом уровне
For J - into To 1 Step -1
'нахождение недомккируешх узлов первого уровня*
NetCurStageO) - 0
For i - 1 To intU
If i j Then
If UStageO) >- UStage(i) And VStage(j) - MStage(1) Then
'условие доминирования на первом уровне'
intN - intN - 1
'количество разветвляемых узлов первого уровня *
метка доминирования над текущей работой*
MetCurStageO) - 1
1 - into
выход из цикла*
End It
End If
Next i
Next J

Рис. 6.13

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

© 2018, Мауэргауз Ю.Е.

115

Одиночная машина с группой работ

k - Vartfuaber(l)
'последний узел варианта*
Result - • *
выходная строка номеров работы в последнем узле
ResSort • * •
Тсц> • MP(k)
‘переменная лексема
Shift - InStr(Теяр, ",")
’положение запятой в лексеме
Do While Shift > 0
‘цикл до последней работы в лексеме
Job * CInt(Left(Теяр, Shift - 1))
'номер строки работы'
ResSort • ResSort ( Tria (Str (des (Job)) > ( \"
' строка работ в последней группе
M3tage(Job) • Ccap(k) 'момент выполнения работы
Теяр " Right(Теяр, Len(TeHp) - Shift) 'остаток лексемы
Shift ■ InStr(Теяр, *,*) 'положение запятой в остатке лексемы
Loop
Job * CInt (Теяр) 'последняя работа
ResSort " ResSort a Tria(Str(des (Job)))
Result - ResSort
MStage(Job) - Сояр(к) 'момент выполнения работы
'последняя группа
W(i) - p(VF(k))
‘процессное время последней группы
'физический объем последней группы
Exec • YP(k)
Do Until Par(k) - 0
'цикл по цепочке дерева
k • Far(k)
'родительский узел
количество групп
WP(1) - WP(i) 4 p(VF(k))
'накопленная продолжительность обработки
'накопленный объем
Ехес • Ехес * Wk)
ResSort - *
Теяр • WF(k) 'переменная лексеме
Shift • InStr(Теяр* "*#) 'положение запятой в лексеме
Do While Shift > 0
JOb • CInt(Left(Теяр, Shift - 1)) 'номер строки работы*
ResSort * ResSort £ Tria (Str (des (Job))) £ ",•
'наполнение строки работами
MStage(Job) “ Coop(k) 'момент выполнения работы
Теяр - Right (Теяр, Len(Teap) - Shift) 'остаток лексемы
Shift - InStr(Теяр, *,”)
Loop
Job • CInt(Теяр) 'последняя работа
ResSort & Tria (Str ( maxV Then
maxV * sngDur 'запоминание наибольшего запаздывания
End If
If sngDur < minV Then
minV = sngDur 'запоминание наименьшего запаздывания
End If
Else
minV “ 0 'наименьшее возможное запаздывание
End If
Next j
Cd(i) * Comp(VarNumber (i))
'Момент окончания работы варианта'
Tc(i) — Round (Exec / Beta, 1) 'среднее запаздывание в календарных часах
Ttain(i) * Round(minV, 1) 'наименьшее запаздывыание
Tmax(i) = Round(maxV, 1) 'наибольшее запаздывание
Kv(i) = Round (Exec / n / sngV, 2> 'коэффициент использования объема
Kg(i) = Round(BetaV / n, 2)
'коэффициент группирования
Kz(i) a Round(m / BetaV, 2)
'коэффициент запаздывания
Рис. 6.15

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

(с) 2018, Мауэргауз Ю.Е.

117

Одиночная машина с группой работ

6.7

Перепланирование расписания

В п. 6.4 описывалась работа программы с некоторой начальной датой, или без изменения
ранее заданной даты. В настоящем параграфе рассмотрим составление расписания при любом
изменении начальной даты планирования. Такое изменение возможно как при появлении нового
календарного задания, так и при необходимости выполнения срочной работы.
Рассмотрим действия пользователя на примере задания, первоначально имеющего вид, при­
веденный на листе 2 в книге MBook2.xls. Задание на 12.10.16 8:00 состоит из 25 работ четырех
видов и составляется для круглосуточного трехсменного графика. Запуск программы приводит
к восьми не доминируемым вариантам. Допустим, что целесообразно использовать вариант 1,
показанный на рис. 6.16.
Поскольку продолжительность рабочего дня в данном случае составляет 24 часа, первый
рабочий день заканчивается в 32 календарных часа. При этом в точном соответствии с рас­
писанием, должны быть полностью выполнены работы 1, 4, 5, 6, 2, 9, 3,7 и начата работа 13.
Во втором календарном дне работают только первая и вторая смены, и для них запланирова­
но окончание работы 13 и выполнение работ 20, 8, 11, 16. По плану окончание второй смены
должно произойти в 48 часов (т.е. 24 часа второго календарного дня). После выходного дня
работа начинается с первой смены. После запуска машины в 82 часа (10 часов четвертого дня)
12 работ выполняются за последовательные 5 партий загрузки.
К концу первого календарного дня плановое подразделение цеха пересматривает результаты
выполнения за день и составляет план следующего дня. Допустим, что в течение первого ка­
лендарного дня работа 5 и работа 7 не были своевременно доставлены на машину, в результате
чего первая партия загрузки проводилась с только работами 1,4, а загрузка партии с работами
3 и 7 была отменена. Было принято решение вместо этой партии выполнять следующую пла­
новую партию загрузки, состоящую из работ 3, 13 вида 2, которая должна быть закончена в 31
час. Полагается, что работы 5 и 7 будут доставлены к началу первой смены следующего дня,
т.е. к 8 часам утра. Кроме того, к моменту планирования появилась срочная работа с номером
26, для которой присвоим высокий весовой коэффициент, равный 5.
Очевидно, что к началу следующего рабочего дня необходимо провести перепланирование,
в котором нужно учесть как появление новой работы, так и результаты прошедшего рабочего
дня. Для перепланирования целесообразно полностью скопировать предыдущее задание на
следующий лист MS Excel и откорректировать задание (рис. 6.17).
После подготовки в задании остаются только строки с невыполненными работами. Затем
можно снова запустить программу, выбрать опции «без моделирования» и «без подготовки к
перепланированию» и перейти к форме ввода, в которую необходимо ввести данные нового
планирования. В данном случае начальный момент освобождения машины равен 31 час (7
часов нового дня), а начальная настройка соответствует виду 2 (после работ Зи 13). Результат
перепланирования показан на рис. 6.18.
Допустим, что в данном случае целесообразно выбрать вариант 2. Сравним расписание для
рекомендуемого варианта 2 на рис. 6.18 с действующим расписанием, составленным ранее по

План обработки по варианту 1
10 (1,4.5) 14; 14 (6) 18; 19 (2,9) 25; 25 (3,7) 31; 31 (13) 37; 37 (20) 43; 44 (8,11,16) 48;
82 (10,15,17) 87; 88 (12,14,18,24) 94; 95(19,22) 100; 102 (21,23) 106; 107 (25) 113;

Рис. 6.16

118

Расписание работ на листе 2

©2018, Мауэргауз Ю.Е.

Одиночная машина с группой работ

№работы Вид к

’Требуемый

Ожидаемый

момент

момент

готовности

поступления

[час.

Объем v

Вес w

ние, %

час.....о

1;

1

4

2^

2

6

3;

2

8

4*

1

4

5;

1

9

6!

1

12

7!

2

12

8;

1

22

9;

2

24

10;

3

11

1

12;

Выполне

2
5..........

3
8
...... '..... 5 ...
9
....
.... ~.. 7 ...... .

100

30

1

50

2

100

40

1

100
100

30

1

60

2

0

30

1

100
0

50

1

30

1

18

40

1

27

10

30

1

0

30

10

50

1

0

4

34

12

20

1

0

13

2

37

14

50

14

4

40

16

30

15

3

45

20

40

1

0

16;

1

47

18

30

1

0

17;

3

50

20

40

1

0

18

*

40

19

20

1

0

19i

3

59

20

40

1

0

20

2

62

20

50

1

0

21

1

70

56

40

1

0

22

3

77

35

50

1

0

88

58

40

1

0

27
... "25

50

1

0

60

1

0

40

5

0

...............23|...... 1.....
24'

4

92

25i

2

93

26

3

24

Рис. 6.17

"

0

0

100 ’

100
1
....... 1.......... 0.......

Таблица задания после подготовки к перепланированию

состоянию на начало второго рабочего дня (рис. 6.19). Работа 13 была выполнена в первый
день совместно с работой 3.
Из рис. 6.19 следует, что появление срочной работы, а также отсрочка некоторых работ,
приводит к нескольким изменениям в ранее составленном плане, но в целом разработанный
метод расчета расписания обеспечивает его устойчивость к внешним воздействиях. В данном
случае, для работы 26 используется весовой коэффициент 5, и партия загрузки с работой
26 и двумя другими работами этого же вида оказывается на первом месте в расписании,
после чего программа предусматривает несколько перестановок в группах работ. Использование
для срочной работы 26 весового коэффициента, например равного 3, приводит к появлению
вариантов с более поздним выполнением этой работы (рис. 6.20).

© 2018, Мауэргауз Ю.Е.

119

Одиночная машина с группой работ

Недоммнируемые варианты ; ~
Вариант 1: 1^15^^

_______ £...... _

_

j_ _

Вариант 2:

10.15,26 5.8 11,16 17.19 21,23 22 12.14,18,24 7,20 25

Вариант 3:

10.15,26 5.8 11,16 21

Рис. 6.18

23 17,19 22 7,20 25 12.14,18,24

Не доминируемые варианты плана для задания работ

Новоераспнсжшена 13.10.... 1.... .... . ... .............. .............. 1............ „.... I..........
Вариант 2. 10,15,26 5.8 11,16 17,19 21,23 22 12,14,18,24 7,20 25

Остаток раашсания на 12.10 ;■ ...... „ ..... ........... i.
. J...
Вариант 5: 13 20 8,11,16 12,14,18 24 21,23 10,15,17 19,22 25
Рис. 6.19

Действующее расписание и его корректировка

1

1

Недом**^^
___ 1__ _ .. . „.
;.. .. ___ _1....
Вариант!: 5,8 10,15,2611,16 17,19 12,14,18,24 7,20 ^ 21,23 ^

Вариант 2: 5,8 10.15.26 11,16 17.19 21.23 22 12,14,18.24 7.20 25
Вариант 3: 5,8 10,15,26 11,16 21 23 17,19 22 7,20 25 12,14,18,24

Рис. 6.20

Варианты плана с уменьшенным весовым коэффициентом для

работы 26

6.8

Моделирование расписания

Моделирование проводится по методике, аналогичной изложенной выше в п. 5.8. На листе
4 приведены результаты моделирования для настоящего примера. Расчет расписания во всех
случаях производится очень быстро. Моделирование показывает, что в данном случае параметр
В1 количества работ имеет оптимальное значение, равное 16, параметр В2 - значение 3 и
параметр ВЗ - значение 0,02. Для психологического коэффициента имеет смысл установить
значение 0,1.
Качество расписания весьма существенно зависит от величины горизонта планирования,
поскольку с увеличением горизонта планирования в расписание включаются дополнительные
работы.
На листе 5 MS Excel приведено задание из 30 работ, причем наибольший срок выполнения,
равный 105 календарных часов, имеет работа 29. Перед моделированием следует убедиться,
что все необходимые данные правильно вносятся с листа в массивы программы. Для этого
целесообразно запустить программу в режиме «без моделирования», а затем удалить результаты
расчета.
При работе в режиме «моделирование» для изучения влияния планового горизонта его
величина последовательно изменяется при постоянных остальных параметрах моделирования.
На листе 5 приведены результаты таких расчетов при увеличении планового горизонта от 20
до ПО календарных часов. Величина планового горизонта устанавливается по заданному сроку
выполнения работ, при этом количество учитываемых работ соответственно изменяется. На
рис. 6.21 приведены результаты расчета расписаний в этом диапазоне, причем для каждого
120

(с) 2018, Мауэргауз Ю.Е.

Одиночная машина с группой работ

горизонта выбран один вариант расписания. Если как метод Сэвиджа, так и метод Гурвица
предлагают одинаковый вариант расписания, то этот вариант используется для рассмотрения
на рис. 6.20. В том случае, когда методы рекомендуют разные варианты, использован один из
вариантов, находящихся между этими вариантами.
Как следует из рис. 6.21, заметные изменения в последовательности расписания начинаются
с горизонта 70 календарных часов. Здесь добавляются работы 20 и 21, присутствие которые
приводит к перегруппированию расписания.
На рис. 6.22 приведена зависимость коэффициента загрузки от горизонта планирования. Как
следует из рисунка, эта зависимость в данном случае подвержена значительным колебаниям.
Сначала наблюдается увеличение загрузки, которая затем снижается и колеблется, несколько
превышая единицу.
На рис. 6.23 приведены графики основных параметров для расписаний, показанных на рис.
6.21. В данном случае, вследствие значительной перегрузки машины, коэффициент запаздыва­
ния близок 1, т.е. практически все работы выполняются с опозданием.
С ростом горизонта планирования приведенные затраты переналадок за один рабочий день
на кривой 1 постепенно уменьшаются до величины, примерно равной 0,08, и затем колеблют-

Гориэонт20:
Горизонт 30:
Гориэонт40:
Горизонт 50;

1.4,5 2,3 6 7
1,4,5 6 8 2,3 7,9
1,4,5 6 8 2,3 7.9
1,4,5 6 8 2.3 7,9

Горизонт 60:
Горизонт 70:
Горизонт 80:
Горизонт 90:

1,4.5 6 8 2,3 7.9 10,15,17 13
1,4,5 6 8 12,14 11 16,21 2,3
1,4,5 6 8 12,14 10,15 2.3 7.9
1,4,5 6 8 12,14 11 16,21 2,3

Горизонт 100:
Горизонт 110:

1,4,5 6 8
1,4,5 6 8

2,3
2,3

10 11
10 13
11 12,14
10,15,17 13 11,16

7,9 10,15,17
7,9 10,15,17

12,14

11.16 12.14.18 19
10,15,17 7.9 13,20 19 18
17,19 13,20 22 11,16,21 18
10,15,17 7,9 19,22 13,20 18 23

13,25
13,25

19,22 20,30 26 12,14,18,24 11,16,21 23,28
19,22 20,27,30 11,16,21 12,14,18,24 23,28 26,29

Рис.6.21

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

Рис. 6.22

Зависимость загрузки от горизонта планирования

© 2018, Мауэргауз Ю.Е.

121

Одиночная машина с группой работ

Параметры расписаний для разных горизонтов: 1 - приведен­
ные затраты переналадок за один рабочий день, умноженные на 10; 2 полезность выполняемого набора работ; 3 - коэффициент группирования;
4 - коэффициент использования объема
Рис. 6.23

ся относительно этого значения. Коэффициент группирования на кривой 3 также постепенно
повышается до величины 2,2, а затем колеблется относительно значения, примерно равного 2.
Быстрое уменьшение полезности работ при горизонте до 50 часов связано тем, что тре­
тий плановый день является выходным. В последующие рабочие дни полезность несколько
повышается, и в дальнейшем полезность работ испытывает колебания, но в целом постепенно
падает.
Коэффициент использования объема (кривая 4) с ростом горизонта планирования постепен­
но растет и стабилизируется около значения, равного 0,9.
Проведенный анализ свидетельствует о том, что в данном случае увеличение горизонта эф­
фективно, поскольку оно приводит к увеличению коэффициента использования объема. Однако
при увеличении горизонта более 50 полезность заказов с ростом горизонта планирования резко
падает, и поэтому горизонт в 50 календарных часов становится в данном случае критическим
значением при составлении расписания.
Необходимо отметить, что вследствие высокого коэффициента группирования - около двух,
плановая партия загрузки, в данном случае содержит, как правило, не менее двух работ. По­
этому отклонения от прибытия каждой работы в плановой партии загрузки сказываются на ее
возможном моменте начала. По этой причине очевидно, что с ростом горизонта планирования
вероятность точного выполнения запланированного расписания быстро падает.

122

© 2018, Мауэргауз Ю.Е.

Глава 7

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

7.1 Введение....................................................................................
123
7.2 Исходные данные для группового выполнения работ на
одиночном обрабатывающем центре.............................. 124
7.3 Работа с программой..............................................................
126
7.4 Анализ результатов планирования......................................
128

7.1

7.5

Блок-схема программы..........................................................

129

7.6

Листинг основной части программы....................................

129

7.7

Перепланирование расписания ............................................

138

7.8

Моделирование расписания..................................................

142

Введение

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

123

Обрабатывающий центр

водится несколько раз и, соответственно, полное количество замен инструмента мало зависит
от порядка выполнения работ.
Если деталь изготовляется из материала с твердостью, существенно меньшей, чем сталь,
стойкость режущего инструмента часто обеспечивает изготовление нескольких партий разных
деталей без замены этого инструмента. Например, при обработке алюминиевых сплавов стой­
кость режущего инструмента обычно находится в пределах 1,5-3 часа операционного времени
(Грубый и Зайцев, 2015), что часто вполне достаточно для обрабатывающего центра в течение
нескольких рабочих смен. В этом случае главным отличием групповой обработки оказывается
зависимость наполнения инструментального магазина от последовательности обработки дета­
лей разных видов. В настоящей книге рассматривается именно этот случай.
Часть набора инструментов, требующегося для текущей партии, к моменту ее обработки
может находиться в магазине машины; недостающие инструменты должны быть установлены
заново. При этом возникает вопрос: взамен каких неиспользуемых для данной работы инстру­
ментов должны быть установлены недостающие? Естественным ответом является стремление
сохранить в составе магазина инструменты, которые применяются часто, и заменять редко
используемые инструменты.
При составлении расписания необходимо руководствоваться некоторыми критериями опти­
мизации. Здесь, как и в предыдущих главах, предлагается динамический метод группового
планирования, позволяющий предложить пользователю набор из нескольких вариантов реше­
ний для окончательного выбора. При этом для оценки качества планирования используются
два критерия: критерий средней полезности заказов и критерий относительных издержек на
переналадку на горизонте планирования. Издержки на переналадку возникают как при замене
приспособления, так и при замене инструментов в гнездах магазина.
Согласно структурной формуле теории расписаний, поставленная задача для одиночной
машины может быть записана как
l|n,4,Sfc,ZM_i|C/,V.

(7.1)

Формула 7.1 отличается от формулы 5.1 наличием величины Zk,k-i, которая равна количе­
ству инструментов, заново устанавливаемых в магазин для к-ой работы после работы А: — 1. В
данном случае длительность переналадок вк с одного вида приспособления на другой не зави­
сит от их порядка. Остальные параметры выражения 7.1 совпадают с параметрами в формуле
5.1.
Так же, как в главе 5, программа представляет собой макрос на языке VBA для электрон­
ной книги MS Excel. Рабочее задание записывается на листе MS Excel; после выполнения
программы результат записывается этом же листе и на формах книги.

7.2

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

Исходные данные для составления расписания настоящей задачи записываются на листе
MS Excel электронной книги MBook3.xls. Эта книга в состоянии поставки состоит из четырех
листов, на которых иллюстрируются различные аспекты составления расписаний.
На листе 1 в табл. $A$5:$G$19 находится задание, состоящее из пятнадцати работ, ис­
пользующих приспособления четырех различных видов. В каждой строке задания описываются
параметры работ:
- номер работы;
124

© 2018, Мауэргауз Ю.Е.

Обрабатывающий центр

-

требуемый момент готовности в календарных часах;
ожидаемый момент поступления заготовки в календарных часах;
количество штук в партии;
весовой коэффициент работы;
тип приспособления и выполнение работы в процентах.

Моменты готовности и поступления работ, как обычно, отсчитываются от момента наступления
календарного дня, являющегося первым в расписании. Целесообразно записывать работы в
порядке возрастания требуемых дат их выполнения.
Во второй строке листа записываются значения параметров процесса планирования, причем,
в основном, используются те же параметры, что и в программе MBookl.xls. Дополнительными
являются параметры «Трудоемкость установки одного инструмента», «Трудоемкость обращения
к складу», «Продолжительность восстановления инструмента» и «Длительность перемещения
магазина на операцию», которые записаны в ячейках $N$2, $Т$2, $V$2 и $Х$2 соответ­
ственно.
Перечень выполняемых операций для каждой работы приведен в табл. $I$5:$L$93, фраг­
мент которой приведен на рис. 7.2. В последнем столбце таблицы приводится расчетный процент
израсходования используемого инструмента на выполнение текущей операции.
Для каждого инвентарного номера инструмента ведется журнал учета процента его теку­
щего износа (табл. $O$5:$Q$34). Полное количество имеющихся типов инструмента записы­
вается в ячейке $АВ$2. Состав текущего набора в магазине машины на момент планирования
приведен в таблице $S$5:$T$19.
В табл. $X$5:$Z$8 приведены нормы времени в минутах на замену оснастки (приспособ­
ления) машины и на замену каждой обрабатываемой детали. В табл. $V$31:$AI$34 описан
календарный график работы машины по дням, начинающийся с первого дня выполнения соТребуем

Ожидаем Количест

ый

ый

момент

момент

Весовой

коэффици

готовност поступле

№работы и час.

Рис. 7.1

Выполне

Тип

ент

во. шт.

ния час.

ние, %

оснастки

1

-1

-4;

15

3

1

0

2

5

°

10:

1

4

0

3

8

1

15

1

2

0

4

14

0

20

1

1

0

5

18

0

10

1

3

0

6

28

3

15

1

1

°

7

35

2

10

1

2

0

8

42

о

20

1

1

0

9

53

8

ю

1

4

0

10

60

7

10

1

2

°

11

74

7

15;

1 ............. 1

0

12

85

5

20

1

3

0

13

96

9:

20

1

1

0

14

106

10

10;

1

2

0

15

112

10

15

1

1

0

Таблица исходных заказов на листе 1

© 2018, Мауэргауз Ю.Е.

125

Обрабатывающий центр

Длительно Процент

Номер



? сть

израсход *
обработки !
’инструме родной
!ованияв;
липа

работы

шт., мин.

-нта

час

Ж2Ж7Г27Ж
1;

!
7

7

Ж
з7

t102-

32j

l[14;з?

45

1!

)

1j
Lj)

2=

2i

12:

2j

19;
2:
5J4’

t
1t

LJ!15
Рис. 7.2

*

40
30
34?

2^

46;

2

б??

3

53]

Фрагмент таблицы операций

ставляемого расписания. Для каждой смены календарного дня проставлено количество рабочих
часов.
В первой строке записываются параметры обработки данных и записи результатов планиро­
вания. Данные в таблицах можно изменять до начала планирования путем непосредственного
ввода их значений в ячейки листа электронной таблицы. Значениями параметров следует управ­
лять в процессе планирования с помощью форм.
Работа программы, как и в предыдущих главах, основана на методе планирования по кри­
териям издержек U и средней полезности выполнения заказов V, изложенных в п. 3.4.2 и
п. 3.4.1. Результаты планирования записываются на рабочем листе электронной книги в виде
нескольких возможных вариантов.
На листе 2 приведен возможный вариант перепланирования задания на листе 1. На листе 3
приведен пример моделирования задания на листе 1, на листе 4 приведен случай составления
расписания при круглосуточной работе машины.

7.3

Работа с программой

Для работы с программой планирования в MS Excel устанавливается соответствующий ра­
бочий лист, например, лист 1 и осуществляется команда MaKpocbi/Utilityl/Выполнить. При
нажатии кнопки «Запуск программа» программа начинает работать. Система сообщает о по­
следней дате планирования и предлагает одну из двух возможностей - подготовку планирова­
ния с новой датой или повторение расчета с последней датой. В случае расчета расписания без
перехода на новую дату, при котором открывается форма «Ввод данных» (рис. 7.3).
Результат планирования зависит от типа оснастки, на который машина настроена в началь­
ный момент выполнения задания. Работа с формой на рис. 7.3 аналогична работе, описанной
выше в п. 5.3. Затем система автоматически рассчитывает загрузку машины и выдает соответ­
ствующее сообщение.
126

© 2018, Мауэргауз Ю.Е.

Обрабатывающий центр

Длительность менового
периода вена*

Лсижолооеж»*
коэффициент

Трудоемкость
установки «много

Длительность
обращения к. складу.

Количество
рабочих смак

С^ЙМНвС^Ж МЙСЛ Вимйм^эни
НЙЛЛ^СИ

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

Продояюктельмрсть
восстановления
инструмента, час

операцию, инн.

описке работ

ячейки списка работ

Иняпсюяйдией
ячейки типов
оснастки

им* первой
ячейки типов
«место*

оснастим»

операций

Имя первой ячейки
имеющегося набора
инструментов

начал» рабочего
дня, час»

Имя последней ячейки
списка операций

Имя последней ячейки

it

w •струне» ов

Момент освобоицм
ОЙВНЛВрИЬЬС ЧЮХ

СТОИМОСТЬ
рабочей смены

Количество типов
инструмента

Инж первой ячейкн
рабочего календаря

Лея первой ячейки
текущего набора в
кагатиме

Имя последней ячейки
рабочего капеьшаря

Мня последней ячейки
текущего набора в
магазине

результата расчета

| 16.09.2016

Текущие
параметры

Рис. 7.3

ММ Мнимое вехш

агпгек программы

Форма ввода параметров задачи

Недоминируемые варианты
Вариант 1:1 2 3 7 4 9 5 13 15 11 6 10 8 12
Вариант 2:1 2 3 7 4 9 5 13 15 11 6 10 14 8
Вариант 3. 5 2
1 6 4 9 3 7 14 15 11 8 10 12
Вариант 4: 5 2
1 6 4 9 3 7 14 15 11 8 12 10
Вариант 5: 5 2
1 6 4 9 3 7 14 15 10 12 11 8
Вариштг 6: 5 2 9Г 4 3 10 7 14 15 6 8 11 12

Вариап 7: 5J
Вариант е : 5 2
Вариант 9: 5 2
Вариант 10: 5 2

Рис. 7.4

МП*О АВОЛММ

14
12
13
13
13
13

9J 4 3 Ю 7 U 15 6 118 12 13
9 1 11 7 10 14 13 15 4 6 8 3 12
9 1 11 7 10 14 13 15 6 8 4 3 12
9 1 11 7 10 14 3 12 4 6 8 13 15

Результаты работы программы на листе 1

По окончании расчета все возможные и не доминируемые варианты выводятся на экран
(рис. 7.4). В каждом варианте последовательно перечисляются номера выполняемых работ.
Время работы данного примера составляет несколько секунд. Дальнейшая работа пользователя
заключается в выборе из предлагаемого набора одного варианта, наиболее рационального с
точки зрения пользователя. Для определения рекомендуемых решений в программе, как и вы­
ше, используются методы принятия решений Сэвиджа и Гурвица. Для всех не доминируемых
вариантов выводятся данные о значениях критериев U.V (рис. 7.5), а также значения коэффи­
циентов группирования Кд и запаздывания Kz, полной длительности выполнения расписания

© 2018, Мауэргауз Ю.Е.

127

Обрабатывающий центр

Коэффициент мммо0 Шруме 1,2

Рмдоздрдо мртмы: по МОД Сэмджа - вариант 6. по методу Гураир - вариант 7
Покааетапа аортитов расписания:
етиоситальиыа ядом ив ммод наборе работ U срядим ломкость задов V; каэффндоп группирования Кд; тэффидоп запаздывай* Кд ,
полная длитоммость выполнения Стах, сродное Тс и наибояыиоо Ттах запаздывай* в кадоармос часах
вариантов*; V*AM1; Kg*1.36; Kz * 1; Стах * 166; Тс =44; Тдо=182.6
Вариант 2 U = 4.»5 V=4W9; Kg =1,5. Кд = 1; Стах = 164; Тс = 43Л Twx = 113,8
ВариктЗ и«4 526; V»4^26; V»«0^64; t^-IM Кд - 0,93; Стах -164; Тс «40.4 Ттах «94,8
Вариант 5: U-4,477 V«A336; Кд «1.88, Кд ■ 0,93; Стах «164; Тс-40.5. Ттах-113
Вариангб и-4.328; V--0,669; Кд«2.5 Кд«0,67;Стах«163; Тс«41.9; Ттах«91.7
ВоримгТ и = 4,278; 7*4.717; Кд = 2Л Кд = 0.87;Стах = 163; Тс = 41,6; Ттах = 95.7
Вариант 8; U = 4221; V = -1.428, Кд = 2,5. Кд = 0,73; Стах = 163; Тс=4Ц, Ттах = 146.9
ВариштЗ и=4.172. V = -1,509, Кд = 25 Кд * 0,73; Стах = 163; Тс = 42; Ттах = 146,9
Вариант К); U«4,096; V*4245; Кд»3; Кд = 0,73;Стт = 163; Тс =41.3; Ттах =104.7

Рис. 7.5

Значения показателей расписания для различных вариантов

Стах, среднего Тс и наибольшего Ттах запаздываний. Величина коэффициента группирова­
ния определяется формулой 2.1, коэффициента запаздывания - формулой 2.3. Для упрощения
вывода символов на лист MS Excel, символ V на рис. 7.5 заменен символом V.
В данном примере машина перегружена, и подавляющая часть заказов выполняется с опоз­
данием. Положим, что пользователь выбирает в качестве окончательного расписания вариант
2, обеспечивающий малое значение для наибольшего запаздывания Ттах и имеющий наиболь­
ший коэффициент группирования при таком запаздывании.

7.4

Анализ результатов планирования

Для расчета плана по анализируемому варианту система, как и выше, предлагает форму
«Расчет плана». При расчете плана, приведенного на рис. 7.6, учитываются моменты поступле­
ния работ, их продолжительность, нормы времени на переналадку и рабочий календарь.
В плане на рис. 7.6 последовательно перечисляются все запланированные работы с указа­
нием их моментов начала и окончания в календарных часах. Для каждой работы указывается
необходимая оснастка, перечисляются все вновь используемые инструменты, а также гнезда
магазина, в которые эти инструменты должны быть установлены. Кроме того, указывается
инвентарные номера инструментов, для которых необходимо восстановление (переточка).
В данном примере, некоторые работы сгруппированы таким образом, чтобы для них не было
необходимости в смене оснастки - например, работы 3 и 7; работы 13, 15, 11, 6; работы 10 и 14.
Последовательность выполнения работ не обязательно связана с заданным сроком выполнения,
хотя, конечно, этот срок существенно учитывается. На эту последовательность влияет также
длительность операционного времени и необходимость в изменении набора инструментов в ма­
газине. В данном случае совокупность этих факторов приводит, например, к целесообразности
выполнения работы 7 раньше, чем работы 4.
При круглосуточной работе машины (лист 4) последовательность выполнения работ при­
мерно сохраняется та же, что и при двухсменной работе. В то же время полная длительность
выполнения Стах падает с 165 до 138 часов.

128

© 2018, Мауэргауз Ю.Е.

Обрабатывающий центр

РЬспмсютют работ, оснасток 1»стр)мвигеловврмютту 2
(Эдот*1:ютютт10,э. гнезд* 15 а 9,20 а 12
Требуют аосстаноалютют инструменты:
Работа 3 начало 19,3, сконченне 312ч*с. «сиест 2. мстюттмуемые инструменты 3.1. Д17. домажь мютрумамы а гнезда 6*2,24 е S
Требуют ассииоаазда инструментам, 7
Работа 7: м*чамЗЗДемнчаим37Л чес. оснесга 2. тюшьздою ютструменты: 3,5,15, М, установить инструмон1мел«зда 30а5,22в2
Требуют оосстаиоеламм ютструменты: б
Работа#: мечом 37,8, окончютм44Л час. оснасто 1. испоютзувемв ютструменты 21,5.12, устютоаить ютструменты а гнезда К о 15.6*2
Требуют аосстютовмим юторументыи
Работа 9: начаю 4$, omm *i Integer, aetOO Ла Single ' массив обозначений ссхастям, массив норм времени на смену летали в ими.
' массив норм времени не установку оснастки в мш.
ош во Аз Integer
ош G Ле Single, а Ла Single: "длительность планового периода, психологический коэфф.
* стоимость смени, длительность смены, стоимость час* напалки'
ОШ С Ла Single, СВ Ла Single
ОШ КО Да Slagle, VidO Да Integer " момент освсбсждекия кадмии, вид работ в начальный момент
ОШ Тс Ля Single, Та Аз Single, It Лэ Single, Tu Аз Single, Tv Аз Single
"длительности установки, смени позиции, обратима к складу, переметим на опершим, восстановления:
ОШ СО Аз Single ‘массив дяитеяьности рабочего дня
ОШ Тп Ал Single, Delta Ал Integer ' момент начала рабочего лил в часах, количество дней в календаре
ОШ VTna Ля Integer, Cl Ля Single ' количество мает я магазине, момент окончания работе таким
ОШ ЛО Ля Single ' кассия мстите* начала работы в узле'
ОШ «70 Ля Single 'массив меток выполнения работ'
ОШ 0() Аа Single, УЦ Ал Single "кассили функции затрат к функции полезности заказов, келоминируемат узли всех уровней'
ОШ Fail) Ла Integer
‘массив номеров родительских узлов мм недсамхируемых узлов всех уровней1
ОШ Сошел О 1л Single ‘массив начала работ для иеламкиируеьисх узлов всех уровней
‘массив моментов озвончения работ для недомоофуеммх узлов всех уровней'
ОШ СсярО Ла Single
ОШ Nuater() Ля Long 'массив нсмероа, прежествуенпа аераш уздам а уровнях'
ОШ МФО Ал Integer 'массив номеров работ в узлах для недааммируеммк узлов всех уровней'
ОШ NodeO Аз Integer ’массив камерсв
узлов каждого уровня в дереве"
ОШ OStageO Ля Single, VStageO Аз Single "массивы функции затрат к функции полезнее» заказов на текущем уровне1
"массив номеров родательских узлов «а текущей уровне*
ОШ FarStagen Ла Integer
‘массив моментов скончания работ на текущем уровне’
ОШ CoMpStageO As Single
ОШ NPStngeO Ла Integer 'массив номеров работ в узлах аа текущем уровне'
ОШ Nodesсаде () Ал Integer ' массив номеров узлов одного уродил
ОШ HagJctO Ля Integer "масал хна. кокеров инструмента для текущей работе к* уровне
ОШ ХемвЗДО Ля Integer "массив пропантов износа инструментов для текущей работе ха уровне
ОШ OntlWobO Аз Integer "массив инструментов,, гребущих восстановления для текущей работе на уровне
ОШ NagStage О Ля Integer "масона имя. номеров инструментов а магазине на уровне
ОШ IrnoaStageO Аз Integer 'тссмв пропейте* износа инструментов а магазине на уровне
ОШ inti Ал Integer, inti Ал Integer 'натра ступеней дерем расчета и узлов на каждой ступени'

ОШ
ОШ
ош
ОШ
ОШ
ОШ
ОШ
ОШ
ОШ
ОШ
ОШ
ОШ
ОШ
ОШ
ОШ
ОШ
ОШ
ОШ
ОШ
ОШ
ОШ

Рис. 7.7

130

Глобальные переменные программы

©2018, Мауэргауз Ю.Е.

Обрабатывающий центр

В массиве KolTypQ по каждому типу инструмента запоминается требуемое количество
применений на операциях для всего набора работ. Эти данные затем используются на каждом
уровне построения дерева для формирования массива FreqQ потребности в конкретных ин­
струментах, устанавливаемых в магазин для выполнения текущей работы. Ниже глобальных
переменных в программе описывается ряд вспомогательных локальных переменных и затем
вызывается форма ввода параметров (рис. 7.3).
После записи исходных данных в рабочие массивы программы проводится расчет количества
применений инструментов каждого типа на каждой операции каждого заказа (рис. 7.8). Для
каждой операции в исходной табл. 7.1 с помощью функции DetermO устанавливается строка
таблицы заказов, номер операции в заказе и запоминается необходимый тип инструмента в
соответствующем двумерном массиве insDQ. После каждого упоминания типа инструмента,
частота упоминаний запоминается в массиве KolTypQ.

Расчет загрузки машины, аналогично расчету в главе 6, производится путем накопления
продолжительность машинной обработки всего набора работ Wip (рис. 7.9). Полный фонд
времени Fond по всем работам на горизонте планирования устанавливается по строке с наи­
большим резервом времени в рабочих часах. Коэффициент загрузки KWip определяется как
частное от деления полной трудоемкости на фонд времени.
В начале планирования производится анализ набора инструментов, уже находящегося в
магазине. Для этого определяется частота использования инструментов, уже находящихся в

For i ■ 1 То BetaD 'по операциям
х - De«r»O{Beta, desD(i)) • Номер строки в таблице заказов
If desD(i) Job Then 'для новой работы
п ■ 1 ’номер операции
Else 'для уже текущей работы
п ■ n + 1 'номер операции
End If
insD(x, а) * Cells(Alfa + 1-1, Genoa + 1).Value
'номер типа инструмента '
p(x, n> - Cells (Alfa *1-1, Ganna + 2) .Value
'длительность работы инструменте
Iznos(x, n) * Cells (Alfa + 1-1, Gaona + 3).Value
'процент износа на операции
'
KolTyp(lnsD(x, п)) • KolTyp(insD(x, n)) + 1 'требуемое количество применений по каждому типу
'инструмента для всего набора работ
Job • desD(i)
'запоминание текущего номера работы
Hext 1

Рис. 7.8

Расчет количества применений инструментов

Hip - о
For 1 • 1 То Beta
POper(i) ■ FOper(l) + setB(TypO(i)) 'учет времени установки детали в приспособление в мин.
gs(i) * d(i) - POper(i) / 60 • Kol(i) 'необходимый момент запуска работы в рабочих часах
Wip ■ Wip + POper(i) / 60 * Kol(i) 'накапливание загрузки в часах
Nexr 1
If Fond > 0 Then 'предохранитель нулевого фонда
KWip - Round(Wip / Fond, 1) 'коэффициент загрузки
Reap * Ms9B0Z("Коэффициент загрузки нажины равен " & KWip 6 ". Продолжать расчет?", vbYesMo^
If Reap - vbNo Then
Exit Sub
End If
Else
KWip - 1
End If

Рис. 7.9

Расчет коэффициент загрузки

© 2018, Мауэргауз Ю.Е.

131

Обрабатывающий центр

гнездах магазина (рис. 7.10). Номера гнезд, отсортированные по частоте установленных в них
инструментов, записываются в массиве VarMagQ.
По окончании предварительного анализа магазина проводится цикл расчета основных па­
раметров узлов первого уровня по всему количеству заказов Beta. Для каждого вновь со­
здаваемого узла, прежде всего, проверяется возможность использования инструментов, уже
находящихся в магазине (рис. 7.11). Если инструмент необходимого типа уже имеется в ма­
газине и степень его износа до конца выполнения работы меньше 100%, то такой инструмент
записывается в двумерный массив MagJobQ для текущей работы. Одновременно степень из­
носа инструмента запоминается в массиве IznosJobQ.
После проверки инструментов в магазине, проводится цикл подбора всех необходимых ин­
струментов для выполнения работы в создаваемом узле дерева. Если такой инструмент уже
находится в магазине, то он записан в массиве MagJobQ, и в дальнейшем поиске нет необ-

For 1 - 1 То Vina
'по всем гнездах тмзима '
1мР(1) • Cells (Ufa 4 1-1, баше 4 1) .Value 'массив инвентарных номеров установленных инструментов
И insF(l) - 0 Then

F»qU) ■ о
Пае
Shift • Dtten(BttaSr InsF(i)) 'индекс в списке инструментов
Freq(i) ■ KolTyp(insV(Shift)) Частота использования инструмента
End If
lext 1

Рис. 7.10

Частота использования инструмента в магазине до начала пла­

нирования
Л ■ О 'номер узла
For 1 • 1 То Beta
'расчет полезности заказов на первом уровне*
f • б 'порядковый номер инструмента а массиве работы
ж ■ 0 'номер удаляемого инструмента
Пар? * 0 * флаг задержки за счет переточки инструмента в магазине
aJ(l) • 0.5
'готовится узел первого уровня с 1-ой выполняемой работой *
а - п 4 1
'новый узел
For Э - 1 То ЖраЩ
'икжл по инструментах всех типов, нужных для текущей работы
Пар? ■ 0 * флаг нахождения нужного инструмента
Тур ■ 1а^Ц, 3)
'нужна* тип инструмента дня работы
For к * 1 То Vins
'помех инструмента нужного типа в магазине
If ШзР(к) > 0 Then 'если в ячейке магазина есть инструмент
Shift • Detern (SetaN, 1шР|к)| 'лсряякова* номер икв. номера инструмента в списке наличия инструментов
If Тур ■ insV(Shift) Then 'если инструмент мутного типа в магазине есть
Емс • Ко1(1) * р{1, 1) / Waste Then 'если у инструмента износ белые износа ранее найденного инструмента
Waste ■ insZ(l) ’ запсажмание наибольшего износа
Tools • Inv(l) ‘запоминание номера инструмента с наибольшим износом
End If
End If
End If
End If
Next 1
End If

Рис. 7.12

Поиск необходимого инструмента на складе

If FUgJ ■ 2 Then ’ если инструмент необходимого типа на складе есть
f • f ♦ 1 ‘порядковый номер в списке инвентарных номеров инструмента дня текущей работы
If Tools * О Then 'если на складе есть только инструмент удаляемый из магазина
Flag? • FlagF ♦ 1 ’ учет времени задержки на переточку
MagJcb(n, f) ■ iwH 'замена инструмента в магазине после переточки
Else
MagJob (a, f) • Tools 'запись инвентарного номера другого инструмента в массив магазина текущей работы
End If
IznojJobfn, f) ■ Exec ‘запоминание текущего износа предварительно восстановленного инструмента

End If

Рис. 7.13

Переточка инструмента

© 2018, Мауэргауз Ю.Е.

133

Обрабатывающий центр

If aJ(i) • 0.5 Thea ’для выполняемых работ
If Vidli) - VidO Then ‘если тип оснастки для текужей работ совпадает с начальным типом оснастки
Tk(n) • Calend(K0, Round ЦП ♦ FlagF • Ти) /50, 1), 1)
‘учет начального обряжения к складу и времени на переточку а часах
escape(п> - СИ * (Тс ♦ (FlagP ♦ Та ♦ MtD(Vid(i>) * КО1(1) е Те * ЯЯеы) / 50) / С
‘относительна затраты на подготовку работ, переустановку деталей и смену инструмента в часах
Else ‘если тип оснастки для текучей работы не совпадает с начальные типом оснастки
ТКп) - Calendar »ound((Tt ♦ Пар? * То ♦ a(Vid(i))) / ) / 60 ♦ (setD(Vid(i>) * Kol(i) + Тс * KBw) / 60) / С
'относительные затрат на подготовку работы, переустановку оснастки и деталей и смену инструмента в часах
End If
sngDur - Arrlval(R(i)) ‘момент поступления работы на иаамну
If sngDur > Tk(n) Then ‘учет времени поступления заготовки (материала)
Tk(n) * sngDur ’ возможный момент начала работы камням в календарных часах
End If
СсмрЗсаде(п) * €Uend(Tk(n), (FOper(i) * Tv * HOper(i)) / 60 • Kol(i), 2)
‘время выполнения работ а часах с учетом времени срабатывания механизма смены инструмента
If СоврЗсаде(п) • 0 Then ‘если не определен момент окончания работы
MsgBox * недостаточен рабочий горизонт *
Exit Sub
End If
VStage(n) • (V0 * KO + vzak(Beta, i, anpci, Ik (a), CoapStage(n))) / СомрЗсаде(а) 'полезность набора работ
PerStage(n) • 0 'родительский узел
MPStage(n) • 1 'иомер строки работы
HodeStage(n) • 1 ' номер узла
aJ(l) * 1 * возврат метки проведения работ
End If

Рис. 7.14

Определение параметров узла

Отсечение узлов по критериям, как и в главе 5, производится в рамках двойного цикла
(рис. 7.15). Отсечение проводится в соответствии с правилами, описанными в п.п. 3.4.1, 3.4.2
и 3.4.3.

Оставшиеся ветви на первом уровне, имеющие метку MetCurStage(j) = 0, пересчиты­
ваются и их параметры переносятся в шесть выше перечисленных массивов недоминируемых
узлов (рис. 7.16).
Однако в данном случае этого переноса недостаточно, и для полной характеристики каждого
созданного узла дерева необходимо описать соответствующий набор инструментов в магазине
и процент износа инструментов. Для этого программа последовательно выполняет несколько
операций.

intU * □
'начальное возможное количество узлов разветвления на первак уровне’
IntB • XncV
'мамбальвее возможное количество разветвляемых узлов на первом уровне*
For 3 • into То 1 Step -1
'нахождение меломшируеиаг узлов первого уровня*
For i • 1 То into
If 1 о 3 Aad NetCnrStage(l) - 0 Then ' для неломмнкруемих узлов
If OScage0) >* DStagt(i) And vscageO) >“ gs(HPSt*ge(i)) Then
'условие ламинирования
inti • intM - 1
‘количество разветвляемых узлов первого уровня *
MetCurScageO) • 1
'метка доминирования нал текувей работой'
1 ■ IntU
'выход мз цикла'
End If
End If
Next i
Hext j

Рис. 7.15

134

Механизм отсечения первого уровня

(с) 2018, Мауэргауз Ю.Е.

Обрабатывающий центр

а • О
Fox 1 - 1 То inW
If MetCurStage(1) - 0 Then
n ■ n ♦ I
TreeStage(n) • 1
‘номера разветвляемых узлов первого уровня’
2nd If
Hext 1
For 1 • 1 To intM ’ по разветвляема узлам первого уровня
Г ■ ТгееStage(1) ’номер исходного узла
Щ1) ■ UStage(k)
• включение медоиинируемых узлов первого уровня в полные массивы медомимкруеных узлов
V(l) - VStage(k)

Рах(1) - ParStage(к)
Cowen (1) -

Тк(к)

с«ф(1) • Coepstage(k)
HP (11 • NPStage(k)
Hode(l) - NodeStage(k)
и ■ NOper(NP(l)) ‘ количество инструментов для работы

TreeStage(i) * i
Hext 1

Рис. 7.16

‘номера

узлов полных массивов, соответствующих педомикмруемык узлам первого уровня’

Перенос параметров узлов первого уровня в полные массивы

дерева

Прежде всего, при переходе к каждому узлу, по предыдущему состоянию восстанавлива­
ется величина износа всех инструментов, в гнездах магазина записываются находившиеся там
инструменты (рис. 7.17).
Затем, программа, используя массив MagJobQ, подсчитывает количество инструментов,
используемых от предыдущей работы для выполнения работы в новом узле, а также удаляет
из массива магазина MagStageQ инструменты, намеченные к удалению в массиве UnfitJobQ
(рис. 7.18). После этого программа получает возможность откорректировать состав магазина и
определить степень износа инструмента, используемого при проведении текущей работы (рис.
7.19).
В фрагменте на рис. 7.19 для каждого инструмента в магазине и используемого в текущей
работе записывается новое значение износа. Если в магазин вставляется новый инструмент, то
для него определяется целесообразное место (гнездо) и также записывается значение износа.
Для определения рационального гнезда используется массив VarMagQ, в котором порядок
гнезд установлен в соответствии с частотой применения находящегося в магазине инструмента
Freq() (рис. 7.10).
По окончании подготовки магазина и инструмента в каждом узле первого уровня необходи­
мо пересчитать частоту использования инструментов в магазине для построения следующего
уровня (рис. 7.20). Номера гнезд, отсортированные по частоте установленных в них инстру­
ментов, записываются в двумерном массиве VarMagQ.
На последующих уровнях построения дерева решений все этапы программы первого уровня
повторяются с некоторыми изменениями. В частности, могут использоваться параметры ограFor j • 1 То BetaN ’по веек инструментах
ItnosStageU, j) ■ ineZO) ' предварительная запись для всех инструментов по предыдущему состоя»®
Next j
For j • 1 То Vina • по веек гнездан магазина
MagStage(1, j) ■ iM₽(j) 'в состав магазина при выполнении новой работы
’ переписывается инструмент из предыдущего набора в магазине
Next j

Рис. 7.17

Предыдущее состояние инструмента и магазина

© 2018, Мауэргауз Ю.Е.

135

Обрабатывающий центр

ЗМШм ■ 0 'количество разнеженных инструментов
For J ■ 1 То Vina 1 по всем гнездам магазина
For 1 • 1 То в ’по всем инструментам работ
If 1ыР(3) ■ KegJob 0 And KO(j) < Tn And E(l) < 24 Then
'если настройка отлична от нуля и момент освобождения меньше начала работы
Reap - MsgBox("Работа круглосуточная?", vbYeaNo + vbDefaultButton2)
If Reap — vbNo Then 'работа не круглосуточная
KO(j) * Tn 'момент освобождения устанавливается на начало работы
End If
End If
Next j

Рис. 8.9

154

Фрагмент программы для ввода данных о машинах

©2018, Мауэргауз Ю.Е.

Параллельные машины

рис. 5.22. Отличие в организации параметров узла ветвления состоит в необходимости запоми­
нания номера машины в узле intMz и фиктивной расчетной длительности в узле sngCz.
Цикл по исходящим узлам предыдущего уровня производится по всем работам, а для каж­
дой работы по всем включенным машинам. Этот внутренний цикл показан на рис. 8.10.
В начале цикла определяется момент Тк начала выполнения работы на машине и момент
ее планового окончания CompStage в календарных часах. Относительная стоимость затрат
UStage зависит от текущей наладки машины PMach.
Если окончание работы в новой ветви происходит позже, чем в узле-источнике, полезность
определяется по формуле 3.20, в противном случае - по формуле 3.26. В последнем случае
запоминается т.н. фиктивная длительность ветви FStage, равная длительности ветви преды­
дущего уровня; в первом случае фиктивная длительность совпадает с реальной. Отсечение
узлов по критериям проводится в соответствии с правилами, описанными в п.п. 3.4.1, 3.4.2 и
3.4.3. Оставшиеся ветви имеют метку MetCurStage(j) = 0.
После окончания построения дерева решений определяется область расположения вариантов
решения на листе и производится сортировка вариантов по убыванию массива V() критерия
полезности. Для полученного набора вариантов проводится поиск наиболее целесообразного

For j « 1 То MMach
'цикл по налимам'
If HttW 0 Than 'для включенной навыки ж возможной работы*
п • п ♦ X
'пориотй номер кт#х для разветвляемого узла мд текущем уровне'
Рг ■ 0 'начальное значение простоя*
If пиМ(Я • 0 Then
'работа на калике первая*
Тк(п) • C»X«id(Cl(Jb КУМПЬ ViMO), я, 5» X)
Пае
Тк(п) - CaleM(CX(Jb a(Vld(lb VlddMachl^h Яг Я X) 'момент качала ново* работы
ЕМ If
Вмс - Тк(п)
If гЩ > Тк(п) Then
₽г • г(1) * Тк(п)
'время простоя*
Тк(п) ■ Arrival (г (1>)
'начало работы в момент ее поступления на налогу'
ЕМ If
ConpScage(n) * Са1еМ(Тк(п), PU» Я* Я Я 'момент окончания работы в календарных часах
If Сярви 'момент начала выполнения узла
CnpStagt(l) - Сомр(к) 'момент начала выполнения узла
If CoapStage(l) > Cd(i) Then
Cdl(i} - ConpStage(l)
'Момент окончания работы варианта*
End X S
NPStage(l) - MP (к) 'строка работ в узле
MachStage(l) - Mean (к) 'номер малины а узле
к - Par(к)
'цикл до начала дерева поиска*
Loop
For 1 « 1 То BetaV

* наполнение строк работ на каждой калине для текущего варианта'

FStage(MachStаде(1>) - FStage(MachStаде(1>) ♦ p(MPStage(1), MachStage(1))
* накопление трудоемкости на мякине
Hext 1

■axU - Application.Ках(FStage0) 'для манимы с намбольвей загрузкой
■inU - махи
For 1 - 1 То КИасЬ
If MetkaM(l) - 1 Then 'дня включенных нашим
If FStage(1) < MinU Then 'поиск минимально загруженной манимы
■InU - FStage(1) 'для включенной машины с наименьшей загрузкой
End If
End If
Next 1
Xf minU > 0 Then
Kn(i) - Round (aaxU / ninU, 1) 'коофффинмент неравномерности загрузки
Else
Kn(i) - 0
End Xf
Next 1

Фрагмент определения длительности и коэффициента неравно­
мерности загрузки для каждого варианта

Рис. 8.11

156

© 2018, Мауэргауз Ю.Е.

Параллельные машины

8.2.5

Перепланирование расписания

В настоящем параграфе рассмотрим составление расписания при любом изменении началь­
ной даты планирования, что возможно как при появлении нового календарного задания, так и
при необходимости выполнения срочной работы. Рассмотрим пример перепланирования зада­
ния, первоначально имеющего вид, приведенный на листе 1 в книге MBook4.xls.
Как было указано в п. 8.2.1. задание на 15.09.16 8:00 состоит из 40 работ шести видов.
В случае, показанном на календарном графике, в течение первого и второго рабочего дня
планируются две 8-часовые рабочие смены. Следующий календарный день выходной, после
которого опять планируется двухсменная работа. Выбранный план обработки показан выше на
рис. 8.4.
Поскольку продолжительность первого рабочего дня в данном случае составляет 16 часов,
при работе в точном соответствии с расписанием, в течение дня (до момента 24 часа) на пер­
вой машине должны быть полностью выполнены работы 1, 5, 3, 19, 38, 9, 11, 24, 33. В это же
время, на машине 4 выполняются работы 2, 21, 6, 29, 16 и начинается работа 40; на машине
6 выполняются работы 7, 12, 35, 10 и начата работа 14. Положим, что к моменту окончания
первого рабочего дня появилась срочная работа 41 вида 3 с требованием немедленного выпол­
нения и, конечно, обеспеченная заготовками. В такой ситуации требуется перепланирование
расписания, начиная со следующего рабочего дня.
Для корректировки расписания скопируем лист 1 на лист 2, очистим этот лист от резуль­
татов предыдущего расчета и введем данные о выполнении. Кроме того, в конце исходной
таблицы запишем строку нового задания (рис. 8.12).
......................... Трудоемкость в нормочках д......
Обоакаче Требуемый Ожидаемый Вод
калеодарн календарный

Весовой Отмотка Машина Машина Манима Машина iМашина ; Машина

юэффичи «мпвян.
готовности поступления
поело
поело
начала
работы) начала
работы оит
ИМЯ
" т............. -1
4......
1
0
100[
0
2
..... 2
.........
0
з
1
3
1
1
100;
ОД
1
1
4
0
5
°
Г
5
0
1
1
100
1
б
2
1
100
1
7
3
1
0
1
100
2
1
1
1
8
0
2
9
0
1
100
1
2
10
3
1...... 100
0
2’...........
11
0
4
1
100
1
2
1
3
100
12
2
1
13
0
5
0
14 ...........
о
2
3
1...... 50

*»•(*

.......Л..
1М^

38
зэ
40
41

4
4
4
1

0
0
0
1

1
3
2
3

1
1
1
3

100
0
70
0

2
2
2
1
-I
1
2
1
-1
3
1
1
-1
3
2

1
2
3
2

Л

3

5

..... Л... . ...■
3
*
4;
4
з!
зз
4
4
-ij
2
33;
2
44
4
5
5;
t'
2
3=
1
з
•1
•1
3
4'
4;
2
2
2
3
з
-1
3
3
3
-1
4
4
4
5
5
4*
4
3
3>
з
4
4
3
3
з
2
3
-1
2
3
4j
4
4
4;
4
.3....... ..... 3;............3;......
......4
.... 4

3

2
3
4
з.

2
3
4
3

2
3
4
3

3
4
б"
4

3
4
5
4

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

(с) 2018, Мауэргауз Ю.Е.

157

Параллельные машины

Для подготовки нового расписания в таблице состояния машин необходимо указать дату
этого нового состояния. Кроме того, для каждой машины необходимо указать вид настройки
в начале дня и ожидаемый момент освобождения. В данном случае на машине 1 последней
выполнялась работа 33 вида 4, и к моменту начала нового рабочего дня в 8 часов машина 1
была свободной; машины 4 и 6 в 8 часов заняты работами 40 и 14 (обе работы вида 3).
Положим, что эти работы при перепланировании могут быть прерваны. В таком случае
в таблицу исходных данных заносятся их проценты выполнения (70 и 50 соответственно), а
моменты освобождения машин 4 и 6 считаются совпадающими с 8 часами.
Для проведения подготовки к перепланированию необходимо сдвинуть календарный график
на единицу влево. После этого, можно указать на использование режима перепланирования и
ввести данные о дате перепланирования и границах пересчета исходного задания (аналогично,
например, п. 5.7). После пересчета строки законченных работ автоматически удаляются, а даты
уменьшаются на одни сутки.
После подготовки к перепланированию, следует провести новый расчет расписания. В дан­
ном случае работа 4 оказывается просроченной, и для нее целесообразно ввести высокий весо­
вой коэффициент, например 5.
При вводе данных обязательно необходимо откорректировать границы исходных работ. В
данном примере система предлагает 10 не доминируемых вариантов, из которых можно вы­
брать, например, вариант 7, рекомендуемый методами Гурвица и Сэвиджа. Результат расчета
иллюстрируется графиком Ганта (рис. 8.13).
Из диаграммы Ганта следует, что новая срочная работа 41 вида 3 запланирована на машине
6, которая к моменту освобождения уже настроена на этот вид работы. Работа 4 вида 5, которая
серьезно просрочена, запланирована непосредственно после переналадки машины 4 на этот
вид работ. Необходимо отметить, что работа 4 не включена в график более производительной
машины 1, т.к. это исключается по техническим возможностям (в соответствующей графе для
работы 4 стоит число -1). Это же относится и к работе 8, также выполняемой с опозданием.

Рис. 8.13

158

Диаграмма Ганта для откорректированного расписания

© 2018, Мауэргауз Ю.Е.

Параллельные машины

В данном случае в первой группе работ на машине 1 рекомендуется сначала выполнить
работу 26 с трудоемкостью в 1 час, и только после этого выполнить работу 17 с трудоемкостью
в 2 часа.
Сравним откорректированный план по состоянию на 16.09.16 с остатком плана, составлен­
ного в предыдущий день (рис. 8.14)
Как видно из рис. 8.14, необходимость выполнения новой работы 41, а также введение
высокого весового коэффициента на работу 4, существенно повлияли на распределение загрузки
на всех работах. Прежде всего, работы 41 и 4 оказались на первом месте для машин 6 и 4.
Ряд изменений произошел и на машине 1. В частности, работы 20 и 30 был переброшены на
машину 4, был изменен порядок выполнения работы 22 (рис. 8.13).
Все работы вида 5 (кофейногоцвета), к которой, в частности, принадлежит работа 4, скон­
центрировались на машине 4, а оставшиеся работы вида 6 (красные) перенесены на машину 1.
Остающиеся работы вида 1 (лимонные) распределены между разными машинами, что, в первую
очередь, связано с технической невозможностью выполнения работы 8 на машине 1.

8.2.6

Моделирование расписания

На листе 3 приведен пример для моделирования расписаний, содержащий 60 работ для
четырех включенных машин. Расчет этого пример приводит к семи недоминируемым вариантам,
из которых выбран вариант 4, рекомендуемый методом Сэвиджа (рис. 8.15). Составленное
расписание достаточно удовлетворительно распределяет работы группами на всех включенных
машинах.
На следующем листе представлены варианты расчетов расписаний при различных значениях
ограничителей ветвления. На первом шаге моделирования установлены значения В1 = 64,
В2 = 2 и ВЗ = 0,05, которые применялись на листе 3. В этом случае количество вариантов
равно 7, а длительность решения составляет 17 сек.
При увеличении значений ограничений Bl, В2 и уменьшении ВЗ пучок возможных ветвей
дерева расширяется, что приводит к большому значению количества узлов на каждом уровне
построения дерева. При В1 = 64, В2 = 3 и ВЗ = 0,03 длительность решения составляет 57 сек.
С уменьшением В1 до величины 25 количество вариантов падает до 9, а длительность решения
составляет 24 сек. При увеличении коэффициента ВЗ до значения 0,05 без изменения В1 и
В2 пучок решений становится излишне узким и многие ценные варианты решений теряются.
Качество решения при различных значениях ограничителей можно оценить также по значе­
нию коэффициента запаздывания Kz. Из всех вариантов проведенного моделирования, только
в случае с В1 = 25, В2 = 3 и ВЗ = 0,03 можно использовать решения с коэффициентом Kz,
равным 0,1. Во всех других случаях этот коэффициент заметно больше.

План обработки на 16.09
Вариант 2 Машина 1:26,17, 15,28,
Вариант 2 Машина 4: 4,20,13,30,37,
Вариант 2 Машина 6: 41,14,23,18,39,

32, 31, 22,36

34

8,27,

25,40

Остаток плана обработки на 15.09
Вариант 2 Машина 1: 26,17,

15,22,

Вариант 2 Машина 4: 40,31,

8,27,32,

Вариант 2 Машина 6:14,23,18,

20,30,

25, 39

28,36

13,4,37,

34

Рис. 8.14 Сравнение откорректированного плана с его предшественником

(с) 2018, Мауэргауз Ю.Е.

159

Параллельные машины

Изменение психологического коэффициента может приводить к перераспределению загруз­
ки работ по машинам. Снижение психологического коэффициента ниже значения 0,1 несколь­
ко ухудшает показатели расписания: повышаются коэффициенты неравномерности загрузки и
коэффициент запаздывания, снижается коэффициент группирования. Повышение психологиче­
ского коэффициента до значения 0,15 может уменьшить Kz до 0,08, правда за счет увеличения
коэффициента неравномерности загрузки.
На рис. 8.16 показана зависимость коэффициента загрузки от планового горизонта. Оче­
видно, что загрузка участка из четырех машин невелика и не превышает 0,7.

160

Рис. 8.15

Диаграмма Ганта для четырех машин и 60 работ шести видов

Рис. 8.16

График зависимости загрузки от горизонта планирования

(с) 2018, Мауэргауз Ю.Е.

Параллельные машины

Для изучения влияния горизонта планирования на качество расписания выбран вариант
с психологическим коэффициентом, равным 0,1 и значениями В1 = 25, В2 = 3 и ВЗ =
0,03. На рис. 8.17 приведены последовательности загрузки всех четырех машин при различных
горизонтах планирования. Проанализируем полученные результаты.
При любом горизонте на каждой машине автоматически организуются группы работ. Со­
став этих групп достаточно устойчив в начальной части расписания. С увеличением горизон­
та перераспределения работ между машинами обычно не происходит, а имеет место добавка
дополнительных работ. При увеличении горизонта работы с малой трудоемкостью часто вы­
полняются раньше работ с большей трудоемкостью, иногда даже в том случае, если требуемая
дата выполнения последних раньше.
На рис. 8.18 приведены графики изменения показателей расписания в зависимости от пла­
нового горизонта.
Из рассмотрения графиков на рис. 8.18 следует, что большинство показателей с ростом гори­
зонта после 50 часов колеблются относительно некоторых постоянных значений. Причина тако­
го поведения заключается, прежде всего, в том, что участок сильно недогружен - коэффициент
загрузки равен 0,5. Однако при увеличении горизонта после 140 часов быстро растет показа­
тель неравномерности загрузки машин (кривая 3), а также коэффициент запаздывания (кривая
5). Поэтому значение горизонта, равное 140 календарных часов, следует считать критическим.

Н, часы
Машина 1
302
402
50 221. 10,3. 15. 6.16
60 2,21. 1Ц 15. 6.16
70 2.21. 19,3. 16, 6.16
80 2.6.2129 19.32, 16. 26, 20,13
90 2.621.29, 19 22, 16. 26. 20,13
100 2.62129, 19.36,32. 11,26, 20.
110 2.62129, 192822 1126. 20,
120 221, 3,19.38.50, 29,6.16, 32
130 221, 3.192020, 292.16. 32
140 221 3.19,30.50, 29.6.16, 32
150 221. 3.192620. 29,6,16. 32
160 221. 3,19.3820, 292.16, 32
Н, часы

16,31.40.
1621.40.
31. 927.
31. 927,
31. 927.
31. 927,
31, 927.

27. 25,34
27. 25.34
30.37. 45
3027. 45
30.37. 45
3027
30.37

Машина 2
1.52
1,5.3
1,5.62, 22
1,56.9, 22
12.8Д 22
1,5.3, 15,2622. 31
1,5.3. 16.2822, 31
1.5,3. 15.2622.36, 3027
1.52. 15262226. 3027
1.5. 16.5228, 1726. 4620,4,
1,5, 15,5220. 1726. 4620,4.
1.6. 15.5220, 1726. 4620.4,
1,6. 15,52,28» 1726. 4620,4.
1,5, 15.5228, 1726. 4620,4,

Машина 4

4925,5324, 4 7
4925,63.44, 47
49252144. 47
4925,34,53. 56
4925,34.53, 58

Машина 5
4
4

50 7.10.12,1423.18

11.17, 20,13,4

60 7.12Ю.1423.18

11,17,

70
80
90
100
110
120
130
140
150
160

7.1210,1423.10
7,12.10.1*23.18. 8,927. 26
7,1210.1423.10, 8.927. 25
7,35.12.10,14,23,39,42,18. 8
7,36,12.10.14,23.39,42,18, 8
7.36.12.10,142329,42.10. 6.
7.35,12,10,142329,42,10. 8.
7,35.12.10,142329.4210. 8
7.35,12,10.142329,42,10, 8,
7,35,12.10.1423.39,4210. 8.

Рис. 8.17

22 *3
22,43
22.43
22.43,57. 60. 65
22.43,67, 60. 65

20,13.4

11.17, 20.13.4
24,33.11.17, 420
24,33,11,17, 420
24,33,41.17, 13,4. 9,
24.33.41.17, 134, 9.
24,33.41,11,54.51.48.
24.33,41.11.54.61.48.
24,3321.1164.51.48,
24,33,41,11.64,61/48.
24,3321.11.64.51,48.

43
43
13, 34.40. 36
13. 34,40. 36
13. 34,40, 36
13.69, 45.56, 36. 40,44. 47
13,59, 46,56, 36. 40,44. 47

Последовательности выполнения работ при различных горизон­

тах

© 2018, Мауэргауз Ю.Е.

161

Параллельные машины

Рис. 8.18 Параметры расписаний для разных горизонтов: 1 - приведенные
затраты переналадок за один рабочий день; 2 - полезность выполняемого
набора работ; 3 - коэффициент неравномерности загрузки; 4 - коэффициент
группирования; 5 - коэффициент запаздывания, умноженный на 5

8.3

Расписания для параллельных машин с работой «на склад»

При составлении расписания для производства «на склад» отдельные заказы потребителей
не рассматриваются. В то же время это совершенно не означает, что их интересами можно
пренебречь. При такой стратегии необходимо обеспечить, по возможности, достаточный запас
каждого выпускаемого продукта в течение всего периода производства. Такой запас должен
обеспечить как удовлетворение предполагаемого среднего спроса, так и небольшие отклонения
спроса от средних значений. Для последнего необходимо сохранять некоторый страховой запас.
Групповое расписание возможно также при планировании «на склад», которое характерно
для процессного производства, изготовления метизов, инструментов общего назначения и т.д.
В таком производстве, как правило, минимальное количество совместно изготовляемого про­
дукта составляет т.н. «техническую» партию. Последняя зависит от объема машины, размера
упаковки, величины транзитной нормы и т.п. Экономичный размер заказа (EOQ), определяе­
мый по известной формуле Уиллиса, также может быть использован в качестве технической
(наименьшей) партии. С экономической точки зрения имеет смысл объединять технические
партии каждого продукта в группы, которые можно выпускать без переналадки.
С точки зрения классификации расписаний, задача о параллельных машинах при производ­
ственной стратегии «на склад» и процессном типе производства имеет структурную формулу
8.2, отличающуюся от стратегии «под заказ» в формуле 8.1.

R\nmit, Di, Siki\U, V.

(8.2)

В формуле 8.2 задается суточный расход Di каждого г-ого продукта, по которым вычис­
ляются необходимые моменты выполнения каждой технической партии. Кроме того, процесс
обработки технической партии не должен прерываться, на что указывает параметр nmit.

162

© 2018, Мауэргауз Ю.Е.

Параллельные машины

8.3.1

Исходные данные задачи

Исходные данные для составления расписания настоящей задачи записываются на листе
MS Excel электронной книги MBook5.xls. Эта книга в состоянии поставки состоит из четырех
листов, на которых иллюстрируются различные аспекты составления расписаний.
На листе 1 в табл. $В$6:$АК$13 находятся технические данные и нормы времени на
переналадку, фрагмент которых приведен на рис. 8.19. Как обычно, по столбцу изменяются
продукты, с которых ведется переналадка, а по строке - продукты, на которые переналад­
ка осуществляется. Если какой-либо продукт на соответствующей машине производиться не
может, для него записывается значение нормы переналадки, равное -1.
В этой задаче полагается, что объем партии продукта зависит от конкретной машины,
а время обработки продукта может зависеть как от возможностей машины, так и от вида
продукта.
В табл. $F$16:$K$23 записаны данные каждой из машин, причем одна из машин находится
в отключенном состоянии. По каждой работающей машине приведены данные о ее настройке
на конкретный вид работ на момент планирования (начало нового рабочего дня) и ожидаемый
момент освобождения.
В табл. $F$26:$P$29 описан календарный график работы машины по дням, начинающийся
с первого дня выполнения составляемого расписания. Для каждой смены календарного дня
проставлено количество рабочих часов. В приведенном примере предусмотрена двухсменная
работа с 12-часовым рабочим днем.
В табл. $Q$16:$V$23 приведены данные по текущим запасам каждого продукта по со­
стоянию на момент планирования. Кроме того, указывается скорость расходования продукта,
наличие задолженности по поставкам и необходимость в страховых запасах, а также момента
поступления необходимого сырья.
Как указывалось в п. 2.3, под плановым периодом G понимается количество рабочих дней,
по прошествии которых план регулярно пересчитывается. В данной задаче величина G при-

нормы времени в часах на переналадку для машины 1

Технические данные и

Продукт Продукт Продукт Продукт Продукт Продукт ;
Объем
технической
партии в литрах
Продолжительное

1

2

2000

2000

4

3

5 .....

2000

2000

6

2000

2000

ть технической

2

партии в часах

2

2

3

*

3

2

Продукт 1

0

0,5

1

1,5

Продукт!

0,5

0

1,5

1,5

1

1

Продукт 3

1,5

1

-1

2

2

2,5

1

2

Продукт 4

1

1,5

1

0

1

Продукт 5

1

2

2

1

0

Продукт 6

1

1

1,5

1

1,5

Рис. 8.19

0........

Фрагмент технических данных и норм времени на наладку для

машины 1

© 2018, Мауэргауз Ю.Е.

163

Параллельные машины

нята равной трем рабочим дням. Учитывая, что третий календарный день в графике является
нерабочим, величина планового горизонта h выбрана равной четырем календарным дням.
Прежде всего, положим, что под работой при стратегии «на склад» будем понимать изготов­
ление одной технической партии любого продукта на любой машине. Количество таких работ
не задается как исходная величина, а определяется в процессе расчета. Более того, планируе­
мое количество работ пересчитывается на каждом уровне построения расписания и полностью
определяется только в конце расчета.
Будем также полагать, что расписание составляется не для определенного количества работ,
как было выше в предыдущем параграфе, а для установленного горизонта планирования h в
календарных днях. В таком случае для каждого г-ого продукта на начальный момент времени
можно рассчитать необходимый объем ро(О его производства на горизонте:
ро(г) = hD(i) - Zo(*) - Zi(i) + B(i) -h Zc(i^

(8.3)

где D(i) - ожидаемый спрос г-ого продукта в течение одного календарного дня; Zo(i) начальный запас; Zi(i) - ожидаемые поступления; B(i) - задолженность по поставкам; Zc(i) нормативный страховой запас.
Обозначим объем технической партии г-ого продукта на J-ой машине через У^, а продолжи­
тельность изготовления этой партии через Fij. Поскольку заранее неизвестно, какой продукт
и в каком количестве будет изготовляться на конкретной машине, то будем полагать, что г-ый
продукт изготовляется техническими партиями некоторой средней величины
1

м

Г^м^Ъ’

2.099; Кп «1.». Кд-8.6; Kz ■ 0.2; Стак ■ 114

Рис. 8.21

Показатели качества недоминируемых вариантов

План J®!®^™!00 Варику 1 „
J „
1
L___ _________
Машина fr в (рз/16) 40^41 (Р2/6)86; 86.5 (Р1/5) 96,5; 97,5 (RIHflOeJ;

Машина 2:
Машина 3:
Машина 4:
Машина 6:

10 (Q1/5) 25; 25,5 (Q2/1) 29,5; 30,5 (Р1/6) 48,5; 81,5 (РЗ/4) 93.5; 94 (R1/3) 106;
06;
8{RV3j26;26^
:
8 (Q1/4) 24; 25 (R1/12) 106;
!
i

Рис. 8.22

166



г

1 „

План обработки по варианту 1

(с) 2018, Мауэргауз Ю.Е.

=_

Параллельные машины

Рис. 8.23

Диаграмма Ганта для участка параллельных машин

щийся объем продукта до поступления, а затем, через дробь, объем после поступления. Если по
продукту имеется задолженность, ее объем записывается через дробь после величины объема
после поступления.

Например, по продукту РЗ в начальный момент времени 8 часов имеется запас, равный 4
кубометра и задолженность, равная 0,4 кубометра. Изготовление этого продукта запланировано
сначала на машине 1, где выпускаются 16 партий (рис. 8.23), а затем еще изготовляются 4
партии на машине 2.

Работа участка в данном примере круглосуточная и первое поступление имеет место в
календарный момент 10 часов (рис. 8.24). В дальнейшем поступление продукта постепенно
нарастает и после шестнадцати партий в момент 40 часов достигает значения 22,8 кубометров.
Затем запас расходуется до величины 4,3 кубометра и начинает пополняться в момент, равный
84,5 час. После выполнения четырех партий и достижения горизонта планирования, запас
продукта РЗ сохраняется в размере 2,2 кубометра.

Продукт Р1: 8 (3) 33.5 (ОН .5/2.3) 35.5 (ОЛ ЛНЛ) 39,5 (0/1,54)5) 4 2,5 (0.4Л.9) 45,5 (1.372.8) 48,5 (2,20,7) 88,5 (№й,6| 90,5 ((ИО)
92.5 (0/271,4) 94,5 (0,2/2,2) 96.5 (1.873,8) 104 (2.272.2)
Продукт Р2: 8(570.5) 11 (374.5) 14 (3/4.5) 17 (ЗМ.5) 20 (3/4,5) 23 (374,5) 26 (374.5) 29 (3*4,5) 32 (374,5) 35 (374,5)38 (3/4,5)
40.5 (3,274,7) 41 (4.475,9) 43 (4,9/6,9) 43,5 (6.6/8.1)44 (7,8/9.3)45 (8,8710.8) 46,5 (10/11,5)47 (11,2/13,2)47 (13,2/14.7)
49 (13,7/15.7) 49,5 (15.4/16.9) 50 (16,6/18,1) 84 (0.8/2.3) 84 (2,374,3) 86 (3,375,3) 87 (4.8/6,3) 90 (4.8/63) 93 (4,876,3) 104 (0,770,7)
Продукт QT 8 (0,3) 12 (0/170,3) 13 (0,672.1) 16 (1,7/3 2) 16 (3,274,2) 19 (3.8/5.3) 20 (5,276.2) 22 (5.977.4) 24 (7,178,1) 25 (8/9,5) 104 (0W1.4)
Продукт R1 8 (6/1) 12 (3.374,8) 16 (3.174,6) 20 (2,974,4) 29 (0,771,7) 33 (0/1) 37 (071/0,7) 41 (0/171,4) 45 (0/172,1) 49 (0/172.8) 86 (ОЛ.6/17.2)
66 (0/1715,7) 90 (0/1,5716,4) 90 (0/1714.9) 94 (0/1,6/15,6) 94 (0/1/14,1) 98 (071,5/14,8) 98 (ОЛЛПЗ.З) 98 (0/1/11,8)
100,5 (0/2/11,8) 102 (0/1,5/10.4) 102 (071.5/8.9) 102 (07V7.4) 103,5 (0/2/7) 104 (ОЛ/5.2)
Продукт Q2; 8 (0.5) 24.5 (0/1.5/1.1) 28.5 (0/1,5) 29.5 (1,472,9) 32,5 (2,674.1) 36.5 (3.7/5,2) 99 (0/1,571,1) 104 (0ЛИМ)
Продукт РЭ: 8 (4/0,4) 10 (2,874.8) 12 (4/6) 14 (5.2/7 2) 16 (6,4/8,4) 18 (7.6/9,6) 20 (8,8/10,8) 22 (10/12) 24 (11.2713J) 26 (12,4/14,4)
28 (13.6/15,6) 30 (14,8/16.8) 32 (16/18) 34 (17,2/19.2) 36 (18,4720.4) 38 (19.6/21.6)40 (20,8/22,8) 84,5 (4,375,6)
87,5 (4,676,1) 90.5 (4,8/6,3) 93,5 (5.176,6) 104 (2,2/?.?)

Рис. 8.24

Движение запасов в процессе выполнения расписания

© 2018, Мауэргауз Ю.Е.

167

Параллельные машины

Аналогичное движение запасов имеет место и по остальным продуктам. Программа позво­
ляет просмотреть графики изменения запасов во времени в процессе выполнения расписания
(рис. 8.25). На этом рисунке положительные значения на графиках соответствуют запасам про­
дуктов, а отрицательные - значениям задолженностей. На графиках видны зигзагообразные
участки поступления запасов, т.е. производства, и участки, на которых графики описывают­
ся прямыми линиями, наклон которых определяется только скоростью расходования продукта.
Интервал времени, в течение которого по всем продуктам имеет место только расходование,
относится к нерабочим дням.

Рис. 8.25

8.3.4

Графики движения запасов и дефицита продуктов

Листинг основной части программы

На каждом уровне построения дерева расписания используются те же основные массивы,
что и в предыдущей задаче 8.2.4: UStageQ, V Staged Par Staged CompStageQ, NPStaged,
TkQ и FStaged. В данном случае, однако, заранее неизвестно количество узлов построе­
ния дерева. Более того, для разных вариантов решения такое количество может быть разным.
Поэтому здесь необходимо использовать дополнительный массив LastNodeQ, в котором запи­
сываются номера последних узлов для каждой ветви решений.
При вводе исходных данных программа автоматически переносит данные с листа в пере­
менные и массивы аналогично п. 8.2.4. Параллельно с нормами переналадки, вводятся массивы
Vol объемов технических партий и Pbat для их продолжительностей.
Остановимся на вводе данных о начальных запасах продуктов (рис. 8.26).
На рис. 8.26 показан расчет потребности р по каждому продукту на горизонте планирования
и введен массив Work текущих значений остающихся потребностей.

168

(с) 2018, Мауэргауз Ю.Е.

Параллельные машины

BGot * Celia(2, ■У").Value 'Горизонт планирования в календарных днях'

For 1 • 1 То HVW 'имкя до количеству видов продуктов
Vid(i) ■ Cells(Alfa, бамва + 1 - 1).Value 'Обозначение продукта
StockO(i) - Cells (Alfa + 1, баям ♦ 1 - 1).Value 'Складской запас смрад на моиентплакирования
BackU) • Cells (Alta * 2, 6мм * 1 - 1} .Value 'Задолженность по продукту
Сом(1) “ Cells (Alfa ♦ 3, баям ♦ 1 - 1>.Value 'Планом^ расход в литрах/календаркий день
Save(i) - Cells(Alta ♦ 1, баям + 1 - 1}.Value 'Страховой запас продукта а литрах
г(1) • Cells (Alfa ♦ 5, баям ♦ 1 - 1) .Value 'Календарный день готовности сирая
If r(i) - Int(r(i)) Then
'если срок задам в полных календарных днях
г(1) • (х(1) - 1} * 24 4 Тп 'срок поступления в часах равен моменту начала работы '
If г(1) 0 And е(1, 1, к) • О Then
'если мамина включена м продукт можно обрабатывать на этой малмне*
п • п ♦ 1 'количество пригодных маним дня продукта
If п ■ 1 Then
sngDur • Void, к) 'размер партии дна первой денимы
flee
If Void, k) < sngDur Then
sngDur • Vol dr k)
’маимемьаий размер партии для всех машн*
end If
End If
pavd) • pavd) * Vol dr k) 'сушмримй объем на всех каминах
paved) • paved) ♦ feat dr k) 'суммарная продоаэстельность на всех малашах
End If
Мехе k
If п > 0 Then
pav(i) ■ pevd) / n
'средний объем партии*
Batch d) • Round (Work d) / pavd), 0)
'начальное усредненное количество партий*
paved) ■ paved) / n
'средняя продолжительность обработки*
dd) “ (StockOd) ♦ Stockld) - Baakd) - Saved)) / Coned) * 24
'момент израсходования имепаегося запаса в календарных часах
If dd) > 0 Then 'если резерв времени положительный
ddd) “ WorkSoura(dd) > * количество рабочих часов в заданном сроке
Else
ddd) " О ' срок выполнения равен О
End If
gad) • dd(l) - paved)
'средний требуемый момент качала*
intWork ■ intWork ♦ Int(pd) / engDux) ♦ 1 'наиболъмее возможное количество партий на горизонте*
Е1ае
'если на включенных малинах наполнение работи невозможно*
МедВох ■ В списке есть работа, которая не может быть вмводнена ни на одной ив вклоченнмх машн •
Exit Sub
End If
aJd) “ 1
1 метка невыполненной работы'
Nip - Wip 4 р(1) / pavd) * paved)
'загрузка'
If Celled, "T") .Value - 1 And dd) 0 Then
MsgSox "Нревываетсл длительность календаря*
Exit Sub
End If
CcwpStage(n) * Tk(n) ♦ Pbata, 3) 'окончание технической парами
VStage(n) - (VO * KO(j) + VZak(NVid, 1, J, KO(J)f Tk(n), CoapStage (n))) / CoapStage(n)
'полезность всех возможных партий продуктов
MacbStage(n) * j 'номер малины
End If
Hext J
aJ(i) ■ 1
'возврат метки работы на невыполнение*
Hext 1

Рис. 8.28

Определение параметров узлов первого уровня

For intZ - 1 То intN
'цикл no узлам разветвления на уровне*
'расчетная полезность в созданном узле *
sngVz - V(TreeStage(intZ))
intMz - Mach(TreeStage(intZ))
'малина, работающая в узле'
angCz * FCoap(intZ)
'фиктивная расчетная длительность в узле
For i - 1 To MVid
'по продуктам
Work(i) - p(i)
'начальные значения объема работ*
d(i) - (StockO(i) 4 Stock! (1) - Back(i) - Save(i>) / Cons(i) * 24
'момент израсходования имеющегося запаса в календарных часах
Next 1
k " TreeStage (intZ)
* номер последнего узла '
Do Until к - О
intPer ■ NP(k)
'продукт в узле*
Work(intPer) * Work (intPer) - Vol(intPer, Mach (к))
'остающийся объем работ по продукту в узле'
If Work(intPer) < 0 Then
Work(intPer) • 0
End If
d(intPer) - d(intPer) + Vol(intPer, Mach(k)) / Сопя(intPer) * 24
'момент израсходования очередной партии в календарных часах
If d(intPer) > 0 Then

dd (IntPer) - WorkHours (d (intPer))
'момент израсходования очередной партии в рабочих часах
Else
dd(intPer) * О
End If
k “ Par(k)
'переход no цепочке*
loop
Next intZ

Рис. 8.29

Определение моментов израсходования очередных партий

© 2018, Мауэргауз Ю.Е.

171

Параллельные машины

For 1 - 1 То NVld 'по продуктам
aJ(i) - 1
'начальная установка меток работ на невыполнение*
Batch (1) • Round (Work (1) / pav(l), 0) 'остающееся количество партий продукта
99(1) " dd(i) - pav9(i)
'необходимый момент качала партии
Кекс 1
Flag * 1 'установка флага на окончание никла партий
For 1 - 1 То NVld 'по всем продуктам
If Batch(1) > 0 Then 'если хоть по одному продукту нужны новые партии
Flag “ 0 'флаг продолжения цикла
1 - livid 'окончание цикла проверок необходимости новых партий
End If
Hext 1

Рис. 8.30

8.3.5

Фрагмент расчета недостающего количества партий

Перепланирование расписания

В настоящем параграфе рассмотрим составление расписания при любом изменении началь­
ной даты планирования. Положим, что причиной перепланирования явилась необходимость
изменения скорости расходования продукта Q2 с 2,4 до 4 кубометров/сутки. Рассмотрим при­
мер перепланирования задания, первоначально имеющего вид, приведенный на листе 1 в книге
MBook5.xls.
Для корректировки расписания скопируем лист 1 на лист 2 и очистим этот лист от ре­
зультатов предыдущего расчета. Запуская макрос на листе 2, выберем режим «Подготовка к
перепланированию» и введем дату нового расчета.
Для подготовки нового расписания в таблице состояния машин необходимо указать дату
этого нового состояния. Кроме того, для каждой машины необходимо указать вид настройки
на момент начала следующего дня и ожидаемый момент освобождения (после начала рабочего
дня). Эти данные следуют из рис. 8.22 и рис. 8.24. Рассмотрим, например, состояние машины
1 к 8 часам следующего рабочего дня (рис. 8.31).
ПО^кР^В^1^^
~
.1______1____ 1_________ L
Машина 1: 8 (РЗ/16) 40; 41^6) 86; 86,5 (Р1/5) 96.5; 97,5 (R1/3) 106,5?
Рис. 8.31

Фрагмент плана, составленного на листе 1

Из рис. 8.31 следует, что в момент 32 часа (8 часов следующего дня) на машине 1 должна
выполняться очередная партия продукта РЗ, который в соответствии с таблицей запасов имеет
номер 6. Длительность каждой партии обработки продукта 2 на машине 1 согласно таблице
норм составляет 2 часа. Поэтому в момент 32 часа (или в 8 часов следующего дня) должна
быть закончена двенадцатая техническая партия. На рис. 8.32 приведен фрагмент движения
запасов продукта РЗ в течение первого рабочего дня.
Кроме состояния всех машин, на листе 2 необходимо ввести изменения в таблицу запасов.
В данном примере, в момент начала рабочего дня (32 часа старого расписания) запас продукта
РЗ составляет 16 кубометров, а задолженность полностью отсутствует.
После ввода состояния машин и запасов программа может быть запущена в обычном ре­
жиме, т.е. без подготовки к перепланированию. В данном случае программа предлагает 14
недоминируемых вариантов, из которых выберем, например, вариант 1.

172

© 2018, Мауэргауз Ю.Е.

Параллельные машины

Продукт РЗ: 8 (4/0,4) 10 (2,8/4,8) 12 (4/6)14 (5,2/7,2) 16 (6,4/8,4) 18 (7,6/9,6) 20 (8,8/10,8)
22(10/12)24(11,2/13,2)26(12^

Рис. 8.33

Движение запасов после перепланирования

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

8.3.6

Моделирование расписания

На листе 3 приведен пример для моделирования расписаний путем изменения параметров
ограничений Bl, В2, ВЗ и психологического коэффициента а. Величина В1 выбиралась равной
64, 25 или 16, В2 - равной 3 или 2,5, ВЗ - 0,01 или 0,02, а - равному 0,1, 0,05 или 0,15.
При большом значении В1 количество вариантов составило 38, а длительность выполнения
программы - 50 сек. При меньших значениях В1 количество вариантов не превышало 13, а
длительность составляла менее 40 сек.
Наибольший интерес представило сочетание параметров В1=16, В2=2,5, ВЗ=0,01 и а=0,1.
В этом случае программа предложила 13 недоминируемых вариантов, длительность расчета
составила 37 сек. В отличие от других сочетаний параметров моделирования, в этом случае
программа предусматривает варианты с коэффициентом неравномерности загрузки Кп=1,13 и

(с) 2018, Мауэргауз Ю.Е.

173

Параллельные машины

коэффициентом запаздывания 10=0,23, что существенно меньше, чем при других вариантах
моделирования.
На листе 4 представлен пример моделирования расписаний при различных плановых гори­
зонтах в пределах от 2 до 6 календарных дней. При горизонте свыше трех загрузка системы
остается примерно одинаковой и составляет около 0,9. На рис. 8.34 показаны графики измене­
ния показателей расписания.

Рис. 8.34 Параметры расписаний для разных горизонтов: 1 - приведенные
затраты переналадок за один рабочий день; 2 - полезность выполняемого
набора работ; 3 - коэффициент неравномерности загрузки; 4 - коэффициент
группирования; 5 - коэффициент запаздывания, умноженный на 10

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

8.4

Расписания для параллельных машин с переналаживаемым
формоизменяющим инструментом

Рассмотрим задачу составления расписания для нескольких не одинаковых параллельных
машин при последовательном выполнении работ с различными формоизменяющими инструмен­
тами. Таким инструментом может быть штамп, прессформа, экструзионная головка, фильерная
доска и т.п. При составлении расписания учитывается как необходимость своевременного за­
вершения каждой работы с заданным сроком выполнения di, так и экономия затрат на перена­
ладку машины.
Согласно известной структурной формулы теории расписаний, поставленная задача может
быть записана как
R^rji^Sjk^V,

174

© 2018, Мауэргауз Ю.Е.

(8.11)

Параллельные машины

где R - любое возможное количество не одинаковых параллельных машин; di - заданный срок
выполнения работ г; срок rji прибытия материалов I для изготовления деталей j\ Sjk - трудо­
емкость установки инструмента для изготовления деталей j на машину к\ U - относительные
затраты для выполнения всех работ; V - средняя полезность заказов за время выполнения
расписания.

8.4.1

Исходные данные задачи

Исходные данные для составления расписания настоящей задачи записываются на листе
MS Excel электронной книги MBook6.xls. Эта книга в состоянии поставки состоит из двух
листов, на которых иллюстрируются различные аспекты составления расписаний.
На листе 1 в табл. $A$4:F34 находится задание, состоящее из тридцати работ шестнадца­
ти различных видов (деталей). В каждой строке задания описываются параметры работ: номер
работы; требуемый момент день готовности; вид работы; количество в штуках; весовой коэф­
фициент работы и выполнение работы в процентах. Моменты готовности работ, как обычно,
отсчитываются от момента наступления календарного дня, являющегося первым в расписании.
Для каждой из деталей приведено время выполнения изготовления детали на соответствующей
машине в секундах (табл. $L$5:$P$20). Если работа на какой-то из машин не может быть вы­
полнена, в соответствующей графе записывается значение 0. Целесообразно записывать работы
в порядке возрастания требуемых дат их выполнения.
В табл. $S$5:$T$21 сопоставлены номера деталей и номера соответствующих возможных
прессформ. В частности для изготовления деталей 9 возможно применение прессформ с номе­
рами 8 и 9. В данном случае детали изготовляются из пластмасс, и поэтому износ прессформ
может не учитываться. При использовании более твердых материалов следует вести учет теку­
щего износа инструментов аналогично п. 7.2.
В табл. $W$5:$Y$45 приведены нормы расхода различных материалов для деталей каждого
вида в кг на одну деталь. Нормы времени в часах на установку прессформ для каждой из пяти
машин записаны в табл. $AA$5:$AG$20. Если прессформа не может быть установлена на
машине, в таблице записывается значение 0.
В табл. $АЕ$26:$А1$33 записаны данные каждой из машин. По каждой работающей ма­
шине приведены данные о выполняемом заказе (работе) и о номере прессформы, установленной
на машине на момент планирования (начало нового рабочего дня). Кроме того, указывается
плановый процент выполнения заказа в партии и ожидаемый процент выполнения партии на
момент планирования. Очевидно, что три работы приведенного примера (5, 7 и 17), уже начаты
и по ним следует указать отметки выполнения работ.
Так же, как и в предыдущих задачах, будем полагать, что, если в графе «Выполнение»
будет указана величина 100%, то при дальнейшем планировании начатая на машине работа
будет беспрепятственно продолжаться до вплоть до ее окончания. В противном случае, работа,
в принципе, можно быть прервана для выполнения другой, более срочной работы.
В данном случае положим, что работа 17 выполняется до величины 100%, а планирование
работ 5 и 7 может зависеть от производственной ситуации. Поэтому для работы 5, которая
выполняется на машине 2 партией в 100%, в графу «Выполнение» заносится величина 20%, а
для работы 7, выполняемой на машине 5 партией в 50 процентов, эта величина также равна
20%.
В табл. $АЕ$41:$ВС$51 описан календарный график работы машины по дням, начинаю­
щийся с первого дня выполнения составляемого расписания. Для каждой смены календарного
дня проставлено количество рабочих часов, для каждой машины указано плановое время прове­
дения технического обслуживания. В приведенном примере предусмотрена двухсменная работа
© 2018, Мауэргауз Ю.Е.

175

Параллельные машины

с двенадцатичасовым рабочим днем. Кроме того, указано плановое количество операторов в
каждой смене.
В приведенном примере полагается, что плановый период составляет 5 рабочих дней, а
плановый горизонт совпадает с полным набором имеющихся работ.
График ежедневного поступления сырья в тоннах приведен в табл. $L$30:$T$45. Всего в
данном примере используются 14 видов материалов, из которых основным является полипро­
пилен.
На листе 2 приведен возможный вариант перепланирования этого задания.

8.4.2

Работа с программой

Для работы с программой планирования в MS Excel устанавливается соответствующий ра­
бочий лист, например, лист 1 и осуществляется запуск макроса. Система сообщает о последней
дате планирования и предлагает одну из двух возможностей - подготовку планирования с
новой датой или повторение расчета с последней датой.
В форме «Ввод данных» задаются основные параметры процесса. Кроме обычных параметров
начала и конца вводимых таблиц, здесь предусмотрены поля задания параметров моделирова­
ния: амплитуды первого и последующих уровней ВО и В1, параметр начала ограничений В2 и
декремент затухания ВЗ. Благодаря этому пользователь получает возможность расширять или
сужать дерево решений на каждом уровне и, соответственно, варьировать недоминируемые
варианты решений последнего уровня.
Система автоматически рассчитывает загрузку участка (по включенным машинам) и вы­
дает соответствующее сообщение. По окончании расчета все возможные и не доминируемые
варианты выводятся на лист. На рис. 8.35 приведен вариант 1.
Из рис. 8.35 видно, что все работы на горизонте расписания автоматически распределены
по возможным машинам. Порядок выполнения работ, в значительной степени определяется
требуемой датой их выполнения, однако это не всегда так. Напомним, что последовательность
Вцимгмм!

Машина 1ПА1
ПрессфорыаишМТО! Закам 1/100% дотам Зекааичестм 1900мм , 10/100%. догм 2 а комчеспи 2000шт начат Ч ммчамю Мйвс.
Прессам мне 1*678 Закам 4/100%. 9/100%. доим 5 в количество 2000шт. начало 102 окончание 147чвс
Лроссфорые мШ Закам 3/100%. дотам 4 • комчест»» 110Ш ночам 153 мокши 17|ш
Просей* **NM№ Закам 11Л00%, 1*100%. дотам 1 вомнкф2М№., мечам Ж «онч*^
Првссфорые ине Н^Заквм 21/100%. дотам 4 в калнчостве ЭООФшт начало 261, скончание ЗДчас
Просей*» **№797: Эммы 217100%, 25/100%. датам 13 а количестве 2100шт., мамам 341, саммит 384чос
Машина ТПА2

Пресефорыа им 1*М7 Зак» 5^. дотам 6 в кштичк»»е 240шт. лоремамироомно 8час
Просей*» мы». **56 7 Замам 5Л0%, 23/100% дотом 6 о количество 19«шт. начало 8. окоичомно 4Эчас
Просей*» мыв 1*194 Заказы 2/100%, 1*100% 29/100%. датам 1 а «аличеспи 3400шт , начало 41 мпичамио 1Э1час

Просей*» им 1*790. Замом 7/100% 227100% 1*40%. датам 0 а величество 5100шт. мамам» М2, окончание 27«чве
Машина ТПАЗ

Пресофорые мне 1*790 Закам 6/40%. 20/50%. 30/50%, датам 9 в количество 5600шт, начало 11 окончание 211чос.
Машина ТПА4

Машма ТПА5

Првсофорыа имв№02 Зака» 17/100%, датам 14 а кончает»# 160%ш. ««тайн» 23час
Просей*» м»1*002. Закааы 2*100%, датам 14 в количестве 1000шт. мамам 23, окончание 4фчвс
Просей*» маМИЙ2 Звоны 2*100% М/100%, датам 12 в количестве 2700шт . немало 91, окончена» 1С0час.
Просей* mb >*798 Заказы 8/100%, датам 10 в количестве 1509шт начало 169. окончание 191час
Просефсрыв ине 1*998 Заказы 10/100% 12/100%. детам 10 в количестве 2000шт. начало 201. онемение 266час
Просей*» **1*Ю7 Заказы 13/100%, дотам 15 в количестве 1590шт мамам 274, окоичомео 327мм
Просей*» *» *^ Закам 2*100%. дотам11 в количество 1090шт. мечом»Ж окончание 345час
Проссфорыв им» 1*223 Заме» *20%. дотам 9 в количество 1000шт. перепланирование Очес
Просей*» **МЙ23 Закам *40%. 20/50%. 3*50%, дгам 9» количеств» 5500шт, кечем8, молчание 219час

Рис. 8.35

176

Вариант 1 возможного расписания

© 2018, Мауэргауз Ю.Е.

. . !____

Параллельные машины

выполнения работ устанавливается по цепочке дерева решений для последнего уровня постро­
ения этого дерева. В этой цепочке имеются различные недоминируемые решения предыдущих
уровней, включающие неочевидные последовательности работ. В данном случае оказалось целе­
сообразным объединить выполнение работы 1 с работой 10, используя одну прессформу №706.
Аналогично, начатая ранее на машине 2 работа 5 продолжается, и затем к ней присоеди­
няется работа 23. Только после этого планируется выполнение работы 2, к которой также
присоединяются работа 18 и 29.
На машине 4, как это сразу планировалось, сначала полностью выполняется ранее начатая
работа 17, а затем, без смены прессформы, работа 24.
По окончании расчета на лист выводится коэффициент плановой загрузки и значения ежене­
дельного коэффициента обеспеченности персоналом. Из всех вариантов определяются лучшие,
рекомендуемые в соответствии с методами Сэвиджа и Гурвица. Кроме того, для всех не домини­
руемых вариантов выводятся данные о значениях критериев U,V (рис. 8.36), а также значения
основных показателей расписания: коэффициента неравномерности загрузки Кп, коэффици­
ентов группирования Кд и запаздывания Kz, полной длительности выполнения расписания
Стах, среднего Тс и наибольшего Ттах запаздываний.
Величина коэффициента плановой загрузки вычисляется по формуле 2.8, коэффициент
неравномерности загрузки определяется по формуле 2.7, коэффициент группирования по форму­
ле 2.1, коэффициент запаздывания - формулой 2.3. В данном случае рекомендуемым является
вариант 1.
Для каждой машины указана последовательность устанавливаемых прессформ. Эта по­
следовательность подобрана каким образом, чтобы иметь возможность выполнить несколько
заказов без переустановки прессформ. Например на машине ТПА1 в начале расписания уста­
навливается прессформа №706, на которой последовательно выполняются детали вида 3 и
детали вида 2 (это возможно, поскольку они отличаются только цветом). На прессформе №676
также выполняются 2 заказа - заказ 4 и заказ 9; на прессформе №460 выполняются заказы
11 и 15. Исключение составляет только прессформа №587, которую планируется устанавливать
дважды - для работ 3 и 21. Причина состоит в слишком большой разнице сроков выполнения:
срок выполнения работы 3 составляет 3 дня, а работы 21 - Пдней.
На машине ТПА2 к началу планирования уже установлена прессформа №567, на которой
выполнялся заказ 5. Поэтому оказалось целесообразным использовать эту же прессформу для
выполнения заказа 23. Затем устанавливается прессформа №794, на которой производится

Коэффициент плановой загрузки 0,5
Еженедельный коэффициент обеспеченности персоналом:
неделя 1:0,92
неделя 2:1,01
неделя 3:1
Рекомендуемые верилиты: по методу Сэвидже - вариант 1, по методу Гурвице - вариант 1
Показатели вариантов расписания:
; относительные затраты на наледку набора работ U; средняя полезность заказов V;
коэффициент неравномерности загрузки Кл; коэффициент группирования Кд; коэффициент запаздывания Kz;
полная длительность выполнения Стах, среднее Тс и наибольшее Ттах запаздывания в календарных часах
Начальные значения критериев: U « 0; V ■ 7,161
Вариант 1. U ■ 27,222; V ■ 17.011; Кп • 1.8;
Кд «1,76; Kz • 0,57; Стах • 384; Тс «27,5; Ттах « 111
Вариант 2: U « 27,222; V = 16,983; Кп = 1.8;
Кд =1.76; Kz « 0.57; Стах « 384; Тс « 27.5; Ттах «111
Вариант 3: U « 27,222; V « 13,317; Кп «1.8;
Кд «1,76; Kz « 0.5; Стах » 384; Тс - 27,6; Ттах «139
Рис. 8.36

Значения показателей расписания для различных вариантов

© 2018, Мауэргауз Ю.Е.

177

Параллельные машины

выполнение заказов 2, 18 и 29, после чего на прессформе №796 выполняются заказы 7, 22 и
19. Детали 9 изготовляются в большом количестве, поэтому для их производства используются
2 машины ТПАЗ и ТПА5, и соответственно 2 прессформы - №223 и №790.
Поскольку детали конкретного вида могут изготовляться только на некоторых машинах из
общего числа, а потребность в различных деталях очень отличается, то разные машины имеют
существенно разную загрузку. В результате, несмотря на относительно средний коэффициент
загрузки, равный 0,6, коэффициент запаздывания равен 0,5, т.е. запаздывают 15 заказов из
30. Одновременно величина среднего запаздывания довольно велика и составляет 27,5 часа,
т.е. больше суток, величина же наибольшего запаздывания Ттах довольно велика и равна 111
часов, т.е. примерно 4,5 суток.

8.4.3

Листинг основной части программы

На рис. 8.37 приведен расчет ежедневного рабочего времени Е и суточного коэффициента
обеспеченности персоналом Ks. При расчете учитывается время обслуживания машин NE,
длительность каждой смены Nhour и количество персонала в смене NPers.
На рис. 8.38 приведен фрагмент программы расчета обеспечения материалами на первом
уровне построения дерева решений. При организации каждого нового узла проверяется нали­
чие всех материалов, используемых для деталей текущего вида. Если имеющееся количество
применяемого материала меньше, чем количество, требуемое для выполнения всего заказа или
его остатка, возможное количество деталей в момент планирования ограничивается этим мате­
риалом.
UpperLeftS ■ Celled, ’AD*).Value ’Имя первой ячейки рабочего календаря*
LowerRightS ■ Celled, "AI*) .Value '№ш последней ячейки календаря рабочих смен
Delta ■ Range(Upperlefts, LoverRlght3).Coluane.Count 'количество дней в календаре
Alfa - Range(UpperLeft3, LoverRightS).Row + 1
Gama • Range (UpperLeft3, DowerRlghtd) .Colum
ReDia E(Delta) 'массив рабочего времени в календарный день
ReDia Ks(Delta) 'массив коэффициентов обеспеченности персоналом
ReDia NE(NMach, Delta) 'массив часов обслуживания малин
For j ■ 1 То Delta 'для каждого календарного дня
For i • 1 То NShift 'по сменам
Nhour ■ Celia (Alfa + 1, Gaona + j - 1) .Value 'длительность каждой смени
NPers - Cells (Alfa + NShift + iWach + i, Gama + j - 1) .Value
'количество персонала в текужий смене
Ks0) ■ Ks0) * Nhour * NPers 'накопление фонда персонала в день
1(3) *10) + Celle (Alfa + 1, Gun + j - 1) .Value 'накопление длительности рабочего дня
Next 1
Exec *I(j) * NMach 'дневной фонд времени участка
For i - 1 То NMach 'по всем нажинам
NE(i, 3) - Cells (Alfa + NShift ♦ 1, Gama ♦ j - 1) .Value
'длительность времени планового ремонта на каждой малине
Exec - Exec - NE(i, j) 'фонд участка с учетом времени ремонта
Next 1
If Exec > 0 Then 'для рабочих дней
К»0) * Round(Ks(j) / Exec, 2) * суточный коэффициент обеспеченности персоналом
Else 'для нерабочих дней
*•0) * 1
End If
Next j

Рис. 8.37

178

Расчет коэффициента обеспеченности персоналом

©2018, Мауэргауз Ю.Е.

Параллельные машины

Гог 1 - 1 То Bott
‘цикл по закажи (первый урокам») *
aJ(i) ■ 0.3
'строится узел первого уровня е 1-ой вмпоямяекой работой *
в • VXdS(l) 1 вил работ# (летал»)
Жак • Ко1Р(1) ’камбалвэее возможное количество в камент планирования (остаток заказа)
JobV • Жак
«возможное количество в момент плакирования из расчета по материалу
For J • 1 То ИМас «по всем материалам
копия ° одни • мппит, з) / юоо
* требуемое количество материала на заказ в тоннах
If WornM(ж, 3) > 0 Thea «для требуемого материала
If Ко1М(3) > Stock(J) Than 'если требуемое количество материала больна имеонетося
joov - stockо) / вопит, 3) * юоо
«возможное количество в момент планирования из расчета по материалу
End If
If 0 Then
'по начало* партиям
а - Deter*S(Beta, OrderOU))
' номер строю* в списке заказов
If ex (в) • 100 Then 'перестройка малины с уже действующего заказа не допускается
С1(Я - Тп + Ко1(в) / 3600 • 10(3) / ЮО * p(VidS(*b j) • (1 - CO(j) / 100)
' ожидаемый момент окончания начальной партии на нажине в часах
Else
Order(*) • Order!*) ♦ ZO(j) • CO (J) / 100
'плановый процент выполнения заказа в уже начатых партиях на начальный момент
С10) - Тп
End If
ф(Р0Ш) “ -С10) * время освобождения лрессформы
* (знак минус является флагом определения использования лрессформы в начальном состоянии;
Else
С10) - тп
End If
End If
Next j

Рис. 8.40

Восстановление начального состояния в каждом текущем узле

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

180

(с) 2018, Мауэргауз Ю.Е.

Параллельные машины

к * TreeStage(intZ)
*номер последнего узла *
ж • VidS(NP(k))
4 вид детали в узле
Do Until к * 0 * восстановление цепочки
If Сожр(к) > Cl (Mach (kJ) Then
'если время окончания работа малины в узле больше последнего времени для этой машины
Ftfach (Nach (к)) • Гоха (к)
'последняя прессформа, установленная на машине'
Cl(Mach(k)) • Ссор (к)
'последний момент окончания работа машины в узле дерева
End If
If Сайр (к) > Ср (Fora (к)) Then
Cp (Fora (к)) “ Ссор(к) 'последний момент окончания работа црессформы в узле дерева *
End If
For j - 1 To NNat
Diatr(j) • Dietr(j) 4 Proc(k) / 100 * Norrtf (ж, j) • KolF(NF(k)) / 1000
'накапливание раскола noкаждому виду материала в тоннах
Next j
Order(NF(k)) * Order(NP(к)) ♦ Froc(k) ' наибольший процент выполнения каждого заказа
k ■ Par(к)
'переход по цепочке'
If к > 0 Then
ж - VidS(NP(k))
'вид детали в узле
End If
Loop
'продолжение никла дерева

Рис. 8.41 Расчет процентов выполнения заказов и расхода материалов в
текущем узле
For i ■ 1 То mat 'по всем видам материалов
Flagg - О 'флаг выхода из цикла
3 - 0
Do Until Flagg ■ 1
3 “ 3 ♦ 1 'дни после начала работа
Stock(1) * Stock(!) ♦ R(i, j) 'накопление поступлений в тоннах по видам
If Stock(1) - Dlatr(i) > 0 Then 'если появляется положительный запас
'текущий расчетный запас по виду в тоннах на текущий день с учетом расхода в цепочке
№*1(1) “ (3 “ 1) * Е(3) 'момент появления положительного запаса в часах
Flagg * 1 'установка флага конца цикла поиска дней поступления материала
End If
If 3 ■ DeltaM Then ' ограничитель цикла

Reap • МздВох("Нехватка материала " £ i £ ". Продолжать?*, vbYesNo)
If Reep • vbNo Then
Exit Sub
End If
Flagg - 1
End If

Loop

Next i
Рис. 8.42

Определение моментов появления положительных запасов ма­

териалов

(с) 2018, Мауэргауз Ю.Е.

181

Параллельные машины

8.4.4

Перепланирование расписания

Как было указано в п. 8.4.1. задание на 12.10.16 8:00 состоит из 30 работ шестнадцати
видов. В случае, показанном на календарном графике, в течение первого и второго рабочего дня
планируются две 12-часовые рабочие смены. Следующий календарный день выходной, после
которого опять планируется двухсменная работа.
Положим, что в первый день планирования выполнялся вариант решений 1, показанный
на рис. 8.35. Допустим, что к концу первого рабочего дня появилась срочная работа 31, в
результате чего потребовалось перепланирование, которое, как обычно, производится на момент
8 часов следующего рабочего дня.
Поскольку продолжительность первого рабочего дня (начинается в 8 часов) в данном случае
составляет 24 часа, при работе в точном соответствии с расписанием, в течение этого дня
(до момента 32 часа) на первой машине должна выполняться работа 1. Рассчитаем процент
выполнения работы 1 к моменту 32 часа.
Процессное время одной детали 3, изготовляемой в работе 1, на машине 1 составляет 50
секунд. Поэтому за 1 час выпускается 3600/50=72 детали. Работа 1 (рис. 8.35) начинается в
14 часов и к моменту 32 часа изготовляется (32-14)*72=1296 деталей, что составляет примерно
68% от всего заказа, равного 1900 деталей.
Вследствие нехватки персонала на первой недели (рис. 8.36) какая-то часть работы будет не
выполнена. Здесь полагается, что на всех машинах произойдет снижение производительности,
соответствующее коэффициенту обеспеченности персоналом - в данном случае равном 0,92.
Поэтому плановый процент выполнения работы 1 составит 68 х 0,92 = 62%.
К моменту начала первого дня на машине 2 ожидается выполнение 20% необходимых
деталей 6 ранее начатой работы 5 объемом в 1200 шт., что составляет 240 деталей. Для
изготовления одной детали 6 на машине 2 требуется 60 секунд, т.е. за 1 час выпускается
60 деталей. Оставшееся количество равно 1200 — 240 = 960 шт., и окончание выполнения
этой работы, начинающееся в 8 часов, с учетом коэффициента обеспеченности, имеет место в
8 + 960/60/0,92 = 26 часов.
Поэтому работа 5 в течение первого дня должна быть выполнена на 100%, и после на этой
же прессформе должна быть начата работа 23. Подсчитывая трудоемкость работы 23, получаем,
что к моменту 32 часа эта работа должна быть выполнена на 33%. Аналогичным образом
рассчитываем выполнение работ на остальных машинах. На машине 4 работа 17 должна быть
выполнена на 100% в 23 часа, после чего без переустановки прессформы планируется начать
работу 24, которая к моменту 32 часа должна быть выполнена на 27%.
Для корректировки расписания скопируем лист 1 на лист 2, очистим этот лист от резуль­
татов предыдущего расчета и введем данные о выполнении. Кроме того, в конце исходной
таблицы запишем строку нового задания (рис. 8.43). Состояние машин также корректируется
на новую дату, а календарный график сдвигается на единицу влево.
После подготовки к перепланированию удаляются строки с выполнением на 100%, а требуе­
мый момент готовности уменьшается на единицу. После запуска программы обычным способом,
в данном случае программа предлагает три варианта, из которых выбран первый (рис. 8.44).
Из рис. 8.44 следует, что появление срочной работы 31 существенно изменяет расписание
на первой машине. После окончания работы 1 предусматривается не переход к работе 10, а пе­
реустановка новой прессформы, необходимой для выполнения работы 31. Поскольку для работы
31 изготовляются детали вида 4, то к этому заказу подсоединяется работа 3 с деталями такого
же вида. Работа 10 значительно сдвигается во времени, и в результате длительность работа
машины 1 увеличивается и существенно превосходит длительность работы других машин. На
остальных машинах расписание изменяется незначительно.

182

© 2018, Мауэргауз Ю.Е.

Параллельные машины

Количест

Заказ (№ Требуем Вид
ый
календар
ный день работы
готовност
и после
(деталь)
раб0™) начала

... .. Z*
Л
4

3

2

II

3

77ZZZ
4
6: 7
75

. Л

............ 8

_.......... 9
10
11

5

ZZJZiZl

~/.7 Z.'
8

80 ® Ц?л 0,17
1900
ZZjoooZ...'.

3

процентах
............. 82

1

a

4

11007

1 ................ ...J

5

1000

1

.„a

1

100;
56

6 ...... 1200____
9

5000]

8

3;

Zo

2100

1

10

15Oo7

1..................

9

1000;

2

2000

1

0

1.

1000

1

.... 0
12;
.... oj

18

1000;

1

Z'Z л
14; 77.Z9.. .

18

1500

1..................

12'

1000.

1

1000;

18

1000

........ 15

16

............. 9

0i

.. 0;

1

1................... 100:
0^

17

10

14

1600

10

7

1500

1

19

10

7 7Z'11..

... Oj

1
.... 1..................

18

20

0

.... 1................ .. ... 0!

12
13

Рис. 8.43

коэффици выполнения в;

1
....... 3

Весовой Отметка

8

2000

1

9

*000;

1

4

3000

1

0!

°:

.. Oi

21

11

22

13

8

1000

23

13

6

1000

1
1...........

33

24

13

14

1000

1

18

25

13

13

1100

1

0

26

15

11

1000

1

0

27

15

13

1000

1.................

0

28

17

12

1700

1

0

29

17

7

1000

1

0

30
31.

17

9
4

3000
2000.

1
5

0
P

7 7712.. 7.

J .

0'

Выполнение исходного задания по состоянию на 13.10.16 8:00

Как указывалось ранее, используемый алгоритм часто приводит к доминированию работ с
меньшей трудоемкостью над другими возможными работами, даже в том случае, если послед­
ние требуются раньше. В данном примере работа 25 имеет заметно меньшую трудоемкость,
чем работа 10, и выполнение работы 25, а также однотипной работы 27, планируется раньше,
чем для работы 10. В данном случае можно изменить составляемое расписание, если для ра­
боты 10 установить весовой коэффициент, равный пяти. В результате расписание примет вид,
показанный на рис. 8.45.

© 2018, Мауэргауз Ю.Е.

183

Параллельные машины

Варима мана 1
Машин* ТПА1

Прессформа нив №706
Лроссформа иив №706
Лроссформа низ №587
Лроссформа ина №676
Лроссформа нив №460
Прессформа ина №797
Прессформа ина №706
Прессформа ине №587

Заказ 1/62%, детали 3 • количестве 1178шт. перепланирование Очас.
Заказы 108% детали 3 в количества 722шт начало 8, окончание 1Вчас
Заказы 31/100%. 3/100%. детали 4 в количество 3100шг. начало 24. окончание 115час
Заказы 4/100%. 3/100%, детали 5 в количестве 2000шт, начало 121. окончание 166час
Заказы 157100%. 11/100%. детали 1 в количестве 2000шт. начало 172. окончание 244мас
Заказы 27/100%. 25/100%. детали 13 в количество 2100шт, начало 250. окончание ЗООчас
Заказы 10/100%. детали 2 в количестве 2000шт начало 306. окончание 334час
Заказы 21/100%. детали 4 в количестве 3000шт. начало 340, окончание 433час

Машина ТПА2

Прессформа ине №567
Лроссформа ине №667
Прессформа нив №794
Прессформа ине №796

Зака* 23/33%, детали 6 а количестве 330шт. перепланирование Очес
Заказы 23/67%. детали 6 в количестве 670шт начало 8. окончание 19час
Заказы 27100%. 18/100%. 29/100%. детали 7 в количестве 3600шт. начало 25., окончание 112час.
Заказы 22/100%. 7/100%, 19/100%, детали 8 • количество 5100шт. качало 118 окончание 25Эчас

Машина ТПАЗ

Лроссформа нив №790 Зака» 6/20%. детали 9 а количестве 1000шт. перепланирование 8час
Лроссформа нив №790 Заказы 30/100%, 20/60%. детали 9 в количестве 5000шт, качало 8. окончание 161час

Машина ТПА4

Прессформа иив №802
Прессформа ине №802
Лроссформа иив №798
Лроссформа иив №698.
Прессформа иив №807
Прессформа нив №922
Лроссформа ине №632

Машина ТПА5

Лроссформа иив №223 Заказ 6/17%. детали 9 в количестве 840шт. перепланирование 8чэс
Лроссформа ине №223 Заказы 6/44%. 20/50%. детали 9 в количестве 4200шт. начало 8. окончание 155чвс

Рис. 8.44

Заказ 24/18%, детали 14 в количестве 180шт. перепланирование Очес
Заказы 24/82%. детали 14 а количество 820шт мочало 8. окончание 2Эчвс
Заказы 8/100%. детали 10 в количестве 1500шт начало 60. окончание Обчас
Заказы 12/100%. 16/100%. детали 16 в количестве 2000шт. начало 94, окончание 138час
Заказы 13/100%. детали 15 в количестве 1500шт начало 146. окончание 193час
Заказы 26/100%. детали 11 в количестве 1000шт начало 225, окончание 246час
Заказы 14/100%. 28/100% детали 12 в количестве 2700шт. начало Ж окончание 334час

Расписание после перепланирования на 13.10.16 8:00

Г-IZZZIZZZZT

_Т ~

i ~~

Т

I.. ,

Прессформа нив №706
Прессформа нив №706
Прессформа ина №58?
Прессформа иив №706
Прессформа нив №460
Прессформа ине №676
Прессформа ннв №797
Прессформа иив №587

Зака* 1/62%. детали 3 о количестве 1179шт., лерегаимироеанме Очас
Заказы 1/38%. детали 3 а количество 722шт начало 8. окончание 18чм
Заказы 31/100%, 3/100%. детали 4 в количестве 3100шт. начало 24. окончание Шчас
Заказы 10/100%. детали 2 а количестве 2000шт качало 121, окончание 149час
Заказы 11/100%. 15/100%. детали 1 в количестве 2000шт. качало 155. окончание 229чвс
Заказы 4/100%. 9/100%. детали 5 о количестве 2000шт. немало 234. окончание 285чвс
Заказы 27Л00%. 267100%, детали 13 а количестве 2100шт, начало Ж окончание 334час
Заказы 21/100%. детали 4 а количестве 3000шт. начало 340, окончание 43Эчас

Машина ТПА2

Прессформа мне №667
Прессформа ин* №567
Прессформа ине №794
Прессформа нив №796

Закка 23/33%, детали 6 о количестве 330шт , перепланирование 8час.
Заказы 23/67%. детали 6 а количеств* 670шт начало 8. окончание 19час
Заказы 2/100%. 18/100%. 29/100%. детали 7 в количестве 3500шт. начало 25, окончание 112час
Заказы 7/100%, 22/100%. 19/100%. детали 8 а количестве 5100шт. начало 118. окончание 253час.

Машине ТПАЗ

Прессформа нив №790 Заказ 6/20%. детали 9 а количестве 1000шт., перепланирование Очес
Прессформа ннв №790 Заказы 30/100%, 20/50%. детали 9 в количестве бОООил . начало 8. окончание 161час

Машина ТПА4

Прессформа мне №802: Заказ 24/18%, детали 14 а количестве 180шт , перепланирование 8час
Прессформа ннв №802 Заказы 24/82%. детали 14 в количестве 820шт начало 8. окончание 28чэс

Прессформа ине №798
Прессформа нн» №698
Прессформа им» №807
Прессформа иив №632
Прессформа иив №922
Машине ТПА5

Заказы 8/100%. детали 10 в количестве 1600шт начало 60. окончание ФБчэс
Заказы 12/100%. 16/100%. детали 16 в количестве 2000шт, начало 94 окончание 138час.
Заказы 13/100%. детали 15 а количеств* 1500шт начало 146. окончании» 19Эчас.
Заказы 14/100%. 28/100%, детали 12 а количестве 2700шт начало 225. скомчанке ЗООчас
Заказы 26/100%. детали 11 в количестве 1000шт. начало 316. окомчани* ЗЗбчас

Прессформа ине №223' Заказ 6/17%. детали 9 а количестве 840шт. перепланирование Очес
Прессформа иив №223 Заказы 6744%. 20/50%. детали 9 в количестве 4200шт. начало 8. окончание 156час

Рис. 8.45

- Расписание с увеличенным весовым коэффициентом рабо­

ты 10

184

"

Машина ТПА1

(с) 2018, Мауэргауз Ю.Е.

Глава 9

Расписания для гибких поточных линий

9.1 Введение.....................................................................................
9.2 Расписания для гибких линий с заданными и постоян­
ными размерами партий.................................................
186
9.2.1
Исходные данные задачи................................................
9.2.2 Работа с программой........................................................
9.2.3 Анализ результатов планирования................................
9.2.4 Листинг основной части программы..............................
9.2.5 Перепланирование расписания ......................................
9.2.6 Моделирование расписания............................................
9.3 Расписания для гибких линий с ограниченными разме­
рами партий.......................................................................
199
9.3.1 Исходные данные задачи.................................................
9.3.2 Работа с программой.........................................................

9.1

9.3.3 Анализ результатов планирования.................................
9.3.4 Листинг основной части программы...............................
9.3.5 Перепланирование расписания.......................................
9.3.6 Моделирование расписания.............................................
9.4 Расписания для гибких линий процессного производ­
ства с позаказным планированием................................ 219
9.4.1 Исходные данные задачи.................................................
9.4.2 Работа с программой........................................................
9.4.3 Анализ результатов планирования.................................
9.4.4 Листинг основной части программы...............................
9.4.5 Перепланирование расписания.......................................
9.4.6 Моделирование расписания.............................................

185

187
188
190
192
196
198

202
203

204
209
216
218

220
222
223
225
235
238

Введение

В гибкой поточной линии на каждой операции возможно использование нескольких или
одной машины. При выпуске продукта любого вида на одной линии над этим продуктом после­
довательно выполняются возможные операции линии, причем для некоторых видов продуктов
не все машины могут быть использованы. На рис. 9.1 приведен пример такой линии, предна­
значенной для выполнения четырех последовательных операций
Со склада сырья М материалы могут подаваться транспортным устройством или по трубам
на машины 1 или 2 для первой операции. Допустим, что на линии возможно параллельное
изготовление двух различных продуктов А и Б. На рис. 9.1 показано, что на второй операции
для изготовления продукта А возможно использование машин 3 и 4, а для продукта Б - всех
трех машин 3, 4, 5.
Возможность передачи продукта с конкретной машины второй операции на машины третьей
операции зависит от того, какой это продукт. Очевидно, что на машине 5 может находиться
только продукт Б, но на машинах 3 и 4 возможно появление обоих продуктов. Допустим, что
на третьей операции на машине 7 невозможно изготовление продукта А, тогда как на машине 6
могут перерабатываться оба продукта. Соответственно в данном примере показан случай, когда
на машине 3 находится продукт Б, а на машине 4 - продукт А. На операции 4 показана одна
машина 8, на которой могут окончательно обрабатываться оба продукта, которые в дальнейшем
передаются на склад готовой продукции П.
Ресурсы гибкой поточной линии существенно экономятся при использовании группово­
го планирования. Обычно переналадка любой машины в линии требуется при переходе этой
машины на новый вид обрабатываемого продукта. Как было показано в предыдущей главе,

185

Гибкие поточные линии

Операции

Рис. 9.1

Пример структуры гибкой поточной линии

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

9.2

Расписания для гибких линий с заданными и постоянными
размерами партий

Рассмотрим задачу составления расписания для гибкой поточной линии при последова­
тельном выполнении работ, прибытие которых запланировано в различное время ri. При этом
учитывается как необходимость своевременного завершения каждой работы с заданным сроком
выполнения di, так и экономия затрат на переналадку машин линии.
Согласно структурной формуле теории расписаний, поставленная задача при дискретном
типе производства может быть записана как
186

©2018, Мауэргауз Ю.Е.

Гибкие поточные линии

(9.1)

FF^di.Sjom^V,

где FF - обозначение гибкой поточной линии; SjOm - длительность переналадки машины т
на продукты вида j с продуктов вида о; U - относительные затраты для выполнения всех
работ; V - средняя полезность заказов за время выполнения расписания. В этой задаче не
ставится каких-либо ограничений на размеры работ на любой операции, причем каждая работа
выполняется как одна партия.
Для расчета расписания, как и в предыдущей главе, используется компьютерная программа,
работающая на основе функций полезности и представляющая собой макрос на языке VBA для
электронной книги MS Excel, результаты выполнения записываются листах и формах книги.

9.2.1

Исходные данные задачи

Исходные данные для составления расписания записываются на листе MS Excel электрон­
ной книги MBook7.xls, состоящей из пяти листов. На листе 1 в табл. $А$5:$О$29 находится
задание, состоящее из двадцати пяти работ шести различных видов, фрагмент которого при­
веден на рис. 9.2. Работы выполняются последовательно на пяти операциях, для чего в гибкой
поточной линии установлены 9 машин.
В каждой строке задания описываются параметры работ: номер работы; требуемый момент
день готовности; ожидаемый момент поступления заготовки в календарных днях; вид работы;
весовой коэффициент работы и номер последней законченной операции. Каждая работа мо­
жет находиться либо на самой машине, либо в месте, непосредственно предназначенном для
загрузки на машину, либо в ожидании новой операции в месте хранения. В данном случае

Трудоемкость в иормомасах на машине
Обогнан» Требуем Ожидаем Вид

Весовой Отметка

«»««•*

«"*««•>
им. (Nt

иый да» ;*“****
шэффиц эаамчмн
поступле
готоеност
ммя
ой
и «*«• после
имела
начала
работы иенг
операми
1
0
5
0

работы)

к •*

1
3

3

3
4

2

4
3

2

0

0

2

3

1

3

3

4

3

3

V

0

1

1

1

2

2

3

*

*

0

3

1

4

4

5

-1
4

:

5

6
2

7

9

8
3

2

3

3

2

2

2

1

4

4

3

4
4

2

3

1

5

-1

4

5

1

0

1

1

1
2

2

2

3

1

3

1

1

2

1

б

i

1

2

1

0

И

•1

4

з-

4

2

•1

Л

2

7
8

1
1

0
0

3
1

1
1

5
3

2
3

2
3

3
1

2
3

3
-1

1
-1

2
3

2
3

1
-1

5
4

4

5

3

4

4

3

3

4

1

3

3

1

4

1

3

1

'

*

1

0

1

5

1

4

4

Ю

2

0

3

1

3

3

3

”:

2

0

4

4

4

4

Ч

5

0

3

1
1

0

2

3
-1

3

3
2

3

4

2

3
•1

13

з

о

5

1

0

4

4

4

4

4

3

4

4

3

U

3

1
1

0
0

3
2

3
2

4
3

3
2

4
3

3
2

3
2

2

3

3
6

2

1S

0
0

Рис. 9.2

1

4

1

Фрагмент исходного задания на листе 1

© 2018, Мауэргауз Ю.Е.

187

Гибкие поточные линии

предполагается, что емкость этих мест не ограничена и каждая работа на любой операции
представляет собой одну партию загрузки.
Для каждой из работ приведено время выполнения работы на соответствующей машине.
Если работа на какой-то из машин не может быть выполнена, в соответствующей графе запи­
сывается значение -1. Целесообразно записывать работы в порядке возрастания требуемых дат
их выполнения.
Моменты готовности и поступления работ, как обычно, отсчитываются от момента наступ­
ления календарного дня, являющегося первым в расписании. Под видом работы понимается
любой параметр работы, вызывающий необходимость в переналадке машины.
В табл. $V$20:$BW$25 приведены нормы времени в часах на переналадку с одного вида
работы на другой для каждой из девяти машин. При этом, как и раньше, полагается, что номер
предыдущего вида работы устанавливается по столбцу таблицы, а номер последующего вида
работы - по строке таблицы.
В табл. $U$4:$AC$12 записаны данные каждой из машин, одна из которых в данном случае
находится в отключенном состоянии. Каждая из машин предназначена для выполнения одной
из операций технологического процесса и относится к соответствующей группе. По каждой
работающей машине приведены данные о ее настройке на конкретную работу на момент пла­
нирования (начало нового рабочего дня) и ожидаемый на этот момент процент ее выполнения.
Если работа находится на машине и к моменту планирования процент ее выполнения мень­
ше 100, то последней законченной операцией является предыдущая операция, либо нуль. Если
ожидаемый процент работы, находящейся на машине, равен 100, то такая операция считается
выполненной. Если работа находится в месте хранения, то номер ее законченной операции
определяется по последней операции на соответствующей машине.
В данном примере работа 1 находится на машине 2, выполняющей операцию 1, и ожидае­
мый процент готовности составляет 20%. Поэтому номер последней законченной операции для
работы 1 равен 0. Наоборот, работа 3 на машине 1 для операции 1 имеет ожидаемый процент
готовности 100 и поэтому в таблице на рис. 9.2 имеет отметку 1. Аналогично, работа 4 на
машине 3 и операции 2 имеет готовность 50% и отметку законченной операции 1, а работа 5
на машине 5 для операции 2 имеет готовность 100% и соответственно отметку законченной
операции 2. Работа 7 еще находится на машине 9, хотя ее обработка уже полностью закон­
чена, и соответствующая отметка операции равна 5. Некоторые работы могут быть начаты и
находиться в местах хранении: например, работа 2 и работа 9 после выполнения операции 1.
В табл. $Y$29:$AI$41 описан календарный график работы машины по дням, начинающий­
ся с первого дня выполнения составляемого расписания. Для каждой смены календарного дня
проставлено количество рабочих часов, для каждой машины указано плановое время проведе­
ния технического обслуживания. В приведенном примере предусмотрена двухсменная работа с
восьмичасовым рабочим днем.
На листе 2 приведен возможный вариант перепланирования этого задания, на листе 3 про­
водится моделирование по различным параметрам. На листе 4 находится задание для 75 работ,
на листе 5 приведен пример моделирования с целью нахождения рационального горизонта пла­
нирования.

9.2.2

Работа с программой

Для работы с программой планирования в MS Excel устанавливается соответствующий
рабочий лист, например, лист 1 и осуществляется запуск макроса. При выборе опции «без
моделирования», система сообщает о последней дате планирования и предлагает одну из двух

188

© 2018, Мауэргауз Ю.Е.

Гибкие поточные линии

возможностей - подготовку планирования с новой датой или повторение расчета с последней
датой.
В форме «Ввод данных» задаются основные параметры процесса. Система автоматически
рассчитывает загрузку участка (по включенным машинам) и выдает соответствующее сообще­
ние. По окончании расчета все возможные и не доминируемые варианты выводятся на лист
(рис. 9.3).
В каждом варианте работы сгруппированы по видам, а группы выделены скобками. Внутри
группы последовательность работ не обязательно совпадает с порядком их номеров, поскольку
работы в одной группе могут иметь различную трудоемкость. Если резерв времени выполнения
всех работ в одной группе положительный, то система иногда рекомендует выполнять сначала
работы с меньшей трудоемкостью с тем, чтобы понизить суммарную длительность производ­
ственного цикла.
По окончании расчета на лист выводятся коэффициенты загрузки по каждой группе машин,
а также номера вариантов, рекомендуемые в соответствии с методами Сэвиджа и Гурвица. Кро­
ме того, для всех не доминируемых вариантов выводятся данные о значениях критериев U, V
(рис. 9.4), а также значения основных показателей расписания: коэффициента неравномерно­
сти загрузки Кп, коэффициентов группирования Кд и запаздывания Kz, полной длительности
выполнения расписания Стах, среднего Тс и наибольшего Ттах запаздываний.
В приведенном примере группы машины, предназначенные для различных операций, за­
гружены не одинаково. Наибольшая загрузка в 81% наблюдается в группах 3 (машина 6) и 5
(машина 9), наименьшая, равная 58% - в группе 2. Программа автоматически создает рас-

Недоминируемые варианты

Вариант 1 Машина 1:19,12, (24, 17), 20, (18, 23)



Вариант1Машина 2:15, (21,16), 14, 22,13, 25

Вариант 1 Машина 3:19,15, 24.12, 9, (13, 20), 22,17
Вариант 1 Машина 5: (1, 3), (21, 2, 6, 16), (18.14.23). 25
Вариант 1 Машина 6: (1, 5. 3,19), 15, 21, 24, (2, 6,16). 9. (13. 20). (14. 23). 25,17,18, 22 J

Вариант 1 Машина 7: (5, 3). 21. (4,12,10), 9. 25. 22

Вариант 1 Машина 8: (1,19). 15, 24. (2.16), (13. 20). (14, 23), 17,18
Варианту Машина 9 11. (5,1. 3,19), 15, 21. 24. (6, 2), 10. 16. 9. (13, 20). (14. 23). 25.17.18. 22

Рис. 9.3

Результаты работы программы на листе 1

Коэффициент плановой загрузки: 0,69
Группа 1:0,71
Группа 2:0,68
Группа 3:0.81
Группа #: 0,7
Группа 5: 0,81
Рекомендуемые варианты: по методу Сэвиджа - вариант 1, по методу Гурвица - вариант 1
Показатели вариантов расписания:
относительные затраты на наладку набора работ U; средняя полезность заказов V;
коэффициент неравномерности загрузки Кп; коэффициент группирования Кд; коэффициент запаздывания Kz;
полная длительность выполнения Стах, среднее Тс и наибольшее Ттах запаздывания а календарных часах
Начальные значения критериев: U « 0; V « -1,869
Вариант 1: U • 137,521; V »-0.297; Кп « 2; Кд * 2,05; Kz = 0,56; Стах »130; Тс « 15,2; Ттах « 59,5

Рис. 9.4

Значения показателей расписания для различных вариантов

© 2018, Мауэргауз Ю.Е.

189

Гибкие поточные линии

писание, в котором коэффициенты группирования для наиболее загруженных машин заметно
выше, чем для остальных машин (рис. 9.3).

9.2.3

Анализ результатов планирования

На рис. 9.5 показано расписание для первого полученного варианта, составленное с учетом
графика работы цеха. Например, на первой машине к 8 часам первого планового дня должна
быть на 100% закончена работа 3 вида 1 (рис. 9.2). Программа запланировала для машины 1 в
этот момент начало работы 19, что позволяет обойтись без переналадки, т.к. эта работа также
относится в виду 1. В дальнейшем на машине 1 предусмотрено выполнение работы 12 вида 3
и группы работ 24 и 17 вида 4. Работа 20 начинается в конце второй смены первого рабочего
дня, а затем продолжается в начале следующего рабочего дня. Выполнение исходного задания
для машины 1 первой группы (первой операции) заканчивается в течение второго планового
дня. Остальные операции продолжаются также и после выходных дней.
Программа позволяет отследить последовательность выполнения операций для всех работ
(рис. 9.6).
В данном случае две работы должны быть выполнены до введения в действие плана на
рис. 9.6: для работы 7 заканчивается пятая операция на машине 9, а работа 8 вообще не
предусматривает пятой операции, т.к. трудоемкость на машине 9 равна -1 (рис. 9.2), и для нее
последней является операция 4 на машине 7.
Если какая-либо из работ оказывается запланированной заметно позже необходимого срока,
для более раннего начала можно воспользоваться увеличенным весовым коэффициентом. В
данном примере такой весовой коэффициент используется для работ 1, 2 и 9 (рис. 9.2).
Система обеспечивает вывод расписания работы машин в виде диаграммы Ганта (рис. 9.7).
Из диаграммы наглядно видно, как происходит группирование, например, работы вида 1 за­
крашены черным цветом, вида 2 - закрашены коричневым цветом, вида 3 - синим цветом.
Диаграмма Ганта хорошо иллюстрирует влияние трудоемкости работ на последовательность их
выполнения. Горизонтальный размер прямоугольника, описывающего каждую работу, соответ­
ствует длительности ее непосредственного выполнения.
Для загрузки персонала существенное значение имеет плотность выполнения работ. При
высокой плотности работы на машине могут выполняться за небольшой интервал времени,
что дает возможность частично высвободить персонал. Например, в данном случае наиболь­
шая плотность, равная 0,93, имеет место на машине 5; наибольшие потери рабочего времени
наблюдаются на машине 8, где плотность выполнения составляет 0,49.

Машина 1: 8 (19) 10; 10,5 (12) 12,6;134 (24) 15,5; 154 07) 184; 194 (20) 324; 344 (18) 384; 384 (23) 414;

*Маимм 2: 10,9 (15) 12,9; 13,9 (21) 15,9; 15,9 0Q 18,9; 19,9 (14) 22,9; 324 (22) 36.4; 374 (13) 414; 42,4 (25) 45,4;
Машина 3: 104 (19) 134; М (15) 17; 174 (24)20,5:214 04 324; 334 (9) 384; 414 (13)454; 45.4 (20)81.4; 82.9 (22) 88,9; 874 07) 914
Машка 5: 8 (1) 1212 (3) 15; 18 (21) 19; 19 0) 23; 23 ГО 35; 36 (18) 39; 40 (18) 44; 44 (14) 48; 80 (23) 84; 85 £5] 89;
Машам 8: 12 0) 14; 14 (5) 15; 15 0) 18; 18 09Ц7; 174 05) 184; 19,5 (21)204; 22 01) 23; 324 0) 344; 35 (В) 37; 39 (18)41;

414 № 44.5; 46 03) 81; 814 (20) 834; 854 04) 87,4; 874 03) 89,4; 904 (25) 924,104.9 07) 106,9; 107,9 06) 110,9; 112.4 (22) 115,4,
Машина 7: 15(5)18; 16 Г018; 204 01) 22.5; 234(4^4; 364 02) 374; 37,5 (10)404; 44,5 (9) 00.5; 924 05)954; 1154 02) 1194;
Машма 8: 14 0) 17; 17 09) 19; 19,5 (15) 21,5; 23 04) 33; 34,5 0) 374; 41 (16) 44; 8103} 86; 85 00) 88; 90 (14) 93; 93 03) 96;
106,9 07)109.9; 1104 08)1МД
{Машина 9: 9 (11) 10; 16(6) 17; 17 0) 19; 19 (3) 20; 20 (19) 21; 21,5 05) 224:23.5 01) 324; 34 04) 35; 37 (Б) 39; 39 0)41; 42 (10) 43;
; 44 06) 46; 804 0) 834; 86 03) 88; 88 00) 90; 93 04) 95; 96 03) 106; 107 06) 109; 110,5 (17) 1124; 1М4 08) 1174; 119,4 02) 1304;

Рис. 9.5

190

План загрузки машин

(с) 2018, Мауэргауз Ю.Е.

Гибкие поточные линии

План обработки по варианту 1
Работа 1: 8 (5)12;

12 (6) 14;

14 (8) 17;

Работа 2: 19 (5) 23;

32,5 (6) 34,5;

РаботаЗ: 12(5)15;

15(6)16;

17(9)19;

34,5 (8) 37,5;

16(7)18;

39 (9) 41;

19(9)20;

Работа 4: 23,5 (7) 35,5;
Работа 5: 14 (6) 15;

15 (7) 16;

16 (9) 17;

Работа 6: 23(5)35;

35(6)37;

37(9)39;

Работа 7:
Работав:

Работа 9: 33,5 (3) 38,5;

Работаю: 37,5(7)40,5;

41,5 (6) 44,5;

44,5 (7) 80,5;

80,5 (9) 83,5;

42(9)43;

Работа 11: 9(9)10;
Работа 12: 10,5 (1) 12,5;

21,5 (3) 32,5;

Работа 13; 37,4(2)41,4,

41,4(3)45,4; 46(6)81;

Работай: 19,9(2)22,9; 44(5)48;

35,5 (7) 37,5;
81(8)85;

85(9)88;

85,4(6)87,4;

90(8)93; 93(9)95;
19,5(8)21,5;

Работа15: 10,9(2)12,9;

14(3)17;

17,5(6)18,5;

Работа Ю: 15,9(2)18,9;

35(5)39;

39(6)41; 41(8)44; 44(9)46;

Работа 17: 15,5(1)18,5;

87,4(3)91,4;

РаботаЮ: 34,5(1)38,5; 40(5)44;

Работа Ю: 8(1)10;

10,5 (3)13,5;

104,9 (6) 106,9;

10 7,9(6)110,9;

16(6)17;

Работа20: 19,5(1)32,5; 45,4(3)81,4;

106,9 (8) 109,9;

110,9(8)114,9;

16(5)19;

Работа22: 32,4(2)36,4;

82,9(3)86,9;

Работа 23: 38,5 (1) 41,5;

80 (5) 84;

85(8)88;

112,4(6)115,4;

88(9)90;
23,5(9)32,5;

115,4(7)119,4;

87,4 (6) 89,4;

93 (8) 96;

96 (9) 106;

Работа 24: 13,5(1)15,5;

17,5(3)20,5; 22(6)23;

23(8)33;

34(9)35;

Работа 25: 42,4 (2)45,4;

85(5)89;

90,4(6)92,4;

Рис. 9.6

План обработки

Рис. 9.7

Диаграмма Ганта

110,5(9)112,5;

114,9(9)117,9;

17 (8)19; 20(9)21;

81,4(6)83,4;

19,5(6)20,5; 20,5(7)22,5;

Работа 21: 13,9(2)15,9;

21,5(9)22,5;

92,4(7)95,4;

119,4(9)130,4;

107(9)109;

(с) 2018, Мауэргауз Ю.Е.

191

Гибкие поточные линии

9.2.4

Листинг основной части программы

Как и в предыдущей главе, на каждом уровне построения дерева расписания используются
6 основных массивов: UStageQ, VStageQ, Par Staged), CompStageQ, NPStaged, TkQ, кото­
рые имеют назначение, совпадающее с назначением аналогичных массивов в главе 5. Поскольку
для каждой операции могут применяться несколько параллельных машин, приходится исполь­
зовать дополнительный массив FStageQ. Соответственно для дальнейшего построения ветвей
дерева путем перезаписи значений параметров недоминируемых узлов используются массивы
UQ, VQ, ParQ, CompQ, NPQ, Comment FCompQ. Программа автоматически переносит
данные с листа в переменные и массивы.
В начале планирования для каждой из работ программа определяет, на какой операции и
какой машине эта работа находится, и создает соответствующие отметки (рис. 9.8). После этого
определяются трудоемкость первой оставшейся операции pav(i) и трудоемкость последующих
оставшихся операций pavsQ), а также необходимый момент запуска gs(i) (рис. 9.9).
Параметры первой необходимой операции pav(i) и трудоемкость последующих оставшихся
операций pavsQ) играют важную роль при определении полезности массива невыполненных
работ в текущем узле с помощью функции VZakQ (рис. 9.10). Входными значениями функции
являются количество работ inBeta, номер текущей работы ink, номер текущей машины inM,
момент окончания работы машины snCl, момент начала выполнения работы snTk и момент
окончания работы snFk. Большинство параметров на рис. 9.10 совпадают со значениями на
рис. 4.4.
После подготовки исходных массивов рассчитываются значения исходных значений кри­
териев в корне дерева. Величина относительных затрат в корне Uq = 0, функция полезности
заказов Vo определяется с помощью функций Napr2Q и NaprlQ. Расчет основных параметров
узлов первого уровня по всему количеству заказов производится в двойном цикле: внешний
цикл осуществляется по работам, а внутренний цикл - по включенным машинам (рис. 9.11). За­
тем производится отсечение узлов по критериям и перенос в полные массивы недоминируемых
узлов дерева решений.
На последующих уровнях intY построения дерева решений все этапы программы первого
уровня повторяются с существенными изменениями. В каждом узле ветвления intZ запомина­
ется расчетная полезность в созданном узле sngVz, номер машины в узле intMz, фиктивной
расчетной длительности в узле sngCz. Кроме этого, для каждой машины i определяется те­
кущая выполняемая работа PMachQ) и ее момент окончания Cl(i), а для каждой работы с

For 1 • 1 То Веса
'по всем работам*
Осж(1) * 0
'Отметка нахождение в производстве в момент плакирования
For J - 1 То NNach 'по всем манимом
If OrderO(J) • dee(i) Then 'для выполняемой работы
If СО(J) • 100 Then 'если операция закончена
Ех(1) • KacbG(J) 'заимев номера законченной операции совпадает с номерок труппы маним
ЕХве
Om(i) • 1 'отметка нахождения в производстве
End If
J - Miach 'окончание цикла
End If
Next J
aJ(i> ■ 1 'отметка невыполненной работы
Next 1

Рис. 9.8

192

Отметки начального выполнения работ по операциям

(с) 2018, Мауэргауз Ю.Е.

Гибкие поточные линии

Гог 1 • 1 То Веса
‘цикл по работам*
pav(l) - 0
* трудоемкость первой оставшейся операции
рат>(1) * 0
* трудоемкость последующих оставшееся операций
For J • 1 То NOper
'цикл по операциям
If Ex(i) 4 Ota(i) < J Then
‘для оставшиеся операций
в • О
‘количество включенных малки на операции
Ехес • О
For к - 1 То NNach ’по всем малинам
If MetkaM(k) " 1 And MachG(k) «JAM p(i, к) > 0 Then
‘для включенной налимы, текущей операции и при ненулевой трудоемкости
Ехес ■ Ехес 4 p(i, к) ‘накопление суммы необходимой трудоемкости для всех малин
ж ■ ж 4 1 ’возможное количество малин на операции
End If
Next k
If Ex(i) 4 OtB(i) 4 1 • J Then ‘если текущая операция первая к исполнению
If ж > О Then 'если количество возможных малин на операции больше нуля
pav(i) - pav(i) 4 Ехес / в ’добавление средней трудоемкости первой оставшейся операции
Else ’не указаны необходимые нажимы
Ех(1) « Ех(1) 4 1 'ближайшая операция не нужна
End If
Elae 'текущая операция не первая к исполнение
If ж > 0 Then 'если количество возможных малин на операции больше нуля
ратз(1) - ратвЦ) 4 Ехес / в 'добавление средней трудоемкости на других оставшихся операциях
End If
End If
End If
Next J
ga(i) • dd(i) - pav(i) - pava(i> ' Необходимый момент запуска
If Celled, "Y") .Value - 1 And d(i) 0 Theo 'если манима настроена на какой-то заказ
ж ■ DctemS (Beta, OrdezO(J)) ‘номер строки в списке заказов
Rise
ж • 1 ’первая строка в списке
End If
ОЗсзфЦп) • OZalt(l, ж, J> ‘затраты на наладку*
Tt(n) - Calend (C1(J), 9(Vid(l), vid (ж), J), J, 1)
’начало дегалеодерапии равно моменту освобождения нажины плюс время наладки*
If RD(i> > Tk(n) Then ’если момент поступления работы позже момента освобождения нажимы
Tk(n) - М>(1>
End If
СоярЗсаре(п} - Calend(Ik(n), р(1, Л, J, 2) ‘момент окончания работы а календарных часах
If CcwStage(п) ■ 0 Then ‘если не определен момент окончания работы
МвдВох * недостаточен рабочий горизонт *
Exit Sub
End If
vstngt(n) - (Vo * Cl(4) ♦ vzakfBeta, 1, J, Cl (J), Tk(n), CoopSta^e(n))) / CoopStage(n)
’полезность набора работ
MacbStage(n) “ J
ParStage(n) • fl|
KPStagw(n) - 1
End If
Meat J
aJ(l) ■ 1
'возврат метки работы на невыполнение’
End If
Hext 1

Рис. 9.11

Расчет параметров узлов первого уровня

номером NP(k) определяется номер последней операции POper(NP(k)) и ее момент оконча­
ния последней операции COper(NP(k)).
После этого в текущем узле по каждой работе i определяются трудоемкости первой сле­
дующей pav(i) и остальных операций pavs(i) (рис. 9.12). Наличие этих параметров позволяет
определить значения функции VZakQ во всех узлах. Остальные параметры для узлов после­
дующих уровней определяются аналогично параметрам первого уровня. Отсечение узлов по
критериям и перенос в полные массивы недоминируемых узлов дерева решений также произ­
водится аналогично узлам первого уровня.
После окончания построения дерева решений, как и в предыдущей главе, определяется
область расположения вариантов решения на листе и производится сортировка вариантов по
убыванию массива V() критерия полезности. Для полученного набора вариантов проводится
поиск наиболее целесообразного варианта методами Сэвиджа и Гурвица, и также рассчитыва­
ются его показатели аналогично их определению в главе 8. Кроме того, для каждой машины
определяется плотность загрузки (рис. 9.13). Для этого в массивах Cl(J) и FStage(J) на­
капливаются значения моментов начала и полного окончания работы машин, а также полная
трудоемкость всех операций на каждой машине. Коэффициент KWip(J) плотности опреде­
ляется как частное от деления полной трудоемкости на интервал работы каждой машины в
рабочих часах.

194

© 2018, Мауэргауз Ю.Е.

Гибкие поточные линии

Fox 1 - 1 То Beta
For J * 1 То NOper
'цикл по операциям
If Mper(i) < J Then
'для оставшихся операций
* * О
'количество включенных машин на операции
Елее ■ О
For Г * 1 То NNach 'по всем машинам
If NetkeM(k) - X And MachG(k) - J And p(i, k) > 0 Then
'для включенной машины, текущей операции и при ненулевой трудоемкости
Ехес " Ехес + р(1, к) 'накопление суммы необходимой трудоемкости для всех машин
ш - а + 1 'возможное количество нашим на операции
End If
Next k
If POper(l) + 1 * J Then 'если текущая операция первая к исполнению
If а > 0 Then 'если количество возможных машин на операции больше хуля
pav(l> » Ехес / а ' средняя трудоемкость первой оставшейся операции
Else 'не указаны необходимые нажины
FOper(l) * POper(l) + 1 ' ближайшая операция не нужна
End If
Else 'текущая операция не первая к исполнению
If ж > О Then 'если количество возможных машин на операции больше нуля
pavs(l) * pavs(l) ♦ Ехес / ж
'добавление средней трудоемкости на других оставшихся операциях
End If
End If
End If
Next J
Next 1

Рис. 9.12

Определение трудоемкостей pav(i) и pavs(i)

For 1 * 1 To intY - 1
'наполнение строк работ на каждой машине для текущего варианта*
For J - 1 То NMach
If MachStage(l) • J Then 'если в узле 1 работает текущая машина J
If C1(J) - О Then
Cl(J) * Tk(l) 'запоминание начала работы'
End If
If Tk(l) < Cl(J) Then
Cl(J) * Tk(l) 'запоминание начала работы'
End If
If FStage(J) < CaapStaqe(l) Then
FStaae(J) • CcopStaqe(l) 'окончание работы текущей машины для всего набора работ
End If
KWip(J) * KNip(J) + p(NPStage(1), J) 'накопление трудоемкости на каждой малине'
J - NHach
End If
Next J
Next 1
For J - 1 To NMach
If MetkaM(J) - 1 Then
q * q + 1
'очередная строка варианта*
If FStaqe(J) > 0 Then
KWip(J) * Round (KNip(J) / (Workflours(FStage(J)) - Workflours(Cl(J)>>, 2)
'расчет плотности загрузки каждой машины'
Else
«Nip (J) - О
End If
Result (J) - "Хашема • £ J £ •: ” £ CStr (KNlp(J))
Cells (Alfa + q, банка ♦ X) .Value - Result (J)
End If
Next J

Рис. 9.13

Расчет плотности загрузки машин

(с) 2018, Мауэргауз Ю.Е.

195

Гибкие поточные линии

9.2.5

Перепланирование расписания

Рассмотрим пример перепланирования задания, первоначально имеющего вид, приведенный
на листе 1 в книге MBook7.xls. Как было указано в п. 9.2.1. задание на 15.09.16 8:00 состоит
из 25 работ шести видов. В случае, показанном на календарном графике, в течение первого
и второго рабочего дня планируются две 8-часовые рабочие смены. Следующий календарный
день выходной, после которого опять планируется двухсменная работа.
Поскольку продолжительность первого рабочего дня в данном случае составляет 16 часов,
при работе в точном соответствии с расписанием, в течение дня (до момента 24 часа) на
первой машине, например, должны быть полностью выполнены работы 19, 12, 24 и 17 и начата
работа 20 (рис. 9.5). Аналогичная ситуация имеет место и на других машинах. Положим, что
к моменту окончания первого рабочего дня появилась срочная работа 26 вида 3 с требованием
немедленного выполнения. В такой ситуации требуется перепланирование расписания, начиная
со следующего рабочего дня.

Ogjjj^^

^Оямдаем -

нне(№

;

' ММЙ

гм после

после
Сначала

иначала

работы)

последней
КОЭЙТЙМШМ

^законченной
Вид работы

-1

0

1;

5

5

2!’
з!

О
0,5

0

2;

З:
5!

2

3

з-

5

5

1

0

1i

0

3;

5:

5

1

0

6

1

1

2

0

5;

8

1

0

5

9
10

1

о

2

о

11

2

12
1з|

3
3
3
3
3
3
3
3
3

о
о

3;

о

5’

о

3

о

6

о

2

1
1

1;

3*

1

0
5

5

t
1

и;

15
16

ж
«!
20 [

21 i

0
pj

°,
о

23j
241
Й
26

о

3

2
«I

О
Q
2

3

О

5

1

5

5;

о

..22 L

1

3

1

5

1

0

1

1
5

0

jj
t

1.
2
1

1
5

Р
О,
£
о
о

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

дня

196

операции

ент

1

!

Рис. 9.14

Отметка

Весовой

*ый
ый
календар^лендар
НЫЙД»Нк НЫЙА**
*___ 7
поступле

(с) 2018, МауэргаузЮ.Е.

Гибкие поточные линии

Для корректировки расписания скопируем лист 1 на лист 2, очистим этот лист от результа­
тов предыдущего расчета, введем отметки последних выполненных операций на момент начала
нового планирования, а также запишем строку 26 нового задания (рис. 9.14). Как видно из рис.
9.14, для нескольких работ (1, 3, 5, 7, 8, 11, 15 и 19) выполнены все необходимые операции, и
они должны быть исключены из расписания.

Для подготовки нового расписания в таблице состояния машин необходимо указать дату
этого нового состояния. Кроме того, для каждой машины необходимо указать загруженную
работу и ожидаемый процент ее выполнения на момент начало нового рабочего дня. Для про­
ведения подготовки к перепланированию необходимо сдвинуть календарный график на единицу
влево. Затем необходимо указать на использование режима перепланирования и ввести дан­
ные о дате перепланирования и границах пересчета исходного задания (аналогично, например,
п. 5.7). При пересчете строки законченных работ автоматически удаляются, а даты уменьша­
ются на одни сутки.
После подготовки к перепланированию, следует провести новый расчет расписания. При
вводе данных обязательно необходимо откорректировать границы исходных работ. В данном
примере система предлагает 3 не доминируемых варианта, результат расчета иллюстрируется
графиком Ганта.
Сравним откорректированный план по состоянию на 16.09.16 с остатком плана, составлен­
ного в предыдущий день (рис. 9.15). Прежде всего, в новом расписании приоритетной является
новая срочная работа 26. Нагрузка на машины 1 и 2 для первой операции автоматически выравнилась: на каждой машине запланировано по 3 работы. План для машин 3 и 5 второй операции
существенно изменился: введение новой работы 26 привело к перегруппированию работ и пе­
реносу некоторых работ с одной машины на другую. Для машин с последующими операциями
изменения имеют незначительный характер.

Новый план от 16.09
Вариант 1 Машина 1:
Вариант 1 Машина 2:
Вариант 1 Машина 3:
Вариант 1 Машина 5:
Вариант 1 Машина 6:
Вариант 1 Машина 7:
Вариант 1 Машина 8:
Вариант 1 Машина 9:

25. (18, 23)
26, 22, 13
(26,14,18, 23), (13, 20)
9, (16, 25), 17, 22
2, 26, 9, (6,16). (14.18, 23), 17, (20. 13), 25. 22
9, (12,14,18), 13
26, 2, 10, 16. 23,17. 20, 25. 22
24, 26, (2. 6), 10, 9,16, (14, 23), 17, (20.13). 25.18. 22

Старый план (остаток от 15.09)
Вариант 1 Машина 1: (18. 23)
Вариант 1 Машина 2: 22,13,25
Вариант 1 Машина 3: 9. (13, 20), 22,17
Вариант 1 Машина 5: (2, 6,16), (18,14, 23), 25
Вариант 1 Машина 6: (2, 6,16), 9, (13, 20), (14, 23). 25,17.18, ^
Вариант 1 Машина 7: (4,12.10), 9. 25, 22
Вариант 1 Машина 8: 24, (2, 16), (13, 20). (14. 23), 17, 18
Вариант 1 Машина 9: 21. 24, (6. 2), 10.16, 9. (13?^

Рис. 9.15

18, 22

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

© 2018, Мауэргауз Ю.Е.

197

Гибкие поточные линии

9.2.6

Моделирование расписания

На листе 3 представлены варианты расчетов расписаний при различных значениях ограни­
чителей ветвления. При увеличении значений ограничений Bl, В2 и уменьшении ВЗ пучок
возможных ветвей дерева расширяется, что приводит к большому значению количества узлов
на каждом уровне построения дерева. При В1 = 100, В2 = 5 и ВЗ = 0,01 количество вариан­
тов равно 1, а длительность решения составляет 21 сек., при В1 = 100, В2 = 7 и ВЗ = 0,01
длительность решения увеличивается до 46 сек.
Моделирование позволяет улучшить первоначальное решение. Если на первом шаге коэф­
фициент запаздывания Kz равен 0,6, то на третьем шаге он снижается до 0,52. Улучшение
показателей может произойти благодаря некоторому увеличению психологического коэффици­
ента. В данном случае, при величине а = 0,15 наблюдается снижение коэффициента запазды­
вания до 0,48 даже при В1 = 64, В2 = 5 и ВЗ = 0,02.
На листе 4 приведен пример для моделирования расписаний, содержащий 75 работ при
трехсменной работе. Расчет этого примера приводит к одному варианту, в котором эффект
группирования очень значителен: коэффициент группирования Кд равен 2,34, т.е. количество
технологических партий примерно в 2,5 раза меньше, чем общее число выполняемых операций.
На листе 5 определяется рациональный горизонт планирования при большом числе работ.
На рис. 9.16 приведены графики изменения показателей расписания в зависимости от планового
горизонта.
В данном случае большинство показателей стабилизируются в области 150 часов, а по­
лезность набора работ с дальнейшим увеличением горизонта продолжает снижаться. Поэтому
целесообразно этот горизонт принять в качестве критического.

Параметры расписаний для разных горизонтов: 1 - приведенные
затраты переналадок за один рабочий день; 2 - полезность выполняемого
набора работ; 3 - коэффициент неравномерности загрузки; 4 - коэффициент
группирования; 5 - коэффициент запаздывания, умноженный на 10
Рис. 9.16

198

(с) 2018, Мауэргауз Ю.Е.

Гибкие поточные линии

9.3

Расписания для гибких линий с ограниченными размерами партий

В предыдущем параграфе рассмотрен случай, когда вся работа (партия) по окончании одной
операции целиком передается с этой операции на последующую. Во многих случаях физиче­
ский объем заказанной работы превышает объем загрузочного устройства машины; кроме того,
к моменту запуска работы последняя далеко не всегда полностью обеспечивается необходимым
материалом. Поэтому такая работа может быть выполнена только в несколько партий запуска,
причем количество этих партий на разных стадиях обработки может быть различным. Более то­
го, даже на одной операции какой-то конкретной работы размеры партий могут быть различны
для различных машин.
Передача партий с одной операции на другую в поточной линии обычно механизируется при
помощи специальных транспортных устройств. Устройства такого рода могут быть стационар­
ными - для передачи между конкретными машинами, и движущимися - для передачи между
любыми машинами. В настоящей работе рассматривается последний случай, в котором такое
транспортное устройство будем именовать роботом.
Робот, разумеется, должен быть снабжен транспортной емкостью некоторого объема и
устройством, обеспечивающим загрузку этой емкости и ее выгрузку на машины. Допустим,
что время перемещения робота между машинами и время загрузки-выгрузки транспортной ем­
кости намного меньше, чем время обработки загруженной партии на любой машине. В этом
случае вся поточная линия может обслуживаться одним роботом, который последовательно
будет обходить машины линии и перегружать обрабатываемые партии с выполненной операции
на последующую (рис. 9.17).
На рис. 9.17 приведен пример структуры разветвляющейся (гибридной) поточной линии, на
которой последовательно выполняются 5 операций. Линия состоит из девяти машин, причем
для первой и четвертой операции предназначены по две машины, для второй операции - 3
машины, а на третьей и пятой операции используются по одной машине. Каждая машина
оснащена входным и выходным буферами ограниченной емкости.
Исходные заготовки со склада М могут быть с помощью робота поданы на одну из машин
первой операции; затем после каждой операции очередная партия может быть транспортирована

Операции

Рис. 9.17

Пример гибкой поточной линии с буферами ограниченной ем­

кости

© 2018, Мауэргауз Ю.Е.

199

Гибкие поточные линии

роботом на одну из машин следующей операции. На рис. 9.17 показан случай, когда робот
Р находится в состоянии загрузки из выходного буфера машины 7, выполняющей операцию
4. Очевидно, что последующее движение робота возможно только в направлении входного
буфера машины 9, которая является единственной машиной на операции 5. После выполнения
последней операции на машине 9 обработанная партия переносится роботом на склад готовой
продукции П с неограниченной емкостью.
Будем полагать, что для переноса новой партии на машину для обработки при помощи ро­
бота необходимо, чтобы входной буфер этой машины был пуст. Если выходной буфер машины
также пуст, то на эту машину можно загружать любую работу. В случае, если в выходном бу­
фере имеются обработанные детали, на загрузку входного буфера накладывается определенное
ограничение.
После переноса транспортной партии на машину, она может запускаться, если есть свобод­
ное место в ее выходном буфере. В том случае, когда во входном буфере машины, с которой
выгружается транспортная партия, имеются необработанные детали, эта машина также запус­
кается. Каждая машина будет работать до тех пор, пока либо заполнится ее выходной буфер,
либо закончатся заготовки во входном буфере. Назовем такой временной интервал работы
каждой машины ее очередным циклом.
Поставленная задача может быть записана согласно классификации теории расписаний как

FF, Rl\pmtn, rjq, di, Sjom, Bm\U, V.

(9.2)

Формула 9.2 по сравнению с формулой 9.1 имеет несколько отличий. В первом поле форму­
лы, кроме задания типа производства FF, указывается количество транспортных средств R в
линии - в данном случае такое средство (робот) одно.
Во втором поле, как и в предыдущем параграфе, указываются требуемые моменты выполне­
ния заказов di и трудоемкости переналадки Sjom- Параметр pmtn показывает, что в отличие от
предыдущего случая, обработка на машинах может производиться с прерываниями и в парти­
ях, в общем случае не равными размерам заказов. Более того, размер обрабатываемой партии
на каждом цикле работы конкретной машины не всегда равен размеру транспортной партии,
подаваемой на эту машину. В качестве плановых поступлений используются не однократные
моменты поступления работ (заготовок) в цех ri, а многократные моменты q поступления ма­
териалов rjq различных типов j. Параметр Вт указывает на наличие входного и выходного
буферов ограниченной емкости на т-ои машине.
В отличие от задачи, рассмотренной в предыдущем параграфе, для узлов, соответствующих
первой операции, существует ограничение по наличию материала

Stock(j) = У^ rjq — Distr(j) > 0,
я

(9.3)

где Stock(j) - текущий запас материала j; sngCz - момент освобождения машины для первой
операции; Distr(j) - суммарный расход материала на этот момент.
Кроме ограничения 9.3, здесь для построения узлов дерева необходимо учесть несколько
условий, касающихся буферов машин. Прежде всего, возможность переноса заготовок из вы­
ходного буфера машины предыдущей операции во входной буфер машины для последующей
операции зависит от текущего наполнения обоих этих буферов. Поэтому при построении уз­
лов дерева в каждом узле необходимо фиксировать не только машину, на которой проводится
соответствующая операция, но и машину, с которой переносятся заготовки.

200

(с) 2018, Мауэргауз Ю.Е.

Гибкие поточные линии

Для этой цели составляется полный список возможных пар машин и, которые должны
обслуживаться роботом. При построении каждого узла дерева из этого списка отбираются
пары машин, выполняются некоторые требования.
Обозначим для каждой возможной пары машин и текущее количество продукта b в буферах
тремя индексами: первый индекс - номер пары машин, второй индекс со значением 1 или 2
обозначает первую или вторую машину в паре, третий индекс со значением 1 или 2 обозначает
входной или выходной буфер машины. Склад материалов образует пары с машинами первой
операции, а машины последней операции образуют пары со складом готовой продукции.
Будем полагать, что для переноса партии при помощи робота с первой машины в паре и
на вторую машину необходимо, чтобы в выходном буфере первой машины были заготовки, а
входной буфер второй машины был пуст, т.е.

bui2 > 0 и bU2i = 0.

(9.4)

Если выходной буфер второй машины также пуст, т.е. bU22 = 0, то на эту машину можно
загружать любую работу. В случае, если в выходном буфере имеются обработанные детали и
bU22 > 0, на загрузку входного буфера накладывается определенное ограничение.
Здесь есть две возможности. В первом случае, возможна загрузка только еще одной партии
того же заказа (работы), детали которого находятся в выходном буфере. Во втором случае
допустима загрузка другого заказа, если вид его деталей совпадает с видом деталей в выходном
буфере. Очевидно, что в первом случае детали различных заказов не будут смешиваться, и
могут учитываться и храниться раздельно. В настоящей книге рассматривается именно этот
вариант.
Количество продукта sngOst в паре и определяется имеющимся объемом продукта в вы­
ходном буфере первой машины, емкостью входного буфера второй машины Виц и объемом
транспортной емкости робота Вг:

sngOst = Min(bui2,Bu2i,Br)-

(9.5)

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

Ьи22 < Ви22-

(9.6)

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

bun > 0,

(9.7)

эта машина также запускается. Каждая машина будет работать до тех пор, пока либо заполнит­
ся ее выходной буфер, либо закончатся заготовки во входном буфере. Назовем такой временной
интервал работы каждой машины ее машинным циклом.
© 2018, Мауэргауз Ю.Е.

201

Гибкие поточные линии

9.3.1

Исходные данные задачи

Исходные данные для составления расписания записываются на листе MS Excel электрон­
ной книги MBook8.xls, состоящей из четырех листов. На листе 1 в табл. $A$5:$G$20 нахо­
дится задание, состоящее из шестнадцати работ шести различных видов, которое приведено на
рис. 9.18. Работы выполняются последовательно на пяти операциях, для чего в гибкой поточной
линии установлены 9 машин.
В каждой строке задания описываются параметры работ: номер работы; требуемый момент
день готовности; вид работы; количество штук в работе; весовой коэффициент работы; номер
последней законченной операции и процент уже выполненной работы.
В табл. $U$4:$AC$13 (рис. 9.19) записаны данные каждой из машин, причем в данном
случае одна из машин находится в выключенном состоянии. Каждая из машин предназначена
для выполнения одной из операций технологического процесса и относится к соответствующей
группе. По каждой работающей машине приведены данные о ее настройке на конкретную
работу на момент планирования (начало нового рабочего дня), процент загрузки работы на
машину и ожидаемый момент окончания обработки.
Если работа находится на машине и процент ее загрузки равен 100, то последней закончен­
ной операцией является предыдущая операция. Если процент работы, находящейся на машине,
меньше 100, то для определения номера последней выполненной операции необходимо сумми­
ровать процент загрузки на разных машинах, а также процент уже выполненной работы. Номер
последней законченной операции устанавливается по номеру операции, для которой обработка
уже произведена.
Например, в данном случае работа 1 частично загружена на машину 9 для выполнения
операции 5 и машину 8 для операции 4. Поэтому последней законченной операцией для работы

Обозначе Требуемый
Вид работы Количество
календарный i
ние(№
день
готовности
после начала

заказа)

...'

._

1

-1

3

70

2
^

1

2

30

1

40

72'37"^

. ...з.......

4

Номер

{Процент

последней {полного

коэффици

законченно | выполнен

й операции ня
ент
............... 1

EZZTZji
0!
0
ГrzjjZZi

3|

7

5

3L

30

0J
50
1 ..................... о[................ 0
1 ; ................. 1.L............. 0
[
31
0
1

8

5

25

1 .................. о;............... о

А

t
Я

$

30

1।

0i

0

3’

60

1!

0[

0

1
1

01

0

........... 5

6

4
............ 4

ю

11
12

б.......
’ т*

13
Ч

«

16

8

8

Рис. 9.18

202

штук

Весовой

3

80

t

40

2

50

4*

70

з[.''

90

5;

20

з!

40

бГ''

1j

"

21"

' /

0j
о
1!
1 1.................... 0i... ............ 0

'

50
70

Исходное задание на листе 1

(с) 2018, Мауэргауз Ю.Е.

1

°j

°

Гибкие поточные линии

Состояние машин на
Машина

15.0916 8:00
1

Номер группы машин

1

1

2

2

2

3

4

4

5

Физическая емкость входного буфере, л

20

30

25

30

32

25

25

25

25

Физическая емкость выходного буфера, л

30

30

25

30

35

30

25

35

25

2

Ц

3.5

1.8

2«8

2.5

3.5

1.8

2.8

1

Стоимость часа наладки машины

Отметка включения машины
Настройка в начале дня на работу

Процент загрузки работы не операции
Ожидаемый момент остановки операции, часы

Рис. 9.19

2

4

3

6

5

9

8

7

1

1

1

0

1

1

1

1

5

о

з

0

5

2

7

1

1

100

0

100

0

100

50

100

30

70

6

8

9

0

8

9

8

8

8

Начальная загрузка машин

1 является операция 3. Работа 2 загружена на машину 6 для выполнения операции 3 и больше
не загружалась ни на какую другую машину. Поэтому номером ее последней законченной
операцией является 0.
Работы 3 и 6 загружены на 100% на машины для операции 2, поэтому последней выпол­
ненной операцией для них является операция 1. Работа 7 загружена на 100% на операции 4,
а работа 5 тоже на 100% на операции 1. Поэтому для работы 7 последним номером выполнен­
ной операции является 3, а для работы 5 этот номер равен 0. Работа 4 выполнена полностью
на 50%, однако в дальнейшем больше не продолжалась, и для нее номер последней операции
равен 0.
В табл. $V$20:$BW$25 приведены нормы времени в часах на переналадку с одного вида
работы на другой для каждой из девяти машин. При этом, как и раньше, полагается, что
номер предыдущего вида работы устанавливается по столбцу таблицы, а номер последующего
вида работы - по строке таблицы. В табл. $U$35:$AF$40 записаны нормы объема в литрах
для одной штуки каждой заготовки; нормы материала, расходуемого на одну деталь; нормы
процессного времени обработки одной детали на каждой машине. В табл. $X$43:$AZ$50
приведен график ожидаемого поступления новых материалов и заготовок для всех видов работ.
В табл. $Х$54:$ВН$66 описан календарный график работы машины по дням, начинающий­
ся с первого дня выполнения составляемого расписания. Для каждой смены календарного дня
проставлено количество рабочих часов, для каждой машины указано плановое время проведе­
ния технического обслуживания. В приведенном примере предусмотрена двухсменная работа с
двенадцатичасовым рабочим днем.
На листе 2 приведен возможный вариант перепланирования этого задания, на листе 3 про­
водится моделирование по различным параметрам, на листе 4 приведен пример моделирования
с целью нахождения рационального горизонта планирования.

9.3.2

Работа с программой

Для работы с программой планирования в MS Excel устанавливается соответствующий
рабочий лист, например, лист 1 и осуществляется запуск макроса. При выборе опции «без
моделирования», система сообщает о последней дате планирования и предлагает одну из двух
возможностей - подготовку планирования с новой датой или повторение расчета с последней
датой.
В форме «Ввод данных» задаются основные параметры процесса. Система автоматически
рассчитывает загрузку участка (по включенным машинам) и выдает соответствующее сооб­
щение. По окончании расчета на лист выводятся коэффициенты загрузки по каждой группе
© 2018, Мауэргауз Ю.Е.

203

Гибкие поточные линии

машин. Поскольку количество возможных вариантов решения в этой задаче обычно не боль­
ше двух, и часто вообще равно единице значения, показатели расписания не выводятся. Все
возможные и не доминируемые варианты загрузки машин выводятся на лист (рис. 9.20).
В качестве примера рассмотрим расчет для задания на рис. 9.18, для чего в форме «Ввод
данных» установим «Имя последней ячейки ввода данных» равное G20. Для каждой машины
работы сгруппированы по видам, а группы разделены пробелами.
Для построения диаграмм необходимо задать горизонт просмотра. Если горизонт просмотра
меньше интервала времени, необходимого для выполнения всех работ в задании, программа
выведет на экран соответствующую часть операций, но зато на начальном участке времени
диаграммы могут быть изучены более подробно.
Н«доминиру«шн»^^
Вараишт 1 Минина 1:^

.

_ ................ ..........................

..........

Вцмот 1 Маиик^ (11J^
Вфшг 1 Мшив 3: (3,5, 8, 9). (15,15). (11,11). (4,4.14,14.10,10,12.12,12.12)
Вариант 1 Машина 5: (2,16.16), 13
Вариант1 Машина 6:(2,6), (3.5,8), 2.9. (15,15.15), (11.11.11), (4,4,14,14.10.10.10,12.12,12.12 12), (16,16,16), 13
Вариант 1 Машина 7: (4,4,4,14,14,12,12), 13
Вариант 1 Машина t (2,6Хр. 5.0). 2.9. (15,15.15), (11.11.11). (10,10.10.12), (16.1Q
Варимт 1 Машина 0: (1,1.7). (2.6). (3.5.6). 2.9. (15.15.15). 11. (4.4), 11. (10,10.14.14.12,12,12,12). 13, (16.16.16)

Рис. 9.20

9.3.3

План обрабатываемых партий на машинах

Анализ результатов планирования

На рис. 9.21 показано расписание для единственного найденного варианта, составленное
с учетом графика работы цеха. Для каждой машинной операции, как обычно, указывается
момент начала в календарных часах, номер работы (в скобках) и момент окончания операции.
{Машина 1 43,8 (8)45,5; 45.6 (2)46.6; 48,6 (16) 00 Д 80,9 (16) 84.9; 110,6 (16) 112,6; 120 (9) 122; 123,6 (15) 126,3;
126.4 (15) 127,7; 130,1 (15) 131,4; 132,4 (13) 134,1;
Машин» 2М10££11115,1; 142,7 (11) 144,4; 144,6 (4) 148,6; 163,5 (14) 167.5; 172,5 (10) 176,8; 159(10)241.7;
252,7(12) 257; 257,4 (12) 257,5; 257,6(12) 261,2; 264.6 (12) 265 Д 265,4(12)265.8;
Машина 3: 8 0)9; 41,7(5)43.7; 46,6(8)46.8,122.1 (9) 123,6; 130,1(15)132.2; 132.5(15) 133Л 142,7(11)149.7,
155.9 (11) 156; 156 (4) 1«Д 163.4 (4) 163.8; 168,2 (14) 172Д 194,1 (14) 194,6; 199 (10) 251Д
252.6(10)256.4; 257.4 (1$ 261,6; 264,6 (12) 266.8; 269.3 (12) 269.4; 269.4 (12)271.5;
Машина 5: 48.7 (2) 50.9 1101.8 (16) 119,8; 119,9 (16) 121.4, 310.8 (13) 312Д
Машина 6 8(2)9; 19(6)27.3.36.8(3)41.5; 43.8 (5)48,4,100,1 (8) 103; 106,6(2)109,1.126,5(9)1»; 132^(15)137.7,
132.5 (15) 137,7; 139,3 (15) 140,4; 140,5 (16) 142,6; 151,8 (11) 155,5.166.9(11) 158,8,168,9 (11) 161^
163,3 (4) 168; 168,1 (4) 168,6; 194.1 (14) 198,8; 198,9 (14) 199,5; 252.5 (10) 257,3; 257,4 (10) 258.3;
258,4 (10) 260.6;264Л (12) 269Д 269,3 (12)270^,281,9(12) 285,7,265,8 (12) 286,7,291 (12) 292.5,
3023 (16) 310,7; 310,7(1$ ОД
:
;
I
{Машина 7; 177 (4) ШД 184,2 (4) 184,3; 184.4 (4) 184.9; 198,6 (14) 262,3; 276,9 (14) 277Д 281.9 (12) 206,6; 291 (12) 296,8,318,3 (13) 319;
{Машина * 16 (2) 17Д 27.4 (6) 31.6; 41.6 ($46.9; 87.8 (5) 93Д 103,1 (8) 106.4; 111 (2) 112Д 130,1 (9) 134,1; 140,5 (15) 142;
142.6(15) 143Д 144,7 (15) 146; 158,9 (11) 163.1; 163,2 (11) 164,8; 177,1 (11) 178Д258.4 (10) 264,3; 264,4 (10)266.7
269.5 (10) 271Д 292.6 (12) 295.6; 312,5 (16) 316,7; 316,0 (1$ 318,5;
[Машина 9 8,1 (1) 9.6.9,7 (1) 12Д 12.3 (7) 15Д 17,3 (2) 18Д 31.7 (6) 36,7; 810) 87.7; 93.2 (5)99,9.106.5 (8) 110.7,
122.2(2)123.7; 1М.1 (9) 1»1; 144.7(16)151,5; 151.5(15)151.6; 151,7(15)155.7; ^
,
\
1М.2 И) 188,4; 188.6 0)189,1,189,2 (11) 193.9,269.5 (10) 273,7; 273.9 (10) 276,7; 276.9 (U)26t^
286.7 (12) 290,9; 295,7 (12) 297,8; 297,9 (12) 299,9; 300 (12) 302Д 319(13) 321.4,321,5 (16) 326.5; 326.6(16) 326.7; 326,7 (16) 328,7;

Рис. 9.21

204

План загрузки машин

© 2018, Мауэргауз Ю.Е.

Гибкие поточные линии

В данном случае, несмотря на относительно небольшую среднюю загрузку, имеет место
очень высокая неравномерность загрузки машин для разных операций (рис. 9.22).
Программа автоматически стремится к тому, чтобы максимально возможно уменьшить про­
стаивание наиболее загруженной машины 9 группы 5, а также машины 6 группы 3. Часть
плана загрузки машины с горизонтом, равным 150 календарных часов, изображена графически
на рис. 9.23.
На рис. 9.24 приведена последовательность выполнения операций для всех работ. Здесь для
каждой операции приводятся моменты начала и конца операции, а в скобках - номер машины
и, (через дроби) полный процент работы, загруженной на машину, а также процент работы,
находящийся в выходном буфере после остановки машины.
План обработки на рис. 9.24 позволяет пояснить порядок выполнения планов на рис. 9.20
и 9.21. Рассмотрим, например, выполнение работы 16 на машине 1. На рис. 9.20 показано, что
выполнение этой операции происходит в три этапа.
Первоначально входной буфер машины, имеющий емкость 20 литров, позволяет загрузить
часть этой работы, составляющую 57 процентов, что происходит в 48,8 часа. Поскольку третий
день является нерабочим, то машина обрабатывает часть загруженных деталей до окончания
Расчетные коэффициенты загрузки групп машин
Группа 1: 0,18
Группа 2: 0,16
Группа 3: 0,58
Группа 4: 0,3
Группа 5: 0,63
Средний расчетный коэффициент загрузки машин 0,29

Рис. 9.22

Рис. 9.23

Загрузка разных групп машин

Диаграмма Ганта для горизонта, равного 150 календарных

часов

© 2018, Мауэргауз Ю.Е.

205

Гибкие поточные линии

Плен обрвботшпо Мри*оу1_
Pi6oti1: 8.1 (9/19/19) 9Л 9.7 (9/49 «9)12,2, 12,2(9/0/0)12.2;
Р»ботв2; 16 0/50/50)17,2; 17,3(9/50/50)18.8, 18,9(9/0/0)18,9, 45,6(1/50/50)48,6; 48.7(5/50/50)50,9,
106,6(6/50/50)109.1. 122,3(8/50/50) 123.5. 124,9(9/50/50)126,4; 126.5(9/0/0)126,5,
Работ3: 36.0(6/100/100)41.5. 41,60/100 ЛОО) 46,9; 810/100/100)87.7; 87,7 0/0Л)87,7;
Работа#: 156,7 0/50/50)160.7; 1623 0X45 «5) 166 А 167,6(6/45/45)172,4, 167.6 0/0/0)167,7; 167,8 0/5 Л) 168,2;
172.5(6/50/50)173, 181.4 0X46/45)186.1; 188.6 0/45/45)192,8; 188,6 0/0/0)188.7, 188,8 0/5/5)189,3,
192.9 0/0/0)192.9; 193 0/5 0)193,5; 193,5 0/0/0)193.5;
Работа 5: 41.7 0/100/100)43.7; 43.80 ЛОО ЛОО) 48.4; 87,8 0 ЛОО ЛОО) 933; 933 0 ЛОО ЛОО) 99,9; 100 0/0/0)100;
Работав: 19 0 ЛОО ЛОО) 27 Л 27,4 0 ЛОО ЛОО) 31,6; 31.7 0/100/1(0)36,7; 36,8 (9/0Ю)Э6.8.
РаботвГ 12,30 ЛОО /1(0) 15,8; 15,90/0/0)15,9;
Работав: 43.8(1 ЛОО /100) 45.5; 45.6 0 ЛОО ЛОО) 46.8; 100,1 0/100 ЛОО) 103; 103.1 0 ЛОО ЛОО) 106,4;
106,5 0/100 ЛОО) 110.7; 110,70/0/0)110.7;
Работав: 120(1 ЛОО /100)122; 122,10/100/100)123,6. 126,6 0 ЛОО ЛОО) 130,1; 130,10/100/100)134.1;
135,7 0/100/100)140,7; 140,7 0/0/0)140,7;
РаботаЮ: 176.9 0/71/71)181.2, 251,4 0/60/60)255.6; 251,4 0/40/40)253,1; 256,9 0/60/60)261,7; 257 0/40/40)259.8;
261.8 0/100/71)262.7; 262.8 0/60/60)268,7; 262.8 0/40/40)265, 268,8 0Л00/83)271,1; 273.9 0/60/60)278,1
273.9 0/40/40)275.6; 2783 0 /О Л) 2783; 2783 0/40/40)281,1; 281,2 0/0 0)281,2;
Работа 11: 140,9 0/71/71)145,1; 145,2 0/50/60)152,2; 1453 0X40X40)146,9; 1563 0/60/60) 162,1, 156.5(3/0/0) 156,6.
156,7 0/40/40)161,3; 162.2 0/100/71)163,2; 163 3 0 00/80) 167Д 163.3(6/40/40)166; 167,6 0 ЛОО /83) 168,2;
181,5 0/60 00)188.4; 181,5 0/40/40)182,6; 188,5 0/0/0)188,5; 193,6 0 /40/40) 190Д 198,4 0/0/0) 198,4;
Работав 257.10X48X48)261,4; 261.8 0X40/40)266; 261.8 0/8/8)261,9; 262 0/56/48)265,6; 268.9 0/40Х40)273,6;
269 0/40X40)273.2; 269 0/16/16)269 7; 269,8 0/20/20)270,2 273.7 000X48)274,6; 273.7 0/0/0)273,8;
273.8 0/20/2(0 275,9. 286 3(7/40/40)291. 206.3 0X40/40)290.1; 2903 0 760X48)291.1; 291.10/40/40)295.3,
295.4 0/0/0)295,4; 295^(7X40/40)3003; 295,4 0/20/20)296.9; 297 0/20/20)300; 300,1 0/20/20) 302Д
302.3 0/60/40)304.3; 304,4 0/20/20)306.6; 306.6 0/0/0)306.6;
Работав: 130,2 (1 ЛОО ЛОО) 131,9; 31530/100/100)316.6; 321.3 0 ЛОО ЛОО) 322.6: 322,7 (7 ЛОО /100) 323.4;
323.4 0/100/100) 325.8; 325,9 0/0/0)325,9;
Работай 167.8 0 ЛОО ЛОО) 171,8; 172.6 0/09/89)176.7; 198.5 (6/89/89) 251 Я. 198.5 0 Л1/11) 199; 251.3 0/100/100)2510;
252 0/89/89)256,7; 281,3 0/89/89)285,4; 281.3 0/11/11)281.8; Ж60/11/11)286.1; 286.2 0/О Я)) 286.2;
Работаю: 122,2(1/50/50)124,7; 124.8(1 ЛОО/75) 126.1; 126.6 0X62/62)128,7; 126,6 0/38/38)127.9; 130.3 0/62/62)135,5;
130,3 0/38/38)131,5; 135,6 0/100/75)136,7. 140,8 0/62/62) 142Д 140.8 0/38/38)142,9; 143 0 ЛОО/87) 143,6;
1453 0/62/62)152.1; 1453 0/38/38)145,6; 152,10 ЛОО/62)1623; 1523 0/38/38)1563; 1564 0/0/0) 156Д
РаботаЮ: 48.8(1/57/57)80,8; 80,9 (1Л00/86) 84.9; 110.8(5/86/86)119.8 110.8(1/14/14)112.8; 119.9 0 ЛОО ЛОО) 121,4;
306,7 0/71/71)315.1; 315,10ЛОО/86)316,9; 316,9(8/71/71)321,1; 316,9 0/29/29)318,6; 3212 0/100ЛОО)322,9
325,9(9/71/71)330.9; 331 0ЛОО/71)331.1; 331.10/29/29)333,1; 3333 0/0/0)3333;

Рис. 9.24

План обработки

третьей смены второго рабочего дня, т.е. 56 часов (до 8 часов третьего календарного дня).
Затем, после начала нового рабочего дня в 8 часов (80 календарных часов) машина 1 вновь
запускается и в 80,8 часа остатки партии оказываются в выходном буфере. Поскольку емкость
выходного буфера машины 1 составляет 30 литров, то после полной обработки загруженной
партии в выходном буфере остается свободное место.
По плану робот немедленно берет со склада остающуюся часть работы 16 в количестве
47% и загружает это количество во входной буфер машины 1, в результате чего на машине 1
оказывается загруженными 100% работы 16.
После загрузки машина начинает работать и часть вновь загруженной партии переходит в
выходной буфер. При полной загрузке выходного буфера в нем оказывается 86% всей работы 16.
Дальнейшая работа машины 1 возможно только после хотя бы частичной разгрузки выходного
буфера. В данном случае это происходит в момент 110,8, когда робот переносит все детали
из выходного буфера машины 1 и составляющие 86% работы 16 на машину 5. После такого
переноса машина 1 запускается в третий раз и обрабатывает остающиеся 14% работы 16.
На рис. 9.25 перечислены шаги робота, переносящего партии деталей с машины на машину.
Рассмотрим составленное расписание, начиная с первых шагов работа. В плане перемещений

206

© 2018, Мауэргауз Ю.Е.

Гибкие поточные линии

робота на рис. 9.25 на каждом шаге сначала указывается момент начала движения робота в
календарных часах, затем (в скобках) номер машины, с которой робот снимает детали и (че­
рез дробь) номер машины, на которую робот эти детали загружает. Номер склада материалов
(заготовок) считается равным 0, номер склада готовой продукции превышает на единицу наи­
больший номер машины в линии, и в данном случае равен 10. После номеров машин приводится
номер переносимой работы.
На первом шаге в момент 8,1 робот переносит часть деталей работы 1, на которых завер­
шилась обработка на последней операции, с машины 9 на склад 10. Полагается, что машина 9,
на которые загружены 70% работы 1, в начальный момент 8 часов будет находиться в останов­
ленном состоянии (рис. 9.19). Это произойдет, если либо будет полностью заполнен выходной
буфер, либо закончатся заготовки во входном буфере.
В данном случае имеет место первый вариант, и после разгрузки выходного буфера роботом
машина 9 в момент 8,1 начинает обработку деталей, находящихся во входном буфере (рис. 9.21).
Обработка заканчивается в момент 9,6.
Переходя к плану обработки на рис. 9.24, видим, что в момент запуска машины 9 на ней
от начальных 70% работы 1 осталось только 19%, т.к. 51% деталей, занимавшие объем 25 л
выходного буфера, были перенесены роботом на склад. После остановки машины 9 в момент
9,6 эти 19% должны быть полностью обработаны и находиться в выходном буфере.
Следующий плановый шаг робота в момент 9,7 осуществляет перенос остатка работы 1 в
количестве 30% с машины 8 (рис. 9.19) во входной буфер машины 9 для выполнения последней
операции 5. Это количество обрабатывается и добавляется к готовым деталям в выходном
буфере. В результате в момент 12,2 (рис. 9.24) остановки машины 9 в выходном буфере должно
находиться 49% работы 1, которые затем переносятся на склад готовой продукции на третьем
шаге робота, и в этот момент работа 1 окончательно освобождает машину 9.
Перемещения робота можно проследить графически. Например, на рис. 9.26 приведен гра­
фик движения робота на горизонте 150 календарных часов, которые в данном случае соот­
ветствуют примерно ста часам непрерывной работы. Отрезки перемещений робота окрашены
в различный цвет, соответствующий виду переносимых деталей. Например, на первом шаге с

Шаги робота
8.1 (910)1.
9,7(99)1;
12,2(910)1;
12,3(7/9)7;
15.9(910)7;
16(6/8)2;
17,3(8/9)2;
18,9(910)2;
19(5/6)6;
27.4(6/8)6;
31.7(8/9)6
36.8(910)6;
36.8 (3/6)3;
41,6(6/8)3;
41,7(1/3)5;
43,8(3/6)5;
43,8 (0/1)8;
45.6(1/3)8;
45.6(91)2;
48,7(1/5)2;

48.8(91) 16;
80.9(91) 16;
81(99)3;
87,7(910)3;
87,8(6/8)5;
93,2(99)5;
100(910)5;
100.1(3/6)8;
103.1(6/8)8;
106,5(8/9)8;
106,6(5/6)2;
110,7(910)8;
110,8 (V5) 16;
119.9(1/5)16;
120(91)9;
122,1 (1/3)9;
122,2(91)15;
122.3(6/8)2;
124.8 (91)15;
124,9(99)2;

Рис. 9.25

126,5(910)2;
126,6(96)9;
126,6(1/3) 15;
128,8(1/3) 15;
130,1(6/8)9;
130,2(91) 13;
130,3(3/6)15;
135,6(3/6)15,
135,7(99)9;
140.7(910)9;
140,8(6/8)15;
140,9(92)11;
143(98)15;
145,1 (92) 11;
145,2(2/3)11;
1453(99)15;
162,1 (99) 15;
152,3(910)15;
156,4(910)15;
156,5(3/6)11;

156,7(2/3)11,
156,7(92)4;
1623(3/6)11;
162.2(2/3)4;
163.3(98)11;
167,6(98)11;
167,6 (3/6) 4;
167,8(2/3)4;
167.8 (92) U;
1723(96)4;
172,6^3)14;
176,8(2/3)14;
176,9(92)10;
1813(92)10;
181,4(97)4;
1013(99)11;
168,5(910)11;
188,6(7/9)4;
188,8(97)4;
192,9(910)4;

193(7/9)4;
193,5(910)4;
193,6(99)11;
198,4(910)11;
198,5(38)14;
251,3(38)14;
251,4 (2/3) 10;
252(97)14;
256,8(97) 14;
2569(38)10;
257(2/3)10.
257,1 (92) 12;
261,8(3/6)10;
261,8(2/3)12;
262(92)12;
262,8(98)10;
268,8(98) 10;
268,9(3/6)12;
269(28)12;
269,8(92)12;

273.7(38)12:
273,8(2/3)12;
273,9(99)10;
278.2(910)10;
278.3(99)10;
281,2(910) 10;
281.3(7/9)14;
285,5(7/9)14;
285,6(9/10) 14;
286,2(9/10)14;
286,3(97)12.
290.2(3/6)12,
291,1 (7/9) 12;
295.4(9/10)12;
296,4(97)12;
297(98)12;
300,1(99)12;
302.3(7/9)12;
304.4(9/10)12;
306.6(910)12;

306,7(5/6)16;
315,1(6/6)16;
315,2(1/5)13;
316.9(98)16;
321.2(98)16;
321,3(96)13;
322,7(97)13;
323.4(7/9)13;
325.9(910)13;
325.9(99)16;
331 (99) 16;
331,1(910) 16;
333,2(910) 16;
333.2(910)16;
340.3(910)16;
342.4(910)16;

План перемещений робота

© 2018, Мауэргауз Ю.Е.

207

Гибкие поточные линии

машины 9 на склад готовой продукции 10 переносятся детали работы 1 вида 3 (рис. 9.18), и
соответствующий отрезок в начале движения робота окрашен в темно-синий цвет.
На втором шаге остаток деталей этой же работы сначала переносится с машины 8 на
машину 9, а затем на третьем шаге - на склад. После этого робот переносит детали работы 7
такого же вида 3 с машины 7 на машину 9, и после окончания обработки - на склад готовой
продукции.
На шестом шаге вид переносимой продукции меняется: детали для работы 2 вида 2 (корич­
невого цвета) последовательно переносятся с машины 6 на машину 8, с машины 8 на машину
9 и на склад. Далее робот переходит к последовательной транспортировке деталей для работы
6 того же вида 2 с машины 5 на 6, с машины 6 на машину 8, с машины 8 на машину 9 и, в
конечном итоге, на склад.
По мере того, как освобождаются машины для старших операций, робот начинает транс­
портировку с машин все более ранних операций. В календарный момент 36,8 (рис. 9.25) детали
для работы 3 вида 1 (черного цвета на рис. 9.26) перемещаются с машины 3 на машину 6 и
далее на машину 8. После этого робот переходит к машине 1 и переносит детали работы 5 того
же вида на освободившуюся машину 3, а затем на машину 6. Затем на освободившуюся маши­
ну 1 со склада заготовок подаются детали для работы 8 этого вида 1, которые после обработки
переносятся на машину 3.
Обратим внимание на то, что, например, для машины 6 за время работы 60 часов должны
быть выполнены 4 операции для работ 6, 3, 5 и 8, причем требуется только одна переналадка - с
работы 6 на работу 3, т.к. первая работа 6 по виду 2 совпадает с начальной работой 2 (рис. 9.19).
Аналогичная ситуация имеет место с машиной 3. После освобождения машины 1 от работы 5,
она загружается работой 8 того вида 1, что также позволяет обойтись без переналадки.

Рис. 9.26

Перемещения робота для горизонта, равного 150 календарных

часов

208

©2018, Мауэргауз Ю.Е.

Гибкие поточные линии

Изучим последовательное выполнение работ на машинах (рис. 9.24). О работе 1 упомина­
лось выше, поэтому перейдем к изучению работы 2. В начальный момент (рис. 9.19) на машине
6 находились 50% работы 2. По плану, в 16 часов робот должен транспортировать соответству­
ющие детали для работы 2 с машины 6 на машину 8 (рис. 9.25). После окончания обработки
на машине 8 детали переносятся на машину 9 (рис. 9.24), где подвергаются обработке на
последней операции. В момент 18,9 робот должен освободить машину 9.
Вторая часть деталей для работы 2 в объеме 50% запускается в производство на машине
1 в момент 45,6. Затем эта партия проходит обработку последовательно на машинах 5, 6,
8 и 9 и в момент 126,5 должна быть передана на склад. На рис. 9.23 можно проследить
последовательность обработки обеих партий для работы 2 графически.
Рассмотрим случай выполнения работ в несколько партий на примере работы 12, в рам­
ках которой требуется изготовить 90 штук деталей вида 3 (рис. 9.18). Для каждой детали
этого вида, согласно табл. $U$35:$AF$40 на листе 1 MS Excel, установлена норма занима­
емого объема, равная 0,7 литра. В момент 257,1 часть работы 12 должна быть загружена во
входной буфер машины 2, емкость которого составляет 30 л. Поэтому первая партия деталей
насчитывает 43 детали, что составляет примерно 48% всей работы 12.
Поскольку емкость выходного буфера машины 2 равна емкости входного буфера, то в момент
261,4 вся загруженная первая партия должна находиться в выходном буфере. Детали этой
партии в момент 261,8 должны быть перенесены роботом на машину 3 (рис. 9.25), однако
емкость входного буфера машины 2 составляет только 25 литров. Поэтому переносится не вся
партия, а только 36 деталей, что составляет 40% всей работы, а 7 деталей, т.е. 8% работы,
остаются в выходном буфере машины 1.
В момент 262 робот снова пополняет входной буфер машины 2 партией из 43 деталей.
Теперь, однако, после обработки до полного заполнения выходного буфера и остановки машины,
во входном буфере остаются 7 деталей. Поэтому в момент 265,6 на машине 2 всего находится
56% работы 12, а в выходном буфере - только 40% (рис. 9.24).
После переноса партии деталей в 40% работы 12 в момент 268,9 с машины 3 на машину
6 (рис. 9.25) машина 3 освобождается. На следующем шаге в момент 269 робот переносит
партию в 40% с машины 2 на машину 3, а затем в момент 269,8 - загружает остаток из
четырех заготовок (4% от работы 12) на машину 2.
В результате в момент 270,2 (рис. 9.24) в выходном буфере машины 2 находится последняя
(третья) партия в 20% работы 12. На дальнейших операциях производится дозагрузка машины 6
партией в 40% из машины 3. В результате в момент 274,6 полная загрузка машины 6 составляет
80% работы 12, а в выходном буфере машины 6 находится только 48%. Последняя партия в
20% заканчивает обработку на машине 3 в момент 275,9.
Первая партия в 40% работы 1, и вторая такая же партия, проходят обработку последова­
тельно на машинах 7 и 9 и переносятся на склад в моменты 295,4 и 304,3. Последняя партия
обрабатывается на машине 8, а затем на машине 9, и передается на склад в момент 306,6.

9.3.4 Листинг основной части программы
Как указывалось выше, при построении узлов дерева в каждом узле должна фиксироваться
возможная пара машин. Для этой пары машин необходимо сохранять сведения о проценте ра­
боты, находящейся на каждой из машин, а также моменте прекращения обработки на машинах.
Всего на каждом уровне построения дерева расписания используются 10 основных массивов.
В массивах UStageQ, VStageQ, ParStageQ, NPStageQ, как обычно, сохраняются функ­
ции затрат и полезности заказов, а также номера родительских узлов и номера строк ра­
бот на текущем уровне. Массивы TranStageQ и TPStageQ служат для записи номеров пар
© 2018, Мауэргауз Ю.Е.

209

Гибкие поточные линии

машин и моментов переноса транспортных партий. В массивах PerBStageQ, PerLStageQ,
CompBStageQ и CompLStageQ записываются проценты выполнения и моменты прекраще­
ния работы для первой и второй машины в парах. Соответственно для дальнейшего построе­
ния ветвей дерева путем перезаписи значений параметров недоминируемых узлов используются
массивы [/(), V(), ParQ, NPQ, Per BQ, PerLQ, CompBQ, CompLQ.
Большую роль в данной задаче играют массив выполненных процентов для каждой работы
по каждой операции OtmQ, массив средней трудоемкости на каждой операции для каждого
вида работы pavsQ, массив полной остающейся трудоемкости по каждой работе pavQ, массив
процентов начатого выполнения работ PerOQ. Массив OtmQ является двумерным - по каждой
работе и по каждой операции, остальные массивы - одномерные.
Программа автоматически переносит данные с листа в переменные и массивы. После этого
проводится расчет начальных параметров работ (рис. 9.27).
На рис. 9.27 для каждой работы последовательно, начиная от последней операции, рас­
считывается накапливающийся процент выполнения Per® и остающаяся необходимая работа
pav. Одновременно накапливается трудоемкость по всем работам на одной операции Wip и
определяется необходимый момент запуска gs.
Затем программа анализирует все пары машин, и выделяет только те пары, в которых
возможен последовательный перенос партий деталей от предыдущей операции к последующей.
Определение полезности массива невыполненных работ в текущем узле, как и ранее, произ­
водится с помощью функции VZakQ (рис. 9.28), однако для работы которой необходимо задать
не одну машину в узле, а параметры пары машин. Этими параметрами являются процессное
время на первой snPD и второй машине snPL, а также моменты окончания обработки snKD
и snKL. Входными значениями функции также являются количество работ inBeta, номер те­
кущей работы ink, момент начала выполнения работы snTk и момент окончания работы snFk.
Остаток трудоемкости выполняемой работы snT определяется как разность между необходимой
работой pavQ) и выполняемой трудоемкостью на машинах snPD и snPL.
Для каждой работы определяется требуемый момент окончания первой необходимой опера­
ции snComp, момент освобождения машины принимается равным наибольшему из пары машин
snK.
Поскольку каждая передача партии деталей с машины на машину производится после мо­
мента остановки обоих машин, для определения размера партии необходимо устанавливать
текущую загрузку входного Bufl и выходного Buf2 буферов (рис. 9.29). Объем заказа в
партии m может быть больше или меньше емкости выходного буфера. В первом случае часть
For 1 * 1 То Beta 'цикл по работам (расчет массива трудоемкостей остажжихся операций)
PerO(i) “ ExV(l) ' уже выполмениый процент работы
pav(i) • Тс *продолжительность передачи готового заказа на склад
ж - Vid(i) * вид работм
For 5 * NOper То 1 Step -1 'цикл по операциям
If 3 > ЕхЩ Then 'для невыполненных операций
FerO(l) - РегО(1) ♦ Ов(1, j)
' макаплмважжийся процент выполнения работы с учетом "старом** операций
Ехес - Kol(i) * pave (ж, j) * (1 - PerO(i) / 100) 'осталжаяся работа на текущей операции
pav(l) • pav(i) ♦ Ехес ' накапливажжаяся необходимая работа после каждой операции
Wlp(3> " W1P0) + Exec 'трудоемкость по всем работам на операции
End If
Мехе 3
дя(1) • dd(l) - pav(l) ' Необходимый момент запуска
text 1

Рис. 9.27

210

Определение начальных параметров работ

(с) 2018, Мауэргауз Ю.Е.

Гибкие поточные линии

Function vZrtdnBeu, ink, snPD, мН., snKD, snKL, enTk, snFk)
Dia snP Аз Single
D1B ml Аз Single
Dia anT Аз Single
Dia заСоцр As Single
snF • Application.Max (snPD, snPL) 'каибольаая пролшвмтельиость текущих операций на паре манки
•аК • Application.Мах (snKD, snKL) ’ наибольшей момент освобождения из парк махин
vzak - О
For 1 - 1 То inBeta
мСсор - d(l) - ₽•▼(!) 'требуемый момент окончания первой необходимой операции текущей работа
If 1 - ink Then 'для выполняемой работы
snT * pav(i) - snPD - snPL * остаток трудоемкости выполняемой работы
VZak • VZak ♦ Vybor(0.S, W(i), snFD, snPD, хпСснр, snKD, snTk, snFk) ’иа первой махине
vzak • VZak * vybur(0.5, W(1), snPL, snPL, sncoap, snKL, snlk, snFk) 'на второй машине
'вклад выполняемой операции
vzak - VZak ♦ Vybor(l, Wd), эпТ, эпР, зпСояр, зяК, snlk, snFk)
'вклад остальных операций выполняемой работы
Else
VZak • VZak ♦ Vybor(l, H(i), pav(i), sn₽, эпСсоф, snK, snTk, snFk)
'вклад кевыполняешх работ
End If
Hext 1
Ena Function

Рис. 9.28

Функция полезности заказов

Private Sub BuferStop(ByVal inMach Ад Integer, ByVai inOrder As Integer, ByVai inPer As Integer)
If inOrder > 0 Then 'если на махине есть заказ
ж - Koi(inOrder) • Vol(Vid(inOrder)) ♦ (infer / 100) 'объем заказа з партии
Else
в - 0
End If
If в > MachVZ (inMach) Then
'если объем заказа в партии превышает емкость выходного буфера
Bull (inMach} - в - MachV2 (inMach)
'часть остается во входном буфере
Buf2(inMach) ■ MachV2(inMach) 'выходной буфер заполняется полностью
Else 'если объем заказа в партии не превышает остахадутюя емкость выходного буфера
Buf1(inMach) • 0 'входной буфер пуст
Buf2(inMach) ■ в 'в выходном буфере находится объем заказа
End If
End Sub

Рис. 9.29

Процедура определения загрузки буферов

загруженной на машину работы остается во входном буфере, в противном случае входной буфер
оказывается пуст.

После подготовки исходных массивов, как и в предыдущем параграфе, рассчитываются
значения исходных значений критериев в корне дерева. Затем производится расчет основных
параметров узлов первого уровня. Узлы дерева решения организуются в цикле по всем возмож­
ным парам машин intPare. Узлы дерева в данном случае относятся к одному из трех типов: для
машин на последней операции; для предыдущих операций, кроме первой; для первой операции.
На рис. 9.30 приведена процедура определения параметров узла первого уровня для последней
операции.
Если на машине b для последней операции есть заказ(работа) с обозначением (номером)
OrderO, то может быть создан узел дерева с номером п, в котором с помощью процедуры
BuferStop определяется загрузка буферов. Номер строки работы, соответствующий ее обозна­
чению определяется с помощью стандартной функции DetermS.
© 2018, Мауэргауз Ю.Е.

211

Гибкие поточные линии

»’• О ' "узлы'
Por 1 • 1 То IntPare ‘по цозможкмм перем машин
b - MachB(i) 'первая хаимна пары
1 • MachL(i) ’ вторая маиина пары
If 1 * 0 Than ' для маяки поспешай операции
If OxdarO(b) > О Then 'если есть заказы ка хаакме мл последней опередим
п - п ♦ 1 'строится узел дерева (передача на склад)
Call BuferStop) / Koi(MPStage(n)) * 100
'процент оставшегося заказа на первой малине лары
PexLStage(n) - апдОвс / Vol (Vid (HPStage (n))) / Koi (Upstage (n)) • 100
'процент перенесенного заказа на склад
TPStaga(n) • К0(Ь) ♦ Тс 'момент переноса с майкам на склад
ParStag*(п) * 0 'родительский узел
Ехес * Application .Hint Buf1(b), HachV2(b) - (Buf2(b) - sngOsc))
' объем» возможный для переработки на первой маниме пары
ратВ - p(Vid(HPStage(n)), Ь) * Ехес / Vol(Vid(dPStage(п)))
'трудоемкость на первой навиме пары
CoapBStage (в) • TFStaga(n) ♦ ратв 'момент пре>фавеамл обработки на первой камине пары
СоарЬЗсаде(п) - TPStage(n) 'момент поступления на склад
VStage(n) - (VO * TVStage(n) _
♦ VZak(Beca, KtStage(nb ратВ, 0, K0(b), TPStage(n), TPStage(n), CcopBStage(n))) / ConpBStage (n)
'функция полезности заказов
UScagc(n) • 0 'затраты на переналадку
End If

End If

Рис. 9.30

Листинг расчета параметров на последней операции

Величина переносимого объема sngOst устанавливается по минимуму объема в выходном
буфере машины или транспортной емкости робота. В соответствии с величиной объема sngOst
рассчитываются значения процентов Per В Stage и PerLStage заказа, остающихся на машине
и переносимых на склад.

Во входном буфере машины может оставаться часть работы, которая должна начать обра­
ботку после освобождения объема выходного буфера с процессным временем этой обработки
pavB. Окончание обработки на машине записывается в массив CompBStage, а время поступ­
ления на склад - в массиве CompLStage.
На рис. 9.31 приведен листинг для узлов с операциями, не включающих первую или послед­
нюю. В том случае, когда для первой машины в паре есть заказ OrderO, может быть создан
узел дерева с номером п, если выполняются несколько условий. Для проверки этих условий с
помощью процедуры BuferStop определяется загрузка буферов на первой машине Ь и второй
машине 1 пары.

Прежде всего, в выходном буфере Buf2 первой машины должны быть заготовки, и за­
готовки этого вида могут обрабатываться на второй машине. Если эти условия соблюдаются,
перенос на вторую машину возможен в двух случаях. В первом случае оба буфера второй ма­
шины должны быть пустыми, а во втором случае на обеих машинах должен обрабатываться
один и тот же заказ, причем емкость обоих буферов второй машины должна быть неполной.
Определение остальных параметров узла в данном случае аналогично предыдущему на рис.
9.30.
На рис. 9.32 показан листинг для расчета узлов на первой операции. Вначале устанавли­
ваются параметры буферов текущей машины, которая должна выполнять эту операцию. Если
работа не начата ранее на 100%, для нее может быть построен новый узел дерева. В том случае,

212

©2018, Мауэргауз Ю.Е.

Гибкие поточные линии

If b > О Then 1 для маяки кроме первой операции
If OrderO(b) > 0 Then 'если иа первой нажиме есть заказ
Call BuferSt op (b, OxderO(b), C0(b))
If OxdezO(l) > 0 Then ’если на второй нажиме есть заказ
Call Buf«rSto₽(l, OrderO(l), С0(1))
End It
If Buf2(b) > 0 And p(Vld(M), 1) > 0 And ((Buf2(l) • 0 And Bufl(l) • 0) _
Or (OrderO(b) - OrdezO(1) And HechV2(l) - Buf2(l) > 0 And MachVl(l) - Buf 1(1) > 0)> Then
'если есть следуемая операция и следующая калима свободна, иди на обеих малинах одинаковый заказ
п “ п ♦ 1 'строится узел дерева
TtanStage(n) • 1 'номер пары переноса
MFStage(n) • OzdexO(b) ' номер строки заказов в узле
sngOst - Application .Min (Buf2(b), MacbVl(l) - Build), VR) * перемосзоелй объем
PerBStage(n) - (Buf1(b) ♦ Buf2(b) - sngOst) / Vol(Vid(MRStsge(n))) / Koi(NFScage(a)) • 100
'пропене остающегося заказа на первой малине
PerLScage(n) • (Buf1(1) ♦ Buf2(l) 4 sngOst) / Vol(Vid(MBScage(n))) / Koi(BPStage(n)) • 100
'процент заказа на второй малине после переноса
TPStage(n) • Application.Max(K0(b), К0(1)) + Те 'возможный момент переноса
РагЗсаде(п) • 0 'родительский узел
Exec - Application.Min(Buf1(b), MachV2(b) - (Buf2(b) - sngOst))
' объем, возможный для переработки на первой малине
ратВ • p(Vid(NPStage(n)>, b) * Exec / Vol(Vid(VF9tage(n))) 'трудоемкость на первой кашне
CoepBStаде(п) * ТРЗсаде(п) + ратВ 'момент выполнения на первой калине
Exec - Application.Min(Bull(1) ♦ sngOst, MachV2(l) - Buf2(l))
' объем, возможный для переработки на второй хаямке
part w p(Vid(MFStage(n)), 1) * Exec / Vol (Vid(HPStage (п))) 'трудоемкость на второй нажине
CenpLStage (п) ■ TPStage(n) ♦ pavL 'момент выполнения заказа на второй малике после переноса
Exec - Application.Kax(Cca^Stage(n), СоофЬЗсаде(п)) ' максимальный момент выполнения
vstage(n) - (VO • TPStage(n)
4 VZakfBeta, NPStage(n), part? pavL, K0(b), KO (lb TPStage(n), Exec)) / Exec

'функция полезности заказов
If OrdexO(b) о OxderO(l) Then 'если переносится новый заказ
If OrdezO(1) > 0 Then 'если есть заказ на второй малине
UStage(n) ■ UZak(OrdezO(b), OrdezO(1), 1) 'затраты на наладку’
Else 'если мет заказа, находится средний
Ехес • О
Гог j - 1 То MVid
Exec - Exec + в (Vid (ж), j, 1)
Meat 3
UStage(n) ■ Exec / KVid 'средние затраты на наладку второй малины
End If
Else
UStage(n) • 0
End If
End If
End If
End If

Рис. 9.31

Листинг расчета параметров на операциях, кроме первой и

последней

если буфера машины пусты, может быть выполнена работа любого вида, в противном случае
первая операция возможна как продолжение начатой работы.
Для каждого вновь создаваемого узла программа рассчитывает необходимое количество
материала в килограммах и его объем в литрах. Если материала недостаточно для выполнения
всей работы, определяется ее возможная часть. В том случае, материала недостаточно для 10%
всей работы, работа не начинается.
В том случае, если материала достаточно хотя бы для части работы, и работа еще не
полностью запущена в производство, рассчитываются параметры узла дерева. Вначале уста­
навливается переносимый объем sngOst, загружаемый на машину процент заказа и процент
заказа, остающийся не загруженным. После этого определяется возможный объем обрабаты©2018, Мауэргауз Ю.Е.

213

Гибкие поточные линии

Fox J - 1 То Beta ’по всем работай на первой операции
If F«O(J) < 100 Then ’если работа не закончена
Fox ж - 1 То !IVld 'по всем вилам работ
If Vid(j) ■ ж Then ‘если вид рабом совладает с техузии
Flag# - 0 ’флаг построенмж узла
If (Buf2(l) * 0 And Bufl(l) • 0) Then 'если слелухоая мммиа свободна
в • п ♦ 1 ’строится увел дерма
Падм • 1
Е1ае 'если манима загружена
If OrderO(l) * j Then 'если заказ на наакве совпадает с текужим в строже
п * п ♦ 1 'строится узел дерем
Flag# - 1
End If
End If
End If
If Flag!! • 1 Then 'если строится новый узел
TranStag*(п) * 1 'номер пары переноса
MPStage(n) • 3 ’ номер строки заказов в узле
q • Ко1(3) * Мог(х) • (1 - FerOO) / 100) * необходимое количество материала для остатка заказа
2 ■ Kol(j) * Vol(к) • (1 - FerO(j) / 100) ' физический объем остатка заказа в л
If Stock(х) < q Then ' если материала для заказа в первой день не хватает
у ■ Stock(х) / q ’возможная для выполнения часть работы
Е1ае * если материала для заказа в первый день хватает
у • 1 'можно выполнять дао работу
End If
If stoek(x) / (Ко10) • нох(х)) 0 Then 'если первая кашка лары не склад материалов
If СофВ(к) > ClB(b) Then 'если время окончания работы первой маякны в узле больше последнего времени
РМасЪВ(Ь) • НР(к)
'последняя работа на первой малике'
PerMachB(b) • PerB(k)
'процент выполнения операции для последней работы на первой нажине’
С1В(Ь) • СоярВ(к)
'последний момент окончания работы первой маиины в узле дерева '
md If
Else 'если
первая операция в узле
Distr(ж) * Distr(и) 4 Perl(k) / 100 * Nor (и) * Koi(ЯР(к)) 'накапливание расхода по каждому виду работы
End If
If 1 > 0 Then 'если вторая нажина лары не склад продукции
If CeopL(k) > C1L|1) Then 'если время окончания работы второй нажми в узле больше последнего времени
PWachL(l) - ЯР(к)
'последняя работа на второй маиине*
PerMachi (1) * Perl (к)
'процент выполнения операции для последней работы на второй нажине'
C1L(1) * Coopl(k)
'последний момент окончания работы второй мазики в узле дерева '
End If
Else 'если вторая малина пары это склад
PerD(NP(kH • PerO (HP (к)) ♦ PerL(k) ’ законченный процент заказа
End If
k ■ Par(k)
'переход no цепочке'
loop

Рис. 9.33

Цепочка узлов вплоть до текущего уровня

массивах определяются для наибольших моментов окончания работ каждой из этих машин. В
тех случаях, когда первой машиной пары является склад материалов, накапливается величина
расхода материала соответствующего вида. Если второй машиной пары является склад готовой
продукции, накапливаются законченные проценты заказов (работ).
Необходимость в раздельном определении массивов для первых и вторых машин в па­
рах вызывается возможностью одновременного запуска обеих этих машин в момент переноса
транспортной партии. Вторая машина пары, естественно, запускается после поступления на
нее новой партии заготовок. Однако, первая машина партии также может запускаться в этот
момент, поскольку ее выходной буфер освобождается, а во входном буфере могут находиться
заготовки. При этом, в общем случае неизвестно, какая из этих машин закончит обработку
раньше. Поэтому для того, чтобы установить фактическое состояние всех машин, соответству­
ющее узлу intZ, из которого производится ветвление, необходимо сравнить оба упомянутых
набора массивов и выбрать наиболее поздние значения (рис. 9.34).
Из рис. 9.34 видно, что на втором этапе расчета параметров состояния машин эти параметры
устанавливаются в зависимости от момента прекращения обработки либо по первой машине,
либо по второй машине пары.
После определения состояния каждой машины в узле ветвления программа рассчитывает
необходимое процессное время для каждой работы (рис. 9.35). Для этого сначала определяются
значения массива Otm для каждой операции по каждому заказу в процентах. Затем в цикле по
всех операциям для каждой работы накапливается процент РегО и соответствующее процессное
время pav. В узле ветвления также определяются текущие запасы материалов для всех видов
работ.
Наличие параметров pav позволяет определить значения функции VZakQ во всех вновь
создаваемых узлах. Остальные параметры для узлов последующих уровней определяются ана­
логично параметрам первого уровня. Отсечение узлов по критериям и перенос в полные массивы
недоминируемых узлов дерева решений также производится аналогично узлам первого уровня.

(с) 2018, Мауэргауз Ю.Е.

215

Гибкие поточные линии

For i “ 1 То NMach
'по всем машинам '
If ClB(i) >“ ClL(i) Then 'если для первой машины момент окончания больше,
'чем для второй, или моменты C1L и С1В одинаковы
PMach(l) * PMachB(i)
'последняя работа на текущей машине
PerMach(1) * PerMachB(i) 'процент выполнения операции для последней работы
Cl(1) “ С1В(1) ' последний момент окончания обработки
Else 'если для второй машины момент окончания больше
PMach(i) - PMachL(i)
PerMach(i) - PerMachL(i)
Cl(i) - ClL(i)
End If
Next i
Рис. 9.34

Определение состояния всех машин в узле ветвления

ReDia Ot»(Btt«, VOper)
’идеею выполненного количестве по каждой операции по каждому заказу в процентах
For 1 ■ 1 То ЯМасЬ
’по всей нажинам *
If OrdtrO(i) > 0 Aad ЖдеЬ(1) • 0 Then ’если на нажине есть старел работа и нет новой
ж • Det emS (Beta, OrderQU)) ‘номер строки заказов на калине
Осж(в, NachGUB - Ota(H, MachS(l)) + C0(i)
’жачальммй птоиент «ивоинеми# работы на операции по всем нажинах
tod If
Hext 1
Por 1 ■ 1 То Mach
If Maeh(i) > 0 Then
OtB(MachU), MachO(1)) - OtB(8Mach(l), MachGdB ♦ FerMach(l)
’текуяжй процент заполнения работы ла операции по всем нажинам
’накапливание нового значения процента выполнения операции
2nd If
Hext 1
For 1 ■ 1 То Beta 'цикл по работам (расчет массива трудоемкостей оставжикся операций)
рат(1) * It ’продолжительность передачи готового заказа на склад
ж ■ Vid(i) ’ вид работы
For j * WOper То 1 Step -1 ’цикл по операциям
If j > Ex(i) Thea 'дм невыполненных операций
FerO(l) - HrOU) ♦ 0Ш(1, Я
'махааяжваяжмйсл процент выполнения работы с учетом "старшин* операций
Ежео - КоШ) * рачв(ж, j) * (1 - РегШ) / 100} 'оставшееся процессное время на текущей операции
pav(i) • доф ♦ Exee ’ иакаплмзаявееся процессное время после жаждой операции

End If
Келе J
Bext 1

Рис. 9.35

Листинг расчета необходимого процессного времени по каждой

работе

После окончания построения дерева решений, как и в предыдущей главе, определяется
область расположения вариантов решения на листе и производится сортировка вариантов по
убыванию массива VQ критерия полезности. Поскольку количество получаемых вариантов
мало (обычно вообще 1 вариант), то поиск лучшего варианта не проводится. На лист MS Excel
выводятся план загрузки машин и план обработки, а на отдельной форме - графики диаграммы
Ганта и движения робота.

9.3.5

Перепланирование расписания

Рассмотрим пример перепланирования задания, первоначально имеющего вид, приведенный
на листе 1 в книге MBook8.xls. Как было указано в п. 9.3.1. задание на 15.09.16 8:00 состоит

216

(с) 2018, Мауэргауз Ю.Е.

Гибкие поточные линии

из 16 работ шести видов. В случае, показанном на календарном графике, в течение первого
и второго рабочего дня планируются две 12-часовые рабочие смены. Следующий календарный
день выходной, после которого опять планируется двухсменная работа.
Поскольку продолжительность первого рабочего дня в данном случае составляет 24 часа,
при работе в точном соответствии с расписанием, в течение рабочего дня (до момента 32 часа)
должны быть задействованы машины 6, 8 и 9 (рис. 9.21). Положим, что к моменту окончания
первого рабочего дня появилась срочная работа 17 вида 2 с требованием немедленного вы­
полнения. В такой ситуации требуется перепланирование расписания, начиная со следующего
рабочего дня.
Для корректировки расписания скопируем лист 1 на лист 2, очистим этот лист от результа­
тов предыдущего расчета, введем отметки последних выполненных операций на момент начала
нового планирования, а также запишем строку 17 нового задания (рис. 9.36). Как видно из
рис. 9.36, для работ 1 и 7 выполнены все необходимые операции на 100% и они должны быть
исключены из расписания. В то же время настройка на работу 7 по-прежнему сохраняется на
машине 7, и поэтому при пересчета исходного списка эта работа в нем остается.
Для подготовки нового расписания в таблице состояния машин необходимо указать дату
этого нового состояния. Кроме того, для каждой машины необходимо указать загруженную
работы и ожидаемый процент ее выполнения на момент начало нового рабочего дня. Для про­
ведения подготовки к перепланированию необходимо сдвинуть календарный график на единицу
влево. Затем необходимо указать на использование режима перепланирования и ввести дан-

Обозначе Требуем

Количество

Отметка

Процент

последней

полного

ый

ние(№

^календар
ный день

Весовой

; готовности

коэффици законченной

и после
начала

заказа)

Вид рабе штук

ент
операции
Г7".... 1......... 7”"'

выполнен

:ИЯ..............

71I......-1

3

2

1

3

2

4

!

з.... :

4

з

40

1

0

!

4

2

50

1

1

о

.................7 !

5

3

30

1

3

J00

1
1

... 25

1

30

1

о=
о!

о
0

..
........

5
6

8

:

i.... 5...... !.....

70

2:

30

3
oi

100
50

1

40 ................. 1
1
80 L.......... 1......................... 0;

50

1

3

0

0

9

в

10

6

3

60

1

0

0

............ 11

б
7

4
з

70 ___

1

90 ................. т

Pi
oi

о
0
0

12

i



13

7

5

20

1

0

14

8

3

40

1

о;

о

. ... ....... J5] ........ 8........ ; .......... 6

50:

1

Pi.. .........

0i

1
з'

о;

о

O’

0

... 16

8

2

70

17

0

2

40:

Рис. 9.36

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

дня

© 2018, Мауэргауз Ю.Е.

217

Гибкие поточные линии

ные о дате перепланирования и границах пересчета исходного задания (аналогично, например,
п. 5.7). При пересчете строки законченных работ автоматически удаляются, а даты уменьша­
ются на одни сутки.
После подготовки к перепланированию, следует провести новый расчет расписания. При
вводе данных обязательно необходимо откорректировать границы исходных работ. На рис. 9.37
приведена последовательность работы машин после перепланирования, при котором срочная
работа 17 выполняется в начале расписания.
Корректировка расчета на 16.09
Вариант 1 Машина 1: (17, 2), (4,4.10,10,10,10), 8. (12,12.12.14,14). (16,16,16),
Вариант 1 Машина 2: 9,13.12, (15.15), (11.11)
Вариант 1 Машина 3: (5. 8. 9), (12,12.12? 12.12,14,14)
Вариант 1 Машина 5: (17, 2). (4.10.10,10.10), 13, (15.15), 16
Вариант 1 Машина 6: 3. (17. 2), 5. (4,4.10.10.10). 8,13, 9, (12.12.12.12.12.14.14).
(15.15.15), (11.11.11), (16.16.16)
Вариант1 Машина 7: (4. 4,10.10). 13, (12.12,12,12.14,14)
Вариант 1 Машина 8 3, (17. 2). 5,10. (8. 9), (15.15.15.15). (11.11.11), (16.16.16)
Вариант 1 Машина 9: 6. 3, (17. 2). (4. 4). 5. (10.10.10). 13. 8. (12,12,12.12). 9.15.
(14.14), (15.15.15.15). (11.11). (16.16,16)

Остаток расписания от 15.09
Вариант 1 Машина 1: 8. (2.16,16,16). 9, (15.15.15). 13
Вариант 1 Машина 2: (11.11). (4.14,10.10.12, 12.12.12,12)
Вариант 1 Машина 3: (5. 8, 9), (15.15). (11.11). (4.4,14.14.10.10,12.12.12, 12)
Вариант 1 Машина 5: (2,16.16), 13
Вариант 1 Машина 6: (3. 5. 8). 2. 9. (15,15,15). (11,11.11), (4. 4,14.14.10,10.10.
10,12,12,12.12.12), (16.16,16). 13
Вариант 1 Машина 7: (4,4.4,14,14,12.12), 13
Верная 1 Машина 8: (3, 5, 8), 2, 9, (15,15,15), (11,11,11). (10,10,10,12), (16,16)
Вариант 1 Машина 9: 6, (3. 5, 8). 2, 9. (15,15,15). 11. (4. 4). 11. (10,10.14.14,
12.12.12,12). 13. (16.16.16)

Сравнение расписания после корректировки с первоначальным
расписанием

Рис. 9.37

Из рис. 9.37 следует, что изменения в расписании вследствие появления срочной работы
17 привели к значительному перераспределению последовательности проведения работ на всех
операциях. Причина таких существенных изменений заключается не только в сдвиге работ во
времени, но также и в необходимости нового группирования работ по их видам.
Новая работа 17 имеет вид 2, совпадающий с видом работы 2 (рис. 9.36). Поэтому оказалось
целесообразным объединить эти работы в одну группу на всех операциях. Появление новой и
срочной группы из работ 17 и 2 привело к разрыву группы из работ 3, 5 и 8 на машине 6 и
последующих операциях. Кроме того, увеличение общей загрузки привело к более равномерной
загрузке машин, работающих параллельно на одной операции: машин 3 и 5 на второй операции
и машин 7 и 8 на третьей операции.

9.3.6

Моделирование расписания

На листе 3 представлены варианты расчетов расписаний для исходного задания, совпадаю­
щего с заданием на рис. 9.18, при различных значениях ограничителей ветвления. На первом
шаге моделирования установлены значения а = 0,1, В1 = 400, В2 = 100 и ВЗ = 0,01, количе­
ство вариантов равно 1, а длительность решения составляет 9 сек. Наименьший коэффициент
218

©2018, Мауэргауз Ю.Е.

Гибкие поточные линии

запаздывания Kz наблюдается при а = 0,1, В1 = 25, В2 = 10 и ВЗ = 0,01, при этом среднее
запаздывание Тс составляет 73 часа.
На листе 4 приведен пример моделирования расписаний, содержащий 36 работ. Результаты
моделирования показаны на рис. 9.38. Как видно из этого рисунка, величина коэффициента
запаздывания с ростом количества работ изменяется незначительно.
В то же время, абсолютные значения полной продолжительности планируемого набора работ
и наибольшего запаздывания быстро нарастают. Величина среднего запаздывания до количе­
ства работ, равного 20, мало меняется, но затем также быстро увеличивается. Поэтому это
значение имеет смысл считать критическим.

Параметры расписаний для разного набора работ: 1 - пол­
ная продолжительность набора работ; 2 - наибольшее запаздывание; 3 среднее запаздывание; 4 - коэффициент запаздывания, умноженный на 100
Рис. 9.38

9.4

Расписания для гибких линий процессного производства с
позаказным планированием

Периодические процессы широко распространены в малотоннажном производстве для про­
дуктов с большой добавленной стоимостью, таких как фармацевтические, пищевые и т.п. то­
вары. В многопродуктовом производстве все выпускаемые продукты имеют одинаковую после­
довательность операций, в течение которых партии исходного сырья превращаются в партии
готовой продукции. Объем партии, главным образом, определяется физической емкостью маши­
ны, на которой проводится первая операция. Вообще говоря, на последующих операциях этот
объем может изменяться, если технологический процесс требует каких-либо добавок, либо по­
сле этой операции часть партии может быть реализована как самостоятельный продукт. Здесь
полагается, что объем партии на всех операциях технологического процесса не изменяется.
Наибольшая эффективность производства достигается только в том случае, если каждая
партия продукта, начиная от момента ее запуска в производство, уже предназначается для
конкретного потребительского заказа. Поскольку, однако, размеры заказов, по большей части,
не совпадают с рабочими объемами машин, размеры партий обычно также не совпадают с
размерами заказов. Такое совпадение возможно в случае, если имеется только один заказ
© 2018, Мауэргауз Ю.Е.

219

Гибкие поточные линии

на продукт определенного вида, и размер этого заказа меньше объема машины. В остальных
случаях партия продукта либо предназначается для нескольких заказов, либо составляет часть
одного заказа.
При переходе с одного продукта на другой предприятие несет затраты, связанные с пе­
реналадкой машин, их очисткой и утилизацией используемой моющей жидкости, а также с
возможной потерей некоторого количества продукта. Кроме того, уменьшается пропускная спо­
собность линии. Исходя из этого, количество таких переходов (переналадок) должно быть
минимальным.
Пример линии, предназначенной для выполнения четырех последовательных операций, при­
веден выше на рис. 9.1. В данном случае предполагается, что между машинами нет промежуточ­
ных накопителей. В соответствии со структурной формулой теории расписаний, поставленная
задача может быть записана как
FF\batch,nmit) ^jq, di, Sjom\u,v,

(9.8)

где batch - обозначение неизменности размера партии на всех операциях технологического
процесса, nmit - требование отсутствия перерывов при обработке партии. Обозначения других
параметров совпадают с обозначениями в предыдущем параграфе. Ограничение по наличию
материала в данной задаче полностью совпадает с приведенным выше неравенством 9.3.
При построении каждого узла дерева, как и в предыдущем параграфе, отбираются пары
машин, для которых должны выполняться некоторые требования. Прежде всего, для переноса
партии с первой машины в паре и на вторую машину необходимо, чтобы в первой машины был
продукт, а количество продукта во второй машины был равно 0, т.е.

&U1 > О И

Ьи2

= 0.

(9.9)

Количество продукта sngOst в паре и определяется имеющимся объемом продукта в первой
машине и емкостью второй машины Ви2
sngOst = Min(bui, BU2).

9.4.1

(9.10)

Исходные данные задачи

Исходные данные для составления расписания записываются на листе MS Excel элек­
тронной книги MBook9.xls, состоящей из четырех листов. На листе 1 в табл. $A$5:$G$24
находится задание, состоящее из 20 работ шести различных видов, которое приведено на рис.
9.39. Работы выполняются последовательно на четырех операциях, для чего в гибкой поточной
линии установлены 8 машин.
В каждой строке задания описываются параметры работ: номер работы; требуемый момент
день готовности; вид продукта; заказанное количество продукта в работе в тоннах; весовой
коэффициент работы; номер последней законченной операции и процент уже выполненной ра­
боты.
В табл. $W$4:$AD$15 (рис. 9.40) записаны данные каждой из машин, причем в данном
случае все машины находятся во включенном состоянии. Каждая из машин предназначена
для выполнения одной из операций технологического процесса и относится к соответствующей
группе. По каждой работающей машине приведены данные о ее настройке на конкретную

220

(с) 2018, Мауэргауз Ю.Е.

Гибкие поточные линии

Обозначе Требуем Вид
Количест Весовой Отметка
Процент
ый
календар
последней
полного
нив (Nb ный день
коэффици
готовност
законченной вылом
и после
операции
ения
ент
заказа) начала
продукта во, т
1
1
3
3
-1
70
100
1
0;
2
3
2
40
2
1
1
1
1
3
°
во
3
4
з
30
1
1
о
1
1
0
1
5
60;
о
2
1
1
2
160
°
6
2
7
3
1
о
°;
100 Then
FerO(i> - 100
End If
Ехес - Kol(i) / Vol(ж) / VolPert • (1 - FerO(i) / 100>
расчетное количество партий на каждой операции для скончания заказа
Wip(J) “ Wip(J) * Ехес * рат0(ж, J) ‘расчетная трудоемкость по всем работам на операции
If Inc(Ехес) < Ехес Then
Ехес " Inc (Ехес) ♦ 1 'максимально необходимое количество партий
End If
рачв(Х) - pavs(i) ♦ Ехес * pav0(n, J)
* накапливающаяся необходимая работа после каждой операции
End If
Хехе J
ga(i) - dd(l) - pavB(i) ’ Необходимый момент запуска
Nexc 1

Рис. 9.48

Расчет остающейся трудоемкости

Function Volune (9trXPU, strQU)
Dia Shift As Integer 'указатель положения знака в строке*
Dia ShiftPer As Integer 'указатель положения знака в строке*
Dia Тежр As String
Dia Тежр! As String
Dia Job As Integer
Dia Proc As Integer
Shift ■ InStr(atrNFU, ";") ’выделение положения обозначения первой лексемы заказов*
ShifcPer * InStr(strQP, "*") 'выделение положения обозначения первой лексемы процентов*
Do Ontil Shift * 0
'цикл до последней работы'
Тежр • Left(strHPU, Shift - 1) ' выделение первой лексеме в заказов *
Job “ Clnt(Tesp) 'выделение строки первого заказа*
Teapl " LeftlstxQU, ShiftPer - 1) ' выделение первой лексемы в заказов *
Proc • CInt(Teapl) 'выделенке процента первого заказа'
Voluae • Volume ♦ Koi (Job) * Proc / 100 'расход материала в тоннах
strKPU • Right (strNPU, Len(strHPU) - Shift) 'оставшаяся часть заказов без первой яексемР
strQU ■ Right(strflU, Len(scrgU) - ShiftPer) 'оставшаяся часть процентов без первой лекеемь
Shift • InStr(strKPUf ”:”) 'выделение положения обозначения первой лексемы заказов*
ShiftPer • InStr(st r$U, ";") ’выделение положения обозначения первой лексемы процентов*
Loop
End Function

Рис. 9.49

Функция расхода материалов в узле ветвления

мер операции inMach, номер организуемого узла дерева inN, текстовые строки номеров работ
и их процентов strNPU и strQU.
После подготовки исходных массивов, как и в предыдущем параграфе, рассчитываются
значения исходных значений критериев в корне дерева. Затем производится расчет основных
параметров узлов первого уровня. Узлы дерева решения организуются в цикле по всем возмож­
ным парам машин intPare. Узлы дерева в данном случае относятся к одному из трех типов: для
машин на последней операции; для предыдущих операций, кроме первой; для первой операции.
На рис. 9.52 приведена процедура определения параметров узла первого уровня для последней
операции.

© 2018, Мауэргауз Ю.Е.

227

Гибкие поточные линии

Function VZak(InBeta, ink, InM, snCl, snTk, snFk)
DIB inFav A* Single
Dia snCoag» As Single
VZak - 0
For 1 - 1 To inBeta
anPav * pavs(i) - pav(i) * остающаяся сужармая длительность операций едкой работы
апСопр * d(i) - snPav
* требуемый момент окончатся первой необходимой операции текущей работы
If aJ(i) > 0 Then 'для выполняемой работы
VZak - VZak + Vybor(0.5, W(l), p(ink, inM), p(ink, InM), snCoop, snCl, snTk, snFk)
'вклад выполняемой операции
VZak - VZak + Vybor(1, Wd), апРат, p(lnk, inM), эпСсыр, snCl, anTk, snFk)
'вклад остальных операций выполняемой работы

Elae
VZak • VZak ♦ Vybor(1, W(l), pavs(l), p(ink, inM), anCoap, anCl, anTk, snFk)
'вклад невыполняемых работ
End If
Next 1
End Function

Рис. 9.50

Функция полезности заказов в организуемом узле

Если на машине b для последней операции есть партия продукта для набора работ, описы­
ваемого строковой переменной NPU, может быть создан узел дерева с номером п, в котором
с помощью процедуры OrderSet определяются работы aJ, участвующие в текущей партии, а
также текущий необходимый момент начала работы MStage.
На рис. 9.53 приведен листинг для узлов с операциями, не включающих первую или по­
следнюю. В том случае, когда для первой машины в паре есть партия продукта, может быть
создан узел дерева с номером п, если вторая машина свободна и может быть использована для
продукта текущего вида Vid. Набор работ в партии на второй машине полностью совпадает с
набором в партии на первой машине, т.е. партия в данной задаче просто переносится.
После использования процедуры OrderSet, для любой работы со значением параметра aJ
большим чем 0, определяется процессное время в новом узле. Если вид настройки второй
машины известен, находится трудоемкость переналадки с этого вида работы на новый вид. В
противном случае время переналадки устанавливается как среднее значение трудоемкости.
Возможный момент начала обработки в новом узле Тк определяется как максимальное вре­
мя освобождения обеих машин в паре, и к этому значению прибавляется время переналадки.
Т.к. процесс обработки исключает прерывания, то он должен закончиться до календарного мо­
мента наступления нерабочего времени. Поэтому момент Тк проверяется с помощью функции
Сотптпепсе().
На первом уровне партия, переносимая с одной машины на другую, уже должна существо­
вать, и соответственно, для нее должен быть определен номер. Момент окончания обработки
партии CompStage определяется по началу обработки и ее процессному времени. Значение
полезности заказов в узле устанавливается с помощью функции на рис. 9.50.
Программа расчета узлов на первой операции (рис. 9.54) имеет несколько вложенных цик­
лов. Прежде всего, проводится внешний цикл г по возможным парам машин, из которых отбира­
ются машины первой операции (вторая машина пары, первая машина - это склад материалов).
Если отобранная машина свободна, то начинается первый внутренний цикл - по всем видам
работ х.
По каждому виду работ может быть организовано несколько партий, и по всем этим партиям
проводится цикл до достижения флага Flagl значения 1. Каждая образуемая партия может
включать несколько работ, и следующий внутренний цикл осуществляется по количеству работ

228

© 2018, Мауэргауз Ю.Е.

Гибкие поточные линии

Private Sub OrderSst(ByVai iuKach As Integer, ByVai inN As Integer,
ByVai strNPU As String, ByVal strQQ As String)
Dia Shift As Integer *указатель положения знака в строке’
Dia ShiftPer As Integer ’указатель положения знака в строке*
Dia leap As String
Dia Teapl As String
Dia Job As Integer
Dia Proc As Integer
Shift * InStr(strNPU, ■;") ’выделение положения обозначения первой лексемы заказов1
Shift Per - InStr(strQU, ”;") ’выделение положения обозначения первой лексемы процентов ’
Do Until Shift • 0
'цикл до последней работы'
Теяр * LeftfstrNTO, Shift - 1) ' выделение первой лексемы в заказов *
Job • CInt(Теяр) 'выделение первого заказа*
It inN > 0 Then
If MStage(inN) > 0 Then
MStage(inN) - Application. Min (MS tage (inN), gs(Jcb)) ’необходимый момент начала работы в узле
Else
MS tage (inN) - go (Job)
End If
End If
Tenpl • Left(strQO, ShiftPer - 1) * выделение первой лексемы в заказов *
Proc * Clnt(Tenpl) 'выделение процента первого заказа*
a О And NPU(1> ■ "" Then
' для налим кроме первой операции
• если есть партия на первой налиме и следупоая малина свободна и работа на наживе возможна
If p(VMach(b), 1) > О Then
ReDiia pav (Веса)
* массив значений трудоемкости первой предстоящей операции на конкретной наживе в узле'
ReDim Per (Веса) 'процент полностью выполненной работы в текущий момент в узле'
ReDln aJ(Beta)
'массив процентов текущего выполнения работ в узле'
п • п ♦ 1 'строится узел дерева
Call Orderset(MachG(l), n, NPU(b), QP(b))
TranStage(n) - 1 'номер пары переноса
NPStage(n) * NFU(b) 'набор строк в партии на первой малине парк
QOStage(n) * QP(b) 'проценты работ в узле
FarStage(n) • TreeStage(intZ)
'Номер родительского узла*
For J “ 1 То Beta 'по всем работам
If aJ(J) > О Then
pav(J) - p(VMach(b), 1) 'процессное время партии в узле
End If
Next J
If VMach(l) > 0 Then 'если есть продукт на второй малине
Ехес - 9(VMach(bb VHach(l), 1) 'трудоемкость переналадки
OStage(n) • angUz + U2ak(VMach(b), VMachUb 1) 'затраты на наладку*
Elae 'если не заказа, находится средний
Ехес • О
For А - 1 То NVid
Ехес - Ехес ♦ s(VMach(b), k, 1) 'накапливание трудоемкости переналадки
Next к
Ехес * Ехес / NVid 'средняя трудоемкость переналадки
UStage(n) ■ angUz + Ехес 'средние затраты на наладку второй нажины
End If
Tk(n) * Applicatlon.Kax(Cl(b), Cl(l>) ♦ Exec 'возможный момент начала с учетом переналадки
Тк(п) • Спжмепсе(Тк(п)г p(VMach(b), 1), 1)
'возможное начало операции проверяется по календарному ограничению на окончание '
PNStage(n) ■ PMach(b) 'номер партии в узле устанавливается по уже существующему
CcepStage(п) ■ Tk(n) + p(VMach(b)r 1) 'момент окончания работы в календарных часах
If CoapStage(n) • 0 Then 'если не определен момент окончания работы
МадВох * недостаточен рабочий горизонт ■
Exit Sub
End It
VStage(n) * (VO * Cl(l) + VZak(Beta, VHach(b>, 1, Cl(l), Tk(n), CoopStage (n))) / CoapStage(n)
'полезность набора работ в узле
End If
End If
End If

Рис. 9.53

Листинг расчета параметров на операциях, кроме первой и

последней

ции, накапливаются законченные проценты заказов (работ), для чего используется процедура
OrderSet (рис. 9.51).
После восстановления цепочки узлов в каждом узле ветвления intZ, пересчитывается дву­
мерный массив начальных выполненных процентов для каждой работы по каждой операции
OtmO, массив РегО начатых процентов выполнения работ, массив pavs остающейся трудоем­
кости и массив Stock имеющихся запасов.
Наличие параметров pavs позволяет определить значения функции VZak() (рис. 9.50) во
всех вновь создаваемых узлах. Остальные параметры для узлов последующих уровней опре­
деляются аналогично параметрам первого уровня. Отсечение узлов по критериям и перенос в
полные массивы недоминируемых узлов дерева решений также производится аналогично узлам
первого уровня.
После окончания построения дерева решений, как и в предыдущей главе, определяется
область расположения вариантов решения на листе и производится сортировка вариантов по

© 2018, Мауэргауз Ю.Е.

231

Гибкие поточные линии

For 1 * 1 То intFare 'по возможным парам малин
b * MachB(l) ’первая калима
1 • Machi(1) * вторая малина
If 1 • О Then * для малин последней операции
Else
If b > О Then 'для операций после первой

Else 'для первой операции
If NFU(l) • •• Then 'если малика свободна
For х • 1 То NVld 'по всем видам работ
Flagl ■ 0 'флаг партий а узле
sngVolP - 0 'замятый объем партии после расчета узла
Do Until Flagl • 1 'шшл по узлам партий, вкллчаюоих несколько заказов
If впфУЫР < MachV(l) Then 'если возможны варианты пополнения партии
Flow “ 0 'флаг заказов в одной партии
Do Until Flagg ■ 1 'по заказах в одном узле
For J • 1 То Beta 'по всем работам
If Vid (Order (J)) - к And PerO (Order (J)) < 100 And Stock(x) > 0 Then
'если вил работы строки списка, отсортированного по лате,
'совпадает с текулии видом работы и есть невыполненный остаток и материал

n " п ♦ 1 'строится новый узел дерева
End If
Next J

loop
sngVolP - sngVol 'запоминание объема в последнем построенном узле
End If
Loop
Next x
End If
End If
End If
Next 1

Рис. 9.54

Вложенные циклы для расчета параметров на первой операции

убыванию массива V критерия полезности. Поскольку количество получаемых вариантов мало
(обычно вообще 1 вариант), то поиск лучшего варианта не проводится. На лист MS Excel вы­
водятся план загрузки машин и партии готовой продукции, а на отдельной форме - диаграмма
Ганта.

232

(с) 2018, Мауэргауз Ю.Е.

Гибкие поточные линии

q = Koi(Order(J)) * (1 - PerO(Order(J)) / 100)
' необходимое количество материала для остатка заказа
If Stock(х) < q Then ' если материала для заказа в первый день не хватает
у e Stock(х) / q 'возможная для выполнения часть работы
Else ' если материала для заказа в первый день хватает
у “ 1 'можно выполнять всю работу
End If
If Stock(х) / Koi(Order(J)) - ■•
ДОФ) - —
End If
Else 'если
первая операция в узле
МРТ • ИР (к) 'промежуточная переменная
ОРТ • ДО (к) 'промежуточная переменная
Distr (Ж) - Distr (ж) 4 Voluae(ilPTr QPT)
'накапливание раскола по каждому виду работы (материала) в кг
End If
If 1 > О Then 'если операция не последняя
If Coxp(k) > Cl(l) Then 'если время окончания работы второй машин в узле
'больше последнего времени для этой машины
FMacb(l) * ₽W(k) 'последний номер партии на второй кашне
VMacb(l) - ж
'последний вид продукта на второй махине*
С1(1) “ Соор (к)
'последний момент окончания работы второй нажины в узле дерева *
VPD(l) ■ HP (к)
'строки заказов на махине
ДО(1) " ДО (к)
'проценты заказов на машке
End If
Else 'для последней операции
ReDin aJ(Beta) 'очистка меток выполнения заказа
Call OrderSec(NOper 4 1, 0, NP(k), ДО(к)) "определение процентов выполнения
For 1 • 1 То Веса
If aJ(i) > О Then
Pex(i) • Per(i) 4 0сж(1, HOper 4 1) ' полностью выполненный процент заказа
End If
Hext 1
End If
k - Pax(k)
'переход по цепочке*
Loop

Рис. 9.58

234

Цепочка узлов вплоть до текущего уровня

© 2018, Мауэргауз Ю.Е.

Гибкие поточные линии

9.4.5

Перепланирование расписания

Рассмотрим пример перепланирования задания, первоначально имеющего вид, приведенный
на листе 1 в книге MBook9.xls. Как было указано в п. 9.4.1. задание на 15.09.16 8:00 (рис.
9.39) состоит из 20 работ шести видов. В случае, показанном на календарном графике, в тече­
ние первого и второго рабочего дня планируются две 12-часовые рабочие смены. Следующий
календарный день выходной, после которого опять планируется двухсменная работа.
Поскольку продолжительность первого рабочего дня в данном случае составляет 24 часа,
при работе в точном соответствии с расписанием, в течение рабочего дня (до момента 32
часа) задействуются все машины. Положим, что к моменту окончания первого рабочего дня
появилась срочная работа 21 вида 5 с требованием немедленного выполнения. В такой ситуации
требуется перепланирование расписания, начиная со следующего рабочего дня.
Для корректировки расписания скопируем лист 1 на лист 2, очистим этот лист от результа­
тов предыдущего расчета, введем отметки последних выполненных операций на момент начала
нового планирования, а также запишем строку 21 нового задания (рис. 9.59). Как видно из
рис. 9.59, для работ 1, 2, 4 и 7 выполнены все необходимые операции на 100% и они долж­
ны быть исключены из расписания. Затем необходимо сдвинуть рабочий календарь и график
поступления сырья на единицу влево.

Обозначе Требуем Продукт Количест
Отметка
Процент
ый
календар
Весовой последней
полного
ние (№
ный день
готовност
коэффици законченной выполн
и после
заказа)
начала
во, т
операции
ения
^
1
-1
3
4
100
1
100

2

1

2

40

3

4

3

1

1

60

1

2

0

4

1

3

30

1

4

100

5

1.......
2........

6

1

60

1

2

°

2

160

1

3

85

7

2

3

45

1

4

100

8

2

1.. ... _

40

5

°

°

9

3

1

50

1

0

0

10

5

3;

90

1

1

60

11

5

4........ 1°о

1

0

0

12

5

3

130

1

0

0

13

6

5

40

1

0

0

14

6
7

3

60

1

°;

°

2

60

1

0

0

15

Рис. 9.59

100

16

8

6

140

1

°'

0

17

8

4

30

1

0

0

18

9

3

120

1

0

0

19

9

1:

зо

1

0;

0

20

10

5

юо

1.................... 0!

0

21

1

5

оо

3

0

о

Состояние выполнения задания на начало второго дня

© 2018, Мауэргауз Ю.Е.

235

Гибкие поточные линии

Для подготовки нового расписания в таблице состояния машин необходимо указать дату
этого нового состояния. Затем для каждой машины необходимо указать обозначения загру­
женных работ в партиях на момент начало нового рабочего дня (рис. 9.60). Например, для
машины 1, в момент 32 часа (8 часов следующего рабочего дня) обработка вообще не должна
проводиться, а предыдущая партия для работы 12 должна быть закончена в 28 часов (или 4
часа нового дня) (рис. 9.42). Исходя из плана на рис. 9.42, эта партия должна быть передана
с машины 1 на машину 3 в момент 41 час, что позже начала нового дня. Поэтому в момент 32
часа партия для работы 12 должна еще находиться на машине 1.
Найдем эту партию на рис. 9.45 для графика выпуска готовой продукции. Здесь она фи­
гурирует как партия номер 19 вида 3 для работы 12 с процентом выполнения заказа, равным
51%. Эти данные записываем в таблицу на рис. 9.60.
На машине 2 в момент 32 часа осуществляется обработка заказа 8 (рис. 9.42), которая
должна быть закончена в момент 36,5 часов (или 12,5 часов нового дня). Переходя к рис. 9.45,
находим партию 20 вида 1 для заказа 8 с процентом выполнения 100. Аналогичное положение
происходит на машинах 3, 4, 6 и 7. Машина 5 в первый день планирования в расписании не
участвовала. В машине 8 в момент 32 часа происходит перенос партии для заказов 7 и 10 на
склад. По рис. 9.45 определяем, что это должна быть партия номер 16 вида 3. Очевидно, что
момент освобождения машины 8 равен 8 часов нового дня.
При перепланировании необходимо провести расчет имеющихся запасов с учетом их расхода
в первый день. Новые партии, запущенные в первый день, определяются по загрузке машин 1 и
2, предназначенных для первой операции (рис. 9.42). В соответствии с этим графиком загрузки,
всего таких партий 4, причем на машине 1 выполняется партия для работы 5; партия для работ
10;12; и партия для работы 12; а на машине 2 - для работы 11;.
В данном случае использовалось сырье трех видов: вид 1 для работы 5, вид 3 для работ
10 и 12, вид 4 - для работы 11, причем сырье вида 3 требовалось для двух партий. В резуль­
тате расчета (рис. 9.61) определяется расход сырья по каждому виду, после чего необходимо
уменьшить начальные запасы на значения расхода по каждому виду.
Затем необходимо указать на использование режима перепланирования и ввести данные о
дате перепланирования и границах пересчета исходного задания (аналогично, например, п. 5.7).
При пересчете строки законченных работ автоматически удаляются, а даты уменьшаются на
одни сутки.
После подготовки к перепланированию, следует провести новый расчет расписания. При
вводе данных обязательно необходимо откорректировать границы исходных работ. На рис. 9.62

Состояние машин на

16.09.16 8:00

Номер группы машин
Физическая емкость, куб. м

Стоимость часа наладки машины
Опиетад адлючеиия машины
Номер партии
Настройка машины на аад продукта
Заказы в партии
12;
51;
Проценты заказа в парши
Ожидаемый момент освобождения
Длительность начальной подготовки машины а часах

Рис. 9.60

236

2

1

Машина

3

5

4

;

7

0

8

1

1

2

2

2

з

з

4

50

40

45

50

50

50

40

50

2.8
2,5
3,5
2 1.8
1
1
1
1
1
13г
18
23
17
15
1
1
3
i
2
8;
10:12; 11; 3;
е>;
6:15;
100; 40;37; 60; 100; 100; 15;60;
6^ 17,5
0 11,5;
1
4 125
1,5^
1,5
2
2:
2
2
1

1.8
1
16
3

2
1
19
3

2.5
1
20
1

Начальная загрузка машин при перепланировании

© 2018, Мауэргауз Ю.Е.

8
1,5

Гибкие поточные линии

Заказы

5;

10;12;

И2;

11;

Проценты

100;

40;37; J51;

60;

3j

1

Вид

Количество
на заказ, т 60;

90;130; ■130;

i

Расход на

’партию, т
Вид 1
ВидЗ
Вид 4 '

Рис. 9.61

60;

3

4
100;
:

36;48J;]66,3;

60;



60
'

84s
66;
]... .. .......

Всего, т

60

150
60s............. 60

Расчет использованного сырья за первый плановый день

приведена последовательность работы машин после перепланирования, при котором срочная
работа 21 выполняется в начале расписания.

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

Корректировка расписания на 16.09
j
Вариант 1 Машина 1: (12; 14;18; 18; 18;)
Вариант 1 Машина 2: 8; 21; 9; 11; 1:01 ® 201 19: 15i 17; (16; ^L.
Вариант 1 Малина 3: (12; 12; 14;18;) 16; 18;
Г "
Вариант
Вариант
Вариант
Вариант
Вариант

1 Машина 4:11; (11, 17;) 16;

1 Машина 5: 8; 21; 9; (13; 20; 20;) 19; 15; 17; 18;
1 Машина 6: 5; (8; 9;) (11; 17;) 19; (12; 14;18;) 17; (16; 16;)
1 Манина 7: 3; 21; 11; (13; 20; 20;) (10; 12; 12;) 15; (18; 18;)
1 Машина 8: (6;15;) (5; 3;) 21; (8; 9;) 11; 13, 11; 20; 17; 20; 19;
(10;12; 12; 12;) 15; (14;18;) 17; 16; (18; 18;) 16;

Остаток расписания от 15.09
Вариант 1 Машина 1:(13;20; 20;) 16; (12; 14; 18; 18;) 16; 19;
Вариант 1 Машина 2: 8, (11;17;) 15; 20; 17; 9;
Вариант 1 Машина 3:12; (11;17;) (12; 14; 18; 18.) 16;
Вариант 1 Машина 4:11; 16; 19;
Вариант 1 Машина 5: 8; (13;20; 20;) 15; 20; 17; 9;
Вариант 1 Машина6:5; (10;12; 12;) 8; (11; 11;17;) 15; (18; 18;) 16; 17;
Вариант 1 Машина 7: 3; (13;20; 20;) 16; 12; 20; 14; (19; 9;)
Вариант 1 Машина 8: (6;15;) 5; (10;12; 12;) (3; 8;) (13;20; 20;) 11; 16;
(11;17;) 12; 20, 15; (14, 18; 18;) 16; (19; 9;) 17;

Сравнение расписания после корректировки с первоначальным
расписанием

Рис. 9.62

© 2018, Мауэргауз Ю.Е.

237

Гибкие поточные линии

Новая работа 21 имеет вид 5, совпадающий с видом работ 13 и 20 (рис. 9.59). Однако
объединение этих работ в одну группу оказалось нецелесообразным, т.к. они требуются к
существенно разным моментам времени.

9.4.6

Моделирование расписания

На листе 3 представлены варианты расчетов расписаний для исходного задания, совпадаю­
щего с заданием на рис. 9.39, при различных значениях ограничителей ветвления. На первом
шаге моделирования установлены значения а = 0,1, В1 = 400, В2 = 40 и ВЗ = 0,01, количе­
ство вариантов равно 1, а длительность решения составляет 11 сек. Наименьший коэффициент
запаздывания Kz, равный 0,4, наблюдается при а = 0,1, В1 = 100, В2 = 10 и ВЗ = 0,02, при
этом среднее запаздывание Тс составляет 23,4 часов.
На листе 4 приведен пример моделирования расписаний, содержащий 36 работ. Результаты
моделирования показаны на рис. 9.63. Как видно из этого рисунка, величина коэффициента
запаздывания с ростом количества работ изменяется незначительно.
В то же время, абсолютные значения полной продолжительности планируемого набора работ
и наибольшего запаздывания быстро нарастают. Величина среднего запаздывания до количе­
ства работ, равного 30, мало меняется, но затем также быстро увеличивается. Поэтому это
значение имеет смысл считать критическим.

Параметры расписаний для разного набора работ: 1 - полная
продолжительность набора работ; 2 - коэффициент запаздывания, умно­
женный на 100; 3 - наибольшее запаздывание; 4 - среднее запаздывание
Рис. 9.63

238

©2018, Мауэргауз Ю.Е.

Глава 10

Расписания для универсального производства

10.1 Введение.....................................................................................
10.2 Расписания при заданном наборе работ................................
10.2.1 Исходные данные задачи..................................................
10.2.2 Работа с программой.........................................................
10.2.3 Анализ результатов планирования..................................
10.2.4 Листинг основной части программы................................
10.2.5 Перепланирование расписания .......................................
10.2.6 Моделирование расписания.............................................

10.1

10.3 Расписания при выпуске комплектов деталей на склад ...
10.3.1 Исходные данные задачи.................................................
10.3.2 Работа с программой..........................................................

239
240
242
244
245
247
250
252

253
254
257

10.3.3 Анализ результатов планирования..................................

258

10.3.4 Листинг основной части программы................................

262

10.3.5 Перепланирование расписания........................................
10.3.6 Моделирование расписания..............................................

269
271

Введение

В универсальном производстве последовательность операций при выполнении каждой рабо­
ты различна. В то же время набор возможных операций ограничивается возможностями парка
машин, находящегося в распоряжении производственного подразделения. Задача оперативно­
го (как правило, ежедневного) планирования состоит в составлении оптимального расписания
работ в подразделении на планируемый период. Этот период обычно охватывает несколько пред­
стоящих рабочих дней, поэтому каждый последующий план опирается на ранее разработанные
планы и представляет собой их корректировку и дополнение.
Частота получения заказов и их состав нестабильны, а иногда даже носят случайный харак­
тер. Размеры продукции по одному заказу обычно невелики, тогда как номенклатура продукции
может иметь большое количество модификаций. В таких условиях предприятия с универсаль­
ным производством часто идут по пути изготовления «в запас» довольно больших партий
деталей, которые обеспечивают выполнение возможных заказов в течение нескольких месяцев.
При этом упрощается производственное планирование, экономятся затраты на переналадки и
облегчается контроль качества продукции. Однако этот путь приводит к серьезному увеличе­
нию производственного цикла и большим незавершенным запасам одних и нехватке других,
и более нужных, деталей. Более перспективным является групповое планирование, при ко­
тором размеры каждой партии деталей устанавливаются в соответствии с имеющимися (или
предполагаемыми) заказами на горизонте планирования.
Количество возможных вариантов плана в принципе чрезвычайно велико, однако оно суще­
ственно уменьшается из-за реально существующих ограничений. Прежде всего, технологиче­
ский процесс обработки довольно жестко определяет возможность варьирования оборудованием
для выполнения операций. Кроме того, по организационным и психологическим причинам, как
правило, операция, ранее начатая на машине, не должна прерываться. Наконец, при состав­
лении плана приходится учитывать техническое состояние оборудования, наличие оснастки и
квалифицированного персонала.
239

Универсальное производство

Здесь полагается, что набор возможных операций по изготовлению деталей фиксирован, и
для каждой операции можно использовать несколько машин одинакового назначения. После­
довательность операций для изготовления детали к моменту составления расписания известна,
но может отличаться для каждой детали в любом порядке.
Разработка группового расписания для многостадийной обработки на машинах различно­
го назначения, на которых возможно параллельное изготовление различных деталей, является
очень сложной задачей, поскольку здесь одновременно необходимо распределять партии дета­
лей по машинам и объединять партии деталей, необходимые для разных заказов, в группы на
всех стадиях обработки.
Естественно, что при составлении расписания необходимо руководствоваться некоторыми
критериями оптимизации, определение которых не очевидно. Поскольку причиной появления
групповых способов обработки является стремление найти рациональный компромисс между
высоким уровнем (своевременностью) выполнения заказов и низкой стоимостью производства,
необходимость одновременного выполнения этих требований при планировании представляет
собой т.н. «дилемму планирования», решение которой в принципе не может быть получено в
однокритериальной постановке.
Динамический метод группового планирования позволяет предложить пользователю набор
из нескольких вариантов решений для окончательного выбора. При этом для оценки качества
планирования используются два критерия: критерий средней полезности заказов и критерий
относительных издержек на горизонте планирования.

10.2

Расписания при заданном наборе работ

Положим, что на участок (цех) в любой последовательности поступают различные работы,
прибытие которых запланировано в различное время гг. При этом каждая г-ая работа относится
к одному из S возможных видов и содержит Ri операций. Задание дат окончания работ со сро­
ком выполнения di характерно для производственной стратегии «под заказ». Ниже перечислены
основные допущения для планирования.

а) Каждая работа включает установленное количество последовательно выполняемых опе­
раций.
б) Для каждой работы может быть установлен свой весовой коэффициент.
в) Время поступления каждой работы известно.
г) Каждая операция не может одновременно проводится более, чем на одной машине.
д) Каждому виду операций соответствует несколько одинаковых машин определенного ви­
да.
е) Время обработки на каждой операции известно и детерминировано.
ж) Время наладки зависит от вида работы и семейства машин и не зависит от последова­
тельности работ на одной машине.
з) Время передачи с операции на операцию известно и одинаково для всех операций.
и) В начальный момент времени известно, какая операция выполняется на каждой машине,
и в какой момент времени она будет закончена.
В соответствии с известным трехэлементным способом классификации расписаний рассмат­
риваемая задача имеет вид
FJ^ec^ri^di^Sj^U^V,

240

(с) 2018, Мауэргауз Ю.Е.

(101)

Универсальное производство

где FJ - обозначение гибкого универсального производства; слово ргес в 10.1 отражает тре­
бование последовательного выполнения операций для каждой работы; Sjm представляет собой
длительность наладки машины т на операцию для работы вида j.
В формуле 10.1 есть две целевых функции, причем их одновременное улучшение возможно
только в определенных пределах: U - относительные затраты для выполнения всех работ; V средняя полезность заказов за время выполнения расписания. В этой задаче не ставится какихлибо ограничений на размеры работ на любой операции, причем каждая работа выполняется
как одна партия деталей.
Для решения задачи 10.1 целесообразно воспользоваться методом, основанным на много­
критериальном «жадном» подходе (Canon and Jeannot, 2011). Для этой цели построим дерево
поиска не доминируемых решений, используя следующий алгоритм, являющийся вариантом
алгоритма в главе 3.
ШАГ 1 Расчет функций полезности в начальный момент планирования

Положим номер уровня I = 0; начальная функция издержек Uo = 0; начальная полезность
заказов Vb определятся по формуле 3.7; количество узлов Zo = 1.
ВНЕШНИЙ ЦИКЛ

ШАГ 2 Определение возможных операций на следующих уровнях

Для каждого узла z построенного дерева на уровне I устанавливаются возможные
операции и определяются значения gijZ при помощи формул 3.28.

СРЕДНИЙ ЦИКЛ
ШАГ 3 Определение необходимой машины на следующих уровнях
Для каждой к-ой операции, которая возможна к моменту CiZ, и не является
выполненной ранее, определяется необходимое семейство машин f.
ВНУТРЕННИЙ ЦИКЛ
ШАГ 4 Расчет функций полезности на следующих уровнях
Для каждой m-ой машины, относящейся к виду f, с учетом момента ее
возможного освобождения, рассчитываются значения Ui+ijZfk,m и Vi+ijZik,m
по формулам 3.27 и (3.20, 3.26).
КОНЕЦ ВНУТРЕННЕГО ЦИКЛА

КОНЕЦ СРЕДНЕГО ЦИКЛА
ШАГ 5 Определение доминируемых узлов дерева
Если уровень Z +1 не является последним, то для доминирования на 14- 1-ом уровне
возможного узла у дерева над возможным узлом х необходимо, чтобы соблюдались
неравенства (3.34, 3.35)
Ui+i,y ^ Ui+itX, Vi+^y => R+i,® и gi^itV < gi+i,x

причем первое или второе неравенство должно быть строгим.
Иначе: для доминирования на последнем уровне I -F 1 необходимо, чтобы
^+1,у ^ Ui+i,x, Vi+iyy ^ Vi+i,x

© 2018, Мауэргауз Ю.Е.

241

Универсальное производство

ШАГ 6 Переход на новый уровень или окончание работы программы
ЕСЛИ уровень последний (выполнены все операции), ТО окончание работы.
ИНАЧЕ Увеличение номера уровня I = I + 1 и переход на ШАГ 2.

КОНЕЦ ВНЕШНЕГО ЦИКЛА
Для расчета расписания используется компьютерная программа, работающая на основе
функций полезности и представляющая собой макрос на языке VBA для электронной кни­
ги MS Excel, результаты выполнения записываются листах и формах книги.

10.2.1

Исходные данные задачи

Исходные данные для составления расписания записываются на листе MS Excel элек­
тронной книги MBookl0.xls, состоящей из четырех листов. На листе 1 в табл. $A$5:$F$24
находится задание, состоящее из двадцати работ шести различных видов, которое приведено
на рис. 10.1. Работы выполняются в различном порядке на пяти операциях, для чего на участке
установлены 9 машин.
Как видно из рис. 10.1, работа 1 должна была закончиться на 1 календарный день рань­
ше планируемого начального момента, т.е. имеет место начальное запаздывание. Последующие
_________Работы
Обозначе [Требуем

Весовой [Отметка

Ожидаем Вид
ый
калецдар календар
[ныйдень ныйдень
поступле
тотовност
ый

ние(№

коэффици [выполнения

НИЯ

и после

работы)



после
начала
работы
PF
у
................0

[начала
1

4

2'

1

3

2[

0
.......... 0

1

4 _ ........ 2

1

Z ~."..Z[...................

2

0

3

5

2

0

1

1

6

2

0

5

1

о

3

1

1
1
-1

8

3

0

5

1

1

9

3

0

2

1

4

3
з

0

6;
1
3 ............... 1

-1

1

-1

10
zZu

1

4

14;...

4
1
4- .............. 2
4
..........2..........

15

4

2
['„....''..I.

Z

I6
5
.......... "lr[■2

18!

5

3

19

5

у'^^ [У

242

1

1

2

4

12
13

Рис. 10.1

[работы
1

4

2

г

1

1

-1

3

1

-1

6
у

.z.'i
... . г

4

4

4

-1

1

-1

3.........

9 ................ 1

-1

3

2

4

1

Исходное задание для гибкого универсального производства

(с) 2018, Мауэргауз Ю.Е.

Универсальное производство

работы должны быть исполнены в течение пяти календарных дней после начала. Для каждой
работы может быть установлен весовой коэффициент, повышающий ее важность, причем обыч­
ное значение коэффициента равно 1. Например, для работы 3 и работы 4 установлен весовой
коэффициент, равный 2 и 3 соответственно. Если для соответствующей работы началась хотя
бы первая операция, в последней графе записывается значение 1, в противном случае записы­
вается значение -1. В том случае, когда выполнение работы полностью заканчивается значение
в последней графе равно 0.
На рис. 10.2 приведен фрагмент списка деталеопераций для четырех из 20 работ. Каждая
операция может быть проведена на машинах определенного семейства и имеет соответствую­
щую трудоемкость. Ожидаемый момент выполнения операции в последнем столбце таблицы
равен нулю, если операция уже закончена. Если операция начата, но не закончена, то в этой
графе приводится ее ожидаемое значение в рабочих часах после момента начала выполнения
плана; если операция не начиналась, то в этой графе проставляется величина -1.

В начальный момент времени для каждой машины указывается обозначение выполняемой
работы и ожидаемый момент освобождения в календарных часах. На листе Excel приведена
матрица норм времени в часах на наладку каждой машины на один из шести возможных видов
работ. Календарный график предусматривает две восьмичасовые смены и пятидневную рабочую
неделю

На листе 2 приведен возможный вариант перепланирования этого задания, на листе 3 про­
водится моделирование по различным параметрам. На листе 4 приведен пример моделирования
с целью нахождения рационального горизонта планирования.

Деталеопераций
Обозначен Номер
Номер

Трудоемк Ожидаем
ый
момент

ие (Ne

группы

выполнен
ия в

рабочих
операции машин

работы)

.........

Рис. 10.2

ость, час часах

1

1

1

1,6

0

1

2

2

2,4

0

1

3

4

4

0

1

4

5

°-8

1

2

Л
Д

1,6

0

2

1
2

2

0

2

3

4

2

2

3

1

2

2

0

3

2

1

1,2

-1

3

3

4

4

-1

3

4

3

1,2

-1

3
4'

5

5

2,8

-1

1

1

1,6

0

4

2

3

2

-1

4

3

4

1,2

-1

Фрагмент списка деталеопераций

© 2018, Мауэргауз Ю.Е.

243

Универсальное производство

10.2.2

Работа с программой

Для работы с программой планирования в MS Excel устанавливается соответствующий
рабочий лист, например, лист 1 и осуществляется запуск макроса. При выборе опции «без
моделирования», система сообщает о последней дате планирования и предлагает одну из двух
возможностей - подготовку планирования с новой датой или повторение расчета с последней
датой.
В форме «Ввод данных» задаются основные параметры процесса. Система автоматически
рассчитывает загрузку участка (по включенным машинам) и выдает соответствующее сообще­
ние. По окончании расчета все возможные и недоминируемые варианты выводятся на лист. В
данном примере таких вариантов 5, два из которых показаны на рис. 10.3.
В каждом варианте работы сгруппированы по видам, а группы выделены скобками. Внутри
группы последовательность работ не обязательно совпадает с порядком их номеров, поскольку
работы в одной группе могут иметь различную трудоемкость и отличаться по времени готовно­
сти к операции. Если резерв времени выполнения всех работ в одной группе положительный,
то система иногда рекомендует выполнять сначала работы с меньшей трудоемкостью с тем,
чтобы понизить суммарную длительность производственного цикла.

В^миа 1 Мшима 1:12/1,16Л, МЛ. 18/1,20/1
Вцмма1 Мшима 2: ЭЙ, 10Л.1ЭЛ, (16/2,11/2)
Вершит 1 Машм 3: [11Л. 15/1), 17/2,12/4,16/4,13/3, 10/3,19/2
1 Мшима 4' (7/1 4/4 7/31 (8/2.8/21 ЯЛ 18/120/3
Вариант 1 Маиима 6:
7/2), 17Л, 02/2, ЗИ4), 17/3. (0/2.13/2), (10/2,16/2). (8/3,1М). 18/2,10/6,16/6.20/4
Вариант 1 Машина 7:4/3,6/3,16/3,17/4.11/4
Варишт1 Манима 8: (3/3,12/3). 8/4,20/2,19/3
Вариант 1 Мшима 15/5,3/5, МЙ,6/4.11/3, W, 12/5, (10/4,16/3), 8/5,17/6,18/4
Варишт 2 Маиима 1:12/1,18Л, МЛ, 18/1,20Л
Варима 2Машмш2 ЭЙ, 10/1,13/1,(16/2,11/2)
Вариант 2 Машина 3: (11Л, 16/1), 17/2,18/2,20/3
Вариант 2 Маиима 4: (7/1,4/4,7/3). (8/2,6/2). (М, 13/3), 10/3,16/4, (12/4,18/3)
Варима 2 Маиима 6 (4/2,7/2), 17/1, (12Й, 3/4), 17/3,0/2,1ОД («/2. ^ (•*. ^U 1®* »Я Ж ^
Вцмаит 2 Машина 7:4/3,6/3, (15/3,1Ш) i
^Вариант 2 Машина 8(3/3,12/3). (8/4.18/3), 17/4,20/2
Варима 2 Машина 9:6/5, ЭЙ, М/2.0/3,11/3, (10Й. 16/3), (8/5,6/4), (12/5,18/4), 17/5

Рис. 10.3

Фрагмент результатов работы программы на листе 1

‘Коэффициент плановой загрузки: 0,3
Группа 1:0.19
]
i^i^
Группа 3:0уц^4:иМ7.^
Kz« 0.66; Стах «249; Тс«41.5; Ттах*152.6

Вариант 5: U «17,375; V «-1,751; Кп ® 4.3; Кд » 1,93; Kz » 0,65; Стах « 249; Тс = 41,5; Ттах «152,6
Вариант 5. U = 17.375; V = -1,751; Кп = 4.3; Кд » 1,93; Kz = 0,66; Стах = 249; Тс « 41.5; Ттах = 152.6

Рис. 10.4

244

Значения показателей расписания для различных вариантов

(с) 2018, Мауэргауз Ю.Е.

Универсальное производство

По окончании расчета на лист выводятся коэффициенты загрузки по каждой группе машин,
а также номера вариантов, рекомендуемые в соответствии с методами Сэвиджа и Гурвица. Кро­
ме того, для всех не доминируемых вариантов выводятся данные о значениях критериев U, V
(рис. 10.4), а также значения основных показателей расписания: коэффициента неравномерно­
сти загрузки Кп, коэффициентов группирования Кд и запаздывания Kz, полной длительности
выполнения расписания Стах, среднего Тс и наибольшего Ттах запаздываний.
В приведенном примере группы машины, предназначенные для различных операций, за­
гружены не одинаково. Наибольшая загрузка в 49% наблюдается в группах 3 (машина 6) и
5 (машина 9), наименьшая, равная 19% - в группе 1. Программа автоматически создает рас­
писание, в котором коэффициенты группирования для наиболее загруженных машин заметно
выше, чем для остальных машин (рис. 10.3).

10.2.3

Анализ результатов планирования

На рис. 10.5 показано расписание для первого полученного варианта, составленное с учетом
графика работы цеха. На машинах 1 и 2 первой группы с небольшой загрузкой, составляющей
19% (рис. 10.4), группирование работ по видам практически не предусматривается. Операции
на машине 1 запланированы на первый, второй и четвертый календарные дни, а на машине 2 только на первые два дня.
На машине 4 сначала выполняется операция 1 для работы 7 вида 3, которая затем отправ­
ляется на машину 6 для операции 2. В это время на машине 4 без переналадки выполняется
операция 4 для работы 4. Затем для проведения операции 3 работа 7 возвращается на машину
4. Наиболее загруженными являются машины 6 и 9, расписание для которых составляется
вплоть до пятого календарного дня.
Программа позволяет отследить последовательность выполнения операций для всех работ
(рис. 10.6). Здесь в скобках указывается номер машины и, через дробь, номер операции.
В данном случае две работы должны быть выполнены до введения в действие плана на рис.
10.6: для работы 1 заканчивается последняя (четвертая) операция на машине 9, а для работы
2 - третья операция на машине 8. Для работы 5 предусматривается только одна (последняя)
операция на машине 9.
Если какая-либо из работ оказывается запланированной заметно позже необходимого срока,
для более раннего начала можно воспользоваться увеличенным весовым коэффициентом. В
данном примере такой весовой коэффициент используется для работ 2 и 4 (рис. 10.2).

Пли жружи найми по варианту 1
Машина 1: 9 (ДО) 11.2.32 (ДО) 32,6; 33.6 (ДО) 36,6; 80 (ДО) 81; 815 (ДО) 82,7;
Машина 2: 10,5(32)11,7; 12,7 (КОД 135; 32 (13И) 33,4; 37 (1ОД^
Машина 3: 9.5 (ДО) 115; 32 (ДО) 33; 36.6 (17/2) 37,4; 46Д (ДО) 81; 82.5 (ДО) 85,9; 87.4 (13/3) 88,2; 89.7 (КОД 91,3; 93.3 (19/2) 94.3;
Машина 4: 10 (7/1) 12; 20.7 (4/4) 21.9; 21,9 (7/3) 32.3; 33,3 (8/2) 35,3; 35.3 (6/2) 36.5; 38 (9/1) 39,2; 95.8 (ДО) 109,2; 110,7 (ДО) 112.7;
Машина 6: 95 (4/2) 11,5; 16 (7/2) 175; 32 (17/1) 32,6; 33,6 (12/2) 34,4; 34,4 (3/4)35,6; 41,4 (17/3)43.2; 43,7 (9/2)44,9; 44,9 (13/2)47,9;
805 (КОД 83,7; 83.7 (ДО) 84,9; 86.4 (8/3) 88; 88 (ДО) 89,2; 90,2 (18/2) 91,8; 1115 (ДО) 114; 1155 (ДО) 118,3; 118,8 (ДО) 128 5;
Машина 7: 155 (ОД 16,7; 405 (ОД 41,7; 42,8 (1ОД 45,8; 475 (17/4) 82,4; 905 (11/4) 93,3;
Машина 8: 15,7 (ОД 19,7; 38,4 (12/3) 42,4; 92 ДО) 94.4; 95.9 (2ОД 106,7; 108,7 (ДО) 109,7;
Машина 9: 9 ДО) 11,4; 39,6 ДО) 42.4; 44,4 (14/2)45,8; 46,8 ДО) 82.4; 83,9 (1ОД 86,9; 89,9 (ОД 91,5; 935 (12/5) 95,3; 104,8 (ДО) 107.2;
107,2 (ДО) 1105; 1115 ДО) 1155:1175 (17/5) 118; 128 (ДО) 131.4;

Рис. 10.5

План загрузки машин

© 2018, Мауэргауз Ю.Е.

245

Универсальное производство

План обработки по варианту 1;
Работа 1:
■Работав.......
;.....
Работа 3: 10,5(2/2)11,7; 15,7(8/3)19,7; 34,4(6/4)35,6; 39,6(9/5)42,4;
Работа* 9.5(6/2)11,5, 15,5(7/3)16,7; 20,7(4/4)21,9;
Работа 5: 9 (9/5)11,4;
^Работа 6: 35,3 (4^2) 36,5;40,5 (7/3) 41,7; 46,8 (9/4) 82.4;
Работа 7: 10(4/1)12; 16(6/2)17,6; 21,9(4/3)32,3;Работав: 33,3(4/2)35,3; 86,4(6/3)88; 92(8/4)94,4; 111.2(9/5) 115,2;
Работа 9: 38 (4/1)39,2; 43,7 (6/2)44,9; 89,9(9/3)91,5;
Работаю: 12,7(2/1)13,9; 80,9(6/2)83,7; 89,7(3/3)91,3; 104,8(9/4)107,2; 111,2(6/5)114;
Работа 11: 9,5 ^/1) 11,5; 38,8(2/2)40,4; 83,9(90)86,9; 90,9 (7/4) 93,3;:
Работа 12: 9(1/1)11.2; 33,6(6/2)34,4; 38,4(8/3)42,4; 46,4(3/4)81; 93,5(9/5)95,3;
Работа 13: 32 (2/1)33,4; 44,9(6/2)47,9; 87,4(30)88,2;
Работа й: 33,6(1/1)35.6; 44,4(9/2)45,8,
Работав: 32 (3/1) 33; 37(2/2)38,8; 42,8(70)45,8; 82,5(3/4)85,9; 115,5(6/5)118,3;
Работай: 32(1/1)32,6; 83,7(60)84.9; 107,2(90)110.2;
Работа 17: 32(6/1)32,6; 36,6(30)37,4; 41,4(60)43,2; 47,2(7/4)82,4; 117,2(9/5)118;
Работай: 80(1/1)81; 90,2(60)91,8; 95.8(4/3)109,2; 128(9/4)131,4;
Работа й: 88 (6/1) 89,2; 93,3(30) 94,3; 108,7(80)109,7;
Работа 20: 81.5(1/1)82,7; 95,9(80)106,7; 110.7 (40)112,7; 118,8 (6/4)128,2;

Рис. 10.6

План обработки

Рис. 10.7

Диаграмма Ганта для нормы времени между операциями в 4

часа

Система обеспечивает вывод расписания работы машин в виде диаграммы Ганта (рис. 10.7).
Номер работы указывается на поле прямоугольника диаграммы, сверху записывается номер
текущей операции.
Из диаграммы наглядно видно, как происходит группирование, например, работы вида 1
закрашены черным цветом, вида 2 - закрашены коричневым цветом, вида 3 - синим цветом.
Диаграмма Ганта хорошо иллюстрирует влияние трудоемкости работ на последовательность их

246

©2018, Мауэргауз Ю.Е.

Универсальное производство

■рнмМмм.чкы

Рис. 10.8

Диаграмма Ганта для нормы времени между операциями в 1

час

выполнения. Горизонтальный размер прямоугольника, описывающего каждую работу, соответ­
ствует длительности ее непосредственного выполнения.
В данном случае плотность выполнения работ невелика, что связано большим разнообрази­
ем в последовательности операций для разных работ. Такой пример выбран для иллюстрации
возможности использования данного метода в сложных условиях, из-за чего принято довольно
большое значение нормативного времени на передачу между операциями, равное 4 часа. На
машинах в начале планирования появляются отдельные обособленные работы; машины 6 и 9
загружены достаточно равномерно.
На рис. 10.8 показана диаграмма Ганта при норме межоперационной норме времени, равной
одному часу. В этом случае плотность и равномерность загрузки, разумеется, существенно
улучшаются.

10.2.4

Листинг основной части программы

На каждом уровне построения дерева расписания используются 6 основных массивов:
UStageQ, V Staged ParStageQ, CompStageO, NPStageQ, Tk(), которые имеют назначение,
совпадающее с назначением аналогичных массивов в главе 5. Поскольку для каждой операции
могут применяться несколько параллельных машин, приходится использовать дополнительный
массив FStageQ. Соответственно для дальнейшего построения ветвей дерева путем перезаписи
значений параметров недоминируемых узлов используются массивы U(), VQ, ParQ, CompQ,
NPQ, CommenQ, FCompQ. Программа автоматически переносит данные с листа в перемен­
ные и массивы.
На рис. 10.9 приведена программа наполнения массивов деталеопераций. Значения мас­
сива RD() поступления деталеопераций в календарных часах устанавливаются по моментам
поступления заготовок или по моментам окончания предыдущих операций. Для каждой опера© 2018, Мауэргауз Ю.Е.

247

Универсальное производство

For 1 - 1 To Becab
desb(l) • Calls (Alta, Слива) .Value
desOU) * beeem) ♦ p(l)
eub(l) • Colls (Alfa, ванна ♦ 0 Then
если иреяоуам деталеооерацм в работе, по не закончена'
Ш>(1) • г (Job) ♦ Тп + exP(i - 1)
'момент поступления по окончании прел, операции плюс мяоавр. время *
Klee ’операция возможна сразу (0) мяк невозможна (-1)’
It еж0(1 - 1) - 0 Then ’операция возможна сразу
SD(1) ■ r(Job) ♦ Тп ’начало операции возможно в начале рабочего дня
Else * операция невозможна
RD(1) - еж0(1 - X) ’
ЕМ If
End If
End If

Alfa • Alfa ♦ 1 'перемол к следующей деталеопераций*

Рис. 10.9

Организация массивов деталеопераций

ции определяется значение еще не выполненной трудоемкости pav (рис. 10.10) и необходимых
моментов окончания каждой операции dDet (рис. 10.11).
После подготовки исходных массивов рассчитываются значения исходных значений кри­
териев в корне дерева. Величина относительных затрат в корне Uq = 0, функция полезности
заказов Vo определяется с помощью функций Napr2Q и NaprlQ. Расчет основных параметров
узлов первого уровня по всему количеству заказов производится в двойном цикле: внешний
цикл осуществляется по деталеоперациям, а внутренний цикл - по включенным машинам
(рис. 10.12). Затем производится отсечение узлов по критериям и перенос в полные массивы
недоминируемых узлов дерева решений.
На последующих уровнях intY построения дерева решений все этапы программы первого
уровня повторяются с существенными изменениями. В каждом узле ветвления intZ запомина­
ется расчетная полезность в созданном узле sngVz, номер машины в узле intMz, фиктивной
расчетной длительности в узле sngCz. Кроме этого, для каждой машины г определяется текуFor 1 - 1 То BetaD
'определение полкой оставшейся трудоемкости работ*
If exD(l) О Then
'для ме законченных деталеопераций'
Job “ desD(l)
'определение текущего покера строки списка работ по обозначению'
If exDU) “ -X Then
'для не начинавшихся деталеопераций*
pav(Job) “ pav(Job) ♦ p(i)
'накопление остающейся трудоемкости*
Else
’для начавшихся деталеопераций*
pav(Job) * pav(Job) ♦ exD(i)
’накопление остающейся трудоемкости*
End If
End If
Лехе 1

Рис. 10.10

248

Определение невыполненной трудоемкости

(с) 2018, Мауэргауз Ю.Е.

Универсальное производство

Гох 1 • 1 То BtuD 'определение необходимых моментов окончания и начала выполнения деталеопераций'
Job * de*D(l)
'обозначение строки работы, к которой относится операция'
If exO(l) 0 Than
'если операция не выполнена*
If exD(l) * -1 Then
'для не хачиказнихея деталеопераций*
Ехес • рЦ)
'остапваяся трудоемкость деталеопераций'
Е1ве
'для качавамхся деталеопераций*
Ехес • exD(l)
'оставлялся трудоемкость леталеоперацкм1
End If
dDet(l) • dd(Job) - per (Job) a pare (Job) ♦ Exec 'необходимей момент окончания деталеопераций*
90(1) • dDet(l) - Ехес
'необходимый момент начала деталеопераций '
pava(JOb) " pave (Job) а Ехес
'последовательно вакадливаюнаяся необходимая трудоемкость работы'
If Celle(1г ПГ") .Value • 1 And d(Job) • 0 Then
'отбор возможных операций*
aJ(i) "0.5
'строится узел первого уровня с i-ой выполняемой работой *
For J ■ 1 То NMach
'по всем малинам
If MetkaM(J) • 1 And aachD(i) • MachG(J) Then 'для включенных малин необходимой группы
п • п а 1
'номер текунего узла первого уровня*
Tk(n) * Application.Nax(RD(1), C1(J)) 'готовность малины и заготовки
If Vid (Job) О VldO(J) Then 'если необходима начальная переналадка
UStage(n) - U2ak(Job, J) 'затраты на наладку*
Tk(n) * Calend (Th (п), я (Vid (Job), J), J, 1) 'учет календарного графика
End If
'начало деталеопераций равно моменту освобождения нашим плюс время наладки*
CoHpStage(n) - Calend(Tk(n), р(1Ь J# 2) 'момент окончания работы в календарных часах
If Coap3tage(n> • 0 Then 'если не определен момент окончания работы
МздВох * недостаточен рабочий горизонт *
Exit Sub
End If
ParSeage(n) ■ 0 'в узле родительский уровень 0 '
NPStage(п) * 1 'в узле номер строки равен номеру в цикле'
VStage(n) • (VO * Cl (J) ♦ VZak (BetaD, 1, J, Cl (J), Tfc(n), CaapStage (n))) / CcHpStage(n)
NachStage(n) * J 'маыина в узле*
End If
Next J
aJ(l) * 1
'возврат метки работы на невыполнение*
End If
End If
Next 1

Рис. 10.12

Расчет параметров узлов первого уровня

© 2018, Мауэргауз Ю.Е.

249

Универсальное производство

щая выполняемая работа PMach(i) и ее момент окончания С1(г). После каждой выполненной
деталеопераций определяется момент ее готовности RD для выполнения следующей операции
с учетом календарного графика работы цеха (рис. 10.13).
Fox 1 - 1 То BetaD * начальная установка массивов aJ и Ь• О Then •если деталеопераций начата иди выполнена*
a*J(l) • О
•метка ставится на выполнение •
bJ(i) - exD(i)
'момент выполнения по текущему значению*
Elee
•если деталеолерация не начата *
aJ(i) - 1
•начальная установка меток работ на невыполнение'
bJ(i) • 0
мачальмое значение момента выпоишамил
End If
Мехе 1
k • TreeStage(intZ)
номер последнего узла
Do until k • 0
aJOT(k)> - 0
•метки выполненной работ в узлах до корил цепочки
bJW(k)) - Coap(k>
заполнение массива окончания деталеопераций в узлах до корил цепочки
k - Par(k)
•переход по цепочке*
loop
For 1 - 1 To BetaD
определение моментов готовности деталеопераций'
If nu*D(X) > 1 Then
длл операций с камерой белым 1*
If axD(l)
■1 And deeD(i) • deeD(l - 1) Then
’если работа в последующей деталеопераций и предыдущей сохраняется*
If aJ(l - 1) " 0 Then
'если предыдуиал деталеопераимя выполнена*
ШМ1) • Calend(bJ(l - 1), IM, 1, 1)
•момент поступления по окончании предыдущей операции плюс межодерацмомное время
В1ве
если предыдущая деталеоперанил не выполнена
'поступлении нет*
МММ
End If
End If
Elee
Job * deeD(l)
'номер строки списка работ, к которой относится операция*
RD(1) • Calend(г(Job), 0/ 1, 1) • момент поступления работы е учетом календарного графика
End If
Next 1

Рис. 10.13 Определение возможных моментов поступления на следующую

операцию

Остальные параметры для узлов последующих уровней определяются аналогично парамет­
рам первого уровня. Отсечение узлов по критериям и перенос в полные массивы недоминируе­
мых узлов дерева решений также производится аналогично узлам первого уровня.

10.2.5

Перепланирование расписания

Рассмотрим пример перепланирования задания, первоначально имеющего вид, приведенный
на листе 1 в книге MBookl0.xls. Как было указано в п. 10.2.1. задание на 15.09.16 8:00 состоит
из 20 работ шести видов. В случае, показанном на календарном графике, в течение первого
и второго рабочего дня планируются две 8-часовые рабочие смены. Следующий календарный
день выходной, после которого опять планируется двухсменная работа.
Поскольку продолжительность первого рабочего дня в данном случае составляет 16 часов,
при работе в точном соответствии с расписанием, в течение дня (до момента 24 часа) на первой
машине, например, должна быть полностью выполнена операция 1 для работы 12 (рис. 10.5).
Аналогичная ситуация имеет место и на других машинах. Положим, что к моменту окончания
первого рабочего дня появилась срочная работа 21 вида 3 с требованием немедленного вы­
полнения. В такой ситуации требуется перепланирование расписания, начиная со следующего
рабочего дня.
250

© 2018, Мауэргауз Ю.Е.

Универсальное производство

Для корректировки расписания скопируем лист 1 на лист 2, очистим этот лист от результа­
тов предыдущего расчета, введем отметки последних выполненных операций на момент начала
нового планирования, а также запишем строку 21 нового задания (рис. 10.14). Как видно из рис.
10.14, для нескольких работ (1, 2, 4, 5) выполнены все необходимые операции, и они должны
быть исключены из расписания.
В работах 3, 6, 7, 10, 11 и 12 в течение первого дня запланированы различные операции.
Например, для работы 3 выполняются операции 2 и 3 (рис. 10.6), для работы 6 заканчивается
операция 1, для работы 7 должны быть выполнены операция 1 и 2, а также начата операция 3
и т.д.
Для подготовки нового расписания в таблице состояния машин необходимо указать дату
этого нового состояния. Кроме того, для каждой машины необходимо указать загруженную
работу и ожидаемый момент окончания операции в календарных часах. Для проведения подго­
товки к перепланированию необходимо сдвинуть календарный график на единицу влево. Затем
необходимо указать на использование режима перепланирования и ввести данные о дате пе­
репланирования и границах пересчета исходного задания (рис. 10.15). При пересчете строки
законченных работ автоматически удаляются, а даты уменьшаются на одни сутки.
После подготовки к перепланированию, следует провести новый расчет расписания. При
вводе данных обязательно необходимо откорректировать границы исходных работ и деталеопераций. В данном примере система предлагает 1 не доминируемый вариант, результат расчета
иллюстрируется графиком Ганта.

Сравним откорректированный план по состоянию на 16.09.16 с остатком плана, составлен­
ного в предыдущий день (рис. 10.16). Прежде всего, в новом расписании приоритетной является
новая срочная работа 21. План для машин 1 и 2 изменился: введение новой работы 21 привело к

Работы
Обоэначе Требуем Ожидаем
ый
ый
календар календар
ный день
ние (Не
ный день
готоеност

работы)

Рис. 10.14

и после
начала
1
-1

Отметка

Весовой
выполнения

иикутигс

коэффици

НИЯ

после
начала

Вид работент

работы

0

1

1

°
0

2
3

*
2

0

2

1

0

4

2

1

<
5

2
2

0

3

3

о;

1

1

о
0

6;
7

2
3

0

5

1

0

3.

1

8
9
10

3
3
3

0
0
0

5
2

1
1

11^

1
1

6
3

1
1

12

3
4

13
14
15
16

4
4
4
5

2
2
2

4
2
1

1
1
1

3
6

1
1

2

1’
1

1
-1

1
1
1
-1
-1
-1

-1

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

дня

© 2018, Мауэргауз Ю.Е.

251

Универсальное производство

Рис. 10.15

Имя первой ячейки

Имя последней ячейки о
списка работ

Имя первой ячейки

Имя последней ячейки

Форма подготовки к пересчету работ и деталеопераций

Новый план на 16.09 ;.................
'Вариант 1 Машина 1: (21/1,16/2,11/2)
Вариант 1 Машина 2:13/1, 14/1,16/1,18/1,20/1
Вариант 1 Машина 3.16/1, (8/2,6/2), (9/1,13/3), (18/3,12/4)
’Вариант 1 Машина 4:17/2.16/4,10/3,20/3,19/2
‘Вариант 1 Машина 6:3/4,17/1,12/2,21/2, (10/2,16/2), (9/2,13/2), (19/1, 8/3), 18/2,17/3,10/5,15/5,20/4
Вариант 1 Машина 7.6/3, (21/3,15/3,11/4). 17/4,20/2
‘Вармот 1 Машина 8:12/3, (8/4,19/3)
Вариант 1Машика9. 3/5.14/2, 9/3. (11/3,21/4), (8/5,6/4), (12/6,18/4), (10/4,16/3), 17/6
Ставый план от 16 09

Верот 1 Машина 1 16/1.14/1,18/1.20/1
^Вариант 1 Машим 2:13/1, (16/2,11/2)
Вар*ант1МашинаЗ: 16/1,17/2,12/4,15/4.13/3,10/3, 19Я
iB^pi^i Машина 4:7/3?^
‘Вармот 1Мш^
(12/2,3/4), 17/3, (9/2.13/2). (10/2,16/2), (8/3,19/1), 18/2,10/5,16/5,20/4
Вармот 1 Машина 7:6/3,16/3,17/4,11/4
Вармот1 Машина 8.12/3.8/4,20/2,19/3
Верот 1 Машим * 3/5,14/2,6/4,11/3,9/3,12/5, (10/4,16/3), 8/5,17/5,18/4

Рис. 10.16

[

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

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

10.2.6

Моделирование расписания

На листе 3 представлены варианты расчетов расписаний при различных значениях ограни­
чителей ветвления. При увеличении значений ограничений Bl, В2 и уменьшении ВЗ пучок
возможных ветвей дерева расширяется, что приводит к большому значению количества узлов
на каждом уровне построения дерева. При В1 = 100, В2 = 5 и ВЗ = 0,01 количество вариан­
тов равно 4, а длительность решения составляет 10 сек., при В1 = 64, В2 = 5 и ВЗ = 0,01
длительность решения уменьшается до 8 сек. В данном случае изменения параметров модели­
рования в исследованном диапазоне на показатели расписания влияют незначительно.
На листе 4 определяется рациональный горизонт планирования при большом числе работ.
На рис. 10.17 приведены графики изменения показателей расписания в зависимости от плано­
вого горизонта. Наименьшие ежедневные затраты на переналадку имеют место при горизонте,
равном 100 календарных часов, и имеет смысл этот горизонт принять в качестве критического.

252

© 2018, Мауэргауз Ю.Е.

Универсальное производство

Рис. 10.17 Параметры расписаний для разных горизонтов: 1 - приведенные
затраты переналадок за один рабочий день; 2 - полезность выполняемого
набора работ; 3 - коэффициент запаздывания.

10.3

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

Существенно более сложной, по сравнению с предыдущим примером, является задача
комплектно-узлового планирования, когда за плановый период (например, рабочий день) цех
должен выпускать заданное количество комплектов деталей различного состава, причем, в со­
став различных комплектов могут входить детали одного вида. Необходимо также учитывать,
что заготовки для деталей каждого семейства могут поступать в цех в различные моменты вре­
мени. Задание цеху установленного числа комплектов выпуска является одним из вариантов
производственной стратегии «на склад».
Положим, что выполнение операции на каждой из машин возможно только над партией де­
талей в размерах, не меньших, чем т.н. «техническая партия». Такой партией в данном случае
является передаточная (транспортная партия) Yi, размер которой зависит от вида детали и но­
мера операции. Будем понимать под термином «работа» проведение всех необходимых операций
над такой партией деталей. Будем полагать также, что приоритет всех комплектов одинаков.
В таком случае все допущения, сделанные в предыдущем параграфе, кроме допущения б),
остаются справедливы.
Как и раньше, в качестве критериев оптимизации примем относительную стоимость перена­
ладок U и среднюю полезность заказов V. В этом случае структурная формула задачи примет
вид

FJ\prec,ri,Be,SjTn\U,V.

(102)

Эта формула отличается от формулы 10.1 тем, что в ней отсутствуют необходимые моменты
выполнения работ di, а вместо них вводятся требования о выпуске к видов комплектов деталей
Ве в каждый рабочий день (суткокомплектов) [Родов и Крутянский, 1964].
Группирование в таком случае заключается в объединении передаточных партий в техно­
логические партии, причем на каждой операции такое объединение может быть различным.
Расчетное количество выпуска в день деталей i

© 2018, Мауэргауз Ю.Е.

253

Универсальное производство

k
D^^BeQei,

(10.3)

е=1

где Qei - количество деталей вида i в комплекте типа е.
Определим для каждого г-ого вида деталей необходимое на начальный момент времени
количество poi его производства на горизонте h:
Рог = hDi — Zoi + Zci,

(10.4)

где Zoi - начальный запас деталей вида г, ZCi - нормативный страховой запас деталей вида г.
Необходимое количество технических партий в начале планирования
ПО. = ^,

(10.5)

причем первая партия должна быть изготовлена к моменту
Е
dn = —[2о; - Zci] час,

(10.6)

где Е - количество часов в рабочем дне. Необходимый момент окончания w-ой партии вида г
в рабочих часах определяется по реккурентной формуле
Е
di,w+l = diw + yr^i-

(^0.7)

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

10.3.1

Исходные данные задачи

Исходные данные для составления расписания записываются на листе MS Excel электрон­
ной книги MBookll.xls, состоящей из шести листов. На листе 1 в табл. $А$5:$С$13 находится
перечень типов выпускаемых комплектов, приведенный на рис. 10.18. Работы выполняются в
различном порядке на пяти операциях, для чего на участке установлены 9 машин.
На рис. 10.19 приведен список деталеопераций. Каждая операция может быть проведена на
машинах определенной группы и имеет соответствующую трудоемкость.
В начальный момент времени для каждой машины указывается настройка на вид обраба­
тываемой детали и ожидаемый момент освобождения в календарных часах (рис. 10.20).
На листе Excel приведена матрица норм времени в часах на наладку каждой машины на
один из шести возможных видов деталей. Календарный график предусматривает две восьмича­
совые смены и пятидневную рабочую неделю. К началу планирования определяются имеющиеся
запасы по всем видам деталей, в котором указываются номера последних выпущенных партий
каждого вида (рис. 10.21), а также наименьшие величины передаточных партий.
На рис. 10.22 приведен список находящихся в производстве передаточных партий. Строки
списка на рис. 10.22 упорядочены по номерам деталей и по номерам операций, причем для
254

© 2018, Мауэргауз Ю.Е.

Универсальное производство

Состав комплектов
Номер К-во в

Тип

комплекта детали комплекте
1
1
2
3
4
1
1
1
2
4
_ 5
3
2
1
....... 6
'
2
2
"зГ
4
3
1
3
4
........2
3
3

Рис. 10.18

Перечень типов комплектов

Деталеопераций
Номер
Номер группы Трудоемкость
Номер
на 1 шт., час
Детали
операции машин
!............... 1 .............. 1.......................... 1
0,2
’ ’
1
0,3
2
2
j
1
4
0,5
3
!................1
4
0,1
3
:................2 ............. 1.......................... 2
0,5
0,15
j
2 ............. 2.......................... 1
з ...................... 4
0,2
4....................... 3
0,15
2

2.
5*
5
0,35
! "
3
1
/
0,2
1
2.ZZ..ZZZ А
°*25

L . 2

L ZLIZ
IГз3

3

4

4
1
2.....................

2

0,15
0,15

2

0,15
0,25

1............... 4

1
з........................ 3

4
\4

4
5....... . ...........

4

0,3

5

0,3

1

°«2
0,15
0,15
0,45
0.2
0,25
0,2
0,3
0,5

5.........
!

4
4

Г5

j....... 5
/

5

5

5
6

'
6
!................6
...............6

i....... 6
Рис. 10.19

1

7

2
3:......................
4
1
2
3
4
5

2
4
5
1
2
3

4
5

0,2

Список деталеопераций

© 2018, Мауэргауз Ю.Е.

255

Универсальное производство

Состояние машин и®

15.09.16 8:00

Машина

1

2

3

4

5

б

7

8

9

Номергруппы мзшин
Отмотка включения машины
Настройка в начале дня на деталь

1
1
3

1
1
2

2;
1
О'

Момеш освобояздения в рабочих часах;

8

9

0

2
0
0
0

2
1
0
0

3
1
0
О

4
1
1
8

4
1
4
10

5
1
2
9

Рис. 10.20

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

___ ;..... Сос^ио запасов на

15.09,168:00

L........................ Деталь
Обозначение
Наименьшая передаточная парта а штуках
[Текущий запас о штуках

Задолжеююсть по поставкам

Страховой запас
[Ожидаемый мнпендарный день поступления заготовок

Номер последней сданной партии выпуска

Рис. 10.21

1

2

3

4

5

Р1
6

И
6

QI
6

Q2
Г 6

RI
6

R2
6

20

15

20

15

б

10

О

2

0

0

2

0

5

5

3

3

2

6

б

О

1

0

0

0

0

43

26

16

57

13

45

Состояние запасов деталей

партий с меньшим номером операции устанавливается больший номер партии. Например, в
изготовлении одновременно идут две партии деталей вида 3: партия номер 17 на операции 3 и
партия 18 на операции 1. Если передаточная партия находится на межоперационном складе, то
в графе «Номер машины» проставляется нулевое значение.
План по комплектам составляется в соответствии с их ожидаемым расходом в рабочий
день, который может быть дробным (рис. 10.23). Кроме того, комплекты некоторых типов мо­
гут иметь преимущества перед другими, что учитывается соответствующими коэффициентами
приоритета.
На листе 2 приведен возможный вариант перепланирования этого задания, на листе 3
проводится моделирование по различным параметрам. На листах 4 и 5 приведены примеры
моделирования с целью нахождения рационального горизонта планирования и рациональной
передаточной партии.

Лдодоочны^^

15.09.16 8:00
Номер детали

27
18

10;
б|

2
1

у..

3
2
1
з

17
58

10.
10{

0
8

si

з

14

10.

О

1!
2|

Рис. 10.22

256

Номер
Номер ^количество Номер
последней
выполняемой
партии в партии
машины
операм
44
10[
7

Список передаточных партий в производстве

©2018, Мауэргауз Ю.Е.

Универсальное производство

Состояние комплектов на

15.09.16 8:00

Комплект
Ожидаемый расход суткокомплектов

Коэффициент приоритета
'Последний сданный номер

Рис. 10.23

10.3.2

1
5
1
25

и
2
12

3
3
1
18

Ожидаемый выпуск суткокомплектов

Работа с программой

Для работы с программой планирования в MS Excel устанавливается соответствующий
рабочий лист, например, лист 1 и осуществляется запуск макроса. При выборе опции «без
моделирования», система сообщает о последней дате планирования и предлагает одну из двух
возможностей - подготовку планирования с новой датой или повторение расчета с последней
датой.
В форме «Ввод данных» задаются основные параметры процесса. Система автоматически
рассчитывает загрузку участка (по включенным машинам) и выдает соответствующее сообще­
ние. По окончании расчета все возможные и недоминируемые варианты выводятся на лист. В
данном примере таких вариантов только один, который приведен на рис. 10.24.
В каждом варианте работы сгруппированы по видам, а группы выделены скобками. Внут­
ри группы последовательность партий на операциях после первой не обязательно совпадает с
порядком их номеров, поскольку разные партии деталей одного вида могут приходить с преды­
дущих операций в различном порядке.
Например, для деталей вида 4 последняя выпущенная партия имеет номер 57 (рис. 10.21).
Кроме того, в производстве на машине 8 находится партия с номером 58, для которой выполня­
ется операция 4 (рис. 10.22). Первая операция для деталей этого вида (рис. 10.19) может быть
выполнена на любой машине группы 2, т.е. на машинах 3, 4 и 5 (рис. 10.20). В данном случае
программа запланировала выполнение на машине 3 девяти передаточных партий с номерами
от 59 до 67.
Выполнение второй операции для деталей вида 4 должно производиться на машинах группы
1 (рис. 10.19), к которым относятся машины 1 и 2 (рис. 10.20). В данном случае все переда­
точные партии поступят на машину 2, но порядок их поступления не обязательно сохраняется.
Затем выполняется операция 3 на машине 6: сначала обрабатываются три партии, а после пе­
рерыва - еще 6 партий. Для операции 4 используются машины 7 и 8. На машине 7 детали 4

ВаримНМ^^

МОП, ЗЙ1Л, 3/22/1. mt 3/24/1). (2/29/2. МОЙ, 2/28/2), (ДЛЮ. 4/52/2,4/66/2), (6/16/1, ММ)

Вариант 1 Машин* 2 (1/46/1.1/46/1,1/47/1.1X48/1. 1X401. 1/60/1). (4/61/2,4/60/2.4/63/2.4/64/2.4/56/2,4/67/2). (6X46/1.6Х47Л)
Вариант 1 Маими 3; (1/45/2.1/46/2.1/47/2. 1X402,1/402.1/50/2), (4/59/1,4/601,4М1Л. 4X62/1,4ЛЗЛ. 4/64/1.4/601.4/66/1. 4Л7ЛХ
(5/16/2.5/15/2), (6/47/2. 6X46/2)
Вариант 1 Манама 5 (2/29/1,2/29/1. 2/301), (3/17X4.3/20/4, 3^1/4,3/19/4, 3/24X4, 3/23X4. 3/22/4, 3/19X4)
Вариант 1 Маими 6 (1/46/4,1/404,1/44X4.1X47X4.1/49X4.1/41/4). (4/62/3,4/603,4/81/3). (3/20/2,3/21/2, 3/19/2, 3/24/2.3/23/2. 3/22/2,3/19/2),
1/504, (4/65/3,4/63/3,4/64/3.4/503,4/66/3,4X67/3), (2/77/4.2/304, 2/204,2/29X4), (047/3,0403)
Вариант 1 Машина 7: (1/403,1/47/3,1X403,1X403,1/403,1/50/3), (3/203,3/21/3,0103.3/24/3.3/23/3,3/22/3, 3/103).
(4/63X4.4/504,4X64/4.4/604,4/604). (047/4.0404), 404
Варимт 1 Маими 9: (2/29/3.2/303,2/28/3,2/27/3), (4/61/4,4/604,4/62/4). (0103.0103)
Вариант 1 Маими 9:4/505.014/4, (4/61/5.4/62/5,4/605), (0104,0104), (4ЛЗ/5.4Л4/5,4/605,4/69/5,4/605),
(2/27/5,2/305,2/205,2/т), 405. (047/5.0405)

Рис. 10.24

Результаты работы программы на листе 1

© 2018, Мауэргауз Ю.Е.

257

Универсальное производство

обрабатываются в две технологические партии: первая такая партия включает 4 передаточных
партий, а вторая - одну передаточную партию; на машине 8 технологическая партия состоит
из трех передаточных партий. Последняя (пятая) операция производится на машине 9 и со­
стоит из четырех технологических. При этом сначала обрабатывается находившаяся ранее в
изготовлении передаточная партия 58, затем три группы новых передаточных партий.
По окончании расчета на лист выводятся коэффициенты загрузки по каждой группе машин,
а также номера вариантов, рекомендуемые в соответствии с методами Сэвиджа и Гурвица. Кро­
ме того, для всех недоминируемых вариантов выводятся данные о значениях критериев U, V
(рис. 10.25), а также значения основных показателей расписания: коэффициента неравномерно­
сти загрузки Кп, коэффициентов группирования Кд и запаздывания Kz, полной длительности
выполнения расписания Стах, среднего Тс и наибольшего Ттах запаздываний.
В приведенном примере группы машины, предназначенные для различных операций, загру­
жены не одинаково. Наибольшая загрузка в 35% наблюдается в группе 5 (машина 9), наимень­
шая, равная 18% - в группе 1.

10.3.3

Анализ результатов планирования

На рис. 10.26 показано расписание для первого полученного варианта, составленное с уче­
том графика работы цеха. Начало и конец операции, как обычно, указывается в календарных
часах, отсчитываемых от начала первого рабочего дня. В скобках записывается вид изготовля­
емых деталей, номер операции и количество деталей в партии, внутри которой время ожидания
поступления передаточных партий не превышает принятого норматива. В данном примере этот
норматив установлен в 1 час.
На операции на машинах 1 и 2 первой группы запланированы на первый и второй дни, на
большинстве машин составленное расписание укладывается в 4 рабочие дня установленного
горизонта (пять календарных дней), и для некоторых машин расписание затрагивает пятый
рабочий день.
В начале первого рабочего дня на машину 1 последовательно загружаются шесть передаточ­
ных партий деталей вида 3 для выполнения операции 1 (рис. 10.24). Т.к. перерывы между этими
партиями отсутствуют, то все шесть передаточных партий объединяются в одну технологиче­
скую партию, в которой без перерывов обрабатываются 36 деталей (рис. 10.26). Аналогичная
ситуация имеет место на машине 2 для деталей вида 1, для которых также выполняется опе­
рация 1.
Обработка деталей вида 2 на машине 1 должна проводиться для выполнения операции 2.
Предыдущая операция запланирована на машине 5, где три передаточных партии по 6 штук
каждая объединяются в одну технологическую, которая начинается в момент 18 часов и закан­
чивается в 35 часов. Эта партия в 2 приема переносится и продолжается на машине 1.
В другом примере, для деталей вида 4 операция 1 также проводится на машине 3, а опера­
ция 2 частично на машине 1, а частично - на машине 2. В этом случае время первой операции
(0,15 часа, рис. 10.19) меньше у второй операции (0,25 часа), технологическая партия после
первой операции передается на вторую операцию по частям (передаточным партиям). В ре­
зультате операция 3 на машине 6 проводится в две технологические партии, одна из которых
затем передается на машину 7, а другая на машину 8 для выполнения операции 4. Окончание
обработки деталей вида 4 на операции 5 проводится на машине 9 в 4 технологические партии.
Аналогичная ситуация имеет место на последующих операциях.
Система обеспечивает вывод расписания работы машин в виде диаграммы Ганта (рис. 10.27).
Номер работы указывается на поле прямоугольника диаграммы, сверху записывается номер
текущей операции.
258

© 2018, Мауэргауз Ю.Е.

Универсальное производство

Коэффициент плановой загрузки: 0,24
Группа 1; 0,18
Группа 2; 0.2
Группа 3:0.3
Группа 4: 0.25
Группа 5: 0,35
Рекомендуемые варианты: по методу Сэвиджа - вариант 1. по методу Гурвица - вариант 1
Показатели вариантов расписания:
относительные затраты на наладку U; средняя полезность заказов V;
коэффициент неравномерности загрузки Кл; коэффициент группирования Кд; коэффициент запаздывания Kz;
полная длительность выполнения Стах, среднее Тс и наибольшее Ттах запаздывания в календарных часах
Начальные значения критериев: U = 0; V = 2,706856
Вариант 1U = 43,5; V = -11.915; Кп = 3,4; Кд = 4,47; Kz - 0»85; Стах = 161; Тс = 55,2. Ттах = 113,4

Рис. 10.25

Значения показателей расписания для различных вариантов

План загрузки оборудования в календарных часах по варианту 1
Машина 1: 9.5 (3/1/36) 16,7; 32,5 (2/2/6) 33,4; 36 (2/2/12) 37,8; 38.8 (4/2/18)43,3; 44,8 (5/1/12) 47.2;
Машина 2:10 (1/1/36) 17,2; 37,7 (4/2/36) 46.7; 47.7 (6/1/12) 82,1;
Машина 3:12,7 (1/2/36) 23,5; 33 (4/1/54)41,1; 82 (5/2/12) 83,8; 84,8 (6/2/12) 87,8;
Машина 5:18 (2/1/18) 35; 36 (3/4/10) 37,5; 87,3 (3/4/41) 94,7;
Машина 6: 36 (1/4/34) 39,4; 41 (1/4/6) 41,6; 43.8 (4/3/18) 47,4; 80,9 (3/2/41) 91,2; 92,2 (1/4/6) 92,8;
104,8 (4/3/36) 111,9; 113.4 (2/4/28) 117,6; 119.1 (6/3/12) 129,5;
Машина 7:17 (1/3/36) 43; 85,4 (3/3/41) 92,9; 110,2 (4/4/30) 119,2,130.3 (6/4/12) 133,9; 136,9 (4/4/6) 137.8;
Машина 8:35,9 (2/3/28) 42,3; 82 (4/4/18) 87,4; 88.4 (5/3/12) 90,2;
Машина 9:12 (4/5/10) 15; 16,5 (5/4/10) 21; 85,8 (4/5/18) 92; 93,5 (5/4/12) 106.9; 114 (4/5/30) 131,8;
132,8 (2/5/28) 142,6; 143.6 (4/5/6) 153,4; 154,9 (6/5/12) 160,9;

Рис. 10.26

План загрузки машин

Рассмотрим, например, движение партий деталей вида 4 на диаграмме. Как указывалось
выше, первая операция для деталей вида 4 проводится на машине 3. Не дожидаясь окончания
всей партии на машине 3, ее части переносится на машины 1 и 2 для проведения второй опе­
рации. В конце первого рабочего дня одна передаточная партия переносится с машины 1 на
машину 6 для выполнения третьей операции. В течение второго рабочего дня (рабочее время
больше 16 часов) партия деталей вида 4 постепенно переносится на машину 6. Четвертая опера­
ция для этих деталей проводится на машинах 7 и 8. На машине 9 для операции 5 планируется
4 технологических партий.
Программа позволяет отследить движение запасов по всем видам деталей (рис. 10.28).
Здесь в скобках указывается объем запаса перед моментом поступления новой партии готовых
деталей, затем (через дробь) объем запаса после поступления, и, при возникновения дефицита
- объем дефицита. Программа предусматривает пополнение запасов после окончания последней
операции для каждой передаточной партии.
Поступление деталей определяется достаточно точно по окончанию выполнения каждой
передаточной партии на последней операции. В тоже время плановый расход деталей здесь
устанавливается по предполагаемому расходу комплектов, что, конечно, часто выполняется не
в полном объеме. Поэтому данные на рис. 10.28 могут рассматриваться только как ориентиро­
вочные.
В данном случае движение запасов проходит в течение четырех рабочих дней, соответству­
ющих горизонту расчета. В момент 0 записываются запасы для деталей каждого вида, а также
(через дробь) возможные задолженности. Например, для детали 1 первое поступление имеет
место в 36,6 часа и после поступления запас равен 9 деталям. Детали вида 2, 4 значительную
(с) 2018, Мауэргауз Ю.Е.

259

Универсальное производство

Рабочее время, чаем

Рис. 10.27

Диаграмма Ганта

Движение запасов в часах рабочих дней согласно выбранному варианту в пределах границ расписания
Деталь 1 0 (20) 36.6 (3/9) 37,2 (9/15) 38.2 (14/20) 38.8 (20/26) 39.4 (26/32) 41,6 (31/37) 68.8 (25/31) 96 (15/15)
Деталь 2: 0(15/2) 96 (0/0/23)
ДетЗ: ОрО) 37.5(0/6/1)64.2(0/6/8^(0/6/3)66(2/8)66,9(7/13)68.2(12/18)69,7(17/23)70.7(22/28)96(10/10)
Дет» 4: 0(15) 15(4/10)63.6(0/6/14)66,2(0/6/10)68(0/6/5)91,8(0/6/11)94,4(0/6/7)96(0/0/2)
Дет» 5: 0 (6/2) 21 (0/6/1) 80,2 (0/6/4) 82,9 (1/7) 96 (4/4)

Дет»6: 0(10) 96(0/0/2)

Рис. 10.28

Движение запасов в календарных часах рабочих дней

часть времени находятся в дефиците. Деталь 3 имеется в требуемом наличии в течение все­
го рассматриваемого периода. Движение запасов можно проиллюстрировать диаграммой (рис.
10.29).
Из графиков на рис. 10.29 видно, что в данном примере дефицит деталей для выпуска
запланированных комплектов случается относительно редко. В то же время программа спла­
нировала выпуск деталь достаточно большими партиями, что обеспечивает небольшие затраты
на переналадки.
Графики строятся для времени рабочих дней, что соответствует заданию в суткокомплектах - расчетному расходу в один рабочий день. На самом деле отгрузка деталей производится
комплектами, поэтому фактическое состояние запасов может определять в момент отгрузки например, после каждого рабочего дня.
Программа рассчитывает номера очередных партий для деталей всех видов при их поступ­
лении на склад (рис. 10.30). Здесь в скобках записывается номер партии и (через дробь)
количество деталей, и после скобок - время поступления в календарных часах.
Например, номер последней сданной партии для деталей вида 1 равен 43 (рис. 10.21). В
данном случае готовые детали поступают с машины 6 на склад в три партии - одну в 34 и
две по 6 штук. Детали вида 2 выпускаются на машине 9 без перерывов и поступают в виде
260

© 2018, Мауэргауз Ю.Е.

Универсальное производство

54
4$
44
»

25
24

15
14
5

б

44
45
*24

*25
Время рабочих дней, часы

Рис. 10.29

График движения запасов деталей

Партии выпуска по варианту £
■ Деталь 1Машина 6: (44/34) 39,4 (45® 41.6 (46/6) 92,8

Деталь2'Машина9:
Деталь 3 Машина 5:
Деталь 4 Машина 9:
Деталь 5 Машина 9:
Деталь 6 Машина 9:

Рис. 10.30

(27/28)
(17/10)
(58/10)
(14/10)
(46/12)

!

142,6
37,5 (18/41) 94,7
15 (59/18) 92 (60/30) 131,8 (61/6) 153,4
21 (15/12) 106,9
160,9

Партии поступления деталей на склад готовой продукции

одной партии. Последние операции для деталей вида 3 производятся на машине 3 и поступают
на склад двумя партиями и т.д.

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

В каждой строке плана указывается номер комплекта и (через дробь) их количество. В
данном случае наибольший коэффициент приоритета имеют комплекты типа 2 (рис. 10.23).
Поскольку этого типа потребность составляет 1,5 суткокомплекта, то в разные рабочие дни
поставляются либо 1, либо 2 комплекта. Комплекты других типов в рассматриваемом периоде
поставляются по мере накопления необходимых деталей.
© 2018, Мауэргауз Ю.Е.

261

Универсальное производство

Комплекты выпуска по варианту 1
Рабочий день 1 2/1 1/5 3/3 j
Т
Рабочий день 2 2/1 1/2 3/1 1
Рабочий день 3 2/2 1/0 3/0 '
Рабочий день 4 2/2 1/5 3/3^

Рис. 10.31

10.3.4

S

План поставки комплектов на горизонте

Листинг основной части программы

На каждом уровне построения дерева расписания используются пять обычных массивов
UStage(), V Staged), ParStageQ, CompStageQ, Tk(), а также основные массивы NPStageQ,
NPBStageQ, NPDtageQ, NPRStage(), MachStageQ, в которых записываются значения ви­
дов деталей, номеров партий, номеров операций, меток законченности обработки и номеров
машин соответственно.
Поскольку для каждой операции могут применяться несколько параллельных машин, при­
ходится использовать дополнительный массив FStageQ. Соответственно для дальнейшего по­
строения ветвей дерева путем перезаписи значений параметров недоминируемых узлов ис­
пользуются массивы UQ, VQ, Par(), CompQ, NP(), NPB(), NPD(), NPRQ, MachQ,
CommenQ, FCompQ.
Программа автоматически переносит данные с листа в переменные и массивы. Вначале
прочитываются таблица рабочего календаря и таблица переналадок, после чего определяется
двумерный массив количества деталей разного вида (рис. 10.32).
При наполнении массивов деталопераций (рис. 10.33) определяется полная трудоемкость pD
детали путем суммирования трудоемкости всех ее операций, количество операций по каждой
детали ND и номер строки первой операции для детали FD.
Для каждой машины запоминается ее первоначальная настройка на определенный тип дета­
лей и ожидаемые время освобождения; для каждого типа комплекта устанавливаются ежеднев­
ный расход, коэффициент приоритета и последний сданный номер партии. Затем по каждому
виду деталей рассчитывается потребность в деталях этого вида на горизонте планирования
(рис. 10.34).
Для каждой передаточной партии, которая находится в производстве, запоминаются ее
параметры и ожидаемые моменты готовности к следующим операциям. Объем технической
партии для каждого вида деталей определяется по значению средней потребности деталей
НКат * Cells(2, WJW).Value
NVid - Cells(2, WHW).Value

‘Количество видов комплектов
‘Количество видов деталей*

For i « 1 То Bera
kom(i) * Cells (Alfa, Gamma) .Value ‘номер комплекта
des(i) - Cells(Alfa, Gamma + 1).Value ‘номер детали
kol(i) - Cells (Alfa, Ganna + 2) .Value ‘количество деталей в одном комплекте
Alfa - Alfa + 1
Next 1
ReDlm Part (NKom, NVid)
For j « 1 To Bera
Part(kom(j), des(j)) * kol(j)
‘количество деталей в одном комплекте'
Next j

Рис. 10.32 Определение массива количества разных деталей в комплектах

262

© 2018, Мауэргауз Ю.Е.

Универсальное производство

’наполнение массивов дегалеопераций '
Гог 1 • 1 То BtcaD
’обозначение детали *
desD(i) - Cells (Alfa, Gaoe) .Value
*номер летал«опередим’
nmD(i) - Celia (Alfa, Ganta + 1) .Value
4 группа малик для текущей леталеопераиих'
MchD(l) - Celia (Alta, Gama + 2) .Value
'трудоемкость деталеоперики’
p(l) • Celia (Alfa, Gama 4 3> .Value
mxMD ■ 0
If nmD(l) 1Then
'трудоемкость летали на первой операции
pD(deaD(i))
•p(i)
ND(desD(i))
•1
'номер строки с первой операцией'
HHdesDdH
-1
Else
'определение полкой трудоемкости детали
₽D(d«sD(i))
*pD(deaD(M) 4 p(i)
'определение полного числа операций для детали
ND(desD(l))
•ND(deaD(i)) 4 1
End If
Alfa - Alfa + 1 * переход к следующей деталеоперадим'
If MD(d*sD(l>) > mxMD Then нахождение наибольшего числа операций над детали» одного типа
■axND ■ HD(desDd))
End If
Hext 1

Рис. 10.33

Определение параметров для каждой детали

For 1 • 1 То HVid ’по видак деталей
Vid(l) - Cells (Alfa, Gama 4 1- 1) .Value
If Celled, "AM") .Value ■ 0 Then ’флаг передаточной партии в нуле
М1п₽(1) • Cells (Alfa 4 1, Gama 4 1- 1) .Value
'минимальный размер передаточной партии для деталей текущего вида

Else
MinP(l) • Cells (2, "a") .Value 'минимальный размер передаточной партии для всех видов деталей
End If
StocW(i) - Cells (Alfa * 2, Gama 4 1- 1) .Value 'массив начальных запасов*
Backd} • Cells (Alfa 4 3, Gama 4 i - 1) .Value 'массив задолженностей по поставкам*
Save(i) • Cells (Alfa 4 4, Gama 4 1- 1) .Value 'массив страховых запасов*
r(i) - Cells (Alfa + 5, Gama * 1 - 1) .Value * Ed) ' момент поступления сырья в календарных часах
LastP(l) * Cells (Alta 4 €, Gama 4 1 - 1) .Value 'массив номеров последних сданных партий
ИажпижР(1) * Laser(1) 'последний номер устанавливается по сданной партии
MaxnumPZ(i) * МахпивР(1)

'временный номер последней партии

Consd) - 0
For j • 1 То ЯКов 'по типам комплектов
Cdns(l) • Cons(i) 4 Part(j, 1) * Kms(j)
* необходимое количество деталей в рабочий день
Мехе j
Workd) - Cons(i) * HGor - SeockOd) 4 Baclt(l) 4 Saved) 'потребность на горизонте планирования'
If Morkd) < 0 Then

Workd) - 0
End If
мехе 1

Рис. 10.34

Расчет потребности деталей на горизонте планирования

этого вида в одном комплекте. Если эта величина меньше значения нормативной передаточной
партии, то значение технической (минимально возможной) партии pav устанавливается равным
значению передаточной партии.
При подготовке к организации узлов первого уровня устанавливаются номера операций и
моменты их окончания для каждой возможной операции (рис. 10.35). На рис. 10.36 определя­
ется необходимое количество партий Batch деталей каждого вида на горизонте планирования,
а также требуемые момент готовности этих партий d. Для каждой партии рассчитывается ее
трудоемкость
Затем устанавливается наибольшее возможное количество партии деталей одного вида
maxBatch (рис. 10.37). Сначала это количество определяется по сумме требуемых новых пар­
тий Batch и количества партий, уже находящихся в производстве (наибольший номер партии в

© 2018, Мауэргауз Ю.Е.

263

Универсальное производство

NVid • Cells(2, *И").Value

количество видов деталей*

Веса * Range(UpperLeftl, LowerRightl).Rows.Count - 2
'количество строк (партии в работе)*

HBranch(l) - Beta * NVid
'наибольшее возможное количество

работ на первом этапе (один исходный узел)

For 1 " 1 То NBranch(l) 'наполнение временных массивов для первоначальных партий*
If 1 / pav(n)) - (Work(m) - kolG(m)) / рач(ж) Then
' если расчетное количество партий целое
Batch (ш) - (Work (bl) - kolG(B)) / рач(ж)
Else 'если расчетное количестве не целое'
Batch (и) * lnt((Work(m) - ко1б(ж))) / рач(ж) + 1
End If
If Batch (ж) < 0 Or Work(ж) * ND (ж) - 1
Wip(nachD(k)) * #1р(жасЬ0(к)) + р(к) • рау(ж) * Batch (ж)
’ накапливавшаяся трудоемкость в группе иажн*
Next к
End If
рачв(ж) - pav(m) * рО(ж) ' трудоемкость партии
Next 1

Рис. 10.36

Расчет необходимого количества партий каждого вида

В узле также записываются значения номера вида детали, номера партии, номера операции,
номера родительского узла и признак необходимости дальнейшей обработки текущей партии.
Затем производится отсечение узлов по критериям и перенос в полные массивы недоминируе­
мых узлов дерева решений.
На последующих уровнях intY построения дерева решений все этапы программы первого
уровня повторяются с некоторыми изменениями. В каждом узле ветвления intZ запоминается
расчетная полезность в созданном узле sngVz, номер машины в узле intMz, фиктивной рас­
четной длительности в узле sngCz, а также номер вида деталей в узле intNP, номер партии
intNPB и номер операции intNPD. Затем восстанавливается вся цепочка дерева в узле (рис.
10.42), причем отдельно учитываются участвующие в цепочке начальные передаточные партии.
После определения количества т всех партий в производстве для текущего узла перена­
значаются массивы параметров операций, исходящих из текущего узла. Эти параметры пе­
реопределяются аналогично рис. 10.35. Кроме того, устанавливаются необходимые моменты
готовности каждой партии в двумерном массиве dZ аналогично рис. 10.38.
Для каждой уже проведенной операции запоминаются номера LastN соответствующих
строк таблицы деталеопераций (рис. 10.43).
(с) 2018, Мауэргауз Ю.Е.

265

Универсальное производство

maxBatch - О
For 1 - 1 То NVid
If maxBatch < Batch(1) + MaxnumP(i) - LastP(i) Then
maxBatch - 2 * (Batch(1) + MaxnumP(i) - LastP(i))
'количество новых партий плюс количество партий в работе в начале планирования
'максимальное количество партий одного вида макет дойти до двух горизонтов
End If
Next 1

Определение максимально возможного количества партий од­

Рис. 10.37

ного вида
ReDiin dZ(NVid, maxBatch) ' массив требуемых дат для каждой партии*
For i e 1 То NVid 'для всех типов деталей
q s MaxnumPZ(i) - LastP(i) + 1 'номер новой партии
For j * 1 То maxBatch 'для всех необходимых партий
If j 0 Then
ж * deaPZ(i) ’номер детали’
anQ ” pavz(i) + p(LastN(i)) * kolPZ(i) ’полная оставшаяся трудоемкость партии
If aJ(i) * 0.5 Then 'для выполняемой деталеопераций’
VZak - VZak + Vybor(aJ(ib 1, inP, InP, dDet(i), snCl, snTk, snFk)
* для первой необходимой операции 'для последующих операций
Else
VZak - VZak ♦ Vybor(aJ(i), 1, eng, inP, dZ(n, inq), snCl, snlk, snFk)
’для кевыполмяемых операций
End If
End If
Hext i
End Function
Рис. 10.41

Расчет полезности заказов в узле

Ж “» О
Do Until k - 0
If NPR(k) • 1 Then ’если метка в цепочке рабочая*
в * ж + 1 ’партия в цепочке узла учитывается как возможная к продолжению*
Else
'для узла с меткой окончания операций*
MaxnuaPD(HP(k), HPB(k) - LaatP(HP(k))) - MD(MP(k>>
’запись последнего номера операции в массив последних выполненных операций'
End If
If NPB(k) А..... ....... ... Л

А. '' ■

2i
60;

3
60

90?
Л Л. Л . А.

90
—- .

... ....

4
60

5
80

90

90

6
80

90
• ЛА • -А .А ... V ...

..... . . ,,..... т

7=
80;

90?
- " ' " " ' '• ’

!

8
60
90
.. -А-. АЛЛ-. ..

2

1

80?

80>

80

80

80

80

2

2

80

80?80

80

0

0

2

3

90?

90 -

90

90

90

90

90;

90

3

1

40’

80 ’

80

80

80

80

80?

80

3
3

А V . > • ^ •■

90?
90 ’

90 :
90 :

90
А
90

90А , .
90

90
90

90
90

. А . А .А

4

4

80

80

80

80

80

80;

40

5

5

80

80 :

80

80

80

80 ’

80

• A Z-A А . .> . -- И- А-

2
3

.- .. ■ . АГ А А» V И ■ ■ . «А И . ИV ИЛЛ^А. Аг V ' . a-av*■

80
80

. . ,И . -A V Л . - .у- - .« . A»- ,-*-,. •V -

80 :

80

0j80

90 >
90;

90
90

■ A.V . * ИАА А.. -А,

Плановая производительность бригад по видам работ

© 2018, Мауэргауз Ю.Е.

279

Расписания для бригад

Состояние
Проценты выполнения работ в бригаде I
бригад на 13.10.16 8.00
Номер
Вад
2
3
работы
работы
1
0|
0
t
°
1
80
0;
0j
0
2
0
1
-t
0[

’. 4.. ) 5 ;

0

Oi

0

; . Л

о

Г

20

0

0

2

20

0

0

3
4;
s!

о

-1

0'

0

0

3

3

0
0

~... 4 .......... 1;....... 0

4
4

5
___5
5
Рис. 11.4

oj

2
...... 2
j'

2|

0

...... а...

о [....._

070

0

|ZjL1

100J

0Ц .... 80;

! °’ °;
Lljkkk

.. л

.. ....... 0 ___ Л
0
0j
____ 4|_____0 7

100;____ 0;

0 ~__ o[ZZoi
i
° ____ 30
_____0^
0
70____ 0
L.. _iL__ 0
.... 5|..........0
0
..... 0 ZZ°L 60

Выполнение начатых работ на момент планирования в процен­

тах

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

11.3

Работа с программой

Для работы с программой планирования в MS Excel устанавливается соответствующий
рабочий лист, например, лист 1 и осуществляется запуск макроса. В форме «Ввод данных»
задаются основные параметры процесса. По окончании расчета, расписание выводится на лист
(рис. 11.5).
Числа в последовательности для каждой работы показывают календарные дни начала и
окончания выполнения соответствующих работ, определенные с учетом рабочего календаря.
Числа, взятые в скобки - номера бригад, участвующих в выполнении работ, причем первой
записывается бригада, выполняющая ведущий компонент работы.
Плановая загрузка бригад в течение ближайших восьми недель приведена на рис. 11.6. Из
рис. 11.6 следует, что в данном случае в течение первых четырех недель загрузка не превышает
80%, на пятой неделе бригада оказываются нагруженной почти на 100%. В дальнейшем полная
загрузка (без учета распределения по видам работ) находится в допустимых пределах.

280

(с) 2018, Мауэргауз Ю.Е.

Расписания для бригад

План[ работ по датам начала и окончания.

Первая бригада в скобках -ведущая, остальные дополнительные

Работа 1:1-6 (2)
Работа 2: 0-14 (1,2)
Работа 3:0-2 (5,4)
Работа 4: 0-13(3)
Работа 5:1 - 9 (2,5)

Работа 6:22-28(5,3)
Работа 7:0 -14 (2,4)
Работав: 13-22(1,3)
Работа 9: 28 - 34 (2)
Работа 10:13 - 27 (1)
Работа 11: 9-19 (2,5)
Работа 12: 61 -71(2,4,5)

!

Работа 13:14-20(2,4)
Работа 14: 36-45 (5,3)

i

Работа 15: 30 - 36 (2,4)

Рис. 11.5

Фрагмент расписания работ по бригадам

^Еженедельная загрузка бригад в процентах мощности

J1$A®5*

. 6........ _ . 7..... -.... 8

Бригада 1:

29

2 „ .
56

з.... 5
78

44

0

Бригада 2:

56

72

48

29

98

йвии*.

0

Бригада 4:

42

38

Бригада 5:

9

10

Рис. 11.6

11.4

..L..^

38

44
19

6

28
31

25

Д4

44
16

0

0

12
30
31

75

0

0

60

31
28
35

86

31
48

38

Фрагмент загрузки бригад по неделям

Анализ результатов планирования

На рис. 11.7 показан фрагмент загрузки бригад в течение ближайших восьми недель.
Загрузка бригады на каждую неделю ограничивается знаком «;». В начале в скобках при­
водится перечень работ, запланированных для бригады на текущую неделю, после чего (через
дробь), приводится полная загрузка бригады без разделения по видам работ. Затем по каждому
виду работ в бригаде, через дробь, приводится соответствующая загрузка.

Бригада 1: (2/291/332/18; 0,10,8/561/62 2/38; (103/781/79 2175; (10.8/441/382/60; (0); (0); ДО; ДО; ДО; ДО; ДО; (38/221/30;
Й^ДМ* (Ш.7/561М8 2/313/118; 0.5,7,11/721/64 2/15 ЗЛ98; (11,1374/481/66 2/9 3/90; (24,9.20/291/522/10 3/20;

07970,1572/961/89^108 3188, (157278/121/6 2/18 3/18; 0871,16,1775/601/60 2/50 3/80; (31,16,1775/861/89 2/79 3/90;
БригадаЗДО; (4ДО81/38 3/78; (8/441/52 3/52; 0,6/281/38 3/35; (35/141/28; 05,14/30 Ш53В2; (14.40/311/42 3/40; (4077/311/48 3/28;
Б₽«ла4:0^Й2 4Д2; 0/384/38; (1374/194/19; 04/314/31; (15,36/44 4/44; 0 5,1875/314/31; (16.40/28 4/28; (16.40/48 4/48;

6рнп|ад5: 07/95/9?

Рис. 11.7

(Н/6Я6; (6/25 5/25; (3872/16 5/16; 02.1878.14/75 5/75; 08,14,16/35 505; (1677/38 5/38;

Фрагмент загрузки бригад на восемь недель

© 2018, Мауэргауз Ю.Е.

281

Расписания для бригад

Например, на первую неделю для бригады 2 планируется список из четырех работ 1, 2,
5 и 7, причем полная загрузка (без разделения по видам работ) бригады 2 составляет 56%.
Затем на рис. 11.7 приводятся данные по загрузке каждого вида работ, из которых следует, что
загрузка вида 1 равна 40%, вида 2 - 31%, а вида 3 - 118%. Таким образом, бригада 2, несмотря
на приемлемую общую загрузку в 56%, явно перегружена по третьему виду работ.
Система обеспечивает вывод диаграммы загрузки бригад (рис. 11.8).
По оси абсцисс на рис. 11.8 откладываются недели планирования. Для каждой недели отре­
зок разбивается на несколько частей по отдельным видам работ, номера которых указываются
для каждой такой части. Цвет такого номера определяется по уровню загрузки соответствую­
щего вида работ: зеленый цвет используется, если загрузка меньше 50%, черный цвет - если
загрузка составляет в пределах от 50 до 100%, и красный цвет - если загрузка больше 100%.
Ордината линии загрузки устанавливается в зависимости от полной загрузки бригады: если
загрузка находится в пределах от 50 до 100%, то ордината считается равной 1; при мень­
шей загрузке ордината принимается равной 0,8; при величине большей 100% ордината полной
загрузки бригады считается равной 1,2.
Сверху над линией загрузки приводится список работ, выполняемых бригадой на текущей
неделе. Если список работ текущей недели сохраняется после предыдущей недели, то такой
список опускается. Например, для бригады 1 на первой неделе проводятся работы видов 1 и
2, причем как полная загрузка бригады, так загрузка по отдельным видам работ невелика.
Поэтому цифры видов работ записываются зеленым цветом, а линия загрузки бригады име­
ет ординату 0,8. Такая небольшая загрузка объясняется тем, что список выполняемых работ
состоит только из одной работы 2.
На второй неделе загрузка бригады 1 увеличивается, т.к. в списке уже находятся 3 работы 2, 10 и 8. Соответственно ордината линии загрузки становится равной 1, и меняется цвет вида
работ 1 с зеленого на черный. На третьей неделе работа 2 уже отсутствует, однако загрузка

*. . к... L... к. ". к... I... к... I»... к... I.. I.. I... I... I.... I... I...
гл

>

мл*

я

V

*

м

1VK

»

?ММ> им

*М’

или

нм

Имиди
«де
*?

«м»

*м*

»

’•

м

ЯЛ?

им

м

w

—I
LXWIXU1 или* HU»

UMUaXUUIш%%мш

ЕПм

JtfelAlJitWL^^

». —.. —-- ------------- —- ---- --------и

им

м

им

м

______________________ Е... LLL-Mn
7

I

»



Ними

Рис. 11.8

282

Диаграмма загрузки бригад

©2018, Мауэргауз Ю.Е.

И

12



X*

>5

Расписания для бригад

остается достаточно велика за счет работ 10 й 8. На четвертой неделе бригада 1 заканчивает
выполнение предыдущих работ 10 и 8, полная загрузка бригады уменьшается, хотя по виду
работ 2 она еще остается значительной. С пятой по одиннадцатую неделю загрузка по бригаде
1 не планируется, а дальше она возможна с относительно небольшой загрузкой.
Для бригады 2, в отличие от бригады 1, запланирована существенно большая загрузка.
Дело в том, что бригада 2 имеет в своем составе специалиста (рис. 11.2), который может
выполнять приборные работы (вид работ 3). Более того, оказывается, что загрузка по этому
виду работ достаточно велика. Например, на первой неделе полная загрузка всей бригады 2
имеет ординату, равную 1, хотя загрузка по видам работ 1 и 2 невелика и эти цифры имеют
зеленый цвет. В то же время загрузка по виду 3 превышает 100% и соответствующая цифра
окрашена в красный цвет.
В дальнейшем ординаты линии загрузки для бригады 3 колеблются между значениями 0,8 и
1, а на неделе 13 становится даже равной 1,2. При этом вид работ 3 несколько раз окрашивается
в красный цвет, что явно указывает на перегрузку по этому виду работ.
Для бригад 3, 4 и 5 запланирована относительно равномерная загрузка. В целом, плани­
рование загрузки специализированных бригад осуществляется проще, чем для комплексных.
Более подробно загрузку бригад по видам работ можно изучать по рис. 11.9.
Еженедельная загрузка бригад в нчас по видам работ


1

2

3

4

- SIntd) And Tk(N) < FIntd) Шеп
'если начало работы находится в пределах недопустимого интервала
Tk(N) • Flne(l)
End If
sagCk • Tk(N) ♦ pd) / pOd) * third) * 1.4 ' предварительный момент выполнения в календарных днях
If Tk(N) < SIntd) And дпдСк > SIntd) ♦ third) / 2 Then
■ если работа начинается рамвже недопуепжаого интервала, а кончается позже его середины
Tk(N) - Fined) 'переход па коней недопустимого интервал*
End If
B&gCk - Tk(N) ♦ pd) / pOd) * third) * 1.4 ' предварительный момент выполнения в календарных днях
■1 • 1 ♦ Int(Tk(N) / 7) ♦ первая неделя выполнения работы
m2 • 1 + lnt(sngCk / 7) 'последняя неделя выполнения работы
If m2 > Омера - 2 Then 'ограничение де последней неделе в календаре
■2 • omega - 2
End If
If ml > m2 Then ' возможно в случае последней недели в календаре
ml * m2
'начало и конец устанавливаются на одну неделю
End If
For k • 1 то жест
FondV(k) " BrigFond(Карра, k, ml, m2)
'средний расчета я производителькость бригады мчасов/демь дам недель выполнения оставайся загрузки
Next к
сбита * 0
For к - 1 То ЖасП
K*ch5tage(N, к) ■ Kach0(i, к) 'загрузка по бригадам в узле в мчас
If NachOd, к) > 0 Then 'для бригад, участвующих в выполнении текущей работы
tGasma - сбита ♦ FoadV(k) 'накопление расчетной производительности для всех участников
End If
Next k
sngPk * Tk(N) + pd) * 1.4 / tGama
' расчетный момент выполнения no фонду времени в бригадах в календарных днях
If sngCk > sngPk Then * большой момент выполнения (предварительна или расчеткьА)
CompStage (N) • Round(sngCk, 1) ' момент выполнения в календарных днях
Else
ConpStage Slnt(l) ♦ Dor(l) / 2 Then
’если начало до запрещенной области, а конец после середины этой области
Tk 0 Then 'если вид работы выполняется ведущей бригадой
Ехес • Ехес ♦ р(1) * Vld(l, J) / 100
'накопление трудоемкости бригады по всем видам выполняемых ею работ
End If
Next J
BrigStage(N) • k
'номер ведущей бригады а узле первого уровня
KachStage(N, k) “ Exec 'запоминание трудоемкости ведущей бригады а узле в мчас

Next к
aJ(i) “ 1
End If
Next 1

'возврат метки выполняемой работы

Рис. 11.14 Определение параметров возможных ведущих бригад для новой

работы

ной длительности в узле sngCz, а также наибольшее значение количества недель в цепочке
т.
Для каждой недели выполнения в цепочке рассчитывается загрузка по каждой бригаде в ви­
де соответствующего двумерного массива HBrig (рис. 11.18). Расчет параметров узлов уровня
intY как для начатых работ, так и для новых работ, а также отбор недоминируемых значений,
проводится примерно так, как на первом уровне. Перенос недоминируемых параметров в дерево
несколько усложняется (рис. 11.19).
По окончании расчета программа выводит полученные результаты на лист и формы MS
Excel (рис. 11.5 - 11.9). Для этих целей используется двумерный массив PBrig понедельной
полной загрузки бригад в процентах, двумерный массив SBrig еженедельных списков работ,
двумерный массив HBrig недельной загрузки бригад по видам работ в нормочасах. Данные в
массивах восстанавливаются при помощи цепочки дерева работ.

© 2018, Мауэргауз Ю.Е.

287

Расписания для бригад

For J • 1 То NVid * определение дополнительных бригад и их загрузки в узлах первого уровня
If Vld(i, J) > 0 And Cap( 0 Then
Ехес * Nip (у) / Ехес 'длительность выполнения
'уже запланированных работ для дополнительной бригады в рабочих днях
End If
Elee
For 2 - al To a2
angPk • angPk ♦ Cap 0 Then
angPk * Nip (у) / angPk 'длительность выполнения уже запланированных
'работ следующей дополнительной бригадой
End If
End If
If angPk > 0 And angPk < Exec Then 'поиск бригады с камиеиьаей длительностью
'раннее задданмрованных раюот
Ехес * angPk
х •■ у
'запоминание номера дополнительной бригады
End If
End If
End If
Next у
NachStage(N, x) - MachStagefN, x> ♦ p(l) * Vld(l, J) / 100
'задоминакие трудоемкости каждой дополимтельной бригады в узла
End If
Next J

Рис. 11.15

Подбор дополнительных бригад

AntU ■ К
'начальное возможное количество узлов разветвления на первом уровне*
intN • IntU 'намбольнее возможное количество разветвляемое узлов на первом уровне
For J ■ intU То 1 Seep -1
'нахождение недодеммруемых узлов первого уровня'
For 1 - 1 То 1псО
If 1 J And MetCnrStage(i) - 0 Then
If V3tage(J) • ga (NPStage (1)) Then
'отсечение узлов с меньжей полезностью и больжмм требуема* моментом начала
IntN * IntN - 1
'количество разветвляемое узлов первого уровня *
NecCnrStage (J) • 1
'метка доминирования над текущей работой*
1 • ШвО
'выход из цикла'
End If
End If
Next 1
Next J
Рис. 11.16

288

Отбор недоминируемых узлов на первом уровне

(с) 2018, Мауэргауз Ю.Е.

Расписания для бригад

For i • 1 То IntH
V(i) • VStage(TreeStage(i>)
•включение недомикируемых узлов первого уровня в полные массивы недсминируемых узлов*
Par(i) - ParStage(TreeStage(1)) *родительские узлы
Соор(1) ■» COBpStage(TreeStage(1)) 'моменты окончания работ
NP(1) • NPStage(TreeStage(1)) *номера работ в узлам
Brlg(i) • BrigStage(TreeStage(1)) 'ведущие виды работ
FCoop(i) * Сояр(1) 'фиктивная длительность
For J e 1 То NMach 'по всем бригадам
Mach(i, J) • MachStage(TreeStage(i), J)
PBrlg(i, J) - Maeh(i, J)

’запоминание массива загрузки в разветвляемся узлах первого уровня*
Next J
TreeStage(1) • 1
'номера узлов полных массивов, соответствующих недоминируемас узлам первого уровня*
Next 1

Рис. 11.17

Перенос параметров недоминируемых узлов первого уровня в

дерево
я * 1 * Таг(Ехес / 7) 'количество недель в цепочке
ReDim HBrlg (NMach, в) ' массив понедельной загрузки бригад до видам работ
К • TreeStage(Inez>
'номер последнего узла '
DO Until k - О
aJ(NP(k)) “ 0
'метка ранее запланированной работы в узлах до кормя цепочки'
m2 • 1 ♦ Int(CoBp(k) / 7) 'последняя неделя выполнения работы
ml - 1 ♦ Xnt((Coop(k) - Dux(NP(k)) * 1.4) / 7) * первая неделя выполнения работы
If ml < 1 Then 'предохранитель
ml - 1
End If
For J " 1 To NMach 'no бригадам
If Mach(k, J) > 0 Then 'если работа бригада в узле цепочки запланирована
If Comp(k) > C1(J) Then
'для последнего момента выполнения
C1(J) - Соер (к)
' момент окончания последней работы , выполняемой бригадой в календарных днях
mach(J) • NP(k)
'номер последней работы, выполняемой бригадой
End If
Ns (J) • Ms(J> + Mach(k, J) 'суммарная загрузка бригады в цепочке для текущего узла
For 1 - ml То m2
HBrlg (J, 1) - HBrlg(J, 1) ♦ Mach(k, J) / (m2 - ml + 1)
' загрузка от узлов цепочки по неделям выполнения выполнения в кчас
Next 1
End If
Next J
k • Par(k)
'переход по цепочке*
Loop

Рис. 11.18

Восстановление параметров цепочки в узле

(с) 2018, Мауэргауз Ю.Е.

289

Расписания для бригад

Shatter (IntY) ■ IntNodes 'ззломхиамие номера последнего узла предалужего уровня в полных массивах

intN • N
'количество медомикируемых узлов на уровне*
intNodes " intNodes + V
'полное количество узлов во всем дереве'
'переназначение массивов*
Reda Preserve V (intNodes)
Reda Preserve Per (intNodes)
Reda Preserve Ссыр (intNodes)
Reda Preserve HP (intNodes)
ReOla Preserve Brig (intNodes)
Reda Steeb(intNodes, Steeb)
Reda FCoop(intN) 'массив фиктивных длительностей ветвей оконченного этапа*
For 1 * 1 То Shatter (intY) *по узлам предыаужего уровня
For J ■ 1 То SBtecb 'по бригадам
NacbU, J) • PBrig(i, J) 'восстановление ранее определенной загрузки в узлах
Next J
Next 1
'вклочекие иедоминмруемос узлов уровня в паяние массивы недонинируемих узлов*
For i • 1 То intN
V (Shatter (intY) ♦ i) • VStege(TreeStage(i)> 'полезность работ
Par(Nutter(intY) + i) - ParStage(TreeStage(1)) 'родительские узлы
Соф (Shatter (intY) ♦ 1) • СйфЗгаде (TreeStage (i)) 'моменты окончания работ
NP (Shatter (intY) ♦ i) • NPStage (TreeStage (i)) 'номера работ в узлах
Brig (Shatter (intY) + i) • BrigStage(TreeStage(i)) 'велужие виды работ
FCoap(i) ■ Ceap(i) 'фиктивная длительность
For J • 1 To SBtecb 'no веем бригадам
Steeb (Nuaber (intY) + 1, J) ■ SteebStage(TreeStage(i), J)
'дополнительная запись загрузки в новых узлах
Next J
TreeStage(1) * Shatter (intY) ♦ 1 'массив номеров узлов полных массивов для рассчитанного уровня
Next 1
Reda PBrig (intNodes, IBCaeb) «очистка массива
For i - 1 To Nutter (intY) ♦ IntN ' по всем построениям узлам дерева
For J • 1 То Nltech
'no всем бригадам
PBrig(i, J) • Mach(i, J) 'запоминание загрузки бригад в узлах
Next J
Next X

Рис. 11.19

Запись параметров недоминируемых узлов в основные массивы

дерева

11.6

Коррекция расписания

Из рис. 11.8 следует, что загрузка бригады 2 по виду работ 3 превышает 100%. Рассматривая
перечень работ бригады 2 на первой неделе, можно предположить, что эта нагрузка будет
существенно уменьшена, если выполнение последней работы 7 будет перенесено на следующую
неделю.
В программе предусмотрена возможность моделирования таких переносов с помощью фор­
мы корректировки, показанной на рис. 11.20, и позволяющей корректировать выполнения пяти
работ. Для корректировки данные листа 1 копируются на лист 2, после чего программа запус­
кает с режимом «Корректировка».
В данном случае, для работы 7 в начале планирования полагалось, что она должнабыть
закончена на 9-ой календарный день, а продолжительность ее выполнения составляет 10 дней
(рис. 11.1). Как видно из рис. 11.20, при корректировке был установлен момент завершения
работ на день 18, а продолжительность выполнения не изменялась.

290

© 2018, Мауэргауз Ю.Е.

Расписания для бригад

Номер работы

Момент завершения

Плановаяпродолжительность

Номер работы

Момент завершения

Плановаяпродолжительность

Номер работы

Момент завершения

Плановаяпродолжительность

Номер работы

Момент завершения

Плановаяпродолжительность

Номер работы

Момент завершения

Плановаяпродолжительность

Ввод данных в Excri

Текущие параметры

Запуск программы

Выход из программы

Форма коррекции планового задания

Рис. 11.20

После запуска продолжения программы диаграмма загрузки бригад несколько изменяется
(рис. 11.21). Т.к. часть работы 7 переносится на следующую неделю, загрузка бригады 2 по
виду работ 3 становится менее 100% (черный цвет).

&)

хи

м

«

»л

1шмшмш

м

»

мм*

м

км

кк«

1

>•

я

аод

мл»

* I* к к к к Е к к к к к L к к I
и«

♦ые

од

я

I И И !■ к
LXV

L&M1

>Д1ДМ4 МОД

ОД,М.1Х1ОДЛ

ПТПШТЫП

АПЛЫЗаЛМГЛОД

ОД

ЦДЦ

МЛЯОДЦАОДМЛ

Я

ПИ^ПЛПЛПлггПГПг|гтгЯПП»Г1Япгг1П'ТП>ТГГТ1Т|^^
М ММ Я ОД М
____ _ГЗППП1,


9



П

12

13

14

15

К

КОДАМ

Рис. 11.21

Диаграмма загрузки после коррекции

© 2018, Мауэргауз Ю.Е.

291

Заключение

Главной целью монографии является последовательное изложение метода функций полезно­
сти заказов для построения рациональных цеховых расписаний. Для этого в главе 3 был разра­
ботан соответствующий математический аппарат, который в дальнейшем был использован для
решения целого ряда плановых задач. Эти задачи охватывают как позаказное планирование,
так и планирование «на склад»; часть задач характерна для дискретного производства, другая
часть - для процессного производства. Таким образом, предлагаемый расчетный метод может
быть использован в самых различных производственных отраслях.
Несмотря на широкие возможности описываемого метода, результаты его применения су­
щественно зависят от адекватности расчетной схемы задачи планирования и реальных условий
функционирования цеха. Как отмечалось в предисловии, на каждом предприятии есть свои от­
личия, влияющие на составление расписаний. Качественное расписание может быть составлено
только с учетом специфичности конкретного производственного подразделения, а возможно и
совокупности нескольких подразделений. Поэтому практическое использование любой из опи­
санных в книге программ, как правило, требует их определенную доработку.
При изложении программ автор последовательно придерживается стандартной классифи­
кации оптимизационных моделей планирования (1.1). На первом месте этой классификации
находится тип производства (техническая структура производственного подразделения), при­
чем обычно рассматриваются 5 возможных типов: одиночная машина, параллельные машины,
поточное производство, универсальное производство и производство с не установленным поряд­
ком технологического процесса. Для каждого типа производства в книге рассмотрено несколько
различных задач.
В рамках каждого типа производства каждая конкретная задача планирования описывает­
ся второй составляющей классификации: возможные ограничения по датам начала и оконча­
ния работ, возможность прерываний работ, последовательность операций, обработка партиями,
требования по различным ресурсам, экологические и другие ограничения. Описанные выше
программы планирования, разумеется, не могут охватить даже небольшой доли таких возмож­
ных задач, поэтому здесь сделана попытка проиллюстрировать возможности метода только на
некоторых, как кажется автору, наиболее типичных задачах.
Как указывалось в главе 2, совокупность событий, происходящих в производственном под­
разделении за некоторый плановый период, обусловливает динамичность цехового планиро­
вания, причем большая часть этих событий имеют значительную случайную составляющую.
Несмотря на это, в книге не рассматривается работа со случайными величинами. Автор исхо­
дит из представления о том, что после того, как случайное событие произошло, его учет вполне
возможен при помощи детерминированных методов, приводящим к необходимым плановым из­
менениям. Поэтому каждая описанная программа включает механизм перепланирования.
Производство может эффективно функционировать только в том случае, если небольшие,
но часто случающиеся, случайные изменения не вызывают резких изменений в существующих
293

Заключение

планах, т.е. при устойчивом планировании. Предлагаемый метод функций полезности заказов
является в этом отношении достаточно устойчивым, причем он вполне адекватно реагирует на
случающиеся изменения, включая необходимость выполнения срочных работ.
Пересчет расписания, как упоминалось выше, в ряде случаев является довольно трудоем­
кой операцией. Причина состоит в том, что при проведении нового планирования необходимо
учесть данные о состоянии работ и машин в момент ввода в действие нового плана. Вообще
говоря, такие данные могут быть получены двумя способами: либо путем расчета предыдущего
плана на момент составления нового расписания, либо по фактическому состоянию с рабо­
чих мест. При практическом планировании целесообразно иметь специальную программу для
расчета существующего плана на любой текущий момент, причем такую программу, очевидно,
следует составлять при окончательной доработке плановой задачи. В то же время, при состав­
лении расписания необходимо использовать все доступные фактические данные по оперативной
цеховой обстановке.
Во всех рассмотренных задачах генерируемые расписания полностью учитывают календар­
ный график работы цеха, включая режим работы каждой смены. Если работа может прерывать­
ся (например, в дискретном производстве), программа полностью использует имеющийся резерв
суточного рабочего времени. Если график предусматривает нерабочие дни, или рабочий день
меньше 24 часов, то в некоторых случаях (например, в процессном производстве) программа
предварительно проверяет возможность окончания работы до наступления нерабочего времени.
Если резерва времени недостаточно, работа автоматически переносится на следующий рабочий
день.
Различные изменения в производственной ситуации приводят к меньшим экономическим
потерям в случае применения гибкого производства. В книге, в основном, рассматривается
производственная гибкость при выпуске различных модификаций продукции и чередовании
выпуска различной продукции. Гибкость такого типа является следствием применения груп­
пового планирования, при котором группы образуются в соответствии с типом выполняемой
работы. Как указывалось выше, применение технологического группирования работ обеспечи­
вает небольшую трудоемкость перехода от одной работы к другой внутри группы.
Внутри группы последовательность работ не обязательно совпадает с порядком их номеров,
поскольку работы в одной группе могут иметь различную трудоемкость. Если резерв времени
выполнения всех работ в одной группе положительный, то система иногда рекомендует выпол­
нять сначала работы с меньшей трудоемкостью с тем, чтобы понизить суммарную длительность
производственного цикла. Наоборот, если часть работ в группе просрочена, система может ре­
комендовать вначале выполнить работу с большей трудоемкостью, чтобы понизить возможные
штрафные функции за просрочку.
Группа работ может стать одной партией изготовления, если выполнение всех этих работ
осуществляется одновременно на одной машине (печи, ванне). В этом случае все работы, вклю­
ченные в группу, подвергаются обработке с одинаковыми режимами, и, соответственно, могут
рассматриваться как работы одного вида. Группирование возможно не только при позаказном
планировании, также при планировании «на склад», что характерно для процессного произ­
водства, изготовления метизов, крепежа, инструментов и т.д. Почти все описанные выше про­
граммы автоматически осуществляют групповое планирование, при этом обычно автоматически
создается расписание, в котором коэффициенты группирования для наиболее загруженных ма­
шин заметно выше, чем для остальных машин
В большинстве программ предусмотрена возможность моделирования расписания с целью
выявление изменений процесса составления расписания и его результатов в зависимости от ва­
рьируемых параметров. Ограничители ветвления весьма существенно уменьшают количество
не доминируемых ветвей построения дерева решений за счет отбрасывания «длинных» ветвей
294

© 2018, Мауэргауз Ю.Е.

Заключение

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

© 2018, Мауэргауз Ю.Е.

295

Список литературы

1. Афоничкин А.И., Михайленко Д.Г. Управленческие решения в экономических систе­
мах. - СПб: Питер, 2009

2. Грачева К.А., Захарова М.К., Одинцова Л.А и др.; под редакцией Скворцова Ю.В., Некра­
сова Л.А. Организация и планирование машиностроительного производства. - М.: Выс­
шая школа, 2005
3. Грубый С. В., Зайцев А. М. Оптимизация режимных параметров фрезерования карманов
в корпусных деталях из алюминиевых сплавов // Наука и Образование. МГТУ им. Н.Э.
Баумана. Электронный журнал. 2015, № 07, с. 44-65
4. Канеман Д., Тверски А. Экономическая психология, рациональный выбор, ценности и
фреймы // Психологический журнал, 2003, № 24, 4, с. 31-42

5. Мауэргауз Ю.Е. Информационные системы промышленного менеджмента. - М.: Филинъ,
1999
6. Мауэргауз Ю.Е. «Продвинутое» планирование и расписания - М.: Экономика, 2012
7. Родов А. С., Крутянский Д.И. План, поток, ритм. - Ростов-на-Дону, Ростовское книжное
издательство, 1964

8. Фролов Е. Б. Управление станочными системами: современные концепции управления в
производственной логистике. Часть 3 // Станочный парк, 2010, № 6 (72), с. 41-43
9. Allahverdi, A., Ng, С.Т., Cheng, Т.С.Е. and Kovalyov, M.Y. A survey of scheduling problems
with setup times or costs // European Journal of Operational Research, 2008, Vol. 187,
985-1032 pp.

10. Blackburn, J. and Millen, R. Perspectives on Flexibility in Manufacturing: Hardware versus
Software. In: Modeling and Design of Flexible Manufacturing Systems, Vol. 2, 116-117 pp.,
Amsterdam, Elsevier Science Publishers, 1986
11. Canon, L.-C. and Jeannot, E. МО-Greedy: an extended beam-search approach for solving
a multi-criteria scheduling problem on heterogeneous machines, In: The IEEE International
Symposium on Parallel and Distributed Processing Workshops and PhD Forum, Anchorage,
Alaska, USA, 2011
12. Carlier J. The one machine sequencing problem // European Journal of Operational Research,
1982, Vol. 11, 42-47 pp.

297

Литература

13. Graham, R. L., Lawler, E. L., Lenstra, J. K. and Rinnoy Kan, A. H. Optimization and
approximation in deterministic machine scheduling // Annals of Discrete Mathematics, 1979,
Vol. 5, 287-326 pp.

14. Nyhuis, P., Wiendal, H.P. Fundamentals of Production Logistics. Berlin: Springer, 2009
15. Pinedo, M.L. Scheduling - Theory, Algorithms, and Systems. Prentice Hall, Englewood Cliffs,
1995

16. Shnits B., Rubinovitz J. and Sinreich D. Multicriteria Dynamic Scheduling Methodology for
Controlling a Flexible Manufacturing System // International Journal of Production Research,
2004, Vol. 42, No. 17, 3457-3472 pp.
17. Stadtler, H., Kilger, C. Supply Chain Management and Advanced Planning. Concepts, Models,
Software, and Case Studies- Berlin: Springer, 4th ed., 2008

18. Sule D. R. Production Planning and Industrial Scheduling. London: Taylor and Francis Group,
2007

298

Приложения

Приложение 1

Список условных обозначений

Стах
с
со
сн
ср
D
d
dd
Е
F
Fmax
G
Н
h
р
Q
г
s
Ттах
Т
U
V
V
W
w
Z
Zc
а

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

301

Приложение 2

Планирование производства в
информационной системе «1С: Предприятие 8.
MES Оперативное управление
производством »

Общие положения
Программный продукт «1С:Предприятие 8. MES Оперативное управление производством»
(далее - 1C:MES) предназначен для решения оперативных производственных задач, повышения
эффективности управления и контроля процесса производства. Продукт относится к классу
MES (Manufacturing Execution System) - систем управления производством уровня цеха и
предназначен для решения задач синхронизации, координации, анализа и оптимизации выпуска
продукции в рамках какого-либо производства.
1C:MES разработан на новейшей версии технологической платформы "1С:Предприятие
8.3 которая использует облачные технологии, позволяющие:

- обеспечить высокую надежность, производительность и масштабируемость системы, так
как все основные вычисления реализуются в кластере серверов 1С Предприятия, а не на
клиентских устройствах;
- организовать работу с системой через Интернет, в режиме тонкого клиента или веб­
клиента (через обычный интернет-браузер), в том числе в "облачном"режиме;
- создавать мобильные рабочие места с использованием планшетов и смартфонов под управ­
лением iOS, Android, Windows;
- использовать механизм разделения данных, благодаря которому прикладные решения мо­
гут работать в архитектуре multitenancy, когда единый экземпляр объекта приложения,
запущенного на сервере, обслуживает множество клиентов или организаций;
- настраивать интерфейс для конкретного пользователя или группы пользователей с учетом
роли пользователя, его прав доступа и индивидуальных настроек.

Для ознакомления с демо-версией 1C:MES можно воспользоваться демо сервисом 1С, оста­
вив заявку на доступ к базе на сайте: demo.solutions. lc.ru/portal/index.php?kod=MES.
Материал предоставлен компанией ООО «КТ-Сегмент» (Холдинг ЛЕНПОЛИГРАФМАШ), www.kt-segment.ru, тел.
(812) 670-89-67)

303

Пример планирования производства

Описание возможностей программного продукта
1C:MES позволяет реализовать следующие типовые обобщенные функции MES-систем:

1. Контроль состояния и распределение ресурсов (RAS) - Управление ресурсами производ­
ства: технологическим оборудованием, материалами, персоналом, документацией, инстру­
ментами, методиками работ.
2. Диспетчеризация производства (DPU) - Управление потоком изготавливаемых деталей
по операциям, заказам, партиям, сериям, посредством рабочих нарядов.
3. Сбор и хранение данных (DCA) - Взаимодействие информационных подсистем в целях
получения, накопления и передачи технологических и управляющих данных, циркулиру­
ющих в производственной среде предприятия.

4. Управление качеством продукции (QM) - Анализ данных измерений качества продукции
в режиме реального времени на основе информации поступающей с производственного
уровня, обеспечение должного контроля качества, выявление критических точек и про­
блем, требующих особого внимания.
5. Управление производственными процессами (РМ) - Мониторинг производственных про­
цессов, автоматическая корректировка либо диалоговая поддержка решений оператора.

6. Отслеживание истории продукта (PTG) - Визуализация информации о месте и време­
ни выполнения работ по каждому изделию. Информация может включать отчеты: об
исполнителях, технологических маршрутах, комплектующих, материалах, партионных и
серийных номерах, текущих условиях производства и т.п.

7. Анализ производительности (РА) - Предоставление подробных отчетов о реальных ре­
зультатах производственных операций. Сравнение плановых и фактических показателей.
Система «1C:MES Оперативное управление производством» предназначена для решения за­
дач оперативного планирования, диспетчеризации производственных процессов и проведения
контроля качества.
Улучшение технико-экономических показателей производства при внедрении системы до­
стигается за счет сокращения времени выполнения заказов путем рациональной загрузки обо­
рудования, снижения объемов непроизводительного труда, уменьшения простоев и времени
хранения полуфабрикатов.
Для решения задачи построения оптимального плана и расписания производства в 1C:MES
применяется математический аппарат теории расписаний, в частности эвристический алгоритм,
сочетающий жадные стратегии и стратегии ограниченного перебора, элементы теории графов.
Алгоритм производственного планирования позволяет размещать технологические операции
на оси времени рабочих центров без дискретных интервалов, с учетом следующих ограничений:
- Условия предшествования технологических операций;
- Доступность основных рабочих центров и оснастки.

Описание работы с программой
Перед работой в Системе 1C:MES необходимо убедиться, что заполнена вся необходимая
нормативно-справочная информация:
304

© 2018, ООО «КТ-Сегмент»

Пример планирования производства

- Номенклатура (справочник предназначен для описания готовой продукции, материалов,
комплектующих, полуфабрикатов, используемых на предприятии);
- Спецификации (справочник содержит информацию о нормах потребления материалов,
комплектующих для производства выходного изделия и плановых нормах отходов, полу­
чаемых в процессе обработки деталей);
- Технологические карты (вид нормативной информации, определяющий параметры выпол­
нения обособленной группы технологических операций, в рамках указанной специфика­
ции);
- Справочники структуры предприятия (Организации, Подразделения, Физические лица);
- Рабочие центры, с привязанными графиками работ;
- Справочники учета и нормирования (тарифные разряды, номера тарифной сетки).

Нормативно-справочная информация может быть внесена непосредственно в 1C:MES, или
быть выгружена из систем конструкторско-технологической подготовки (например, 1C:PDM).
Для оформления в системе потребности к производству продукции/выполнению работ и
управления исполнением этой потребности предназначен документ «Заказ на производство».
При заполнении заказа указываются директивные сроки исполнения заказа и предпочита­
емое направление планирования - прямое (как можно быстрее) или обратное (точно к сроку).
При добавлении новой позиции в заказ программа автоматически подбирает спецификацию
изделия, установленную в качестве основной.
Перед запуском в производство осуществляется формирование электронной структуры за­
каза. Имеется возможность внесения ручных корректировок для потребностей, спецификаций
и технологических карт.
Разузлованная структура включает в себя только номенклатурные позиции с видом воспро­
изводства Производство.
Для обеспечения непрерывности цикла производственного процесса в производстве могут
использоваться производственные заделы (ранее произведенные полуфабрикаты). В Структу­
ре заказа есть возможность подобрать производственные заделы под заказ автоматически и
вручную. Заделы подбираются исходя из следующих правил:
- В качестве заделов подбираются только свободные полуфабрикаты (не зарезервированные
под маршрутные карты), находящиеся в цеховой кладовой.
- Заделы подбираются исходя из приоритетов заказов (самый приоритетный обеспечивается
первым).
У номенклатуры, для которой подобрался задел, в строке установится флаг.

; ♦•

Заказ на производство 00000000008 от 03.07.2018 8:57:23

2J

Основное

Связанны* документы

^^j^^ligi^^
Номер 00000000008

Записать

Маршрутные карты производства

Провести

от 4 03 07 2018 8 57 23

Структура заказа

У Движения документа

а. Статус : К производству :

Основное : Продукция ' Описание
Организация.

; ООО 'Основная оргаииэафя"

Подразделение ООО "Механика"

1.9

В Выпустить
'
‘ Точно к сроку
Желаемая дата выпуска 28 09 2018 00 00 В
Использовать производственные заделы Г'
Начать не раньше

Рис. 1

03 0 7 2018 00 00

cP j

. Как можно быстрее

Документ «Заказ на производство»

© 2018, ООО «КТ-Сегмент»

305

Пример планирования производства

□□3J
Основное

Заказ на производство 00000000008 от 03.07.2018 8:57:23

у;

Сммнммдоедмигы

ВВНВ [
Номер 00000000008

Основное

Продукция

I Добавить

Н

Ив

Записмь j

; Прочем ]

от [010Г2018Т5Г23

[-M»jiwpynjMe^^

। Сфуиурвмом j

: В Дигам ш документа ;

। Еще -;

is] СтатусJК проюмдетеу j-j

Описан»
i ^ •; :

□□
Номенклатура

Ед. кэм

32 01&to«WM

шт

Рис. 2

Добавление новой позиции в заказ

Рис. 3

Электронная структура заказа

Количество

Спецификация

50 000

Э2 01 Блок ЩМ

В структуре заказа указывается количество подобранного задела (уменьшается количество
потребности в номенклатуре).

После построения электронной структуры заказа формируются маршрутные карты произ­
водства. Маршрутная карта составляется на деталь/сборку/изделие и содержит в себе описание
технологического процесса изготовления по всем операциям в технологической последователь­
ности с указанием соответствующих данных по оборудованию, материальным и другим норма­
тивам.
В системе «1C:MES> реализовано два уровня управления планированием - расчет гра­
фика производства в разрезе маршрутных карт для всего производства в целом (для оценки
исполнимости заказов к указанным директивным срокам, работа с приоритетами заказов) и
внутрицеховое производственное планирование с учетом моделей планирования.

306

© 2018, ООО «КТ-Сегмент»

Пример планирования производства

Структуре мема №00000000000 от 03.07.2018 •

•.tl^J

ЙД
Ями

О*И»«|й

Тюяолопыняа» «сарта

ЗМИЯмкШМ
зэ.огокмкодх
^^^Q^u^

Ихотммям 32.02 0» 34 Корокс

ПшоаОмосте

Ш*

: & Заи>Ж 5 «03 022010. ди» iw»6»oci« 2* 00
НИ»

~ згозомкорем»
« & эг «г ж» г ком»»»»


^

^w
50.000

и*
шт

ГОМ

100 090
100.000

• 32 03 042 Кантам
32 02 004 Стейк»

ISO 000
50.000
150.000

- 32 02 003 Сков.
* 32 02 002 Проглада

я & 32 05 001 1 Дмоси»
$1 згммисмямтек
о 32 04 001 им»
— 31.02002 ГЫЬ»
- 32 02 006 Кришн!
- 32 02 001 UM0.

шг

им
50.000

шг

100 000
100.000

Рис. 4

150.000
50000
150.000
50000
50.000
100000
100.000
50000
50.000

50 000
50.000

■.......................................
,~чч— ..............
«чч^-- ч^ччч^^ч.-----

Икрямч 32 Я № ОМиуч
Иагатеапатеж 32.0.1 004 Коробк»

32.03 004 Коровка
3? W 005 г Ком»«ет

Иапхратмиа 32 И 005 2 Кончи

32.03 000 Кмсж
32 02 004 Стейк*

Итпшнинм 32.03.002 Контакт
Ихотсалаим 32 02.004 Стейк»

32 02 003 ОН*
32 02 002 Прокладк»

Иагагоатшиа 32.0200) Став»
Ихатоаааки» 32 02 002 Прокладка

ОДНОМч1 АМИНЬ
32 М 001 1 С*М*ммк

Иаготраткиа 32 03 001 1 Декс*»
Ихатеаааиа» 32 04.0011 Сздршяк

32 05 001 Шайб*
31 02 002 Гайк*
32 02 005 Крышк»
.32.02 001 Шайба

Мготаамма 32 05.001 Шайб»
Ихатоапаон 31 02.002 Гай»
Ихотоамтаа 32 02 005 Крым»
Ижотоапаяиа 32.02 001 Шайба

44-- ------------- -------- -

444^4 ^ЧЧЧЧ4.^4,„Л

Логограмм» 32 01 вмк ЗДМ4



Флаг номенклатуры с подобранным заделом

Маршрутная карта 00000000000000000166 от 03.07.2018 9:31:33

^^♦j ; .
Ооюмм

50000
МООС
«ООО
4.1,0»
100.000
100.090

59 ОСО

я* 32016м. WJ
■г ^ 32 02 005 34 Картуз

Свям^е документы

: 4- i

Добамп»

Зак»

i Еще ■

№ операции

№ следующей операции

Операция

Рабочий центр

Подразделение

Нормы времени
Подготовительное

Ед

Штучное

Заказ на произво

1

2

Слесарная

Основное пропит

Рабочее место ел

мин

10,00

Заказ иа произво

2

3

Штамповка

Основное произв

Пресс автомат

мин

15,00

Заказ на произво

3

4

Слесарная

Основное произв

Рабочее место сп.

мин

10,00

Заказ на произво

4

мин

10,00

: м

Слесарная

Рабочее место сп.

Основное произв.

а амммамммвммммет^

Выходные изделия . Исходные комплектующие

; ДобавитьJ
N

г»

»

Ресурсы операций



Еще ’

Количество

Номенклатура

1

Возвратные отходы ; Производственные заделы

32.03 002 Контакт

Рис. 5

Ед
100.000

шт

Маршрутная карта производства

Расчет графика производства
График производства позволяет оценить исполнимость полученных заказов на производство
к дате потребности, обновить построенный график, при внесении изменений и отклонениях в
производственных планах.
График производства отражает совокупность маршрутных карт производства, расставлен­
ных по времени планируемого исполнения. Расчет графика выполняется по интервалам плани­
рования с уменьшением доступности загружаемых рабочих центров. По результатам расчета
(с) 2018, ООО «КТ-Сегмент»

307

Пример планирования производства

j