Green-sell.info

Новые технологии
2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Решение оптимизационных задач

Решение оптимизационных задач управления методом линейного программирования

Ранее я описал, как принимать решения с учетом ограничивающих факторов. Цель таких решений – определить ассортимент продукции (производственный план), максимально увеличивающий прибыль компании. Решение заключалось в том, чтобы распределить ресурсы между продуктами согласно маржинальной прибыли, полученной на единицу ограниченных ресурсов, при соблюдении любых других ограничений, таких как максимальный или минимальный спрос на отдельные виды продукции. [1]

Если ограничивающий фактор один (например, дефицитный станок), решение может быть найдено с применением простых формул (см. ссылку в начале статьи). Если же ограничивающих факторов несколько, применяется метод линейного программирования.

Линейное программирование – это название, данное комбинации инструментов используемых в науке об управлении. Этот метод решает проблему распределения ограниченных ресурсов между конкурирующими видами деятельности с тем, чтобы максимизировать или минимизировать некоторые численные величины, такие как маржинальная прибыль или расходы. В бизнесе он может использоваться в таких областях как планирование производства для максимального увеличения прибыли, подбор комплектующих для минимизации затрат, выбор портфеля инвестиций для максимизации доходности, оптимизация перевозок товаров в целях сокращения расстояний, распределение персонала с целью максимально увеличить эффективность работы и составление графика работ в целях экономии времени.

Скачать заметку в формате Word, рисунки в формате Excel

Линейное программирование предусматривает построение математической модели рассматриваемой задачи. После чего решение может быть найдено графически (рассмотрено ниже), с использованием Excel (будет рассмотрено отдельно) или специализированных компьютерных программ. [2]

Пожалуй, построение математической модели – наиболее сложная часть линейного программирования, требующая перевода рассматриваемой задачи в систему переменных величин, уравнений и неравенств – процесс, в конечном итоге зависящий от навыков, опыта, способностей и интуиции составителя модели.

Рассмотрим пример построения математической модели линейного программирования

Николай Кузнецов управляет небольшим механическим заводом. В будущем месяце он планирует изготавливать два продукта (А и В), по которым удельная маржинальная прибыль оценивается в 2500 и 3500 руб., соответственно.

Изготовление обоих продуктов требует затрат на машинную обработку, сырье и труд (рис. 1). На изготовление каждой единицы продукта А отводится 3 часа машинной обработки, 16 единиц сырья и 6 единиц труда. Соответствующие требования к единице продукта В составляют 10, 4 и 6. Николай прогнозирует, что в следующем месяце он может предоставить 330 часов машинной обработки, 400 единиц сырья и 240 единиц труда. Технология производственного процесса такова, что не менее 12 единиц продукта В необходимо изготавливать в каждый конкретный месяц.

Рис. 1. Использование и предоставление ресурсов

Николай хочет построить модель с тем, чтобы определить количество единиц продуктов А и В, которые он доложен производить в следующем месяце для максимизации маржинальной прибыли.

Линейная модель может быть построена в четыре этапа.

Этап 1. Определение переменных

Существует целевая переменная (обозначим её Z), которую необходимо оптимизировать, то есть максимизировать или минимизировать (например, прибыль, выручка или расходы). Николай стремится максимизировать маржинальную прибыль, следовательно, целевая переменная:

Z = суммарная маржинальная прибыль (в рублях), полученная в следующем месяце в результате производства продуктов А и В.

Существует ряд неизвестных искомых переменных (обозначим их х1, х2, х3 и пр.), чьи значения необходимо определить для получения оптимальной величины целевой функции, которая, в нашем случае является суммарной маржинальной прибылью. Эта маржинальная прибыль зависит от количества произведенных продуктов А и В. Значения этих величин необходимо рассчитать, и поэтому они представляют собой искомые переменные в модели. Итак, обозначим:

х1 = количество единиц продукта А, произведенных в следующем месяце.

х2 = количество единиц продукта В, произведенных в следующем месяце.

Очень важно четко определить все переменные величины; особое внимание уделите единицам измерения и периоду времени, к которому относятся переменные.

Этап. 2. Построение целевой функции

Целевая функция – это линейное уравнение, которое должно быть или максимизировано или минимизировано. Оно содержит целевую переменную, выраженную с помощью искомых переменных, то есть Z выраженную через х1, х2… в виде линейного уравнения.

В нашем примере каждый изготовленный продукт А приносит 2500 руб. маржинальной прибыли, а при изготовлении х1 единиц продукта А, маржинальная прибыль составит 2500 * х1. Аналогично маржинальная прибыль от изготовления х2 единиц продукта В составит 3500 * х2. Таким образом, суммарная маржинальная прибыль, полученная в следующем месяце за счет производства х1 единиц продукта А и х2 единиц продукта В, то есть, целевая переменная Z составит:

Николай стремится максимизировать этот показатель. Таким образом, целевая функция в нашей модели:

Максимизировать Z = 2500 * х1 + 3500 *х2

Этап. 3. Определение ограничений

Ограничения – это система линейных уравнений и/или неравенств, которые ограничивают величины искомых переменных. Они математически отражают доступность ресурсов, технологические факторы, условия маркетинга и иные требования. Ограничения могут быть трех видов: «меньше или равно», «больше или равно», «строго равно».

В нашем примере для производства продуктов А и В необходимо время машинной обработки, сырье и труд, и доступность этих ресурсов ограничена. Объемы производства этих двух продуктов (то есть значения х1 их2) будут, таким образом, ограничены тем, что количество ресурсов, необходимых в производственном процессе, не может превышать имеющееся в наличии. Рассмотрим ситуацию со временем машинной обработки. Изготовление каждой единицы продукта А требует трех часов машинной обработки, и если изготовлено х1, единиц, то будет потрачено З * х1, часов этого ресурса. Изготовление каждой единицы продукта В требует 10 часов и, следовательно, если произведено х2 продуктов, то потребуется 10 * х2 часов. Таким образом, общий объем машинного времени, необходимого для производства х1 единиц продукта А и х2 единиц продукта В, составляет 3 * х1 + 10 * х2. Это общее значение машинного времени не может превышать 330 часов. Математически это записывается следующим образом:

Аналогичные соображения применяются к сырью и труду, что позволяет записать еще два ограничения:

Наконец следует отметить, что существует условие, согласно которому должно быть изготовлено не менее 12 единиц продукта В:

Этап 4. Запись условий неотрицательности

Искомые переменные не могут быть отрицательными числами, что необходимо записать в виде неравенств х1 ≥ 0 и х2 ≥ 0. В нашем примере второе условия является избыточным, так как выше было определено, что х2 не может быть меньше 12.

Полная модель линейного программирования для производственной задачи Николая может быть записана в виде:

Максимизировать: Z = 2500 * х1 + 3500 *х2

При условии, что: 3 * х1 + 10 * х2 ≤ 330

Рассмотрим графический метод решения задачи линейного программирования.

Этот метод подходит только для задач с двумя искомыми переменными. Модель, построенная выше, будет использована для демонстрации метода.

Оси на графике представляют собой две искомые переменные (рис. 2). Не имеет значения, какую переменную отложить вдоль, какой оси. Важно выбрать масштаб, который в конечном итоге позволит построить наглядную диаграмму. Поскольку обе переменные должны быть неотрицательными, рисуется только I-й квадрант.

Рис. 2. Оси графика линейного программирования

Рассмотрим, например, первое ограничение: 3 * х1 + 10 * х2 ≤ 330. Это неравенство описывает область, лежащую ниже прямой: 3 * х1 + 10 * х2 = 330. Эта прямая пересекает ось х1 при значении х2 = 0, то есть уравнение выглядит так: 3 * х1 + 10 * 0 = 330, а его решение: х1 = 330 / 3 = 110

Аналогично вычисляем точки пересечения с осями х1 и х2 для всех условий-ограничений:

Технология решения задач оптимизации в Excel

Постановка задачи оптимизации

Основной целью экономики является рациональное функционирование хозяйствующих субъектов или, иначе говоря, оптимальная деятельность при ограниченных ресурсах. Поэтому в экономической области существует широкий класс задач оптимизации, или, как их еще называют, экстремальных задач. В задачах оптимизации вычисляются значения параметров некоторой функции

при которых она принимает экстремальное значение (максимальное или минимальное) и при условии, что на эти параметры наложены ограничения.
Эту функцию называют целевой функцией, а набор количественных значений между переменными, выражающих определенные требования к параметрам экономической задачи в виде уравнений или неравенств называют системой ограничений.
Совокупность соотношений, содержащих целевую функцию и ограничения на ее аргументы, называют математической моделью экономической задачи оптимизации.
Если целевая функция линейна и на ее аргументы наложены линейные ограничения, то такую задачу оптимизации называют задачей линейного программирования.
Существуют различные методы решения задач линейного программирования. В MS Excel для этой цели предназначен инструмент Поиск решения. Принцип его работы заключается в использовании итерационного способа подбора параметров целевой функции в сочетании с градиентным методом. Применение этого инструмента позволяет решать задачи оптимизации с высокой точностью. Технологическая последовательность решения задачи включает следующие шаги:

Читать еще:  Основные элементы оптимизационной модели

1. На основе постановки задачи и уяснения ее экономической сути, разрабатывается математическая модель, аналитически представляющая целевую функцию и функции ограничений.

2. Ввод исходных данных и формул, реализующих математическую модель в электронную таблицу.

3. Настройка параметров инструмента Поиск решения и его применение для решения задачи.

Оптимальный план выпуска продукции

Покажем последовательность решения задачи линейного программирования на простом примере.

Пример . Фирма производит два вида мороженого: сливочное и шоколадное. Для изготовления мороженого используются два исходных продукта: молоко и наполнители, расходы которых на 1 кг готового продукта и их суточные запасы приведены в таблице.

Суточный спрос на сливочное мороженое превышает спрос на шоколадное не более чем на 100 кг. Кроме того известно, что спрос на шоколадное мороженое не превышает 350 кг в сутки. Отпускная цена 1 кг сливочного мороженого 16 ден. ед., шоколадного – 14 ден. ед.

Требуется определить в каком количестве мороженого каждого вида должна производить фирма, чтобы доход от реализации продукции был максимальным.

Шаг 1 – разработка математической модели

Введем обозначения: x1 – суточный объем производства сливочного мороженого, х2 — суточный объем производства шоколадного мороженого. Исходя из условия задачи целевая функция будет иметь вид

Решение задач оптимизации в Microsoft Excel 2003

Курс дистанционного обучения:
«Экономическая информатика»
Модуль 2 (2,5 кредита): Прикладное программное обеспечение офисного назначения

Тема 2.1. Обработка текстовой информации

Тема 2.2. Процессоры электронных таблиц

Тема 2.3. Программные средства презентаций и основы офисного программирования

Тема 2.4. Системы управления базами данных и экспертные системы

2.4.11. Учебная база данных с главной кнопочной формой «Training_students» — Скачать

2.2. Процессоры электронных таблиц

2.2.7. Решение уравнений и задач оптимизации

Для решения задач оптимизации широкое променение находят различные средства Excel.

В этом разделе рассмотрим команды:

  1. Подбор параметров для нахождения значения, приводящего к требуемому результату.
  2. Надстройку Поиск решения для расчета оптимальной величины по нескольким переменным и ограничениям;
  3. Диспетчер сценариев для создания и оценки наборов сценариев «что – если» с несколькими вариантами исходных данных.

Подбор параметров

Основной командой для решения оптимизационных задач в Excel является команда Сервис/Подбор параметра. Эта команда определяет неизвестную величину, приводящую к требуемому результату.

Если команда Подбор параметра отсутствует в меню Сервис, выполните команду Сервис/Надстройка и установите флажок Пакет анализа в окне диалога Надстройка

Для работы с командой Подбор параметра необходимо подготовить лист, чтобы в листе находились:

  • формула для расчета;
  • пустая ячейка для искомого значения;
  • другие величины, которые используются в формуле.

Ссылка на пустую ячейку должна обязательно присутствовать в формуле, так как именно она является переменной, значение которой ищет Excel.

Во время подбора параметра в переменную ячейку непрерывно заносятся новые значения, пока не будет найдено решение поставленной задачи.

Такой процесс называется итерацией, и продолжается он до тех пор, пока редактор не выполнит 100 попыток или не найдет решения, лежащее в пределах точности 0,001 от точного значения (настройка этих параметров осуществляется с помощью команды Сервис/Параметры, вкладка Вычисления)

Оптимизация с помощью команды Подбор параметров выполняется так:

1. Создайте лист, например, с формулой =B1*B2 в ячейке B3, пустой (переменной) ячейкой (B2) и другими данными (B1), которые могут понадобиться при вычислениях. Например, необходимо определить количество книг по цене 23,75 грн., которые необходимо продать, чтобы объем продаж составил 10000,00 грн.

2. Выделите ячейку листа (B3), в которой содержится формула (эта ячейка появится в поле «Установить в ячейке» в окне диалога Подбор параметра). Выполните команду Сервис/Подбор параметра. Открывается окно диалога Подбор параметра.

3. Введите в текстовое поле Значение число, соответствующее объему продаж — 10000. Переместите курсор в текстовом поле Изменяя значения ячейки. Выделите ту ячейку, в которой должен содержаться ответ (переменная ячейка). Ее содержимое будет подобрано и подставлено в формулу командой Подбор параметра. Выделенная ячейка (B2) выделяется на листе рамкой. Нажмите кнопку ОК, чтобы найти решение.

После завершения итерационного цикла в окне диалога Результат подбора параметра появляется сообщение, а результат заносится в ячейку листа. Решение показывает, что для достижения объема продаж 10000 грн. необходимо продать 421 книгу по цене 23,75 грн. Для закрытия окна диалога Результат подбора параметра щелкните на кнопке ОК.

Команда Поиск решения

Для решения сложных задач, требующих применения линейного и нелинейного программирования, а также методов исследования операций применяется надстройка — Поиск решения. Чтобы использовать надстройку Поиск решения не обязательно знать методы программирования и исследования операций, но необходимо определять, какие задачи можно решать этими методами.

Пользователь должен уметь с помощью диалоговых окон надстройки Поиск решения правильно сформулировать условия задачи, и если решение существует, то “Поиск решения” отыщет его. В основе надстройки лежат итерационные методы.

В том случае, когда оптимизационная задача содержит несколько переменных величин, для анализа сценария необходимо воспользоваться надстройкой Поиск решения. “Поиск решения” позволяет использовать одновременно большое количество изменяемых ячеек (до 200) и задавать ограничения для изменяемых ячеек.

Общие свойства, которые характерны для задач, решаемых с помощью надстройки Поиск решения:

  1. Существует единственная целевая ячейка, содержащая формулу, значение которой должно быть сделано максимальным, минимальным или же равным, какому-то конкретному значению.
  2. Формула в этой целевой ячейке содержит ссылки на ряд изменяемых ячеек. Поиск решения заключается в том, чтобы подобрать такие значения переменных в изменяемых ячейках, которые бы обеспечили оптимальное значение для формулы в целевой ячейке.
  3. Может быть задано некоторое количество ограничений — условий или соотношений, которым должны удовлетворять некоторые из изменяемых ячеек.

Первым шагом при работе с командой Поиск решения является создание специализированного листа. Для этого необходимо создать целевую ячейку, в которую вводится основная формула.

Кроме того, лист может включать другие значения и формулы, использующие значения целевой и переменных ячеек. Формула в целевой ячейке должна опираться в вычислениях на значения переменных ячеек.

После того, как задача оптимизации будет подготовлена на листе, можно приступать к работе:

  1. Выделите на листе целевую ячейку, в которую введена формула.
  2. Выполните команду Сервис/Поиск решения. Открывается окно диалога Поиск решения (Рис. 3.). Поскольку была выделена ячейка, в текстовом поле «Установить целевую ячейку» появится правильная ссылка на ячейку. В группе «Равной» переключатель по умолчанию устанавливается в положение «Максимальному значению».
  3. Перейдите к полю «Изменяя ячейки» и введите переменные ячейки листа.
  4. Добавьте ограничения на переменные в изменяемых ячейках. Для ввода ограничений нажмите кнопку Добавить, чтобы задать первое ограничение в окне диалога, затем можно ввести второе, третье и т.д.
  5. Когда оптимизационная задача будет готова к выполнению, можно нажать кнопку Выполнить для получения ответа. Появится окно диалога с описанием результатов процесса оптимизации.
  6. Чтобы отобразить найденное решение в ячейках листа, установите переключатель «Сохранить найденное решение» и нажмите кнопку ОК. Найденная максимальная величина помещается в целевую ячейку, а переменные ячейки заполняются оптимальными значениями переменных, которые удовлетворяют установленным ограничениям.
Читать еще:  Как отключить оптимизацию на андроиде

Диспетчер сценариев «что – если»

При работе с командами Подбор параметра и Поиск решения не существует удобного способа сравнения результатов вычислений – при каждом изменении данных предыдущее значение пропадает.

Чтобы устранить эти ограничения, разработчики Excel создали Диспетчер сценариев, помогающий работать с несколькими моделями «что – если». Командой Сервис/Сценарии можно создавать новые и просматривать существующие сценарии для решения задач, и отображать консолидированные отчеты.

Создание сценария

Сценарием называется модель «что – если», в которую входят переменные ячейки, связанные одной или несколькими формулами. Перед созданием сценария необходимо спроектировать лист так, чтобы на нем была хотя бы одна формула, зависящая от ячеек, которые могут принимать различные значения. Например, может возникнуть потребность в сравнении лучшего и худшего сценариев.

Создание сценариев происходит следующим образом:

  1. Выполните команду Сервис/Сценарии. Открывается изображение окна диалога Диспетчер сценариев.
  2. Нажмите кнопку Добавить, чтобы создать первый сценарий. Откроется окно диалога Добавление сценария.
  3. Введите Лучший вариант (или любое другое имя) в поле Название сценария, затем с помощью окон диалога введите изменяемые ячейки. Когда этот сценарий будет готов, введите следующий.
  4. Нажмите кнопку Добавить, чтобы создать второй сценарий. Введите название Худший вариант. После завершения создания двух сценарием можно приступить к просмотру результатов.
  5. Закройте окно диалога Диспетчер сценариев кнопкой Закрыть.

Просмотр сценария

Excel сохраняет сценарии вместе с листом текущей книги, и просмотр их командой Сервис /Сценарии возможен только при открытии данного листа. Просмотр сценария выполняется следующим образом:

  1. Выполните команду Сервис/Сценарии. Открывается окно диалога.
  2. Выберите из списка сценарий для просмотра.
  3. Нажмите кнопку Вывести. Excel заменяет содержимое ячеек листа значениями из сценария и отображает результаты на листе.
  4. Выберите из списка другие сценарии и воспользуйтесь кнопкой Вывести для сравнения результатов моделей «что – если». После завершения нажмите кнопку Закрыть. Значения последнего активного сценария остаются в ячейках листа.

Создание отчетов по сценарию

Сравнивать различные сценарии можно, переходя от сценария к сценарию с помощью кнопки показать в окне диалога Диспетчер сценариев, но иногда возникает необходимость в создании отчета с обобщенной информацией о различных сценариях листа.

Эту задачу можно выполнить с помощью кнопки Отчет в окне диалога Диспетчер сценариев. Созданный сводный отчет будет автоматически отформатирован и скопирован на новый лист текущей книги.

Создание отчета по сценарию происходит следующим образом:

Учебный проект «Решение оптимизационных задач методами линейного программирования»

Как организовать дистанционное обучение во время карантина?

Помогает проект «Инфоурок»

«РЕШЕНИЕ ОПТИМИЗАЦИОННЫХ ЗАДАЧ

МЕТОДАМИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ»

2017 – 2018 учебный год

Руководитель проекта: Бруханская Елена Александровна, учитель математики

Цель проекта: решение производственной и транспортной оптимизационных задач методами линейного программирования.

1. Теоретическая часть исследования

2. Постановка и решение задачи минимизации транспортных расходов

3. Постановка и решение задачи максимизации прибыли

1. Теоретическая часть

На протяжении всей своей эволюции человек, совершая те или иные деяния, стремился вести себя таким образом, чтобы результат, достигаемый как следствие некоторого поступка, оказался в определенном смысле наилучшим. Двигаясь из одного пункта в другой, он стремился найти кратчайший среди возможных вариантов путь. Строя жилище, он искал такую его геометрию, которая при наименьшем расходе топлива, обеспечивала приемлемо комфортные условия существования. Занимаясь строительством кораблей, он пытался придать им такую форму, при которой вода оказывала бы наименьшее сопротивление.

Поиски оптимальных решений привели к созданию специальных математических методов и уже в 18 веке были заложены математические основы оптимизации (вариационное исчисление, численные методы и другие). Однако до второй половины 20 века методы оптимизации во многих областях науки и техники применялись очень редко, поскольку практическое использование математических методов оптимизации требовало огромной вычислительной работы, которую без ЭВМ реализовать было крайне трудно, а в ряде случаев — невозможно.

В настоящее время оптимизация находит применение в науке, технике и в любой другой области человеческой деятельности. Оптимизация — целенаправленная деятельность, заключающаяся в получении наилучших результатов при соответствующих условиях.

Наилучшие в определенном смысле решения задач принято называть оптимальными. Без использования принципов оптимизации в настоящее время не решается ни одна более или менее сложная проблема.

Постановка задачи на оптимизацию и ее решение включает в себя ряд этапов:

— выбор и обоснование цели оптимизации;

— согласование цели с имеющимися возможностями, т.е. учет ограничений;

— реализация способа достижения цели при учете ограничений.

Выбор и обоснование цели оптимизации предусматривают определение критериев качества, которые наиболее полно отражали бы цели оптимизации. Этот этап является одним из основных, так как от правильности выбора критерия качества зависит решение задачи в целом.

В таких задачах, как правило, выделяют два аспекта:

1) Ограничения — это то, что ограничивает наши решения. Как правило, ограничения записываются в виде равенств или неравенств.

2) Ц елевая функция — это некоторое числовое значение, которое показывает, насколько хорошо мы решили задачу. Целевую функцию, нужно «минимизировать», если необходимо достичь наименьшего значения величины, например, найти самый короткий маршрут или уменьшить расходы. Иногда наоборот, целевую функцию необходимо максимизировать, сделать как можно больше — например, если целевая функция это прибыль предприятия от продажи товаров. Таким образом, задача оптимизации сводится к нахождению экстремума целевой функции.

Как правило, такие задачи приходят к нам именно из жизни. Среди самых распространенных задач оптимизации, пришедших из жизни можно выделить следующие.

Производственная задача — существует некоторое предприятие, которое может выпускать некоторые изделия. На то, чтобы их выпустить, необходимы различные ресурсы. Задано, сколько и каких ресурсов необходимо для каждого изделия, задано, сколько ресурсов у нас имеется, и задано, сколько предприятие выручит за продажу произведенных изделий. Необходимо выбрать, какие изделия, и в каком количестве выпускать, чтобы прибыль предприятия была максимальной.

Транспортная задача — существуют несколько предприятий, производящих некий ресурс, и существуют предприятия, которые его потребляют. Задано сколько единиц ресурса производит или потребляет каждое предприятие. Задано расстояние между каждым поставщиком и каждым потребителем ресурса. Необходимо перевезти ресурс от поставщиков к потребителям, чтобы при этом затратить как можно меньше бензина (то есть, проехать как можно меньше километров)

Задача об инвестициях — существует некоторое количество предприятий, в которые можно вложить инвестиции. Задана максимальная сумма инвестиций, и задана прибыль, которую можно получить, если вложить некоторое количество денег в какое-либо предприятие. Необходимо выбрать, сколько денег вложить в каждое предприятие, чтобы итоговая прибыль была максимальной

Задача о назначениях — существует некоторое количество людей, и некоторое количество работ, которые необходимо выполнить. Задано, какую стоимость нужно будет заплатить каждому человеку за выполнение каждой работы. Необходимо выбрать, какому человеку какую работу дать, чтобы все работы были выполнены, и необходимо было заплатить как можно меньше

Задача коммивояжера — существует некоторое количество городов, и указаны все расстояния между городами. Некому «коммивояжеру» необходимо посетить все города по одному разу (не заходя в один город дважды), при этом ему нужно передвигаться как можно меньше

Задача о ранце — существует некий ранец заданного объема. Также существует набор предметов, для каждого из которых задан их объем, и стоимость. Необходимо так наполнить ранец, чтобы все предметы в него влезли по объему, и их стоимость была максимальной

Задачи математического программирования делятся на два больших класса:

1. Если в задаче, как ограничения, так и целевая функция представляют собой линейные функции, то есть, многочлены первой степени, то такая задача называется задачей линейного программирования .

2. Если в задаче либо ограничения, либо целевая функция (либо и то, и другое) выражены в каком-либо другом виде, то данная задача называется задачей нелинейного программирования .

Читать еще:  Оптимизация батареи android

Первые постановки задач линейного программирования были сформулированы известным советским математиком Л. В. Канторовичем, которому за эти работы была присуждена Нобелевская премия по экономике.

Значительное развитие теория и алгоритмический аппарат линейного программирования получили с изобретением и распространением ЭВМ и формулировкой американским математиком Дж. Данцингом симплекс-метода.

В настоящее время линейное программирование является одним из наиболее употребительных аппаратов математической теории оптимального принятия решения.

Линейное программирование — один из первых и наиболее подробно изученных разделов математического программирования. Именно линейное программирование явилось тем разделом, с которого начала развиваться сама дисциплина «математическое программирование». Термин «программирование» в названии дисциплины ничего общего с термином «программирование (т.е. составление программ) для ЭВМ» не имеет, так как дисциплина «линейное программирование» возникла еще до того времени, когда ЭВМ стали широко применяться при решении математических, инженерных, экономических и других задач. Термин «линейное программирование» возник в результате неточного перевода английского «linear programming». Одно из значений слова «programming» — составление планов, планирование. Следовательно, правильным переводом «linear programming» было бы не «линейное программирование», а «линейное планирование», что более точно отражает содержание дисциплины. Однако, термин линейное программирование, нелинейное программирование и т.д. в нашей литературе стали общепринятыми.

Линейное программирование возникло после Второй мировой войны и стало быстро развиваться, привлекая внимание математиков, экономистов и инженеров благодаря возможности широкого практического применения.

Можно сказать, что линейное программирование применимо для построения математических моделей процессов, в основу которых может быть положена гипотеза линейного представления реального мира: экономических задач, задач управления и планирования, оптимального размещения оборудования и других.

Задачами линейного программирования называются задачи, в которых линейны как целевая функция, так и ограничения в виде равенств и неравенств. Кратко задачу линейного программирования можно сформулировать следующим образом: найти вектор значений переменных, доставляющих экстремум линейной целевой функции при m ограничениях в виде линейных равенств или неравенств.

Мы рассмотрим две оптимизационные задачи, решаемые методами линейного программирования: задачу минимизации транспортных расходов и задачу максимизации прибыли.

Основные этапы решения оптимизационной задачи:

Постановка задачи (сбор исходной информации, составление математической модели)

Решение задачи (выбор метода решения, выполнение вычислений)

2. Задача минимизации транспортных расходов

2.1. Постановка задачи.

Основные методы решения распределительных задач, в частности линейного программирования, построены на допущении, что объёмы, имеющихся в наличии ресурсов (а i ), требуемые объёмы ( b j ) и затраты (с i , j ) точно известны.

В нашем случае транспортная задача ставится следующим образом: имеется три пункта отправления (базы) А 1 , А 2 , А 3, на которых сосредоточены запасы однородного товара в количестве соответственно 250, 400 и 350 условных единиц. Имеется пять пунктов потребления В 1 , В 2 , В 3 , В 4 и В 5 , подавшие заявки соответственно на 300, 160, 220, 180 и 140 единиц товара. Известны стоимости С i , j перевозки единицы товара от каждого пункта отправления А i до каждого пункта назначения В j

Требуется составить такой план перевозок (откуда, куда и сколько единиц поставить), чтобы

— вывезти весь хранящийся на базах запас товара;

— все заявки были выполнены.

2.2. Решение задачи

Построим математическую модель транспортной задачи.

Обозначим через x ij количество товара, направляемого из пункта А i в пункт В j ( i = 1,2,3; j = 1,2,3,4,5). Таким образом, в задаче имеется 3 x 5 оптимизируемых переменных, и план в транспортной задаче имеет вид

Составим уравнения, определяющие множество допустимых планов. План х = (х 11 , х 12 ,…, х 35 ) является допустимым, если он обеспечивает вывоз всего хранящегося на базах товара:

и удовлетворяет заявки всех магазинов:

где все оптимизируемые переменные х ij ≥ 0.

Построим критериальную функцию.

Из двух допустимых планов транспортной задачи лучшим считается тот, которому соответствуют меньшие транспортные издержки (общая стоимость перевозки товаров из мест хранения в места потребления). Таким образом, критериальной функцией является функция:

Получили следующую задачу математического программирования:

Условия транспортной задачи зададим транспортной таблицей.

Методы решения оптимизационных задач

Методы решения оптимизационных задач могут быть различными.

Существует две группы методов для решения подобных задач: точные методы (прямого перебора, динамического программирования ветвей и границ) и приближенные методы (метод множителей Лагранжа, градиентный метод).

Точные методы громоздки, особенно метод прямого перебора. Поэтому используются алгоритмы сокращенного перебора, базирующиеся главным образом на методе динамического программирования, который предусматривает проведение пошаговой оптимизации. Для высоконадежных систем, к которым относится электроэнергетическое оборудование, в ряде случаев можно использовать приближенные методы. Они дают достаточно точные результаты.

Метод отыскания относительного экстремума функции нескольких переменных, разработанный Лагранжем, основан на принципах вариационного исчисления и может быть использован при определении оптимальных режимов электроэнергетических установок, оптимизации расхода тех или иных ресурсов и в других случаях.

Однако в основе решения большинства оптимизационных задач с помощью ЭВМ лежит процесс итерации, т. е. метод последовательного приближения, под которым подразумевается пошаговое движение от произвольно выбранного начального значения неизвестных к корням заданных уравнений. Метод итерации обладает ценным свойством самоисправления, так как любое ошибочно найденное приближенное решение можно рассматривать как новый начальный вектор.

Итерационный процесс лежит в основе методов прямого поиска экстремума. Методы прямого поиска предполагают сравнение величины целевой функции при различных сочетаниях независимых переменных. Во многих задачах количество этих переменных может быть большим, поэтому при использовании ЭВМ с целью сокращения объема памяти стремятся к уменьшению количества необходимых вычислений.

Методы прямого поиска широко используются на практике. Применяя их, можно решать задачи по выбору конфигурации электрических сетей, определению места расположения трансформаторных подстанций, определению мощности трансформаторных подстанций, при выборе точек размыкания линий с двухсторонним питанием, для решения задач оптимального резервирования электроустановок и т. д.

Общая идея решения задачи методами прямого поиска заключается в следующем. Выбираются независимые переменные и выражение целевой функции. В определенной последовательности делаются приращения (положительные или отрицательные) независимым переменным и определяется значение целевой функции. При этом такие направления изменения независимых переменных, при которых значение целевой функции приближается к экстремуму (например, к минимуму). Решение можно считать законченным, когда изменение любой из независимых переменных приводит к удалению целевой функции от экстремума.

Рассмотрим некоторые из вариантов поиска экстремума градиентным методом.

Метод крутого восхождения (метод Бокса-Уилсона). Метод крутого восхождения (спуска) удобно интерпретировать с человеком с завязанными глазами, находящимся на склоне горы, которому необходимо достигнуть вершины (или подножия) кратчайшим путем. Для этого он должен оценить ситуацию, сделав поочередно во всех четырех направлениях по шагу, чтобы выбрать направление движения. После этого он может двигаться в нужном направлении. Достигнув вершины (подножия), человеку необходимо вновь проверить правильность достижения цели путем поочередной оценки крутизны склона во все четыре стороны, сделав по одному шагу.

Рассматриваемый метод можно применить, например, к поиску оптимума при проведении многофакторного эксперимента.

Полученное уравнение регрессии описывает небольшой участок поверхности отклика. Величины коэффициентов регрессии при линейных членах дают необходимое представление о пропорции, в которой следует менять факторы, чтобы достичь оптимума.

Бокс и Уилсон показали, что при наличии серии опытов, проведенных таким образом, что в каждом последующем варианте содержание X! и х2 (например при двухфакторном эксперимента) пропорционально произведению коэффициентов регрессии данного фактора на величину его единицы варьирования, то такое движение по поверхности отклика и будет кратчайшим в зоне оптимума.

Рассмотрим конкретный пример.

Пример 2.1. Для описания выходной координаты на небольшом участке поверхности отклика был поставлен полный факторный эксперимент с нулевым уровнем в точках хх = 4 и х2 = 3. Единицы варьирования были выбраны Уравнение регрессии получено в следующем виде

Решение. 1. По результатам эксперимента мы имеем:

2. В качестве «шага» выберем величину ОДЬ^. В этом случае план крутого восхождения будет вычисляться следующим образом.

Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector