лк4_опт.pptx
- Количество слайдов: 13
Оптимизация и основы программирования
Поиск экстремумов функции одной или нескольких переменных с помощью встроенных функций Порядок решения с помощью функций Minimize и Maximize: 1. Построение графика функции для определения начального приближения и количества экстремальных точек 2. Задание точки начального приближения 3. Служебное слово Given 4. Присваивание произвольной переменной Х функции Minimize/ Maximize (f, x 1, x 2… xn), Где f – целевая функция, x 1, x 2… xn – независимые переменные 5. Вычисление значения целевой функции в найденной точке Х
Поиск экстремумов функции одной или нескольких переменных с помощью встроенных функций Порядок решения с помощью функции Minerr: 1. Построение графика функции для определения начального приближения и количества экстремальных точек 2. Задание точки начального приближения 3. Запись фиктивного уравнения/системы уравнений, приравнивающего целевую функцию и заведомо недостижимое максимальное/минимальное значение 4. Присваивание произвольной переменной Х функции Minerr(x 1, x 2… xn), 5. Вычисление значения целевой функции в найденной точке Х
Программный модуль • Программный блок может существовать в документе как функция без имени или с именем. • Для написания программ используется панель инструментов Programming. • Программный блок ограничивается слева вертикальной жирной линией, добавляемой командой Add Line, допускает создание вложенных структур. • Присваивание выполняется с помощью кнопки «←» , переменой, стоящей слева от оператора присваивается значение, указанное справа. Присваивание выполняется только внутри программного блока и не влияет на ранее заданные переменные
Операторы условия и альтернативного выбора • Условный оператор имеет структуру: оператор if условие. Оператор выполняется, если условие истинно. Если условие ложно управление передается следующему оператору. • Оператор альтернативного выбора имеет структуру: Оператор1 if условие Оператор2 otherwise Оператор 1 выполняется, если истинно условие, иначе выполняется оператор2.
Операторы цикла • Оператор цикла с известным числом повторений имеет вид: for переменная Э начальное значение, шаг. . конечное значение Оператор выполняется для значений переменной, изменяющейся в диапазоне от начального значения до конечного с заданным шагом. Диапазон может быть задан конкретными значениями границ, двумя переменными или вектором. • Оператор цикла с условием имеет структуру: While условие Оператор будет выполняется, пока условие истинно. Используется, когда количество повторений не известно, но предусмотрен выход по некоторому логическому условию. • Оператор for можно свести к формулировке оператора while
Операторы прерывания • Для досрочного завершения цикла используется оператор break. Применение оператора передает управление в конец цикла. Используется, например, для поиска первого элемента, удовлетворяющего условию. • Оператор continue прерывает выполнение текущей итерации. • Оператор return прерывает выполнение программного модуля в любой точке и возвращает значение или оператор, стоящий после него
Задача линейного программирования • Предполагает поиск экстремума линейной функции многих переменных при линейных ограничениях в виде равенств и неравенств. • Решение в компонентной форме: 1. Задание точки начального приближения 2. Определение целевой функции 3. Запись решающего блока, начинающегося служебным словом Given, и содержащего все ограничения 4. Решение с помощью функции Minimize/ Maximize (f, x 1, x 2… xn) 5. Вычисление значения целевой функции в найденной точке
Задача линейного программирования • Решение в матричной форме 1. Определить матрицы М- коэффициентов левых частей условий неравенств, С – коэффициентов целевой функции, v – правых частей условий неравенств. Неравенства должны иметь одинаковый знак 2. Определить начальное приближение 3. Записать определение целевой функции 4. Запись решающего блока, начинающегося служебным словом Given, и содержащего все ограничения в матричной форме 5. Решение с помощью функции Minimize/ Maximize (f, x 1, x 2… x n) 6. Вычисление значения целевой функции в найденной точке
Транспортная задача • Является разновидностью задачи линейного программирования • Различают 3 вида задач: 1. Сбалансированная – количество произведенной продукции равно суммарной потребности. 2. В условиях перепроизводства – для сведения к сбалансированной вводится фиктивный потребитель. 3. В условиях дефицита – вводится фиктивный производитель.
Математическая модель транспортной задачи • хi, j – объем перевозки от i-го производителя, jпотребителю, сi, j – ее стоимость. • Необходимо минимизировать суммарные расходы • При этом должны выполняться условия: объемы перевозок не отрицательны хi, j ≥ 0, продукция должна быть полностью вывезена от производителей и поставлена потребителям. • Необходимо найти такую матрицу хi, j , при которой s достигает минимального значения и выполняются ограничения
Решение транспортной задачи • Для решения транспортной задачи используются элементы программирования и стандартные функции поиска экстремума. • Алгоритм вычисления сумм по строкам и столбцам имеет вид • При записи условий в решающем блоке полученные функции суммы используются для записи равенств. • Команда Minimize используется для нахождения точек экстремума
Задача о назначениях • Разновидность задачи линейного программирования. • Заключается в том, чтобы по заданной матрице стоимости выполнения работ составить план проведения работ с минимальными затратами. • Может быть сбалансированной (квадратная матрица) или несбалансированной, которая сводится к сбалансированной путем введения дополнительных строк или столбцов с чрезмерной высокой стоимостью • Математическая модель задачи о назначениях аналогична математической модели транспортной задачи, при условии, что ai=bi=1


