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

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

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

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

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

Рассмотрим потребителя, который в результате своего существования потребляет некоторые блага. Уровень удовлетворения потребностей потребителя обозначим через U .Предположим, что имеется n видов благ Б 1 , Б 2 ,…, Б n . В качестве благ могут выступать:

· продовольственные товары;

· товары первой необходимости;

· товары второй необходимости;

· предметы роскоши;

· платные услуги и т. д.

Пусть количество потребления каждого блага равно х 1 , х 2 ,…, х n . Целевой функцией потребления называется зависимость между степенью (уровнем) удовлетворения потребностей U и количеством потребляемых благ: х 1 , х 2 , …, х n . Эта функция имеет вид .

В пространстве потребительских благ каждому уравнению соответствует определенная поверхность равноценных, или безразличных, наборов благ, которая называется поверхностью безразличия . Гиперповерхность такой кривой, называемой многомерной поверхностью безразличия, можно представить в виде , где С - константа. Для наглядности рассмотрим пространство двух благ, например, в виде двух агрегированных групп товаров: продукты питания Б 1 и непродовольственные товары, включая платные услуги Б 2 . Тогда уровни целевой функции потребления можно изобразить на плоскости в виде кривых безразличия, соответствующих различным значениям константы С .Для этого выражают количество потребления одного блага х 1 через другое х 2 . Рассмотрим пример.

Пример 6.3 . Целевая функция потребления имеет вид . Найти кривые безразличия.

Решение . Кривые безразличия имеют вид или , или (при этом следует отметить, что должно выполняться ).



Каждый потребитель стремится максимизировать уровень удовлетворения потребностей, то есть . Однако максимизации степени удовлетворения потребностей будут мешать возможности потребителя. Обозначим цену на единицу каждого блага через р 1 , р 2 ,…, р n , а доход потребителя через D .Тогда должно выполняться бюджетное ограничение , имеющее смысл закона, согласно которому затраты потребителя не должны превышать сумму дохода:

В результате для нахождения оптимального набора благ необходимо решать задачу оптимального программирования:

(6.3)

Рассмотрим двухфакторную функцию потребления , где х 1 - объем потребления продуктов питания и х 2 - потребление непродовольственных товаров и платных услуг. Кроме того, предположим, что весь доход потребитель направляет на удовлетворение своих потребностей. В этом случае бюджетное ограничение будет содержать только два слагаемых, и неравенство превратится в равенство. Задача оптимального программирования при этом примет вид:

(6.4)

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

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

Пример 6.4 . Целевая функция потребления имеет вид . Цена на благо Б 1 равна 20, цена на благо Б 2 равна 50. Доход потребителя составляет 1800 единиц. Найти кривые безразличия, оптимальный набор благ потребителя, функцию спроса на первое благо по цене, функцию спроса на первое благо по доходу.

Решение. Кривые безразличия имеют вид:

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

Находим оптимальный набор благ. Задача оптимального программирования имеет вид:

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

Находим производную и приравниваем ее к нулю

Получаем .

Таким образом, оптимальный набор благ составляют 30,5 и 23,8 единиц. Находим теперь функцию спроса на первое благо по цене на него. Для этого в бюджетном ограничении вместо фиксированного значения вводим цену первого блага , получая уравнение: . Выражаем

или , откуда находим функцию спроса на первое благо по цене: .

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

Находим производную и приравниваем ее к нулю:

Отсюда находим функцию спроса на первое благо по доходу

7. Модель
межотраслевого баланса

Балансовые модели предназначены для анализа и планирования производства и распределения продукции на различных уровнях - от отдельного предприятия до народного хозяйства в целом. Если вспомнить историю народного хозяйства как Советского Союза и России, так и других развитых стран, то можно наблюдать, что в экономике многих государств в разное время случались экономические кризисы разных крайностей от кризисов перепроизводства (США, середина ХХ века), до дефицита (Россия, конец ХХ века). Все эти экономические кризисы связаны с нарушением баланса между производством и потреблением. Из этих фактов видно, что баланс между произведенной продукцией и потреблением является важным критерием как для макроэкономики, так и для микроэкономики.

Экономико-математические модели баланса пытались выстроить многие экономисты и математики с самого начала возникновения проблемы, однако, наиболее полную балансовую модель удалось построить в 1936 г. американским экономистом В. Леонтьевым (который после революции эмигрировал в США и за свою модель получил Нобелевскую премию в области экономики). Эта модель позволяла рассчитать баланс между несколькими взаимодействующими отраслями, хотя ее можно легко обобщить и для организаций микроэкономики, например, для вычисления баланса между несколькими взаимодействующими предприятиями или между подразделениями одного предприятия (например, цехами одного завода).

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

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

Рассмотрим процесс производства за некоторый период времени (например, год). Так как валовой объем продукции любой i -й отрасли равен суммарному объему продукции, потребляемой n отраслями, и конечного продукта, то уравнение баланса между производством и потреблением будет иметь вид

, (i = 1, 2, …, n ). (7.1)

Уравнения (7.1) называются соотношениями баланса.

. (7.2)

Все ранее рассмотренные показатели можно записать в основную балансовую таблицу:

Отрасль Потребление отраслей, Конечный продукт, Валовойпродукт,
n
n
Чистый продукт

В результате основная балансовая таблица содержит четыре матрицы: матрицу межотраслевых производственных связей

; матрицу валовой продукции ; матрицу конечной продукции и матрицу чистой продукции .

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

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

. (7.4)

Если обозначить матрицу коэффициентов прямых затрат как , то соотношение баланса (7.4) в матричном виде можно записать в виде

Из последнего выражения можно найти значение конечного продукта при известном значении валового

где - единичная матрица того же размера, что и А .

Пример 7.1 . Баланс четырех отраслей за предыдущий период имеет матрицу межотраслевых производственных связей вида и матрицу валовой продукции вида . Необходимо определить конечный продукт Y и чистый продукт C каждой отрасли.

Конечный продукт Y получается в результате вычитания из каждого элемента матрицы валовой продукции суммы элементов соответствующих строк матрицы . Например, первое значение равно 100 – (10 + 20 + 15 + 10) = 45. Чистый продукт С получается в результате вычитания из каждого элемента матрицы валовой продукции Х суммы элементов соответствующих столбцов матрицы . Например, первое значение равно 100 – (10 + 5 + 25 + 20) = 40. В результате получим основную балансовую таблицу:

Отрасль Потребление отраслей, Конечный продукт, Валовойпродукт,
Чистый продукт, S = 210 S = 400

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

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

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

Можно выделить следующие причины, по которым экономические системы являются стохастическими:

1) система сложная, многокритериальная, описывается многоуровневой иерархической структурой;

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

3) преднамеренное искажение информации, сокрытие информации и целенаправленная экономическая диверсия.

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

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

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

где - постоянные затраты, которые не зависят от режима обработки, мин;

Здесь - подготовительно – заключительное время на операцию, мин;

Размер партии обрабатываемых деталей;

Вспомогательное время операции, мин;

Время на обслуживание без учета времени на замену инструмента, мин;

Время на отдых рабочего, мин;

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

где - время на замену инструмента и соответствующую размерную настройку;

Диаметр и длина обрабатываемого вала;

Коэффициент для расчета скорости резания;

Скорость резания;

Глубина резания;

Здесь - показатели степени в формулах для расчета режимов резания.

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

Целевая функция стоимости на примере обработки вала имеет вид:

Здесь - расходы на материал;

Расходы в единицу времени соответственно на эксплуатацию оборудования, приспособления, по зарплате с учетом накладных расходов;

Время на замену инструмента и соответствующую размерную настройку;

Стоимость инструмента за период его эксплуатации.

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

Объемное планирование работы технологических станочных систем

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

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

Постановка задачи . Имеется m – станков (m – групп станков), на которых могут быть изготовлены n – типов деталей. Трудоемкость обработки j - ой детали на i – м станке составляет , час. Известны фонды времени работы каждого станка (группы станков) – B i . Исходные данные для решения задачи представлены в таблице 14.1.

Таблица 14.1. Исходные данные для решения задачи, представленные в общем виде

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



Математическая модель для решения задачи запишется:

Ограничения :

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

Пример. Исходные данные для примера приведены в таблице 14.2.

Таблица 14.2. Исходные данные для решения задачи

Обозначим через количество деталей типа D 1 , через количество деталей типа D 2 .

Математическая модель для решения данной задачи запишется следующим образом:

Ограничения (по фонду времени работы оборудования):

Требуется найти значения и , удовлетворяющие заданным ограничениям (14.6) – (14.10) и обеспечивающие максимум целевой функции (14.11). Параметры и являются управляемыми параметрами в математической модели.

Решим задачу графо – аналитическим методом (см. лекцию 6). Графическая иллюстрация решения задачи приведена на рис. 14.1.

Рис.14.1. Графическая иллюстрация решения задачи

Вычисления для построения ограничений (14.6) – (14.8):

x 1
x 2
x 1
x 2

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

Т.е. окончательно

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

Задача о минимальной загрузке оборудования

Эта и последующие задачи в данной лекции приводятся на уровне постановки задачи и формирования математической модели для ее решения. Все они решаются методами линейного программирования.

Имеется m станков, на которых могут быть изготовлены n типов деталей. Производительность i - го станка при изготовлении детали j - го типа составляет C ij . Величины плановых заданий A j на изготовление j - ой детали и ресурс времени B i работы i - го станка приведены в таблице 14.3.

Таблица 14.3 Исходные данные для решения задачи

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

Пусть t ij - время изготовления j - ой детали i - м станком. Составим ограничения по ресурсу времени для каждого станка:

Решение поставленной задачи состоит в минимизации линейной целевой функции (суммарного времени)

(14.14)

при ограничениях (14.12), (14.13) и условии, что все переменные .

Задача об оптимальном распределении деталей по станкам

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

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

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

(14.17)

при ограничениях (14.15), (14,16) с дополнительным условием, что все переменные .

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

Задача о производстве продукции при ограниченных запасах сырья

Из видов сырья производится различных типов продукции. Стоимость реализации изготовленной продукции - го типа составляет . Запас сырья - го вида на планируемый период равен . Потребность в сырье - го типа составляет . Исходные данные для решения задачи приведены в таблице 14.4.

Таблица 14.4 Исходные данные для решения задачи

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

Ограничения по запасам сырья имеют вид:

(14.18)

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

при ограничениях (14.18) и дополнительных условиях .

Основы теории массового обслуживания

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

Детерминированная математическая модель отражает поведение объекта (системы, процесса) с позиций полной определенности в настоящем и будущем.

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

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

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

Понятие случайного процесса

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

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

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

2. Система S – самолет, совершающий рейс на заданной высоте по определенному маршруту. Возмущающие факторы – метеоусловия, ошибки экипажа и т.д., последствия – «болтанка», нарушение графика полетов и т.д.

Марковский случайный процесс

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

Пусть в настоящий момент t 0 система находится в определенном состоянии S 0 . Мы знаем характеристики состояния системы в настоящем и все, что было при t < t 0 (предысторию процесса). Можем ли мы предугадать (предсказать) будущее, т.е. что будет при t > t 0 ? В точности – нет, но какие-то вероятностные характеристики процесса в будущем найти можно. Например, вероятность того, что через некоторое время система S окажется в состоянии S 1 или останется в состоянии S 0 и т.д.

Пример . Система S – группа самолетов, участвующих в воздушном бою. Пусть x – количество «красных» самолетов, y – количество «синих» самолетов. К моменту времени t 0 количество сохранившихся (не сбитых) самолетов соответственно – x 0 , y 0 . Нас интересует вероятность того, что в момент времени численный перевес будет на стороне «красных». Эта вероятность зависит от того, в каком состоянии находилась система в момент времени t 0 , а не от того, когда и в какой последовательности погибали сбитые до момента t 0 самолеты.

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

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

Процесс называется процессом с дискретным состоянием , если его возможные состояния S 1 , S 2 , … можно заранее определить, и переход системы из состояния в состояние происходит «скачком», практически мгновенно.

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

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

S 0 - оба станка исправны;

S 1 - первый станок ремонтируется, второй исправен;

S 2 - второй станок ремонтируется, первый исправен;

S 3 - оба станка ремонтируются.

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

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

Рис.15.1. Граф состояний системы

состояние. Для нашего примера граф состояний приведен на рис.15.1.

Примечание. Переход из состояния S 0 в S 3 на рисунке не обозначен, т.к. предполагается, что станки выходят из строя независимо друг от друга. Вероятностью одновременного выхода из строя обоих станков мы пренебрегаем.

Потоки событий

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

В предыдущем примере – это поток отказов и поток восстановлений. Другие примеры: поток вызовов на телефонной станции, поток покупателей в магазине и т.д.

Поток событий можно наглядно изобразить рядом точек на оси времени O t – рис. 15.2.

Рис.15.2. Изображение потока событий на оси времени

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

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

Рассмотрим некоторые свойства (виды) потоков событий.

Поток событий называется стационарным , если его вероятностные характеристики не зависят от времени.

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

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

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

Поток событий называется простейшим (или стационарным пуассоновским), если он обладает сразу тремя свойствами: 1) стационарен, 2) ординарен, 3) не имеет последствий.

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

Для простейшего потока с интенсивностью интервал T между соседними событиями имеет так называемое показательное (экспоненциальное) распределение с плотностью

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

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

Целевая функция составляется по указаниям ТЗ о критерии оптимизации путем анализа внешних параметров системы и ограничений на них.

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

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

Используются следующие четыре формы целевой функции.

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

В этом случае целевая функция просто равна одному из внешних параметров или его обратной величине

Все остальные (m – 1) внешних параметров переводятся в систему ограничений.

Физический смысл целевой функции приведенных видов заключается в том, что чем больше (или меньше) параметр y i , тем лучше при прочих равных условиях данная система, причем равенство прочих условий понимается в смысле ограничений на остальные внешние параметры. Типичные задачи с приведенной формой целевой функции: оптимизация системы по надежности (y = P (t )), помехоустойчивости, стоимости и другим внешним параметрам. Такая целевая функция имеет ясный физический (технический или экономический) смысл, объективно характеризует систему и поэтому часто используется. То есть в этом случае целевой функцией является внешний параметр системы. Он и называется целевой функцией системы. Это могут быть: точность, быстродействие, время, стоимость, надежность, масса, габариты, какой-то технологический показатель и т.п.

2. Вторая форма целевой функции – это сумма параметров одной размерности или сумма функций от этих параметров

Такая форма характерна при оптимизации по экономическим критериям, по критериям сложности и т.п.

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

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

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

Первая целевая функция наиболее важная, последняя целевая функция наименее важная.

В частном случае целевая функция этого вида записывается так:

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

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

4. Четвертая – наиболее общая – форма целевой функции представляет собой произвольную зависимость от всех или части (но не меньше двух) разнородных внешних параметров

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

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

где F S (y i ) – одна из k целевых функций третьей формы;

ω S – ее весовой коэффициент.

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

Экстремальное значение полученной суммы будет считаться оптимальным.

Таким образом, можно указать, что в большинстве случаев (1-я и 3-я формы) показатели качества системы оцениваются численными значениями компонентов векторной целевой функции, которые носят названия функционалов :

- - - - - - - - - - - - - - - - - -

Так как системы работают в условиях случайных воздействий, то значения функционалов часто оказываются случайными величинами. Это неудобно при использовании функционалов в виде показателей качества. Поэтому в таких случаях обычно пользуются средними значениями соответствующих функционалов. Например: среднее количество изделий, выпускаемых за смену; средняя стоимость продукции и т.д.

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

Например, вероятность обнаружения цели радиолокатором и т.п.

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. Матрица системы равенств транспонируется.
Ссылки

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

Краткие теоретические сведения

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

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

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

Решение двойственной к ней задачи отвечает на следующий вопрос:

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

Прямая задача линейного программирования может быть связана со следующей ситуацией. Имеются n способов получения прибыли (оказание n видов услуг) с объёмами x i (число штук i -й оказанных услуг) . При этом используются m видов ресурсов, запас j -го изкоторых равен b j . При этом расход каждого ресурса j и величина прибыли в каждом из процессов i линейно зависят от количества оказанных услуг i -го вида с коэффициентами a ji и c i , соответственно. Матрица А =(a ji ) m ´ n по смыслу аналогична такой же из первой части и также называется матрицей технологических, или структурных коэффициентов. Тогда оптимальный по критерию максимума получения прибыли план может быть получен из решения следующей прямой задачи линейного программирования:

Этой задаче можно поставить в соответствие расширенную матрицу следующего вида:

(4.1)

Двойственная к задаче (4) задача имеет следующий вид (z j – искомые предельные цены):

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

Основные понятия модели

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

Целевая функция L(x) – математическое выражение, связывающее факторы (параметры) модели. Экономический смысл целевой функции отражает критерий оптимальности – показатель, имеющий экономическое содержание и служащий формализацией конкретной цели управления, например: максимизация прибыли (строка 1 в (4)), максимизация качества продукции или минимизация издержек (5.1).


Система ограничений модели – пределы, ограничивающие область допустимых (приемлемых, осуществимых) решений , фиксирующие основные внутренние и внешние свойства объекта, связанные с целью оптимизации. Уравнения связи (типа f j (x) )– математическая формализация системы ограничений (строки 2 и 3 в (4), (5.2 , 5.3)). Система ограничений отражает экономический смысл уравнений связи.

Система, состоящая из целевой функции и уравнений связи, -задача экономико- математического моделирования (ЭММ). В случае, когда целевая функция и уравнения связи линейны, а переменные управления меняются непрерывно, задача ЭММ называетсязадачей линейного программирования (ЛП) . Основное свойство множества допустимых планов (МДП) задачи ЛП - оно является выпуклым многогранником. Выпуклым называется множество, которому принадлежат все отрезки, соединяющие любые две точки этого множества. Если задача ЛП имеет решение, то оно находится в вершине МДП. Планы, находящиеся в вершинах МДП, называются базовыми. Задачи линейного программирования делятся на задачи с ограничениями в форме неравенств (общая задача ЛП) и в форме равенств (каноническая задача ЛП). При математической формализации экономических задач с помощью линейной модели получаются общие задачи ЛП – например, (4), (5). Любой общей задаче путём введения дополнительных переменных может быть сопоставлена каноническая задача. Так, задаче (4) путём введения в каждое неравенство типа “расход ресурса £ запас ресурса” (строка 2 в (4)) дополнительной переменной x n+j (неизрасходованный остаток j -го ресурса) сопоставляется следующая каноническая:

При этом размерность задачи (6) – число переменных плана - по сравнению с (4) увеличилась с n до n+m .

При решении задачи (4) важное значение имеют коэффициенты ресурсоотдачи, среди которых здесь будут использованы дифференциальные и приростные. Дифференциальный коэффициент ресурсоотдачи k ji показывает стоимость оказанных при использовании единицы j -го ресурса i –ых услуг. Те виды услуг, для которых все k ji оказываются наименьшими по всем видам услуг, являются наименее выгодными. Они не должны присутствовать в оптимальном плане. Это позволяет, путём принудительного обнуления объёмов оказания таких услуг снизить размерность задачи и, таким образом, упростить её решение. Вычисляются они следующим образом - k ji =c i /a ji .

приростной коэффициент ресурсоотдачи К j – это коэффициент пропорциональности между приращением значения целевой функции оптимального плана и вызвавшим это приращение изменением запасов j -го ресурса. Можно считать, что К j показывают, на сколько увеличится значение целевой функции исходной задачи в оптимальном плане при увеличении величины запаса j -го ресурса на единицу. С математической точки зрения является полной производной от оптимального значения целевой функции по величине запаса j -го ресурса: К j =dL opt /db j .