Сайт о телевидении

Сайт о телевидении

» » II. Нахождение оптимального плана и оптимального значения целевой функции. Решение прямой и двойственной задачи линейного программирования средствами Python

II. Нахождение оптимального плана и оптимального значения целевой функции. Решение прямой и двойственной задачи линейного программирования средствами Python

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

Х1,Х2,Х3,…Хп.

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

Целевая функция. Это - выражение, значение которого инженер стремиться сделать максимальным или минимальным. Целевая функция позволяет количественно сравнить два альтернативных решения. С математической точки зрения целевая функция описывает некоторую (п+1) - мерную поверхность. Ее значение определяется проектными параметрами

М = М (х1,х2,…,хп).

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

Рисунок 1. Одномерная целевая функция.


Рисунок 2. Двумерная целевая функция.

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

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

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


Рисунок 3. При изменении знака целевой функции на противоположный в задаче на минимум, превращает ее в задачу на максимум.

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

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

С1 (X1, X2, Х3, . . ., Хп) = 0,

С2 (X1, X2, Х3, . . ., Х п) = 0,

..……………………………..

Сj(X1, X2, Х 3, . . ., Хп) = 0.

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

z1 ?r1(X1, X2, Х3, . . ., Хп) ?Z1

z2 ?r2(X1, X2, Х3, . . ., Хп) ?Z2

………………………………………

zk ?rk(X1, X2, Х3, . . ., Хп) ?Zk

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

Прямые и функциональные ограничения. Прямые ограничения имеют вид

xнi ? xi ? xвi при i ? ,

где xнi , xвi - минимально и максимально допустимые значения i-го управляемого параметра; п - размерность пространства управляемых параметров. Например для многих объектов параметры элементов не могут быть отрицательными: xнi ? 0 (геометрические размеры, электрические сопротивления, массы и т.п.).

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

  • 1) типа равенств
  • ш (Х) = 0; (2.1)
  • 2) типа неравенств

ц (Х) › 0, (2.2)

где ш (Х) и ц (Х) - вектор-функции.

Прямые и функциональные ограничения формируют допустимую область поиска:

ХД = {Х | ш(Х) = 0, ц (Х)›0, xi › xнi ,

xi ‹ xвi при i ? }.

Если ограничения (2.1) и (2.2) совпадают с условиями работоспособности, то допустимую область называют также областью работоспособности ХР.

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

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


Рисунок 4. Произвольная целевая функция может иметь несколько локальных оптимумов.

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

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

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

yi < TTi , i О ; yi > TTj , j О ;

yr = TTr ± ?yr; r О .

где yi, yj, yr - множество выходных параметров;

TTi, TTj, TTr - требуемые количественные значения соответствующих выходных параметров по техническому заданию;

Yr - допустимое отклонение r-го выходного параметра от указанного в техническом задании значения TTr.

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

Частные критерии могут применяться в случаях, когда среди выходных параметров можно выделить один основной параметр yi(Х), наиболее полно отражающий эффективность проектируемого объекта. Этот параметр принимают за целевую функцию. Примерами таких параметров являются: для энергетического объекта - мощность, для технологического автомата - производительность, для транспортного средства - грузоподъемность. Для многих технических объектов таким параметром служит стоимость. Условия работоспособности всех остальных выходных параметров объекта относят при этом к функциональным ограничениям. Оптимизация на основе такой постановки называется оптимизацией по частному критерию.

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

Взвешенный аддитивный критерий применяют тогда, когда условия работоспособности позволяют выделить две группы выходных параметров. В первую группу входят выходные параметры, значения которых в процессе оптимизации нужно увеличивать y+i(X) (производительность, помехоустойчивость, вероятность безотказной работы и т. п.), во вторую - выходные параметры, значения которых следует уменьшать y-i (X) (расход топлива, длительность переходного процесса, перерегулирование, смещение и пр.). Объединение нескольких выходных параметров, имеющих в общем случае различную физическую размерность, в одной скалярной целевой функции требует предварительного нормирования этих параметров. Способы нормирования параметров будут рассмотрены ниже. Пока будем считать, что все у(Х) безразмерны и среди них нет таких, которым соответствуют условия работоспособности типа равенства. Тогда для случая минимизации целевой функции свертка векторного критерия будет иметь вид

где aj>0 - весовой коэффициент, определяющий степень важности j-го выходного параметра (обычно aj выбираются проектировщиком и в процессе оптимизации остаются постоянными).

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

определяет среднеквадратичное приближение yj(X) к заданным техническим требованиям TTj.

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

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

Критерий формы функции используют, когда ставится задача наилучшего совпадения заданной (эталонной) характеристики yТТ(Х,щ) с соответствующей выходной характеристикой y(Х,щ) проектируемого объекта, где щ - некоторая переменная, например частота, время, избранная фазовая переменная. К таким задачам относятся: проектирование системы автоматического регулирования, обеспечивающей требуемый вид переходного процесса по регулируемому параметру; определение параметров модели транзистора, дающих максимальное совпадение его теоретических вольт-амперных характеристик с экспериментальными; поиск параметров сечений балки, значения которых приводят к наилучшему совпадению заданной эпюры напряжений с расчетной, и т. п.

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


где р -- количество узловых точек щj на оси переменной щ; aj - весовые коэффициенты, значения которых тем больше, чем меньшее отклонение y(Х, щj) - yTT(Х, щj) нужно получить в j-и точке.

Максиминные (минимаксные) критерии позволяют достичь одной из целей оптимального проектирования - наилучшего удовлетворения условий работоспособности.

Введем количественную оценку степени выполнения j-го условия работоспособности, обозначим ее через zj и будем называть запасом работоспособности параметра yj. Расчет запаса по j-му выходному параметру можно выполнить различными способами, например,

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

Здесь предполагается, что все соотношения сведены к виду yi < TТj. Если yi > TТj , то -yj < -TТj . Следует принимать аj >1 (рекомендуемые значения 5 ? аj ? 20), если желательно достичь выполнения j-го технического требования с заданным допуском, т. е. yj = TТj ± ?yj; aj=l, если необходимо получить максимально возможную оценку zj.

Качество функционирования технической системы характеризуется вектором выходных параметров и, следовательно, вектором Z=(zm,zm,…,zm). Поэтому целевую функцию следует формировать как некоторую функцию ц(Z) вектора оценок. Например, если в качестве целевой функции рассматривается запас только того выходного параметра, который в данной точке X является наихудшим с позиций выполнения требований ТЗ, то

где m - количество запасов работоспособности.

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

где ХД - допустимая для поиска область.

Критерий оптимизации с целевой функцией (2.6) называют максиминным критерием.

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

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

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

где оi - коэффициент, численно равный единице параметра ui .

Нормирование выходных параметров можно выполнить с помощью весовых коэффициентов, как в аддитивом критерии, или переходом от уj к запасам работоспособности zj по (2.5).

Переменные задачи

Построим модель задачи.

Решение

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

1) Что является искомыми величинами задачи?

2) Какова цель решения? Какой параметр задачи служит критерием эффективности (оптимальности) решения, к примеру, прибыль, себестоимость, время и т.д. В каком направлении должно изменяться значение этого параметра (к max или к min) для достижения наилучших результатов?

3) Какие условия в отношении искомых величин и ресурсов задачи должны быть выполнены?

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

Только после экономического ответа на всœе эти вопросы можно приступать к записи этих ответов в математическом виде, ᴛ.ᴇ. к записи математической модели.

В задаче требуется установить, сколько краски каждого вида нужно производить. По этой причине искомыми величинами, а значит, и переменными задачи являются суточные объёмы производства каждого вида красок:

x1 – суточный объём производства краски 1-го вида, [т краски/сутки];

x2 – суточный объём производства краски 2-го вида, [т краски/сутки].

В условии задачи сформулирована цель – добиться максимального дохода от реализации продукции. Т.е. критерием эффективности служит параметр суточного дохода, который должен стремиться к максимуму. Чтобы рассчитать величину суточного дохода от продажи красок обоих видов, крайне важно знать объёмы производства красок, ᴛ.ᴇ. x1 и x2 т краски в сутки, а также оптовые цены на краски 1-го и 2-го видов – согласно условию, соответственно 3 и 2 тыс. руб. за 1 т краски. Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, доход от продажи суточного объёма производства краски 1-го вида равен 3 x 1 тыс. руб. в сутки, а от продажи краски 2-го вида – 2x 2 тыс. руб. в сутки. По этой причине запишем целœевую функцию в виде суммы дохода от продажи красок 1-го и 2-го видов (при допущении независимости объёмов сбыта каждой из красок)

Целевая функция - понятие и виды. Классификация и особенности категории "Целевая функция" 2017, 2018.

  • - Основные понятия. Критерии эффективности. Целевая функция

    ГЛАВА 16. ЭФФЕКТИВНОСТЬ МЕНЕДЖМЕНТА КОНТРОЛЬНЫЕ ВОПРОСЫ 1. Чем вызвана необходимость внешнеэкономической деятельности предприятия? 2. Что благоприятствует внешнеэкономической деятельности предприятия? 3. Что является препятствием для... .


  • - В нашем примере целевая функция имеет вид

    F(X) = 75X1 + 800/X1 + 78X2 + 1600/X2 . Функция выпукла, если F"(x)>0 для любого x. Проверим: ; ; ; . Значит, функция выпукла, поскольку "x>0. Следовательно, выбор оптимального числа поездов на двух участках оказывается задачей выпуклого программирования, которая может быть решена... .


  • - Целевая функция потребления и моделирование поведения потребителей

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

  • 27 августа 2017 в 14:20

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

    Введение

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

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

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

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

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

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

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

    Учитывая высокий уровень математической подготовки подавляющего большинства пользователей данного ресурса не стану приводить балансовые уравнения с верхними и нижними ограничениями и введением для перехода к равенствам дополнительных переменных. Поэтому сразу приведу обозначения используемых в решении переменных:
    N – количество видов производимых изделий;
    m– количество видов используемого сырья;
    b_ub - вектор имеющихся ресурсов размерности m;
    A_ub – матрица размерности m×N, каждый элемент которой является расходом ресурса вида i на производство единицы изделия вида j;
    с - вектор прибыли от производства единицы изделия каждого вида;
    x – искомые объёмы производимых изделий каждого вида (оптимальный план производства) обеспечивающие максимальную прибыль.

    Функция цели
    maxF(x)=c×x

    Ограничения
    A×x≤b

    Численные значения переменных:
    N=5; m=4; b_ub = ; A_ub = [, , ,]; c = .

    Задачи
    1.Найти x для обеспечения максимальной прибыли
    2. Найти использованные ресурсы при выполнении п.1
    3. Найти остатки ресурсов (если они есть) при выполнении п.1


    Для определения максимума (по умолчанию определяется минимум коэффициенты целевой функции нужно записать с отрицательным знаком c = [-25, -35,-25,-40,-30] и проигнорировать знак минус перед прибылью.

    Используемые при выводе результатов обозначения:
    x – массив значений переменных, доставляющих минимум (максимум) целевой функции;
    slack – значения дополнительных переменных. Каждая переменная соответствует ограничению-неравенству. Нулевое значение переменной означает, что соответствующее ограничение активно;
    success – True, если функции удалось найти оптимальное решение;
    status – статус решения:
    0 – поиск оптимального решения завершился успешно;
    1 – достигнут лимит на число итераций;
    2 – задача не имеет решений;
    3 – целевая функция не ограничена.
    nit – количество произведенных итераций.

    Листинг решения прямой задачи оптимизации

    #!/usr/bin/python # -*- coding: utf-8 -*- import scipy from scipy.optimize import linprog # загрузка библиотеки ЛП c = [-25, -35,-25,-40,-30] # список коэффициентов функции цели b_ub = # список объёмов ресурсов A_ub = [, # матрица удельных значений ресурсов , , ] d=linprog(c, A_ub, b_ub) # поиск решения for key,val in d.items(): print(key,val) # вывод решения if key=="x": q=#использованные ресурсы print("A_ub*x",q) q1= scipy.array(b_ub)-scipy.array(q) #остатки ресурсов print("b_ub-A_ub*x", q1)


    Результаты решения задачи
    nit 3
    status 0

    success True
    x [ 0. 0. 18.18181818 22.72727273 150. ]
    A_ub*x
    b_ub-A_ub*x [ 0. 0. 0. 90.90909091]
    fun -5863.63636364
    slack [ 0. 0. 0. 90.90909091]

    Выводы

    1. Найден оптимальный план по видам продукции
    2. Найдено фактическое использование ресурсов
    3. Найден остаток не использованного четвёртого вида ресурса [ 0. 0 0.0 0.0 90.909]
    4. Нет необходимости в вычислениях по п.3, так как тот же результат выводить в переменной slack

    Решение двойственной задачи о оптимальной производственной программе

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

    Введём новое назначение искомой переменной x как некоторой «теневой» цены, определяющей ценность данного ресурса в отношении прибыли от реализации выпускаемой продукции.

    C – вектор имеющихся ресурсов;
    b_ub – вектор прибыли от производства единицы изделия каждого вида;
    A_ub_T– транспонированная матрица A_ub.

    Функция цели
    minF(x)=c×x

    Ограничения
    A_ub_T ×x≥ b_ub

    Численные значения и соотношения для переменных:
    с = ; A_ub_T transpose(A_ub); b_ub = .

    Задача:
    Найти x показывающий ценность для производителя каждого вида ресурсов.

    Особенности решения с библиотекой scipy. optimize
    Для замены ограничений сверху на ограничения с низу необходимо умножить на минус единицу обе части ограничения – A_ub_T ×x≥ b_ub… Для этого исходные данные записать в виде: b_ub = [-25, -35,-25,-40,-30]; A_ub_T =- scipy.transpose(A_ub).

    Листинг решения двойственной задачи оптимизации

    #!/usr/bin/python # -*- coding: utf-8 -*- import scipy from scipy.optimize import linprog A_ub = [, , , ] c= b_ub = [-25, -35,-25,-40,-30] A_ub_T =-scipy.transpose(A_ub) d=linprog(c, A_ub_T, b_ub) for key,val in d.items(): print(key,val)


    Результаты решения задачи
    nit 7
    message Optimization terminated successfully.
    fun 5863.63636364
    x [ 2.27272727 1.81818182 6.36363636 0. ]
    slack [ 5.45454545 2.27272727 0. 0. 0. ]
    status 0
    success True

    Выводы

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

    Результаты сравнения прямой и двойственной задачи

    1. Двойственная задача расширяет возможности планирования выпуска продукции, но средствами scipy. optimize решается за вдвое большее чем прямая количество итераций.
    2. Переменная slack выводит информацию об активности ограничений в виде неравенств, что может быть использовано, например, для анализа остатков сырья.
    3. Прямая задача является задачей максимизации, а двойственная - задачей минимизации, и наоборот.
    4. Коэффициенты функции цели в прямой задаче являются ограничениями в двойственной задаче.
    5. Ограничения в прямой задаче становятся коэффициентами функции цели в двойственной.
    6. Знаки неравенств в ограничениях меняются на противоположные.
    7. Матрица системы равенств транспонируется.
    Ссылки Целевая функция – это математическое представление зависимости критерия оптимальности от искомых переменных.

    2. Градиент функции.

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

    называется градиентом функции , вычисленным в точке.

    3. Общая задача линейного программирования.

    Стандартная математическая формулировка общей задачи линейного программирования выглядит так: требуется найти экстремальное значение показателя эффективности (целевой функции)

    (линейной функции элементов решения ) при линейных ограничительных условиях, накладываемых на элементы решения:

    где - заданные числа.

    4. Стандартная задача лп.

    В стандартной форме задача линейного программирования является задачей на максимум (минимум) линейной целевой функции. Система ограничений ее состоит из одних линейных неравенств типа « <= » или « >= ». Все переменные задачи неотрицательны.

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

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

    2 вариант ответа:

    Стандартная задача ЛП. или, в матричной записи,где- матрица коэффициентов. Векторназывается вектором коэффициентов линейной формы,- вектором ограничений.

    5. Каноническая задача лп.

    В канонической форме задача является задачей на максимум (минимум) некоторой линейной функции F , ее система ограничений состоит только из равенств (уравнений). При этом переменные задачи х 1 , х 2 , ..., х n являются неотрицательными:

    К канонической форме можно преобразовать любую задачу линейного программирования.

    Короткая запись канонической задачи ЛП:

    Х=(х1, х2, …, хn), С=(с1, с2, …, сn).

    2 вариант ответа:

    Каноническая задача ЛП. или, в матричной записи,

    6. Симметричные и несимметричные двойственные задачи.

    Двойственная задача линейного программирования. Рассмотрим задачу ЛП (1) или, в матричной записи,(2) Задачей, двойственной к (1) (двойственной задачей), называется задача ЛП отпеременныхвида(3) или, в матричной записи,(4) где. Правила построения задачи (3) по форме записи задачи (1) таковы: в задаче (3)

    переменных столько же, сколько строк в матрицезадачи (1). Матрица ограничений в (3) - транспортированная матрица. Вектор правой части ограничений в (3) служит вектором коэффициентов максимизируемой линейной форме в (1), при этом знаки неравенств меняются на равенство. Наоборот, в качестве целевой функции в (3) выступает линейная форма, коэффициентами которой задаются вектором правой части ограничений задачи (1), при этом максимизация меняется на минимизацию. На двойственные переменныенакладывается условие неотрицательности. Задача (1), в отличии от двойственной задачи (3) называется прямой.Теорема двойственности . Если взаимодвойственные задачи (2), (4) допустимы, то они обе имеют решение и одинаковое значение .

    Симметричные двойственные задачи

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

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

    Примеры

    Гладкие функции и системы уравнений

    Задача решения любой системы уравнений

    { F 1 (x 1 , x 2 , … , x M) = 0 F 2 (x 1 , x 2 , … , x M) = 0 … F N (x 1 , x 2 , … , x M) = 0 {\displaystyle \left\{{\begin{matrix}F_{1}(x_{1},x_{2},\ldots ,x_{M})=0\\F_{2}(x_{1},x_{2},\ldots ,x_{M})=0\\\ldots \\F_{N}(x_{1},x_{2},\ldots ,x_{M})=0\end{matrix}}\right.}

    может быть сформулирована как задача минимизации целевой функции

    S = ∑ j = 1 N F j 2 (x 1 , x 2 , … , x M) (1) {\displaystyle S=\sum _{j=1}^{N}F_{j}^{2}(x_{1},x_{2},\ldots ,x_{M})\qquad (1)}

    Если функции гладкие, то задачу минимизации можно решать градиентными методами.

    Для всякой гладкой целевой функции можно приравнять к 0 {\displaystyle 0} частные производные по всем переменным. Оптимум целевой функции будет одним из решений такой системы уравнений. В случае функции (1) {\displaystyle (1)} это будет система уравнений метода наименьших квадратов (МНК). Всякое решение исходной системы является решением системы МНК. Если исходная система несовместна, то всегда имеющая решение система МНК позволяет получить приближённое решение исходной системы. Число уравнений системы МНК совпадает с числом неизвестных, что иногда облегчает и решение совместных исходных систем.

    Линейное программирование

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

    Комбинаторная оптимизация

    Типичным примером комбинаторной целевой функции является целевая функция задачи коммивояжёра. Эта функция равна длине гамильтонова цикла на графе. Она задана на множестве перестановок n − 1 {\displaystyle n-1} вершины графа и определяется матрицей длин рёбер графа. Точное решение подобных задач часто сводится к перебору вариантов.

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

    1. Линейное программирование

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

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

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

      задача об оптимальном использовании ресурсов при производственном планировании;

      задача о смесях (планирование состава продукции);

      задача о нахождении оптимальной комбинации различных видов продукции для хранения на складах (управление товарно-материальными запасами или);

      транспортные задачи (анализ размещения предприятия, перемещение грузов).

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

      математические модели большого числа экономических задач линейны относительно искомых переменных;

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

      многие задачи линейного программирования, будучи решенными, нашли широкое применение;

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

    Экономико-математическая модель любой задачи линейного программирования включает: целевую функцию, оптимальное значение которой (максимум или минимум) требуется отыскать; ограничения в виде системы линейных уравнений или неравенств; требование неотрицательности переменных.

    В общем виде модель записывается следующим образом:

    целевая функция

    (1.1) при ограничениях

    (1.2) требования неотрицательности

    (1.3) где x j – переменные (неизвестные);

    - коэффициенты задачи линейного программирования.

    Задача состоит в нахождении оптимального значения функции (1.1) при соблюдении ограничений (1.2) и (1.3).

    Систему ограничений (1.2) называют функциональными ограничениями задачи, а ограничения (1.3) - прямыми.

    Вектор, удовлетворяющий ограничениям (1.2) и (1.3), называется допустимым решением (планом) задачи линейного программирования. План, при котором функция (1.1) достигает своего максимального (минимального) значения, называется оптимальным.

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

    Симплекс-метод был разработан и впервые применен для решения задач в 1947 г. американским математиком Дж. Данцигом.

    Двумерные задачи линейного программирования решаются графически. Для случая N=3 можно рассмотреть трехмерное пространство и целевая функция будет достигать своё оптимальное значение в одной из вершин многогранника.

    Допустимым решением (допустимым планом) задачи ЛП, данной в стандартной форме, называется упорядоченное множество чисел (х1, х2, …, хn), удовлетворяющих ограничениям; это точка в n-мерном пространстве.

    Множество допустимых решений образует область допустимых решений (ОДР) задачи ЛП. ОДР представляет собой выпуклый многогранник (многоугольник).

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

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

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

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

    Решить данные задачи графически, когда количество переменных более 3 весьма затруднительно. Существует универсальный способ решения задач линейного программирования, называемый симплекс-методом.

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

    С его помощью можно решить любую задачу линейного программирования.

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

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

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

    Процесс применения симплексного метода предполагает реализацию трех его основных элементов:

      способ определения какого-либо первоначального допустимого базисного решения задачи;

      правило перехода к лучшему (точнее, не худшему) решению;

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

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

    6.1.Введение

    Оптимизация. Часть 1

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

    6.2.Основы теории оптимизации

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

    Рассматривая некоторую произвольную систему, описываемую m уравнениями с n неизвестными, можно выделить три основных типа задач. Если m=n , задачу называют алгебраической. Такая задача обычно имеет одно решение. Если m>n, то задача переопределена и, как правило, не имеет решения. Наконец, при m

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

    Проектные параметры

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

    X1, x2, x3,...,xn.

    Целевая функция

    Это - выражение, значение которого инженер стремится сделать максимальным или минимальным. Целевая функция позволяет количественно сравнить два альтернативных решения. С мате-матической точки зрения целевая функция описывает некоторую (n+1) - мерную поверхность. Ее значение определяется проектными параметрами

    M=M(x 1 , x 2 ,...,x n).

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

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

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

    Рис.1.Одномерная целевая функция.

    Рис.6.2.Двумерная целевая функция.

    замкнутой математической форме, в других случаях она может

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

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

    Поиск минимума и максимума

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

    Пространство проектирования

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

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

    Рис.6.3.Изменением знака целевой функции на противоположный

    задача на максимум превращается в задачу на минимум.

    удовлетворительного решения. Ограничения делятся на две группы: ограничения - равенства и ограничения - неравенства.

    Ограничения - равенства

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

    C 1 (x 1 , x 2 ,...,x n)=0,

    C 2 (x 1 , x 2 ,...,x n)=0,

    ..................

    C j (x 1 , x 2 ,...,x n)=0.

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

    Ограничения - неравенства

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

    z 1 r 1 (x 1 , x 2 ,...,x n) Z 1

    z 2 r 2 (x 1 , x 2 ,...,x n) Z 2

    .......................

    z k r k (x 1 , x 2 ,...,x n) Z k

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

    Локальный оптимум

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

    Рис.6.4.Произвольная целевая функция может иметь несколько

    локальных оптимумов.

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

    Глобальный оптимум

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

    Пример 6.1

    Пусть требуется спроектировать прямоугольный контейнер объемом 1м , предназначенный для перевозки неупакованного волокна. Желательно, чтобы на изготовление таких контейнеров затрачивалось как можно меньше материала (при условии посто-янства толщины стенок это означает, что площадь поверхности должна быть минимальной), так как при этом он будет дешевле. Чтобы контейнер удобно было брать автопогрузчиком, его ширина должна быть не менее 1,5м.

    Сформулируем эту задачу в виде, удобном для применения алгоритма оптимизации.

    Проектные параметры: x 1 , x 2 , x 3 .

    Целевая функция (которую требуется минимизировать) - площадь боковой поверхности контейнера:

    A=2(x 1 x 2 +x 2 x 3 +x 1 x 3), м2.

    Ограничение - равенство:

    Объем = x 1 x 2 x 3 =1м3.

    Ограничение - неравенство:

    Задачи линейного программирования

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

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

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

    В зависимости от вида функций и задачи математического программирования делятся на ряд классов (линейной, нелинейное, выпуклое, целочисленное, стохастическое, динамическое программирование и др.).

    В общем виде задача ЛП имеет следующий вид:

    , (5.1)

    , , (5.2)

    , , (5.3)

    где , , – заданные постоянные величины.

    Функцию (5.1) называют целевой функцией; системы (5.2), (5.3) – системой ограничений; условие (5.4) – условием неотрицательности проектных параметров.

    Совокупность проектных параметров , удовлетворяющих ограничениям (5.2), (5.3) и (5.4), называют допустимым решением или планом .

    Оптимальным решением или оптимальным планом задачи ЛП называется допустимое решение , при котором целевая функция (5.1) принимает оптимальное (максимальное или минимальное) значение.

    Стандартной задачей ЛП называют задачу нахождения максимального (минимального) значения целевой функции (5.1) при условии (5.2) и (5.4), где , , т.е. т.е. ограничения только в виде неравенств (5.2) и все проектные параметры удовлетворяют условию неотрицательности, а условия в виде равенств отсутствуют:

    ,

    , , (5.5)

    .

    Канонической (основной) задачей ЛП называют задачу нахождения максимального (минимального) значения целевой функции (5.1) при условии (5.3) и (5.4), где , , т.е. т.е. ограничения только в виде равенств (5.3) и все проектные параметры удовлетворяют условию неотрицательности, а условия в виде неравенств отсутствуют:

    ,

    .

    Каноническую задачу ЛП можно также записать в матричной и векторной форме.

    Матричная форма канонической задачи ЛП имеет следующий вид:

    Векторная форма канонической задачи ЛП.