Лаб_ММ_ЛП

реклама
Математическая постановка задач оптимизации
Виды ограничений
Несмотря на то, что прикладные задачи оптимизации относятся к совершенно разным областям, они имеют общую форму. Все эти задачи можно
классифицировать как задачи минимизации вещественнозначной функции
f(x)
N-мерного векторного аргумента x=(x1, x2,..., xn), компоненты которого удовлетворяют системе уравнений hk(x)=0, набору неравенств gi(x) ≥0, а также
ограничены сверху и снизу, т.е. xi(u) ≥xi ≥xi(l). В последующем изложении
функцию f(x) будем называть целевой функцией, уравнения hk(x)=0 - ограничениями в виде равенств, а неравенства gi(x) ≥0 – ограничениями в виде неравенств. При этом предполагается, что все фигурирующие в задаче функции
являются вещественнозначными, а число ограничений конечно.
Задача общего вида:
минимизировать f(x)
при ограничениях
hk(x)=0, k=1, ..., K,
gj(x)≥ 0 j=1, ..., J,
xi(u) ≥xi ≥xi(l), i=1, ..., N
называется задачей оптимизации с ограничениями или задачей условной оптимизации. Задача, в которой нет ограничений, т.е.
J=K=0;
xi(u)= - xi(l) = ∞, i=1, ..., N,
называется оптимизационной задачей без ограничений или задачей безусловной оптимизации.
Классификация задач математического программирования
1
Методы и модели линейного программирования
В настоящее время большое число задач планирования и управления в
различных отраслях хозяйствования, а также множество частных прикладных
задач решаются методами математического программирования1. Наиболее
развитыми в области решения оптимизационных задач являются методы линейного программирования, позволяющие описать с достаточной точностью
широкий круг задач коммерческой деятельности, таких, как, например, планирование товарооборота, размещение розничной торговой сети города, планирование товароснабжения города, организация рациональных перевозок
груза (транспортная задача), организация рациональных закупок продуктов
питания (задача о диете), распределение работников торговли по должностям
(задача о назначении), распределение ресурсов, планирование капиталовложений, замена торгового оборудования.
В ЗЛП критерий эффективности и функции в системе ограничений являются линейными.
Использование методов математического программирования (планирования) в коммерческой деятельности связано со сбором необходимой информации коммерсантом, экономистом, финансистом, затем постановкой задачи
вместе с математиком. Так как многие методы математического программирования уже реализованы на компьютере в виде стандартных программ, то
доступ к получению решения обычно прост и не составляет особых трудностей.
Общая постановка задачи линейного программирования
Общая ЗЛП имеет вид:
f(X)=∑𝑛𝑗=1 𝑐𝑗 𝑥𝑗 → max(𝑚𝑖𝑛);
(1)
̅̅̅̅̅
∑𝑛𝑗=1 𝑎𝑖𝑗 𝑥𝑗 ≤ 𝑏𝑗 , i=1,
𝑘;
(2)
̅̅̅̅̅̅̅̅̅̅̅
∑𝑛𝑗=1 𝑎𝑖𝑗 𝑥𝑗 = 𝑏𝑗 , i=𝑘
+ 1, 𝑚;
(3)
̅̅̅̅̅
𝑥𝑗 ≥ 0, j=1,
𝑛,
(4)
где aij, bi, cj –коэффициенты задачи линейного программирования.
1
Слово "программирование" заимствованно из зарубежной литературы и попросту означает "планирование"
2
Необходимо найти такое решение X=(x1, x2, …., xn), удовлетворяющее
ограничения (2) и (3); условию неотрицательности (4), при котором целевая
функция (1) принимает оптимальное значение (т.е. максимальное или минимальное).
Стандартная задача ЛП состоит в определении оптимального значе̅̅̅̅̅̅
ния целевой функции (1) при выполнении условий (2) при i=1,
𝑚 и (4).
Каноническая задача ЛП состоит в определении максимального значе̅̅̅̅̅̅
ния целевой функции (1) при выполнении условий (3) при i=1,
𝑚 и (4).
Любая задача ЛП может быть сведена к канонической, стандартной или
общей задаче.
Построение экономико-математических моделей
Рассмотрим процесс построения задач ЛП. Сначала представим алгоритм построения экономико-экономической модели.
Процесс построения экономико-экономической модели задачи (т.е. запись с помощью математических символов) начинается с разбора описанной
в условии экономической ситуации. Для этого необходимо, с точки зрения
экономики, а не математики, ответить на следующие вопросы:
1. Что является искомыми величинами задачи?
2. Какова цель решения? Какой параметр служит критерием эффективности (оптимальности) решения, например прибыль, себестоимость, время и т.д. В каком направлении должно изменяться значение этого параметра (к максимуму или к минимуму) для достижения наилучших
результатов?
3. Какие условия в отношении искомых величин и ресурсов задачи должны быть выполнены? Эти условия устанавливают, как должны соотноситься друг с другом различные параметры задачи, например, количество ресурса, затраченного при производстве, и его запас на складе; количество выпускаемой продукции и ёмкость склада, где она будет храниться; количество выпускаемой продукции и рыночный спрос на эту
продукцию и т.д.
Только после ответа на все эти вопросы можно приступить к записи
полученных ответов в математическом виде, т.е. записи математической
модели.
3
Искомые величины являются переменными задачи (внутренние параметры), которые, как правило, обозначаются малыми латинскими буквами с
индексами. Например, однотипные переменные удобно представлять в виде
X=(x1, x2, …., xn).
Цель решения записывается в виде целевой функции, обозначаемой
F(X). Математическая формула целевой функции F(X) отражает способ расчёта значений параметра (выходного параметра системы) – критерия эффективности.
Условия, налагаемые на переменные и ресурсы задачи, записываются в
виде системы равенств или неравенств, т.е. ограничений. Левые и правые части ограничений отражают способ получения (расчёт или численные значения, взятые из условия задачи) значений тех параметров задачи, на которые
были наложены соответствующие условия.
В процессе записи математической модели необходимо указывать единицы измерения переменных задачи, целевой функции и всех ограничений.
Задача технического контроля
В отделе технического контроля (ОТК) некоторой фирмы работают
контролеры 1 и 2 разрядов. Норма выработки ОТК за 8 – часовой рабочий
день составляет не менее 1800 изделий. Контролер разряда 1 проверяет 25
изделий в час, причем не ошибается в 98% случаев. Контролер разряда 2
проверяет 15 изделий в час; его точность составляет 95%.
Заработная плата контролера разряда 1 равна 4 руб. в час, контролер
разряда 2 получает 3 руб. в час. При каждой ошибке контролера фирма несет
убыток в размере 2 руб. Фирма может использовать 8 контролеров разряда 1
и 10 контролеров разряда 2. Руководство фирмы хочет определить оптимальный состав ОТК, при котором общие затраты на контроль будут минимальны.
Построим модель задачи, используя представленную выше методику.
Пусть x1 и x2 обозначают количество контролеров разрядов 1 и 2 соответственно. Число контролеров каждого разряда ограничено, т.е. имеются
следующие ограничения:
x1 ≤8 (разряд 1),
x2≤10 (разряд 2).
Ежедневно необходимо проверять не менее 1800 изделий. Поэтому выполняется неравенство
8×25×x1+8×15×x2=200x1+1200x2 ≥1800,
4
или 5x1+3x2≥45.
При построении целевой функции следует иметь в виду, что расходы
фирмы, связанные с контролем, включают две составляющие: 1) зарплату
контролеров и 2) убытки, вызванные ошибками контролеров. Расходы на одного контролера разряда 1 составляют
4 руб.+2×25×0,02=5 руб./ч.
Расходы на одного контролера разряда 2 равны
3 руб.+2×15×0.05=4,50 руб./ч.
Следовательно, минимизирующая целевая функция, выражающая ежедневные расходы на контроль, имеет вид
F(X)=8×(5x1+4.50x2)= 40x1+36x2→min.
Можно сформулировать следующую задачу:
минимизировать F(X)=40x1+36x2
(5)
при ограничениях:
x1≤8, x2≤10,
5×x1+3×x2≥45,
(6)
x1≥0, x2≥0.
Методы и приёмы решения задач ЛП
Геометрический метод
Графический метод решения задач ЛП имеет ограниченную область
применения, так как этот метод используется для задач ЛП с двумя переменными, в котором ограничения выражены неравенствами. Графический метод
довольно прост и нагляден, он основан на геометрическом представлении
допустимых решений и целевой функции задачи.
Каждое из неравенств в системе ограничений ЗЛП определяет на координатной плоскости X10X2 некоторую полуплоскость, а система неравенств в
целом – пересечение соответствующих плоскостей. Множество точек пересечения данных полуплоскостей называется областью допустимых решений
(ОДР, многоугольник решений), ОДР всегда представляет собой выпуклую
фигуру, т.е. обладает следующим свойством: если две точки А и В принадлежат этой фигуре, то и весь отрезок АВ принадлежит ей. ОДР графически
может быть представлена выпуклым многоугольником, неограниченной выпуклой многоугольной областью, отрезком, лучом, одной точкой. В случае
несовместимости ограничений задачи ОДР является пустым множеством.
Рассмотрим следующую задачу:
F(X)=c1x1+c2x2 → max(min)
̅̅̅̅̅̅
ai1x1+ai2x2≤bi, i=1,
𝑚;
5
x1≥0; x2≥0.
Алгоритм решения ЗЛП графическим методом выглядит следующим
образом.
Шаг 1. Строят многоугольник решений (ОДР):
 на плоскости строятся прямые, уравнения которых получаются в результате замены в ограничениях знаков неравенств на знаки равенств,
т.е.
̅̅̅̅̅̅
ai1x1+ai2x2=bi, i=1,
𝑚;
 находят полуплоскости, определяемые каждым из ограничений задачи.
Для этого в конкретное неравенство подставляется координаты какойлибо точки (например, (0;0)) и проверяется истинность полученного
неравенства. Если неравенство истинное, то надо заштриховать полуплоскость, содержащую данную точку; в противном случае надо заштриховать полуплоскость, не содержащую эту точку.
Замечание. Так как x1 и x2 должны быть неотрицательными, то их допустимые значения всегда будут находиться выше оси x1и правее оси x2, т.е.
в I квадранте;
Определяют ОДР как часть плоскости, принадлежащую одновременно
всем разрешённым областям, и выделяют её. При отсутствии ОДР задача не
имеет решений.
⃗ =(c1, c2), который указывает направление возШаг 2.Стоят вектор 𝑁
растания целевой функции.
Шаг 3. Стоят линию уровня (опорную линию) целевой функции пер⃗ =(c1, c2).
пендикулярно вектору 𝑁
Шаг 4. При поиске максимума целевой функции линия уровня пере⃗ =(c1, c2), при поиске минимума целевой
двигается в направлении вектора 𝑁
⃗ =(c1, c2). Последняя по ходу
функции линия – против направления вектора 𝑁
движения вершина ОДР (или сторона многоугольника решений) будет точкой максимума или минимума целевой функции (бесконечное число решений). Если такой точки (точек) не существует, то делается вывод о неограниченности целевой функции на множестве решений сверху (при поиске максимума) или снизу (при поиске минимума).
Шаг 5. Определяют координаты точки максимума (минимума) целевой
функции: Xopt=(x1opt, x2opt) и вычисляют значение целевой функции. Для вычисления координат оптимальной точки решают систему уравнения прямых,
на пересечении которых находится оптимальное решение.
Графическое решение задачи технического контроля
6
В этой задаче требуется найти значения переменных x1 и x2 , удовлетворяющие всем ограничениям и обеспечивающие минимальное значение
целевой функции. В качестве первого шага решения следует определить все
возможные неотрицательные значения переменных x1 и x2, которые удовлетворяют ограничениям. Например, координаты точки x1=8 и x2=10 положительны и для этой точки выполняются все ограничения. Такая точка называется допустимым решением. Множество всех допустимых решений называется допустимой областью. Решение задачи ЛП состоит в отыскании
наилучшего решения в допустимой области. Лучшее допустимое решение
задачи ЛП называется оптимальным. В рассматриваемом примере оптимальное решение представляет собой допустимое решение, минимизирующее целевую функцию 40x1+36x2. Значение целевой функции, соответствующее оптимальному решению, называется оптимальным значением задачи ЛП.
Для изображения допустимой области следует начертить графики всех
ограничений. Все допустимые решения лежат в первом квадранте, поскольку
значения переменных неотрицательны. В силу ограничения 5×x1+3×x245 все
допустимые решения (x1, x2) задачи располагаются по одну сторону от прямой, описываемой уравнением 5x1+3x2=45. Нужную полуплоскость можно
найти, проверив, удовлетворяет ли начало координат рассматриваемому
ограничению. Прямую 5x1+3x2=45 удобно провести, соединяя пару подходящих точек (например, x1=0, x2=15 и x1=9, x2=0).
Поскольку начало координат не удовлетворяет ограничению, нужная
полуплоскость отмечена стрелкой, направленной перпендикулярно прямой.
Аналогичным образом представлены ограничения x1 8 и x2 10. На рис.1 допустимая область (АВС) заштрихована. Ясно, что в допустимой области содержится бесконечное число допустимых точек. Нужно найти допустимую точку с наименьшим значением F(X).
7
Рис.1. Графическое решение задачи.
Если
заранее
зафиксировать
значение
целевой
функции
F(X)=40x1+36x2, то соответствующие ему точки будут лежать на некоторой
прямой. При изменении величины F(X) эта прямая подвергается параллельному переносу. Рассмотрим прямые линии, соответствующие различным
значениям F(X), имеющие с допустимой областью хотя бы одну общую точку. Начальное значение F(X) положим равным 600. При приближении прямой к началу координат значение F(X) уменьшается. Если прямая имеет хотя
бы одну общую точку с допустимой областью АВС, ее можно смещать в
направлении начала координат. Ясно, что для прямой, проходящей через угловую точку А с координатами х1=8, х2=1.6, дальнейшее движение невозможно. Точка А представляет собой наилучшую допустимую точку, соответствующую наименьшему значению F(X), равному 377.6. Следовательно,
Xopt=(8;1.6) или х1opt=8, х2opt=1.6 – оптимальное решение и F(Xopt)=377.6 – оптимальное значение рассматриваемой задачи линейного программирования.
Таким образом, при оптимальном режиме работы ОТК необходимо использовать восемь контролеров разряда 1 и 1.6 контролеров разряда 2. Дробное значение х2=1.6 соответствует использованию одного из контролеров
разряда 2 в течение неполного рабочего дня. При недопустимости неполной
загрузки контролеров дробное значение обычно округляют, получая приближенное оптимальное целочисленное решение х1opt=8, х2opt=2.
8
Симплекс-метод
Для решения задач ЛП был предложен симплекс-метод, разработанный
в 1947-1949 гг. американским математиком Дж. Данцигом. Идея состоит в
целенаправленном переборе вершин многогранника допустимых решений
(опорных планов) в направлении "улучшения" значений целевой функции.
Замечание. "Симплекс" в переводе с латинского значит "простейший"..
В многомерной геометрии симплексом называется геометрическое место точек, удовлетворяющих условиям
𝑛
∑ 𝑥𝑖 = 1,
𝑥𝑖 ≥ 0,
𝑖 = ̅̅̅̅̅
1, 𝑛.
𝑖=1
Симплекс-метод – это универсальный метод решения задач ЛП, представляющий собой итерационный процесс, который начинается с одного решения и в поисках лучшего варианта движется по угловым точкам области
возможных решений до тех пор, пока не достигнет оптимального значения;
поэтому другое название симплекс-метод – метод последовательного улучшения плана (решения).
9
Решение с использованием MS Excel
Как было сказано на предыдущем занятии для решения задач оптимизации в Excel имеется пакет "Поиск решения". Приведём алгоритм решения
задач линейного программирования в Excel.
1.
2.
3.
4.
5.
Шаг 1. Ввести условие задачи:
Создать экранную форму для ввода условия задачи (переменных, целевой функции, ограничений, граничных условий);
Ввести исходные данные в экранную форму (коэффициенты целевой
функции, коэффициенты при переменных в ограничениях, правые части ограничений);
Ввести зависимости из математической модели в экранную форму
(формулу для расчёта целевой функции, формулы для расчёта значений
левых частей ограничений);
Задать целевую функцию (в окне "Поиск решения"): целевую ячейку,
направление оптимизации целевой функции (min, max);
Ввести ограничения и граничные условия (в окне "Поиск решения"):
ячейки со значениями переменных, граничные условия для допустимых значений переменных, соотношения между правыми и левыми частями ограничений.
Шаг 2. Решить задачу:
Установить параметры решения задачи (в окне "Поиск решения");
Запустить задачу на решение (в окне "Поиск решения");
Выбрать формат вывода решения (в окне "Результаты поиска реше-
ния").
Рассмотрим использования данного пакета для решения Задачи технического контроля.
Можно сформулировать следующую задачу:
минимизировать F(X)=40x1+36x2
при ограничениях:
x1≤8, x2≤10,
5x1+3x2≥45,
x1≥0, x2≥0.
Рассмотрим алгоритм решения задачи:
Шаг 1. Ввод данных:
Создание экранной формы и ввод в неё условия задачи. Экранная форма для ввода условий задачи вместе с введёнными в неё данными представлена на рис. 1.
10
Рис. 2. Экранная форма задачи
В ячейку D6 вводим целевую функцию =40x1+36x2. Для этого воспользуемся функцией СУММПРОИЗ(). Для вызова этой функции набираем команду Формулы/Математические/СУММПРОИЗВ. Появится окно Аргументы функции (см. рис. 3). В поле Массив1 вводим диапазон ячеек B3:C3 (аргументы функции; в поле Массив2 вводим диапазон ячеек B6:C6 (коэффициенты целевой функции) и щелкаем по кнопке ОК.
Рис. 3. Окно Аргументы функции. Вводим целевую функцию
Аналогично вводим функции для ограничений (см. рис. 4)
11
Рис. 4. Ввод ограничений
Рис. 5. Экранная форма задачи после ввода всех необходимых формул
Шаг 2. Решить задачу:
 Установить параметры решения задачи (в окне "Поиск решения");
 Запустить задачу на решение (в окне "Поиск решения");
 Выбрать формат вывода решения (в окне "Результаты поиска решения").
Выполняем первый пункт. На вкладке Данные в группе Анализ выбираем команду Поиск решения. В окне Параметры поиска решения в поле
Оптимизировать целевую функцию вводим ячейку, содержащую целевую
функцию. Она находится в ячейке D6. В группе кнопок ДО выбираем кнопку
Минимум, в поле Изменяя значения переменных вводим диапазон ячеек, где
находятся аргументы нашей задачи. В поле В соответствии с ограничениями
вводим ограничения. Для этого щелкаем по кнопке Добавить. Появится окно
Добавление ограничения. Вводим первое ограничение (см. рис. 6) и щелкаем
по кнопке Добавить появится новое окно Добавление ограничения, вводим
второе ограничение и щелкаем снова по кнопке Добавить, вводим третье
ограничение. Так как все ограничения введены, щелкаем по кнопке ОК. По12
явится окно Параметры поиска решения, где в окне Параметры поиска решения мы видим введённые ограничения см. рис. 7.
Рис. 6. Вводим первое ограничение в окно Добавление ограничения
Далее в поле Выберите метод решения окна Параметры поиска решения в списке методов выбираем метод решения – Поиск решения линейных
задач симплекс методом и щелкаем по кнопке Найти решение.
Рис. 7. Окно "Поиск решения" для задачи технического контроля
Появится окно Результаты поиска решения (справа на рис. 8). В ячейках B3 и C3 находится решение нашей задачи: x1=8, x2=1,67.
13
Рис. 8. Сообщение об успешном решении задачи и результаты решения
Таким образом, при оптимальном режиме работы ОТК необходимо использовать восемь контролеров разряда 1 и 1.67 контролеров разряда 2.
Дробное значение х2=1.6 соответствует использованию одного из контролеров разряда 2 в течение неполного рабочего дня. При недопустимости неполной загрузки контролеров дробное значение обычно округляют, получая
приближенное оптимальное целочисленное решение х1opt=8, х2opt=2.
Задача о составлении рациона (задача о диете, задача о смесях)
Для осуществления жизнедеятельности человеку среднего возраста
ежедневно необходимо потреблять 118 г. белка, 56 г. жиров, 500 г. углеводов,
8 г. минеральных солей. Количество питательных веществ, содержащихся в 1
кг. Продукта, а также стоимость этих продуктов в магазине приведены в
табл. 1. Требуется составить суточный рацион, содержащий не менее указанного количества необходимых питательных веществ и обеспечивающий минимальную стоимость закупаемых продуктов.
Таблица 1.
Питательные Содержание питательных веществ в 1 кг. продукта, г
вещества
мясо
рыба
масло
картофель сыр
крупа
180
190
70
21
260
130
Белки
20
3
865
2
310
30
Жиры
Углеводы
0
9
Минеральные соли
Стоимость
170
1 кг. продукта, руб.
0
6
200
20
650
10
12
70
60
20
100
60
15
150
20
Решение. Построим экономико-математическую модель задачи, для
чего применим методику построения моделей, описанную выше.
14
Искомыми величинами в задаче является количество покупаемого каждого вида продукта, входящего в суточный рацион человека (мясо, рыба,
масло, картофель, сыр, крупа), поэтому переменными задачи выступают:
x1 – количество мяса, входящего в суточный рацион человека,
кг./сутки;
x2 – количество рыбы, входящего в суточный рацион человека,
кг./сутки;
x3, – количество масла, входящего в суточный рацион человека,
кг./сутки;
x4 – количество картофеля, входящего в суточный рацион человека,
кг./сутки;
x5 – количество сыра, входящего в суточный рацион человека,
кг./сутки;
x6 – количество крупы, входящего в суточный рацион человека,
кг./сутки.
Цель в задаче – обеспечение минимальной общей стоимости закупаемых продуктов. Тогда целевая функция выглядит следующим образом:
F(X)= 170x1+100x2+60x3+15x4+150x5+20x6 →min
Размерность –
руб.
кг
∙
кг
сутки
=
руб.
сутки
Возможный суточный рацион человека ограничивается двумя группами условий:
1. Расходом питательных веществ;
2. Неотрицательностью количества продуктов, входящих в рацион.
Первая группа ограничений имеет следующую содержательную форму
записи:
Расход конкретного вида питательных веществ
в суточном рационе
≥
Минимально возможный
запас данного ресурса
питательных веществ
Запишем в математической форме:
180x1+190x2+70x3+21x4+260x5+130x6≥118;
20x1+3x2+865x3+2x4+310x5+30x6≥56;
6x3+200x4+20x5+650x6≥500:
9x1+10x2+12x3+70x4+60x5+20x6≥8.
Вторая группа ограничений:
x1≥0, x2≥0, x3≥0, x4≥0, x5≥0, x6≥0.
Таким образом, математическая модель задачи имеет вид:
15
F(X)= 170x1+100x2+60x3+15x4+150x5+20x6 →min
(7)
при ограничениях
180x1+190x2+70x3+21x4+260x5+130x6≥118;
20x1+3x2+865x3+2x4+310x5+30x6≥56;
6x3+200x4+20x5+650x6≥500;
(8)
9x1+10x2+12x3+70x4+60x5+20x6≥8.
x1≥0, x2≥0, x3≥0, x4≥0, x5≥0, x6≥0.
Итак, экономико-математическая модель задачи заключается в следующем: составить такой суточный рацион X=(x1, x2, …., xn), удовлетворяющий системе ограничений (8), и при котором целевая функция (7) принимает
минимальные значения.
Рис. 6. Решение задачи.
Ответ: x3opt=0,034; x6opt=0,889.
Литература
1. Ильченко А.Н. Практикум по экономико-математическим методам:
учеб. Пособие /А.Н. Ильченко, О.Л. Ксенофонтова, Г.В. Канакина. –
М.: Финансы и статистика; ИНФА-М, 2009. – 288 с.: ил.
2. Электронный учебник: В.И. Рейзлин. Методы оптимизации. Томск,
ТПУ: http://109.123.146.125/
3.
16
Скачать