Автор: Пользователь скрыл имя, 29 Февраля 2012 в 16:39, курсовая работа
Целью курсовой работы является изучение основ календарного планирования с помощью решения задач, характерных для данного вида математического моделирования.
Указанная цель обусловила постановку и решение следующих задач:
а) рассмотреть основы календарного планирования;
Введение……………………………………………………………………...
3
Глава 1.
Теоретические аспекты календарного планирования……
5
1.1. Понятие календарного планирования ……………………
5
1.2. Характеристика моделей календарного планирования….
6
1.3. Методы решения задач календарного планирования……
7
Глава 2.
Примеры решения основных задач календарного планирования.………………………………………………….
12
2.1. Задача Джонсона о двух станках ……………………….
12
2.2. Задача о назначениях ………………………...…………….
14
2.3. Задача о замене оборудования…………………………….
21
Заключение………………………………………………………………….
29
Многие задачи календарного планирования относятся к классу задач, для которых трудна конкретная аналитическая постановка, неярко выражена величина критерия эффективности и отсутствуют эффективные алгоритмы численного решения. Последнее связано с тем, что минимизируемые функции комбинаторных задач лежат не в непрерывной области переменных, а на различных дискретных перестановках элементов. Следовательно, применение приближенных методов, основанных на сочетании аналитических принципов и моделировании календарных планов с использованием правил предпочтительности, является наиболее перспективным направлением практического решения данного класса задач.
Среди приближенных методов различают большую группу аналитико-приоритетных методов. Аналитико-приоритетные методы не следует смешивать с эвристическими. В аналитико-приоритетных методах имеется математическая модель с соответствующей функцией - критерием, что позволяет приблизить решение к оптимальному, тогда как в эвристических методах такая функция отсутствует, либо имеется в неявно выраженной форме или же задается как локальная функция приоритета. Эвристические методы строятся на использовании установленных свойств и приемов решения задач других смежных групп, а также интуитивных свойств и приемов поиска.
2.1 Задача Джонсона о двух станках[5]
Рассмотрим задачу последовательной обработки на двух машинах N различных деталей, если известно время Ai и Bi обработки i -й детали на соответствующих машинах. Очевидно, что первая машина будет загружена полностью, но вторая может периодически оказываться в состоянии простоя. Попытаемся найти порядок обработки, минимизирующий время простоя второй машины и тем самым сокращающий общее время обработки деталей.
Если обозначить через Xi - время простоя в ожидании i - й детали, то
X1=A1;
X1+X2=max(A1+A2-B1,A1)
X1+X2 +X3= max(A1+A2+A3-B1-B2, A1+A2-B1 A1),…
Если обозначить через F(t, Ak, Bk/k=1..N) - суммарное время обработки N деталей при условии, что вторая машина включается с задержкой t и используется оптимальный порядок обработки, то c учетом принципа оптимальности (независимо от выбора начальной детали порядок выбора последующих должен быть оптимальным) имеем:
F(t, Ak, Bk/k=1..N)=min[Ai +F(Bi + max(t-Ai,0), Ak, Bk/k=1..N, k≠i
Если после i - й детали при оптимальном порядке обрабатывается j-я, то
F(t, Ak, Bk/k=1..N)= Ai+ Aj+F(tij, Ak, Bk/k=1..N; k≠i, j), где
tij= Bj + max[Bi + max(t-Ai,0)- Aj,0]= Bj + Bi – Aj – Ai +max [t, max(Ai+ Aj - Bi,Ai]
При обработке в обратном порядке
F(t, Ak, Bk/k=1..N)= Aj + Ai+ F(tij, Ak, Bk/k=1..N; k≠i, j), где
tji= Bi max[Bi + max(t-Aj,0)- Ai,0]= Bji+ Bj - Ai - Aj +max [t, max(Aj+ Ai – Bj,Ai]
Если max(Ai+ Aj - Bi,Ai)< max(Aj+ Ai – Bj,Ai), то сначала разумнее обрабатывать j - ю деталь.
Можно показать, что указанное условие необходимости перестановки эквивалентно условию
min(Aj, Bi)< min(Ai, Bj)
Соответственно ищем среди всех значений Ai и Bi наименьшее. Если найденное значение совпадает с некоторым Ai, то i - ю деталь ставим на обработку первой; если оно совпадает с некоторым Bi, то последней. Эту процедуру повторяем для всех остальных деталей.
Пример. Пусть информация о времени обработки задана таблицей 1
Таблица 1
Время обработки деталей
i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
Ai | 4 | 4 | 30 | 6 | 2 | 9 | 13 | 9 |
Bi | 5 | 1 | 4 | 30 | 3 | 13 | 9 | 9 |
Минимальное из значений равно 1 и соответствует B2: вторая деталь обрабатывается последней. Минимальное из значений (кроме второго столбца) соответствует A5: пятая деталь обрабатывается первой. Минимальное из значений в столбцах, кроме 2 и 5, равно A1 и соответственно среди рассмотренных сейчас деталей эта деталь обрабатывается первой и т.д. В итоге упорядоченная информация принимает вид (таблица 2):
Таблица 2
Упорядоченная информация
I | 5 | 1 | 4 | 8 | 6 | 7 | 3 | 2 |
Ai | 2 | 4 | 6 | 9 | 9 | 13 | 30 | 4 |
Bi | 3 | 5 | 30 | 9 | 13 | 9 | 4 | 1 |
Время простоя второй машины при первичном порядке равно
max(4,4+4-5,4+4+30-5-1,4+4+30+
Время простоя при оптимальной перестановке равно
max(2,2+4-3,2+4+6-3-5,2+4+6+9-
В процессе решения можно было заметить, что существует и другой оптимальный порядок обработки, связанный с неоднозначностью установки детали 8.
2.2 Задача о назначениях[6]
Задача о назначениях заключается в выборе такого распределениях ресурсов по объектам, при котором минимизируется стоимость назначений. Предполагается, что каждый ресурс назначается только один раз и каждому объекту приписывается только один ресурс.
Различные случаи применения данной задачи указаны в таблице 3.
Таблица 3
Случаи применения задачи
Ресурсы | Объекты | Критерии эффективности |
Рабочие Грузовые автомобили Станки Экипажи коммивояжер | Рабочие места Маршруты Участки Рейсы города | Время Затраты Объем переработанной продукции Время простоя товарооборот |
Матрица стоимостей назначения С определяется как: С=С(сij), где сij, i, j = 1,2,…,n – затраты, связанные с назначение i-го ресурса на j-й объект, n- число объектов или ресурсов.
Положим xij=1, если i-й ресурс назначается на j-й объект, и xij=0 в противном случае. Тогда решение задачи о назначении может быть записано в виде матрицы Х=(xij)n*n.
Допустимое решение задачи называется назначением. Оно находится путем такого выбора элементов xij матрицы Х, что в каждой строке и в каждом столбце будет только один выбранный элемент. Элементы сij матрицы С, соответствующие выбранным элементам xij=1 матрицы Х, отметим кружками.
Например,
4 7 0
С=(сij)= 0 3 8
6 0 9
Тогда решение задачи о назначениях имеет вид:
Математическая модель и алгоритм решения задач. Математическая постановка задачи о назначении записывается в виде
n n
L(X) = ∑∑cijxij→min
i=1 j=1
n
при ограничениях ∑xij=1, i=1,2,….n
j=1
∑xij=1, j=1,2,….n
i=1
xij=0 или 1.
Задача о назначениях является частным случаем транспортной задачи, в которой аi=bj=1. поэтому задачу о назначениях можно решать с помощью алгоритмов, предназначенных для транспортной задачи. Однако есть и другой метод, который более эффективен, так как он учитывает специфику математической модели. Этот метод называют венгерским алгоритмом. Он состоит из следующих шагов:
1) проведение преобразования строк и столбцов матрицы С;
2) определения назначения;
3) модификация преобразования матрицы.
1-й шаг. Цель данного шага – получение максимально возможного числа нулевых элементов в матрице С. Для этого из всех элементов каждой строки вычитаем минимальный элемент соответствующей строки, а из всех элементов каждого столбца вычитаем минимальный элемент соответствующего столбца.
2-й шаг. Если после выполнения 1-го шага в каждой строке и каждом столбце матрицы С можно выбрать по одному нулевому элементу, то полученное решение будет оптимальным назначением.
3-й шаг. Если допустимое решение, состоящее из нулей, не найдено, то проводим минимальное число прямых через некоторые столбцы и строки так, чтобы все нули оказались вычеркнутыми. Выбираем наименьшей невычеркнутый элемент. Этот элемент вычитаем из каждого невычеркнутого элемента и прибавляем к каждому элементу, стоящему на пересечении проведенных прямых.
Если после проведения 3-го шага оптимальное решение не достигнуто, то процедуру проведения прямых следует повторять до тех пор, пока не будет получено допустимое решение.