Научная статья на тему 'Составление производственного расписания с использованием алгоритма направленного случайного поиска'

Составление производственного расписания с использованием алгоритма направленного случайного поиска Текст научной статьи по специальности «Математика»

CC BY
741
132
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КОМБИНАТОРНАЯ ОПТИМИЗАЦИЯ / ТЕОРИЯ РАСПИСАНИЙ / ЭВРИСТИЧЕСКИЕ АЛГОРИТМЫ / АЛЬТЕРНАТИВНЫЕ ТЕХНОЛОГИЧЕСКИЕ ПРОЦЕССЫ / COMBINATORY OPTIMIZATION / THEORY OF SCHEDULES / HEURISTIC ALGORITHMS / ALTERNATIVE TECHNOLOGICAL PROCESSES

Аннотация научной статьи по математике, автор научной работы — Куцелап Кирилл Александрович, Вороненко Владимир Павлович, Шалдов Александр Эдуардович

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Куцелап Кирилл Александрович, Вороненко Владимир Павлович, Шалдов Александр Эдуардович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

THE SOLUTION OF THE PROBLEM OF DRAWING UP THE PRODUCTION SCHEDULE ALGORITHM OF THE DIRECTED CASUAL SEARCH

The algorithm for the approximate solution of a problem of drawing up the production schedule is offered. The algorithm allows to consider as possibility of performance of technological operations on various equipment, and possibility of change of sequence of performance of operations, and is thus algorithm of the directed casual search combined with method of branches and borders.

Текст научной работы на тему «Составление производственного расписания с использованием алгоритма направленного случайного поиска»

УДК 658.512.6

СОСТАВЛЕНИЕ ПРОИЗВОДСТВЕННОГО РАСПИСАНИЯ С ИСПОЛЬЗОВАНИЕМ АЛГОРИТМА НАПРАВЛЕННОГО

СЛУЧАЙНОГО ПОИСКА

К. А. Куцелап, В.П. Вороненко, А.Э. Шалдов

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

Ключевые слова: комбинаторная оптимизация, теория расписаний, эвристические алгоритмы, альтернативные технологические процессы.

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

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

В данной статье предложен алгоритм решения задачи составления расписания работы технологического оборудования. Надо заметить, что качество расписания сильно зависит от гибкости начальных условий. Если для всех изготавливаемых изделий жестко задан технологический процесс, т. е. строго определенная последовательность выполнения переходов в операциях, и указана модель используемого технологического оборудования в операции, на котором её можно выполнить, то и различных вариантов расписаний немного. Однако если отдельные переходы можно выполнить на другом оборудовании, имеющемся на производственном участке, и для некоторых случаев допускается различная последовательность выполнения операций, то и вариантов расписания становится больше, а значит, можно среди этих вариантов найти расписание с лучшим значением целевой функции [2]. Предлагаемый в статье алгоритм позволяет гибко задавать начальные условия.

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

Для решения поставленной задачи примем, что дано конечное множество технологических операций (в теории расписаний они также могут именоваться работами). Также дано множество единиц оборудования (проще говоря, станков). Для каждой 1-й операции известно время её выполнения (продолжительность операции) на каждой ]-й единице оборудования Ту, при этом, если операцию нельзя выполнить на данном оборудовании, то Ту=к>[3]. Составить расписание значит для каждой операции указать время начала и окончания её выполнения, а также оборудование, на котом оно должно выполняться, при этом в любой момент времени каждая единица оборудования может выполнять не более чем на одной операции.

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

Второй тип отношений - отношение неодновременности. Если первая и вторая операции связаны отношением неодновременности, то время начала одной из операций не может быть меньше времени окончания другой, но при этом не важно, какая из операций будет выполнена первой. Это отношение записывается так: {1,2}.

Далее приведем пример записи последовательности выполнения операций в технологическом процессе и расшифруем эту запись: 1—^{2,3}——^{5,6}.

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

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

Предложенный алгоритм в качестве целевой функции использует длину расписания. Длина расписания - это время окончания выполнения последней операции, то есть время, которое потребуется на выполнение всего заданного объема работ. Задача - минимизировать длину расписа-

ния. Отметим, что выбор длины расписания в качестве целевой функции характерен для большинства случаев рациональной организации производства [4].

Из постановки задачи ясно следует, что расписание можно представить в виде таблицы, где каждой операции будет поставлено в соответствие оборудование, на котором она выполняется, и время начала выполнения операции. При этом время окончания выполнения операции может быть вычислено отдельно путем прибавления к времени начала операции её продолжительности.

Более наглядно для человека расписание может быть представлено в виде диаграммы Ганта.

В свою очередь, для компьютера удобно другое представление расписания - в виде его кода. Этот код состоит из двух последовательностей чисел. Длина каждой из них равна числу операций. Первая последовательность определяет, на каком оборудовании должна выполняться каждая операция. Вторая последовательность - это порядок выполнения операций. Из теории расписаний известно, что оптимальное расписание всегда является активным, а любое активное расписание можно представить в виде перестановки операций [5]. Каждому коду соответствует одно расписание. При этом обратное неверно: часто одно и то же расписание можно представить в виде кода по-разному.

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

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

НО, что для любого расписания из этого класса верно утверждение, что длина этого расписания не меньше, чем НО. Вместе с тем, значение НО не должно быть совсем тривиальным. Ясно, например, что для любого класса в качестве НО можно взять ноль, но пользы от такой оценки практически не будет. Выбор алгоритма вычисления НО, по сути, представляет компромисс между точностью нижней оценки и скоростью её вычисления.

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

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

1) если выбор подкласса ведет к недопустимому решению, например, к нарушению отношения предшествования, то вероятность выбора этого подкласса назначается равной нулю;

2) если НО подкласса выше значения рекорда, то вероятность выбора этого подкласса назначается равной нулю;

3) у подкласса с более низким значением НО вероятность его выбора должна быть больше, чем у подкласса с более высоким значением НО.

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

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

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

Рис. 1. Итерация № 1

Рис. 2. Итерация № 2

В целом принцип работы алгоритма отражен на блок-схеме

(рис. 3).

Рис. 3. Блок-схема алгоритма

Результаты работы алгоритма на реальных задачах. Рассмотрим работу алгоритма на конкретном примере, в котором фигурируют 8 станков и 37 операций. Каждая операция и станок имеют свой порядковый номер. Исходные данные по времени выполнения операций и оборудованию, на котором они выполняются, представлены в таблице.

Известия ТулГУ. Технические науки. 2015. Вып. 12. Ч. 1 Исходные данные для расчета

№ операции Оборудование Общее время на партию, тыс. минут

1 1,5 8

2 6,8 304

3 1,5 112

4 2 56

5 7 16

6 1,5 10,5

7 6,8 91

8 1,5 98

9 7 21

10 4 154

11 1,5 18

12 6,8 155,7

13 1,5 126

14 2 72

15 7 36

16 4 117

17 1,5 5,2

18 6,8 214,5

19 1,5 52

20 3 45,5

21 1,5 1,7

22 1,5 68

23 2 136

24 3 212,5

25 7 17

26 1,5 7,5

27 6,8 82,5

28 1,5 97,5

29 3 165

30 4 135

31 1,5 4,75

32 6,8 85,5

33 1,5 142,5

34 1,5 1,8

35 6,8 48

36 1,5 96

37 2 96

Также между операциями есть следующие отношения:

1—(2,3)—(4,5), 6—(7,8)—(9,10), 11—(12,13)—(14,15,16), 21—22—23—(24,25), 26—(27,28)—29—30, 31—^(32,33), 34—(35,36)—37.

Результаты расчета расписания представлены в виде диаграмм Ган-та. Расчет проводился с ограничением числа итераций в 100 000 итераций. Весь расчет занял 6 секунд. Длина расписания составила 610,5 тыс. минут. Это расписание представлено на рис. 4. При этом так как алгоритм является случайным, то и при его повторном запуске можно получить другое расписание. В среднем при применении локального поиска алгоритм находит расписание со значением целевой функции на 2...3 % больше, чем значение глобального оптимума.

Рис. 4. Расписание, составленное с помощью алгоритма

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

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

1. Червяков Л.М., Долгов В.А., Ананьев А.В. Оценка технологической возможности выполнения технологической системой задания выпуска изделия //Экономика и управление в машиностроении. 2010. № 5. С. 24 - 29.

2. Бирбраер Р. А. Создание эффективных машиностроительных производств. М.: Янус-К, 2005, 288 с.

3. Лазарев А. А., Гафаров Е.Р Теория расписаний. Задачи и алгоритмы. М.: Дрофа, 2011. 144 с.

4. Волосова М.А. Исследование влияния комбинированной поверхностной обработки на физико-механические характеристики оксидной и нитридной режущей керамики // Вестник МГТУ «СТАНКИН». 2013. № 2. С. 39 - 43.

5. Кутин А.А., Луцюк С.В. Анализ структуры временных связей машиностроительного производства // Технология машиностроения. 2011. № 3. С. 58 - 62.

Куцелап Кирилл Александрович, асп., kirill. kucelap@,mail. ru, Россия, Москва, Московский государственный технический университет "СТАНКИН",

Вороненко Владимир Павлович, д-р техн. наук, проф., vpvoronenko@yandex.ru, Россия, Москва, Московский государственный технический университет "СТАНКИН",

Шалдов Александр Эдуардович, асп., sh.dragon@mail.ru Россия, Москва, Московский государственный технический университет "СТАНКИН"

THE SOLUTION OF THE PROBLEM OF DRAWING UP THE PRODUCTION SCHEDULE ALGORITHM OF THE DIRECTED CASUAL SEARCH

K.A. Kucelap, V.P. Voronenko, A.J. Shaldov

The algorithm for the approximate solution of a problem of drawing up the production schedule is offered. The algorithm allows to consider as possibility of performance of technological operations on various equipment, and possibility of change of sequence of performance of operations, and is thus algorithm of the directed casual search combined with method of branches and borders.

Key words: combinatory optimization, theory of schedules, heuristic algorithms, alternative technological processes.

Kucelap Kirill Aleksandrovich, postgraduate, kirill. kucelap@mail. ru, Russia, Moscow, Moscow State Technical University "STANKIN",

Voronenko Vladimir Pavlovich, doctor of technical sciences, professor, vpvoronen-ko@yandex.ru, Russia, Moscow, Moscow State Technical University "STANKIN",

22

Shaldov Aleksandr Eduardovich, postgraduate, sh. dragon@mail. ru Russia, Moscow, Moscow State Technical University "STANKIN"

УДК 621.922: 621.921.34

ПРОЕКТИРОВАНИЕ РОТОРНЫХ ДОЗАТОРОВ ДЛЯ ДЕТЕРМИНИРОВАННОГО ФОРМИРОВАНИЯ

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

ОДНОРОДНОСТИ СМЕСЕЙ СЫПУЧИХ МАТЕРИАЛОВ

А.В. Евсеев

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

Ключевые слова: методика, дозатор, смеситель, сыпучий материал.

В работах [1 - 5] теоретически обоснованы и представлены схемы и способы, реализующие детерминированное формирование однородности смеси сыпучих материалов. В данной работе рассмотрены конструкция роторной смесительной машины (рис. 1), способная на практике осуществить этот процесс, и ряд стендов для проведения экспериментов по изучению процессов дозирования и собственно смешения [6, 7].

Конструкция автоматизированного роторного модуля для смешения сыпучих компонентов детерминированным способом относится к известному и широко распространённому классу автоматических роторных машин и линий, хорошо зарекомендовавшему себя в использовании на различного рода производствах во многих отраслях промышленности.

Она состоит из следующих функциональных узлов и деталей. Основной вал ротора 12 закреплён в неподвижном стакане 11 и жёстко соединён с главным несущим диском ротора 10. К диску 10 посредством трущихся пар 4 прикреплены валы 3, на которые с одной стороны жёстко закреплены малые шестерни 2, а с другой - подставки 5 под тары 6. С диском 10 также неподвижно соединён цилиндр 9, на котором находится карусель, состоящая из нескольких отсекателей 8. Над каруселью в зоне организации потоков сыпучих компонентов находятся шнековые питатели 7 (возможно использование роторных питателей). Малые шестерни 4 находятся в зацеплении и вращаются относительно неподвижного большого зубчатого венца 11.

Работает конструкция следующим образом. Получая крутящий момент М от привода смесителя, основной вал ротора 12 вращается вместе с диском 10 в стакане 1, заставляя посредством трущихся пар 4 вращаться

i Надоели баннеры? Вы всегда можете отключить рекламу.