
- •Здійснення постановки задачі лінійного програмування
- •Завдання №4 Побудова подвійної задачі лінійного програмування та її розв’язок
- •Розв’язок транспортної задачі лінійного програмування
- •Завдання №6 Розв’язок задач дискретного програмування методом Гоморі та методом віток та границь
- •Завдання №7 Розв’язок задач дискретного програмування методом Мака та Угорським методом
- •Завдання №8,9 Розв’язок задач нелінійного програмування методом виключень, методом множників Лагранжа та градієнтних методів.
- •Розв’язок задач динамічного програмування
- •Прикдад виконання робіт Задание №1
- •Задание № 2,3
- •Задание №4
- •Задание №5 Задание: решить транспортную задачу линейного программирования методом потенциалов.
- •Задание №6
- •Задание № 7
- •Задание №8,9
- •Задание №10
Задание № 7
Задание: решить задачу дискретного программирования следующими методами:
а) методом Мака;
б) Угорским методом,
а именно задачу об оптимальных назначениях с матрицей затрат С.
№ |
Задание |
31 |
С=
|
Решение:
Из условия видно, что не обходимо решить задачу об оптимальных назначениях, если число работников равно 4, а число работ – 3 и матрица затрат С задана.
Используя алгоритм решения задачи методом Мака:
1. Обозначаем минимальный элемент каждой строки матрицы затрат *.
2. Т.к. каждая строка имеет только один элемент с минимальным значением, то переходим к следующему. Обозначаем символом & столбцы, имеющие более одного элемента, обозначенного символом *.
3. Тогда столбцы, помеченные символом &, образуют множество В, а все остальные столбцы образуют множество А:
4. Для каждой строки матрицы затрат, в которой элемент, помеченный *, принадлежит множеству В, находим минимальную разность между элементами множества А и элементом со *.
5. Полученное минимальное значение разности прибавляется к элементам множества В и получаем новую матрицу затрат С1:
6. Повторяем действия пункта 1, т.е. помечаем символом * минимальный элемент в каждой строке.матрицы затрат, причем если таких элементов несколько, то выбираем любой:
В результате этого каждый столбец и каждая строка матрицы имеют только один элемент, помеченный символом *. Следовательно, искомое оптимальное решение найдено:
Используя алгоритм решения задачи Угорским методом:
1. Вычитаем в матрице С от каждого элемета строки минимальный элемент этой строки и получим матрицу С1.
2. Вычитаем в матрице С1 от каждого элемента столбца минимальный элемент этого столбца и получим матрицу С2:
3. Просматриваем последовательно строки матрицы затрат, начиная с первой. Если строка имеет только один 0, то помечаем его символом * и зачеркиваем символом ^ все нули в этом столбце. Повторяем эти действия до тех пор, пока каждая строка не будет иметь непомеченных нулей, или будет иметь их хотя бы два. Аналогично просматриваем все столбцы матрицы.
Так как каждая строка и каждый столбец имеют только один 0*, то задача про оптимальные назначения решена. Ее решением является следующая матрица Х с затратами L:
Т.е., в результате использования метода Мака и Угорского метода можно сделать вывод о совпадении решения, что свидетельствует о его правильности.
Задание №8,9
Задание: решить задачу нелинейного программирования путем нахождением экстремума заданной функции следующими методами: методом исключений, методом множителей Лагранжа, градиентным методом.
№ |
Задание |
31 |
L=xy3→extr 8x+3y=11 |
Решение методом исключений:
1.Выражаем из уравнения-ограничения одну переменную через другую:
2. Подставляем полученное значение в целевую функцию:
3. Находим критические точки, для чего нахождим производную первого порядка и приравниваем ее к нулю:
4. Находим точки экстремума функции, для чего находим значение производной второго порядка в критических точках:
Т.к. в первой критической точке производная второго порядка равна нулю, то можно сделать вывод о том, что в данной точке экстремума нет. Во второй точке производная второго порядка отрицательна, следовательно, в данной точке наблюдается максимум.
Решение методом множителей Лагранжа:
1. Строим функцию Лагранжа
2. Находим частные производные от функции Лагранжа по каждой из переменных
3. Находим координаты критических точек, для чего приравниваем к нулю найденные частные производные и решаем систему уравнений
Если из первого уравнения выразить λ и подставить во второе уравнение, то будет получена следующая система двух уравнений:
Решив эту систему, получим координаты двух критических точек:
4. Строим дифференциал второго порядка для того, чтобы определить, является ли найденная критическая точка точкой экстремума.
Для определения этого дифференциала необходимо найти частные производные второго порядка:
и соотношение дифференциалов из уравнения-ограничения:
Тогда дифференциал второго порядка будет иметь вид:
Теперь подставим координаты критических точек в полученную функцию.
Для первой критической точки значение дифференциала второго порядка функции Лагранжа равно нулю, что говорит о том, что данная точка не является критической точкой. Во второй точке дифференциал принимает отрицательное значение, что свидетельствует о том, что данная точка является точкой максимума.