- •Раздел 1. Общие понятия экономико-математического моделирования 6
- •Раздел 2. Линейные оптимизационные экономико-математические
- •Раздел 1
- •1.1. Понятие модели и процесса моделирования
- •1.2. Классификация моделей
- •1.3. Основные этапы математического моделирования
- •1.4. Особенности математического моделирования экономических систем
- •Раздел 2
- •2.1. Основные линейные оптимизационные задачи и их решение в среде excel
- •2.2. Многопродуктовая транспортная задача
- •2.3. Задача распределения кредита предприятиям с целью получения максимальной прибыли по процентам
- •2.4. Задача о назначениях и ее решение с помощью алгоритма венгерского метода
- •2.5. Задача коммивояжера (о переналадках оборудования) и ее решение с помощью алгоритма литтла
- •Раздел 3
- •3.1. Матричная модель планирования в. Леонтьева
- •3.2. Задача о нахождении равновесных цен на товары
- •3.3. Задача о максимизации суммарного конечного потребления товаров
- •Раздел 4
- •4.1. Общие принципы динамического программирования
- •Принцип оптимальности Беллмана
- •Уравнение Беллмана. Решение исходной задачи
- •4.2. Задача о кратчайшем расстоянии и ее решение методом динамического программирования
- •4.3. Задача о распределении средств и ее решение методом динамического программирования
- •4.4. Задача о замене оборудования и ее решение методом динамического программирования
- •Раздел 5
- •5.1. Основные элементы системы массового обслуживания (смо)
- •5.2. Расчет вероятностей состояний смо
- •5.3. Основные характеристики работы смо
- •Раздел 6
- •6.1. Понятие об игровых моделях
- •6.2. Платежная матрица. Нижняя и верхняя цена игры
- •6.3. Решение игр в смешанных стратегиях
- •6.4. Приведение матричной игры к задаче линейного программирования
- •6.5. Статистические игры
- •А) Случай известных априорных вероятностей qj состояний природы
- •Б) Случай неизвестных априорных вероятностей состояний природы
- •Раздел 7
- •7.1. Основные понятия теории управления запасами
- •7.2. Модель уилсона
- •7.3. Модель с конечной интенсивностью поступления заказа
- •7.4. Некоторые многономенклатурные модели
- •7.5. Страховой запас
- •Раздел 8
- •8.1. Сетевые графики и правила их построения
- •8.2. Расчет временных параметров сетевого графика
- •8.3. Оптимизация сетевого графика по времени
- •8.4. Оптимизация сетевого графика по ресурсам
- •Алгоритм оптимизации комплекса работ по распределению ресурсов
- •8.5. Оптимизационные задачи сетевого планирования по стоимости
- •Алгоритм оптимизации комплекса работ по стоимости
- •Вопросы к зачету
- •8. Общие принципы динамического программирования.
- •Литература
8.4. Оптимизация сетевого графика по ресурсам
Задача оптимального распределения ресурсов является одной из важнейших задач планирования. Для простоты изложения рассмотрим случай, когда используется один вид ресурсов.
Пусть проект задан сетевым графиком . Имеющееся количество ресурса равно R. Каждая работа проекта характеризуется продолжительностью выполнения tij и интенсивностью потребления ресурса rij . Под интенсивностью потребления будем понимать требуемое количество ресурса для выполнения работы в единицу времени. Рассмотрим случай, когда интенсивности постоянные. Под оптимальным распределением ресурсов понимается такое размещение работ во времени,
при котором в любой момент времени было бы достаточно ресурса для выполнения работ, а время выполнения всего комплекса работ было бы минимальным. Работы не допускают перерыва в выполнении.
На практике получили широкое применение эвристические методы распределения ресурсов. Отметим, что приведенный ниже алгоритм не всегда позволяет найти оптимальное решение задачи, однако часто дает хорошее приближение к нему.
Алгоритм оптимизации комплекса работ по распределению ресурсов
Предварительный шаг. Составить линейный график выполнения проекта. Определить по нему критическое время tкр и критический путь.
Первый шаг. 1. Спроецировать на ось времени начало и конец каждой работы и обозначить проекцию, совпадающую с началом координат, через 0, а следующую за ней – через 1.
2. Определить полные резервы времени работ Rп(i,j), расположенных над промежутком (0,1). Пронумеровать эти работы в порядке возрастания их полных резервов. Работы с одинаковыми полными резервами времени нумеруют в порядке убывания интенсивностей.
3. Просуммировать последовательно интенсивности работ, расположенных над промежутком (0,1) в порядке возрастания присвоенных им номеров, сравнивая полученные суммы с заданной величиной ресурса R. Все работы, сумма интенсивностей которых не превосходит R, оставить в первоначальном положении. Если после прибавления интенсивности какой-нибудь работы окажется, что суммарное потребление ресурсов больше R, то эту работу сдвинуть вправо на величину рассматриваемого промежутка, перейти к добавлению интенсивности следующей работы и так продолжать до тех пор, пока не будут просмотрены все работы, расположенные над промежутком (0, 1).
Результатом выполнения этого действия является новый линейный график, момент 1 которого считается началом оставшейся части комплекса работ. Работы , расположенные над промежутком (1, кр), изобразить так, чтобы их начала совпадали с новыми ранними сроками свершения событий.
Общий шаг. Пусть выполнено k шагов алгоритма и получен линейный график, момент k которого является началом оставшейся части комплекса работ.
1. Спроецировать на ось времени начало и конец каждой работы, расположенной над промежутком (k, кр), и обозначить проекцию, ближайшую к k, через k+1. Таким образом, будет выделен новый промежуток (k , k+1 ).
2. Определить полные резервы работ Rп(i,j), расположенных над промежутком (k ,k+1), и пронумеровать их. Сначала нумеруются работы , начатые левее момента k, согласно возрастанию разностей между полными резервами этих работ и длительностями от начала до момента k+1 (длительности работ обозначим через lij). Работы с одинаковыми разностями нумеруются в порядке убывания интенсивностей. Все остальные работы нумеруются в порядке возрастания их полных резервов, а с одинаковыми резервами – в порядке убывания интенсивностей.
3. Эти действия выполняются так же, как и действие 3 первого шага.
Однако следует иметь в виду, что если сдвигу подлежит работа , начатая левее k, то сдвигается вся работа, т.е. начало этой работы устанавливается в момент k+1.
4. Проверить, все ли работы комплекса просмотрены. Если все, то решение закончено, если нет, то необходимо вернуться к первому действию общего повторяющегося шага.
Пример
8.4.1. Предприятие
осваивает производство нового изделия.
С этой целью создана группа из
специалистов и составлен сетевой график
выполнения работ (рис 8.4.1). Известны
продолжительность tij
(в днях) каждой работы
(первое
число, указанное на ребре) и интенсивность
потребления ресурса rij
(количество специалистов, необходимое
для выполнения работы
в единицу времени
число в скобках, указанное на ребре).
Рис. 8.4.1
Требуется:
построить линейный график и диаграмму использования ресурса, найти критический путь и критическое время tкр;
найти полные
резервы времени для некритических работ
;
установить сроки начала и окончания работ так, чтобы в любой момент реализации проекта потребность в специалистах не превосходила , а время осуществления проекта было минимальным.
Решение.
Строим график Ганта, указывая над каждым отрезком значение rij.
(i,j)
(4,5)
4
(3,5)
5
8
(2,5)
9
(2,4)
(2,3)
3
(1,3)
7
5
(1,2)
t
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
12
5
20
22
17
9
4
Рис. 8.4.2
Очевидно, что
Критический путь выделен жирной линией
и определяется работами:(1,2), (2,4), (4,5).
Для построения
шкалы потребления ресурса спроецируем
на ось Ot
начальные и конечные точки всех работ.
Получим промежутки (0,2), (2,4), (4,6), (6,7),
(7,9), (9,12), (12,14). В этих промежутках суммируем
интенсивности rij
работ, расположенных над ними. Так,
например, на промежутке (4,6) суммарная
интенсивность составляет
;
на промежутке (6,7):
.
По линейному
графику определяем полные резервы
некритических работ (для критических
работ
).
Работу (3,5) можно отсрочить или увеличить
ее продолжительность на 2 дня (согласно
времени окончания выполнения проекта),
т.е.
.
Работу (2,3) можно было бы отсрочить
(сдвинуть вправо) на 8 дней, но после ее
завершения начинается работа (3,5), а ее
можно отсрочить только на 2 дня, поэтому
и
.
Аналогично,
,
.
Из шкалы потребления
ресурса видно, что в промежутках (4,6),
(6,7), (7,9) число требуемых специалистов
превышает их наличие. Необходимо
отстрочить начало некоторых работ таким
образом, чтобы на каждом промежутке
.
Для определения работ, подлежащих сдвигу, используем алгоритм оптимизации комплекса работ по распределению ресурсов.
Предыдущее решение задачи соответствует выполнению предварительного и первого шагов алгоритма. На данном этапе предстоит действовать по общему шагу алгоритма. Выполним упорядочивание работ на промежутке (4,6):
;
;
№ 2;
;
;
№ 1;
;
№ 3,
так как
.
,
,
следовательно сдвигаем работу (2,5) вправо на длину промежутка (4,6), равную 2 дням.
Так как на
следующем промежутке (6,7)
,
а работа (2,5) уже начнется к моменту
времени
,
то избегая лишнего шага, можно сдвинуть
работу (2,5) еще на один день, тем более,
что
,
т.е., очевидно, надо сдвинуть работу
(2,5) на 3 дня.
Получим новый линейный график (рис.8.4.3).
Рис. 8.4.3
На промежутке
(7,12)
.
Упорядочиваем работы:
;
;
№ 3;
;
;
№ 1;
;
;
№ 2.
Работа (3,5) к моменту
уже началась, поэтому ей присвоили №1.
,
поэтому (4,5)
№ 2, (2,5)
№ 3.
,
.
Работу (2,5) сдвигаем вправо на 5 дней (длину промежутка (7,12)).
Получим новый линейный график (рис. 8.4.4).
Время, необходимое для выполнения всего проекта при использова-нии 15 специалистов, составит 17 дней.
(i,j)
4
(4,5)
(3,5)
5
(2,5)
8
9
(2,4)
3
(2,3)
(1,3)
7
5
t
(1,2)
17
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
12
5
12
14
9
12
8
Рис. 8.4.4
Составим таблицу новых сроков начала (tн) и окончания (tо) работ.
Таблица 8.4.1
Работа Сроки |
(1,2) |
(1,3) |
(2,3) |
(2,4) |
(2,5) |
(3,5) |
(4,5) |
tн tо |
0 4 |
0 2 |
4 6 |
4 7 |
12 17 |
6 12 |
7 14 |
