- •Математическое моделирование простейшей экономической ситуации: задача о планировании оптимального выпуска видов изделий при заданных ценах и ограничениях на ресурсы.
- •2.Основные определения: понятие целевой функции, плана, оптимального плана.
- •3.Графический метод решения задачи линейного программирования. Область допустимых планов, градиент, линии постоянного уровня, угловые точки, оптимальный план
- •4.Классификация задач линейного программирования: Общая задача, основная и каноническая.
- •5.Симплексный метод решения канонической задачи. 1-ая симплексная таблица и расчет элементов индексной строки.
- •6.Алгоритм симплекс-метода.
- •7.Сформулируйте общую задачу линейного программирования и напишите ее математическую модель.
- •8.Дайте определение плана, невырожденного и вырожденного опорного плана, оптимального плана.
- •9.Дайте геометрическое истолкование задачи линейного программирования.
- •10.Как построить первоначальный опорный план задачи линейного программирования и проверить его на оптимальность?
- •11.Перечислите условия оптимальности опорного плана задачи линейного программирования на отыскание минимального и максимального значений целевой функции.
- •12. Как определяется вектор для включения в базис, если первоначальный план не является оптимальным? Как определить вектор, подлежащий исключению из базиса?
- •13. Какая переменная называется базисной? Какая переменная называется искусственной, как она вводится в систему ограничений и в целевую функцию?
- •14.Сформулируйте задачу использования ресурсов и напишите ее математическую модель.
- •15.Сформулируйте задачу составления рациона и напишите ее математическую модель.
- •16.Алгоритм симплекс-метода см.№6
- •17.Алгоритм решения м-задачи.
- •18.Разрешимость основной задачи линейного программирования в терминах вспомогательной задачи с искусственным базисом.
- •19.Математическая модель симметричной двойственной задачи.
- •20.Математическая модель несимметричной двойственной задачи.
- •21.Как по решению исходной (двойственной) задачи найти решение двойственной (исходной) задачи? Как проверить оптимальность полученных решений?
- •22.Алгоритм двойственного симплекс – метода.
- •23.Критерии оптимальности планов пары двойственных задач линейного программирования.
- •24.Сформулируйте транспортную задачу линейного программирования и напишите ее математическую модель
- •25.Методы построения опорного плана транспортной задачи и процедура его улучшения.
- •26.Решение транспортной задачи методом потенциалов. Критерий оптимальности ее опорного плана (критерий л.В.Канторовича).
- •27.Матричная игра двух сторон с нулевой суммой. Чистые, смешанные, оптимальные стратегии, цена игры.
- •29.Доминирование строк и столбцов платежной матрицы и решение игры после упрощения матрицы.
- •30. Сформулируйте задачу целочисленного программирования и напишите ее математическую модель.
- •31.Метод отсечение Гомори – нахождение целочисленного оптимального плана задачи линейного программирования, построение дополнительного ограничения (неравенства Гомори)
- •32.Алгоритм решения задачи дискретного программирования методом ветвей и границ на примере решения задачи коммивояжера.
- •Задача о кратчайшем пути на графе, алгоритм Форда (Дейкстры).
- •34.Задача о максимальном потоке в сети, алгоритм Форда – Фалкерсона
- •35. Сетевое планирование, нахождение критического пути в сети.
32.Алгоритм решения задачи дискретного программирования методом ветвей и границ на примере решения задачи коммивояжера.
Метод применятся для задачи дискретного целочисленного программирования.
Суть метода пусть имеется множество Л, содеражащее бесконечное множество допустимых решений задачи. Разбиваем множество на 2 подмножества по определенному правилу, к-е формируются в зависимости от условий конкретной задачи. Затем для Л1 и Л2 вычисляется оценка по правилу определяющему условию задачи. Для дальнейшего ветвления выбирается то подможество, оценка к-го меньше ветвления. Это продолжается до нахождения оптимума.
Постановка задачи дискретного программирования.
Имеется оптимизационная задача min и необходимо отыскать в множестве допустимых решений Л оптимальное решение путем последовательного ветвления множества.
Алгоритм решения методом ветвей и границ:
1.Указать правило разбиения Л и осуществить начальные разложения
2.Указать правило вычисления оценки подмножеств
3.Учесть, что для дальнейшего ветвления выбирается подмножество с наименьшей оценкой.
Вычисляем начальную оценку (найдем в каждой строке min значение и вычтем его из каждого элемента строки).
Вычисляем наименьшее значение столбца.
В результате получаем приведенную матрицу Л0.
Просматриваем все нулевые элементы приведенной матрицы с целью выбора такой дуги, к-я обеспечит наибольшее уменьшение длины.
Задача о кратчайшем пути на графе, алгоритм Форда (Дейкстры).
Рассмотрим взвешенный граф G{V,U) без петель и контуров, любой дуге Uij = (i,j) U которого поставлено в соответствие число 1ij, называемое длиной (в общем случае, весом). Если граф содержит ребра, то любое из них можно заменить на пару противоположно ориентированных дуг с той же длиной. Требуется найти пути из выделенной вершины ко е V во все остальные вершины графа, длина (или суммарный вес) каждого из которых минимальна.
Пусть для любой вершины Vi V графа G{V,U) элементы I’(i).v’(i) означают длину и предпоследнюю вершину кратчайшего пути из источника I в вершину Vi, а элементы I(i), v(i) - длину и предпоследнюю вершину некоторого (не обязательно кратчайшего) тли. Пару (I(i), v(i)) назовем временной меткой, а пару (I’(i).v’(i)) - постоянной меткой. Обозначим через R множество помеченных вершин. Алгоритм Дийкстры заключается в том. что на любой итерации одна очередная вершина Vi присоединяется к множеству помеченных вершин R и получает постоянную метку (I’(i).v’(i)), которая в дальнейшем не меняется. А для остальных вершин j R (т е. для j VR) пересматриваются текущие значения длин I(j)). Результаты вычислений на всех итерациях заносятся в таблицу. Рассмотрим алгоритм Дийкстры построения дерева кратчайших путей на примере.
Пример 13. Туристическая фирма организовывает экскурсионные туры на автобусе с посещением ряда городов зарубежья (v1, v2, vз, v4, v5, v6,V7) (рис. 2.16). Выезд планируется из Минска (V0). Требуется найти кратчайшие пути из Минска в эти города, если известны расстояния между городами (в тыс. км).
Р ешение. Составим математическую модель задачи. Вершины графа можно интерпретировать как пересечение дорог, а ребра - как участки дорог, связывающих вершины. Любому ребру можно поставить в соответствие длину данного участка дороги в километрах. Тогда задача сведется к нахождению кратчайшего пути из вершины V0 (Минска) во все остальные вершины графа. Расставлять метки на рис. 2.17 и заполнять табл. 2.8 будем по ходу алгоритма Дийкстры.
Алгоритм Дейкстры:
Так как все пути будут выходить из вершины и,, ее сразу помечают. т.е. присваивают I(0):=0’, V(0):=V’0, R:={V0}
Для остальных вершин определяют длину I(j) по формуле и указывают предпоследнюю вершину пути:
Т аким образом, в табл. 2.8. заполняют первую строку:
И з непомеченных вершин находят номер i VR, для которого достигается минимум
В нашем примере
4.Если l(i)=∞ (т.е. минимум равен∞) и множество помеченных вершин не совпадает с множеством V(т.е.R≠V), то алгоритм заканчивается свою работу. В вершины, не имеющие постоянной метки,не существует пути из выделенной вершины V0. Иначе переходят к пункту 4.
5. Если l(1) < ∞ (т.е. минимум конечен), то полагают
В данном примере
6. Если R=V (или i=S), то найдены все кратчайшие пути во все вершины графа. Алгоритм заканчивает свою работу. Иначе переходят к пункту 7.
7. Если R≠V (I≠S), то рассматривают дуги (i,j) U, которые существует, т.е. i R, j=VR. Полагают
Где I’(i) – постоянная метка вершины Vi(начала дуги), Iij – длина дуги (Vi,Vj), I(j) – временная метка вершины Vj (конца дуги).
Если I’ (i)+lij<l(j), то присваивают V(j):=Vi, ниаче временная метка v(j) вершины Vj не меняется. Незаполненные клетки данной строки переписывают из соответствующих столбцов. Переходят к пункту 2.
В табл. 2.8 заполняют вторую строку. Для этого находят дуги с началом в последней отмеченной вершине, а с концом – в неотмеченной. В нашем примере это дуги с началом в вершине V3:(V3,V2),(V3,V5),(V3,V6). Для них считают l(2),l(5),l(6) соответственно:
Аналогично заполняют третью строку табл. 2.8.:
а) пункт 3 алгоритма:
б) пункт 5 алгоритма:
в)пункт 7 алгоритма: находят дуги с началом в вершине V1((V1,V2) ,(V1,V5),(V1,V4)) и вычисляют l(2),l(5),l(4) соответственно:
Незаполненные клетки переписываются из второй строки. Остальные строки заполняются аналогично. В данном примере выпишем кратчайшие пути из вершины V0 во все остальные вершины графа
Так, отправляясь в город туристическая фирма в целях посещения наибольшего числа городов предпочтет маршрут V0-V3-V2-V5-V6,хотя на обратной дороге можно сразу следовать в город V5, при этом наименьшее расстояние не изменится.