- •Часть 2
- •Содержание
- •1. Рабочая программа курса "математические основы информатики"
- •Часть 2.
- •Предисловие
- •Практические занятия
- •Литература (основная)
- •Литература (дополнительная)
- •2. Краткий конспект лекций
- •2.1.Задачи целочисленного булева программирования
- •2.2. Каноническая и многомерная задачи о ранце и их интерпретации
- •2.3. Задача коммивояжера и ее интерпретации
- •2.4. Задачи о назначениях и их интерпретации
- •2.5. Задача целочисленного линейного программирования в общей постановке
- •2.6. Метод ветвей и границ
- •2.7. Общая схема метода ветвей и границ Джеффриона-Марстена
- •2.8. Решение канонической задачи о ранце методом ветвей и границ
- •2.9. Решение многомерной задачи о ранце методом ветвей и границ
- •2.10. Решение задачи коммивояжера методом ветвей и границ
- •2.11. Решение задачи целочисленного линейного программирования методом ветвей и границ
- •2.12. Решение задачи о ранце с использованием табличной схемы
- •2.13. Решение задачи о ранце с использованием рекуррентных соотношений динамического программирования
- •2.14. Решение задачи коммивояжера с использованием рекуррентных соотношений динамического программирования
- •2.15. Задачи теории расписаний
- •2.16. Задачи теории расписаний с одним обслуживающим прибором
- •2.17. Перестановочный прием в задачах теории расписаний
- •2.18. Теорема Лившица-Кладова
- •2.19. Задачи теории расписаний в общей постановке
- •2.20. Задача Джонсона. Графики Ганта
- •2.21.Постановка задачи теории расписаний как задачи частично-целочисленного линейного программирования
- •2.22. Сетевые модели. Расчет временных характеристик сетевых моделей
- •2.23. Потоки в сетях. Теорема Форда-Фалкерсона о максимальном потоке
- •2.24. Алгоритм Форда-Фалкерсона нахождения максимального потока в транспортной сети
- •2.25. Решение задачи о назначениях алгоритмом Куна
- •2.26. Минимаксные задачи о назначениях
- •2.27. Задачи о назначениях с индивидуальными предпочтениями
- •3. Задачник с решением типовых задач
- •3.1. Решение задачи о ранце
- •3.1.1. Решение задачи о ранце методом ветвей и границ
- •3.1.2. Решение задачи о ранце методом динамического программирования (табличная форма)
- •3.1.3. Решение задачи о ранце методом динамического программирования (рекуррентная схема)
- •3.1.4. Решить следующие задачи о ранце :
- •3.2. Решение задачи коммивояжера
- •3.2.1. Решение задачи коммивояжера методом ветвей и границ
- •3.2.2. Решение задачи коммивояжера с использованием рекуррентных соотношений динамического программирования
- •3.2.3. Решить задачи коммивояжера:
- •3.3. Решить задачу Джонсона для двух станков, построить график Ганта для оптимального расписания
- •3.4. Решение задачи о назначениях алгоритмом Куна
- •3.5. Решение минимаксных (максиминных) задач о назначениях
- •3.6. Решить задачи о назначениях с индивидуальными предпочтениями
- •3.7. Нахождение максимального потока в транспортной сети алгоритмом Форда-Фалкерсона
- •3.8. Расчет временных характеристик сетевых моделей
- •Рассчитать временные характеристики сетевой модели
- •4. Контрольные задания
- •5. Вопросы к экзамену
- •3.Задачи целочисленного булева программирования.
- •6.Задача коммивояжера и ее интерпретации.
- •8.Задача целочисленного линейного программирования в общей постановке.
2.22. Сетевые модели. Расчет временных характеристик сетевых моделей
Говорят, что задана сеть, если определено множество вершин и множество дуг, соединяющих эти вершины. Формально сеть задается ориентированным графом без петель и контуров, т.е. антирефлексивным бинарным отношением
f=(V, A), где A VxV, график которого A - определяет множество дуг, а множество, на котором бинарное отношение определено, V - является множеством вершин. Сетевой моделью называют сетевой график, элементам которого (либо вершинам, либо дугам, либо и тем и другим) поставлены в соответствие некоторые величины, называемые весами. Мы в дальнейшем будем рассматривать сетевые модели, в которых веса поставлены в соответствие дугам.
С помощью сетевой модели будем моделировать процесс производства некоторого нового изделия. Тогда вершины будут соответствовать моментам начала или окончания выполнения работ, дуги будут соответствовать условиям взаимозависимости выполняемых работ, а веса на дугах будут соответствовать ожидаемым длительностям выполнения работ.
Пусть i=1,2,...,m, - номера работ, t(i) - длительность выполнения работы i, i=1,2,...,m. Обозначим через K(i) - множество работ, непосредственно предшествующих работе с номером i (условие, определяемое технологическими требованиями на порядок выполнения работ). Требуется определить минимально возможное время, за которое можно выполнить все работы.
Для решения этой задачи пользуются специальной схемой расчета временных характеристик, позволяющей не только дать ответ на поставленный вопрос, но и найти дополнительные характеристики, позволяющие более эффективно управлять процессом изготовления нового изделия.
К таким характеристикам относятся:
t(rn,i) - время самого раннего начала выполнения работы с номером i,
t(rk,i) - время самого раннего окончания выполнения работы с номером i,
t(pn,i) - время самого позднего начала выполнения работы с номером i,
t(pk,i) - время самого позднего окончания выполнения работы с номером i,
r(i) - резерв времени работы с номером i, т.е. время, на которое не в ущерб времени общего окончания выполнения всех работ, можно задерживать выполнение работы с номером (i),
T(k) - время выполнения всех работ изделия.
Величина T(k) называется длиной критического пути, а критическим путём называют путь, соединяющий некоторую начальную работу - не имеющую предшествующих работ, и некоторую конечную работу - не имеющую последующих, т.е. от неё зависящих работ, суммарное время выполнения всех работ которого максимально.
Для расчета временных характеристик можно воспользоваться следующими рекуррентными соотношениями:
t(rn,i) = 0, если K(i) - пустое множество.
t(rk,i) = t(rn,i) + t(i),
t(rn,i)= max t(rk,j), где максимум берется по всем работам j из множества K(i).
t(pk,i) = t(rk,i) , если работа i не имеет последующих,
t(pn,i) = t(pk,i) - t(i),
t(pk,i) = min t(pn,j), где минимум берется по тем работам j, которые принадлежат множеству K(i), т.е. по тем работам, от которых зависит работа с номером i.
r(i) = t(pn,i) - t(rn,i) = t(pk,i) - t(rk,i).
Работы критического пути это те работы, резервы времени которых нулевые.