- •Часть 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.4. Задачи о назначениях и их интерпретации
Содержательное описание.
Есть несколько исполнителей и несколько работ. Задана производительность каждого исполнителя по каждой работе. Необходимо так распределить исполнителей по работам, чтобы каждый исполнитель получил не более одной работы, каждая работа получила не более одного исполнителя и суммарная производительность от сделанных назначений была максимальна.
Математическая модель.
Исходные параметры модели.
Пусть i=1,2,...,m - номера исполнителей, j=1,2,...,n - номера работ. Обозначим через R= r( i,j) - mn матрицу производительностей, элемент которой r(i,j) - есть производительность исполнителя с номером i на работе с номером j.
Варьируемые параметры.
Обозначим через X= x(i,j) - mn матрицу неизвестных, элемент которой x(i,j) принимает значение 1, если исполнитель с номером i будет назначен на работу с номером j, и значение 0, в противном случае.
Ограничения математической модели.
x(i,j) 1, j=1,2,...,n. (1)
x(i,j) 1, i=1,2,...m. (2)
x(i,j) {0,1}, i=1,2,...m. j=1,2,...,n. (3)
Здесь ограничения (1) означают, что каждая работа будет назначена не более чем одному исполнителю, ограничения (2) означают, что каждый исполнитель может быть назначен не более чем на одну работу, а условия (3) являются естественными ограничениями на введенные переменные.
Постановка оптимизационной задачи.
Критерий оптимальности для задачи о назначениях имеет вид:
F(X) = r(i,j) x(i,j) max. (4)
Задача (1) - (4) называется задачей о назначениях с аддитивным критерием оптимальности.
Если в качестве критерия оптимальности выбрать функционал
F(X) = max r(i,j) x(i,j) min, (5)
где max берется по всем i=1,2,...,m и всем j=1,2,...n, то такая задача (1)-(3) называется минимаксной задачей о назначениях.
Если в качестве критерия оптимальности выбрать функционал
F(X) = min r(i,j) x(i,j) max, (6)
то задача (1)-(3), (6) называется максиминной задачей о назначениях.
Замечание.
Нетрудно показать (введением фиктивных исполнителей или фиктивных работ), что математическая модель (1)-(3) эквивалентна математической модели (7)-(9):
x(i,j) =1, j=1,2,...,n. (7)
x(i,j) =1, i=1,2,...m. (8)
x(i,j) {0,1}, i=1,2,...m. j=1,2,...,n, (9)
где m=n.
Рассмотрим следующие условия на введенные переменные:
0 x(i,j) 1 , i=1,2,...,m, j=1,2,...,n. (10)
Исходя из того, что матрица ограничений условий (7) - (8) является абсолютно унимодулярной (целочисленная матрица называется абсолютно или вполне унимодулярной, если любой ее минор равен 1, -1 или 0), то любой опорный план математической модели (7), (8), (10) является целочисленным, отсюда вытекает эквивалентность математических моделей (1)-(3) и (7)-(9). Кроме того, так как из условий (7) и (8) и условий не отрицательности переменных, автоматически следует, что переменные не могут быть больше 0, исходная математическая модель (1) -(3) эквивалентна (с точки зрения поиска оптимального решения задачи о назначениях) математической модели с ограничениями (7) , (8), условиями m=n и ограничениями
0 x(i,j), i=1,2,...,m, j=1,2,...,n. (11)
С помощью рассмотренной математической модели описываются следующие прикладные задачи:
- задача назначения исполнителей по работам с целью максимизации суммарной производительности по выполняемым работам;
- задача о конвейере - распределение исполнителей по работам на конвейере так, чтобы время перемещения конвейера было минимально;
- задача распределения вознаграждения в наихудшем случае и др.