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

Стандарты / ЛабработАСУЗадача расписаний

.doc
Скачиваний:
16
Добавлен:
24.07.2017
Размер:
41.98 Кб
Скачать

Лабораторная работа Задача расписаний

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

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

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

Расписанием может быть назван документ, содержащий сведения:

а) о количестве и номенклатуре выполняемых работ, включая их этапы;

б) о моментах начала и окончания каждой работы, определяющих ее продолжительность;

в) о месте и технических средствах производства каждой работы;

г) о затратах времени (материальных ресурсов) на проведение всей совокупности работ.

Наибольший интерес как методологический, так и в прикладном смысле представляет общая задача теории расписаний:

Имеется производственная система, состоящая из М разнотипных Rk-канальных (k=1..M) участков (см. рис.1) и N работ, каждая из которых будет выполнятся в указанной системе и, следовательно, распадается на М этапов; заданы длительности проведения всех этапов каждой работы (матрица времен MxN) и условия ограничения, определяющая специфику отношений между операциями в рамках рассматриваемого технологического процесса (приоритетность, необходимость ожидания и т.п.) Требуется составить план проведения работ, минимизирующий полное время Тс занятости системы (от момента начала первой до момента завершения последней работы)

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

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

  1. Задание

Имеется производственная система, состоящая из m разнотипных R[k]-канальных (k=1..m) участков и n работ, каждая из которых будет выполнятся в указанной системе. Заданы объемы всех работ (объемы заказов) p[i] (i=1..n) и производительность каждого канала (станка) системы d[k j] (k=1..m,j=1..R[k]).

Требуется составить план проведения работ, минимизирующий полное время Т занятости системы (от момента начала первой до момента завершения последней работы).

Участок 1 Участок 2 . . . . . . Участок M

Канал 1 Канал 1 Канал 1 Канал 1

Канал 2 Канал 2 Канал 2 Канал 2

Канал 3 Канал 3 Канал 3 Канал 3

. . . . . . . . . . . .

Канал R1 Канал R2 Канал Rk Канал Rm

Рис.1

  1. Формализация

Пусть каждый i-й заказ, распределенный по станкам (каналам) участков производства, будет выполнен за время ti. Очевидно, что время выполнения всех заказов T равно максимальному ti, , т.е. система будет занята, пока хотя бы один заказ не выполнен. Тогда целевая функция будет иметь вид: z = min T = min [ max ti ]

x x i

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

n (i = 1..n) - количество заказов поступивших в производство;

r (k = 1..r) - количество производственных участков;

mr (j=1.. mr) - количество станков r-ом участке производства;

p[i] [дет] - объем i-го заказа (количество деталей);

d[k j] [время/дет] - производительность j-го станка на k-ом участке (время затрачиваемое станком на производство одной детали);

x[k j] [дет] - оптимизационная переменная - количество деталей

выделяемое на j-й станок r-го участка;

t(x) [время] - целевая функция, общее время затрачиваемое на выполнение заказов.

Введем «условие равного времени работы станков»:

t[j] = d[j] x[j] tдоп

где допустимое время работы станка tдоп можно определить, как время выполнение общего объема заказов p[i] станком с производительностью равной суммарной производительности всего участка производства: p[i] tдоп = + t

1/d[ j]

В качестве t можно взять наилучшую производительность (min d[j]), то есть минимальное время требуемое для производства одной детали на данном участке. Тогда можно минимизировать не максимальное время работы станка, а сумму tj.

Следующее необходимое условие – это выполнение всех заказов:

r n

x[j] p[i]

j i

Время работы канала определяется объемом работы (количеством деталей) и производительностью канала:

t[j] = d[j] x[j].

Таким образом, наша задача сводится к задаче линейного программирования в следующей постановке: r

min z = d[j] x[j]

x j

d[j] x[j] tдоп (j = 1 .. r)

r n

x[j] p[i]

j i