Автор работы: Пользователь скрыл имя, 13 Декабря 2012 в 15:53, курсовая работа
Целью курсовой работы является изучение основ календарного планирования с помощью решения задач, характерных для данного вида математического моделирования.
Указанная цель обусловила постановку и решение следующих задач:
рассмотреть основы календарного планирования;
решить основные задачи календарного планирования.
Введение……………………………………………………………………... 3
Глава 1. Теоретические аспекты календарного планирования…… 5
1.1. Понятие календарного планирования …………………… 5
1.2. Характеристика моделей календарного планирования…. 6
1.3. Методы решения задач календарного планирования…… 7
Глава 2. Примеры решения основных задач календарного планирования.………………………………………………….12
2.1. Задача Джонсона о двух станках ………………………. 12
2.2. Задача о назначениях ………………………...……………. 14
2.3. Задача о замене оборудования……………………………. 21
Заключение………………………………………………………………….29
Литература…………………….…………………………………………… 30
Многие задачи календарного планирования относятся к классу задач, для которых трудна конкретная аналитическая постановка, неярко выражена величина критерия эффективности и отсутствуют эффективные алгоритмы численного решения. Последнее связано с тем, что минимизируемые функции комбинаторных задач лежат не в непрерывной области переменных, а на различных дискретных перестановках элементов. Следовательно, применение приближенных методов, основанных на сочетании аналитических принципов и моделировании календарных планов с использованием правил предпочтительности, является наиболее перспективным направлением практического решения данного класса задач.
Среди приближенных методов различают большую группу аналитико-приоритетных методов. Аналитико-приоритетные методы не следует смешивать с эвристическими. В аналитико-приоритетных методах имеется математическая модель с соответствующей функцией - критерием, что позволяет приблизить решение к оптимальному, тогда как в эвристических методах такая функция отсутствует, либо имеется в неявно выраженной форме или же задается как локальная функция приоритета. Эвристические методы строятся на использовании установленных свойств и приемов решения задач других смежных групп, а также интуитивных свойств и приемов поиска.
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 - й детали
при оптимальном порядке
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-й шаг. Если после выполнения 1-го шага в каждой строке и каждом столбце матрицы С можно выбрать по одному нулевому элементу, то полученное решение будет оптимальным назначением.
3-й шаг. Если допустимое
решение, состоящее из нулей,
не найдено, то проводим
Если после проведения 3-го шага оптимальное решение не достигнуто, то процедуру проведения прямых следует повторять до тех пор, пока не будет получено допустимое решение.
Пример. Дана матрица ресурсов
С=(сij)=
Распределить ресурсы матрицы С по четырем объектам.
Решение. 1-й шаг. Значение минимальных элементов строк 1, 2, 3 и 4 равны 2, 4, 11 и 4 соответственно. Вычитая из элементов каждой строки соответствующее минимальное значение, получим матрицу вида
Значения минимальных
2-й шаг. Ни одно назначение не получено, необходимо провести модификацию матрицы стоимостей.
3-й шаг. Вычеркиваем столбец 1, строку 3, строку или столбец 2. значение минимального невычеркнутого элемента равно 2:
Вычитаем его из всех невычеркнутых элементов и, складывая его со всеми элементами, расположенными на пересечении двух линий, получим:
Следовательно, оптимальное решение:
Хопт =
Таким образом, первый ресурс направляем на 3-й объект, второй – 2-й объект, третий ресурс – на 4-й объект, четвертый – на 1-ый объект. Стоимость назначения: 9+4+11+4=28.
Примечания:
1) Если исходная матрица не является квадратной, то нужно ввести фиктивные ресурсы или фиктивные объекты, чтобы матрица стала квадратной.
2) Если какой-либо ресурс не может быть назначен на какой-то объект, то соответствующая стоимость полагается равной достаточно большому числу М.
3) Если исходная задача является задачей максимизации, то все элементы матрицы С следует умножить на -1 и сложить с достаточно большим числом так, чтобы матрица не содержала отрицательных элементов. Затем следует решать задачу минимизации целевой функции.
4) Если число линий, необходимое для того, чтобы вычеркнуть нулевые элементы, равно числу строк или столбцов (квадратной матрицы), то существует назначение нулевой стоимости.
Пример:
Цех имеет пять станков разных типов, каждый из которых может выполнять пять различных операций по обработке деталей. Известна производительность cij каждого станка при выполнении каждой операции, заданная матрицей
Определить, какую операцию
и за каким станком следует
закрепить, чтобы суммарная
Решение. В задаче требуется найти максимум целевой функции, в то время как алгоритм метода дан для задач на минимум. Поэтому умножим матрицу С на -1. сложим полученную матрицу, элементы которой отрицательны, с достаточно большим положительным числом, например с числом 10. Получим:
Минимальные элементы в строках равны 3, 4, 4, 6, 4. вычтем их из соответствующих элементов матрицы:
Так как назначение не получено, вычеркиваем строку 2, столбы 2, 4, 5:
Минимальный элемент равен 1. вычитаем его из всех невычеркнутых элементов и складываем со всеми элементами, расположенными на пересечении двух линий, получаем:
Оптимальное решение, соответствующее последней матрице:
Суммарная производительность: 6+6+3+6+7=28
Таким образом, наибольшая суммарная производительность станков цеха будет равна 28 деталям в единицу времени, при этом за первым станком надо закрепить 5-ю операцию, за вторым – 1-ю операцию, за третьим – 4-ю операцию, за четвертым – 3-ю операцию, за пятым станком – 2-ю операцию.