Целевая функция 8 страница

Лекция 19

 

Оперативно – календарное планирование в технологических системах на основе теории расписаний

 

Элементы (основы) теории расписаний

Качество функционирования современного производства во многом определяется решениями, принимаемыми на этапах календарного планирования и оперативного управления. Особенно это актуально в связи с созданием современных автоматизированных производств – гибких производственных систем (ГПС). Системы оперативно – календарного планирования современных производств строятся в том числе и на достижениях так называемой «теории расписаний».

Теория расписаний – это наука, занимающаяся исследованиями детерминированных обслуживающих систем на предмет оптимизации расписаний их функционирования.

Примеры таких систем:

· цех, участок, на станках которых осуществляется обработка деталей;

· ВУЗ, где преподаватели обучают студентов и т.д.

В любом случае имеется конечное множество требований (деталей, преподавателей и т.д.) и конечное множество приборов(станков, групп студентов и т.д.) .

Предполагается, что i – е требование на каждой стадии его обслуживания q (например, на каждой операции технологического процесса) может быть обслужено любым из приборов (но не более, чем одним одновременно). Предполагается также, что каждый прибор одновременно может обслуживать не более одного требования.

В теории расписаний рассматриваются различные системы обслуживания:

· системы поточного типа, в которых каждое требование сначала обслуживается приборами первой группы , затем второй группы и т.д. пока не будет обслужено приборами последней r – ой группы;

· системы с различными порядками (маршрутами) прохождения приборов требованиямии т.д.

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

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

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

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

Расписание – некоторая совокупность указаний относительно того, какие именно требования какими именно приборами обслуживаются в каждый момент времени.

Расписание рассматривается как совокупность кусочно–постоянных непрерывных слева функций, каждая из которых задана на интервале и принимает значения 0, 1, …, n.

Если (здесь i – номер требования), то в момент времени прибор обслуживает требование . Если , то в момент времени прибор L простаивает.

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

Пример.На рис.19.1 приведен график расписания обслуживания требований приборами при различных маршрутах обслуживания требований. Все длительности обслуживания равны «1».1

Рис.19.1. График расписания обслуживания требований N = {1, 2, 3, 4} приборами M = {1, 2, 3}

Здесь , т.е. первое требование обслуживается первым и вторым приборами, – второе требование обслуживается третьим и вторым приборами, – третье требование обслуживается вторым, первым, снова вторым и третьим приборами, - четвертое требование обслуживается вторым, третьим и первым приборами. – момент поступления требования 1 в систему, – моменты поступления требований 2 и 3 в систему, – момент поступления требования 4 в систему. – директивный срок завершения обслуживания требования 1, – директивный срок завершения обслуживания требования 2, – директивный срок завершения обслуживания требования 3, – директивный срок завершения обслуживания требования 4.

Прибор 1 во временном интервале обслуживает требование 1, в интервале - требование 3, в интервале - требование 4. Прибор 2 в интервале без простоев обслуживает требования 3, 2, 4, 1, 3 и т.д. Это расписание допустимо, т.е. каждый прибор одновременно обслуживает не более одного требования и i – е требование обслуживается одновременно не более, чем одним прибором.

Если существует несколько допустимых расписаний, то естественно необходимо выбрать лучшее из них. В теории расписаний качество расписанияво многих случаях оценивают следующим образом. Каждое (допустимое) расписание S однозначно определяет вектор моментов завершения обслуживания требований. Задается некоторая действительная неубывающая по каждой из переменных функция . Качество расписания S оценивается значением этой функции при . Из двух расписаний лучшим считается то, которому соответствует меньшее значение . Расписание, которому соответствует наименьшее значение (среди всех допустимых расписаний), называется оптимальным.

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

При построении расписания с наименьшим суммарным временем обслуживания , при этом .

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

Оптимальное расписание может быть найдено в результате перебора конечного множества возможных вариантов. Основная трудность при этом состоит в том, что число таких вариантов очень велико и растет, по меньшей мере, экспоненциально с ростом размерности задачи. Известны так называемые эвристические алгоритмы формирования расписаний, алгоритмы на основе методов линейного и динамического программирования. Задачи составления расписаний для некоторых сложных систем обслуживания до сих пор не решены (NP – трудные задачи).

 

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

 

Эта методика разработана в лаборатории исследования операций Ленинградского (ныне Санкт-Петербургского) государственного университета под руководством профессора И.В.Романовского.

Исходные данные для решения задачи:

1. Количество рассматриваемых видов деталей M. Виды деталей нумеруются числами .

2. Количество групп однотипного оборудования I. Группы оборудования нумеруются числами .

3. Технологические маршруты (ТМ) обработки деталей. ТМ не содержат внешних операций, т.е. операций, которые выполняются на другом оборудовании.

Для каждого вида деталей m () задаются:

· количество операций в ТМ – , номера операций в ТМ обозначаются через ;

· продолжительность обработки одной детали на операции (при обработке деталей m), ;

· номер группы оборудования – , на котором выполняется операция .

4. План выпуска деталей различных видов – вектор .

5. Стоимость прол¨живания деталей вида в единицу времени.

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

6. Продолжительность суток .

7. Фонд времени групп оборудования i в сутки .

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

Количество деталей в партии обработки p обозначим ; тогда должны иметь место равенства

(19.1)

т.е. сумма размеров всех партий для каждой детали равна плану ее выпуска.

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

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

Постановка задачи в терминах линейного программирования:обозначим , где S – количество суток, I – количество групп оборудования. Рассмотрим Q – мерный вектор F, который определяется следующим образом:

Первые компоненты вектора F есть фонды времени первой группы оборудования в сутки отрезка планирования, вторые – фонды времени второй группы оборудования в те же сутки и т.д., например, – фонд времени второй группы оборудования во вторые сутки.

Если записать вектор F как , то , когда , где [a] – целая часть числа a. Эти равенства позволяют по номеру группы оборудования i и номеру суток s определить номер q компоненты вектора и наоборот – по порядковому номеру q компоненты вектора соответствующие ему номера групп оборудования i и суток s у компоненты вектора .

Пример. S = 30 суток.

1) Нужно определить порядковый номер компоненты вектора для второй группы оборудования на третьи сутки его работы

.

2) Найти i, s, если q = 33.

.

Для каждой партии с номерами рассмотрим вектор , структура которого аналогична структуре вектора F: . Вектор – это элементарное расписание обработки партии p. Его компоненты определяются следующим образом.

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

Элементарные расписания являются расписанием обработки одной детали партии p. Расписание для всей партии p получим, умножив вектор элементарного расписания на число деталей в партии . Каждая компонента вектора расписания равна продолжительности обработки партии p на группе оборудования в сутки .

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

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

(19.2)

Вычислим стоимость Cp пролеживания одной детали партии p при ее обработке по элементарному расписанию . Время пролеживания одной детали партии p в сутки s здесь в этой методике определяется следующим образом. Если детали партии обрабатывались в сутки s, то считается, что , если не обрабатывались, то равно продолжительности суток . Допустим, что полная обработка деталей партии p по расписанию начинается в сутки s1 и заканчивается в сутки s2. Тогда время пролеживания одной детали партии p по расписанию можно определить как сумму времени пролеживания по всем суткам, на протяжении которых деталь находилась в обработке:

Стоимость прлеживания cp одной детали партии p при ее обработке по расписанию

а стоимость пролеживания всех деталей партии p при ее обработке по расписанию будет равна . Таким образом, стоимость пролеживания всех партий равна

(19.3)

В результате приходим к следующей задаче линейного программирования: определить целочисленные неизвестные , минимизирующие стоимость пролеживания всех партий (19.3) при ограничениях (19.1) и (19.2). Количество ограничений равно .

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