Для нахождения максимума целевой функции используйте функцию maximize, формат которой следующий maximize(<функция>, <система ограничений>, <опции>);

При этом условие неотрицательности переменных удобно указать опцией NONNEGATIVE.

> optimum:=maximize(f,syst_ogr,NONNEGATIVE);

    Используйте команду subs, которая позволяет подставить значения переменных x 1 и x 2 в функцию f .

> fmax:=subs(x1=83/17,x2=19/17,f);

    Примените функцию evalf для представления ответа в форме действительного числа с 4 значащими цифрами.

> fmax:=evalf(fmax,4);

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

Решение оптимизационных задач в специализированном пакете SimplexWin. Http://www.Simplexwin.Narod.Ru/

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

Задача . Найти значения переменных x 1 и x 2 , при которых

при ограничениях

Порядок выполнения работы :

    Запустите программу SimplexWin и установите требуемый размер матрицы ограничений, выбрав в меню команду Настройки – Размер матрицы (рис. 13).

Рис. 13 . Определение размера матрицы.

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

Рис.14 . Ввод данных.

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


Рис. 15 . Форма Результаты.

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

Рис. 16 . Решение задачи.

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

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

Задача . Найти значения переменных x 1 и x 2 , при которых

при ограничениях

Порядок выполнения работы :

I. Оформление исходных данных.

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

Рис. 17 . Экранная форма задачи (курсор в ячейке D6).

Замечание : В экранной форме на рис. 17 каждой переменной и каждому коэффициенту задачи поставлена в соответствие конкретная ячейка в Excel. Так, например, переменным задачи соответствуют ячейки B3 (), C3 (),коэффициентам целевой функции соответствуют ячейки B6 (
), C6 (
), правым частям ограничений соответствуют ячейки F10 (
), F11 (
),F12 (
)и т.д.

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

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

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

– поставьте курсор в ячейку D6 ;

– вызовите окно Мастер функций – шаг 1 из 2 , нажав кнопку на стандартной панели инструментов;

– в окне Функция выберите функцию СУММПРОИЗВ ;

– в появившемся окне СУММПРОИЗВ в строку Массив 1 введите выражение B$3:C$3 , а в строку Массив 2 – выражение B6 :С6 ;

– нажмите кнопку OK .

Рис. 18 . Ввод формулы для расчета ЦФ в окне Мастер функций.

После ввода ячеек в строки Массив 1 и Массив 2 в окне СУММПРОИЗВ появятся числовые значения введенных массивов (рис. 18), а в экранной форме появится текущее значение, вычисленное по введенной формуле, то есть 0 (так как в момент ввода формулы значения переменных задачи нулевые) (рис. 19).

Замечание : Символ $ перед номером строки означает, что при копировании этой формулы в другие места листа Excel номер строки 3 не изменится. Символ : означает, что в формуле использованы все ячейки, расположенные между ячейками, указанными слева и справа от двоеточия.

Левые части ограничений задачи представляют собой сумму произведений каждой из ячеек, отведенных для значений переменных задачи (B3, C3), на соответствующую ячейку, отведенную для коэффициентов конкретного ограничения (B10, C10 – 1 ограничение; B11, C11 – 2 ограничение; B12, C12 – 3 ограничение).

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

Для расчета значений левых частей ограничений выполните следующее:

– поставьте курсор в ячейку D6 и скопируйте в буфер содержимое ячейки (клавишами Ctrl+C);

– поставьте курсор поочередно в поля левой части каждого из ограничений, то есть D 10 ,D 11 , D 12 , и вставляйте в эти поля содержимое буфера (клавишами Ctrl+V) (при этом номер ячеек во втором массиве формулы будет меняться на номер той строки, в которую была произведена вставка из буфера).

После ввода на экране в полях D 10 ,D 11 , D 12 появится 0 (нулевое значение) (рис. 19).

Рис. 19 . Экранная форма задачи после вода

всех необходимых формул.

    Проверьте правильность введения формул.

Для этого:

– произведите поочередно двойное нажатие левой клавиши мыши на ячейки с формулами, при этом на экране рамкой будут выделяться ячейки, используемые в формуле (рис. 20 и рис. 21).

Рис. 20

формулы в целевую ячейку D6.

Рис. 20 . Проверка правильности введения

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

    Задайте целевую функцию и введите ограничения в окне Поиск решения (рис. 21).

Для этого:

– поставьте курсор в ячейку D6 ;

– вызовите окно Поиск решения , выбрав на панели инструментов Данные – Поиск решения ;

– поставьте курсор в поле Установить целевую ячейку ;

– введите адрес целевой ячейки $D$6 или сделайте одно нажатие левой клавишей мыши на целевую ячейку в экранной форме, что будет равносильно вводу адреса с клавиатуры;

– укажите направление оптимизации целевой функции, щелкнув один раз левой клавишей мыши по селекторной кнопке максимальному значению ;

– в окне Поиск решений в поле Изменяя ячейки введите ячейки со значениями переменных $B$3:$C$3 , выделив их в экранной форме, удерживая левую кнопку мыши;

Рис. 21 . Окно Поиск решения.

– нажмите кнопку Добавить ;

– в соответствии с условием задачи выберите в поле знака необходимый знак, например, для 1 ограничения это знак ;

– в поле Ограничение введите адрес ячейки правой части, рассматриваемого ограничения, например $F$10 ;

– аналогичным образом установите соотношения между правыми и левыми частями других ограничений ($D$ 11$F$1 1 , $D$ 12$F$1 2) ;

– подтвердите ввод всех перечисленных условий нажатием кнопки OK (рис. 22 и рис. 23).

Рис. 22 . Добавления условия.

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

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

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

Целевая функция позволяет ответить на несколько вопросов:

Выгодно или нет то или иное событие;

В правильном ли направлении идет движение;

Насколько верно сделан выбор и т.д.

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

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

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

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

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

Существует такое понятие, как неполная оптимизация. Она может образоваться по нескольким причинам. Например:

Число попавших в максимальную точку систем ограничено (уже установлена монополия или олигополия);

Нет монополии, но отсутствуют ресурсы (недостаток квалификации на каком-либо конкурсе);

Отсутствие самой а точнее «незнание» ее (мужчина мечтает о некой красивой женщине, но неизвестно, существует ли такая в природе) и т.д.

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

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

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

В силу этих определений задача ЛП может быть сформулирована следующим образом: среди всех точек выпуклой области, являющейся решением системы ограничений, выбрать такую, координаты которой минимизируют (максимизируют) линейную функцию F = с 1 x + с 2 y .
Заметим, что переменные x , y в ЗЛП принимают, как правило, неотрицательные значения (x ≥ 0, y ≥ 0), поэтому область расположена в I четверти координатной плоскости.

Рассмотрим линейную функцию F = с 1 x + с 2 y и зафиксируем какое-нибудь ее значение F . Пусть, к примеру, F = 0, т.е. с 1 x + с 2 y = 0. Графиком этого уравнения будет прямая, проходящая через начало координат (0;0) (рис.).
Рисунок
При изменении этого фиксированного значения F = d , прямая с 1 x + с 2 y = d будет смещаться параллельно и «зачертит» всю плоскость. Пусть D – многоугольник – область решения системы ограничений. При изменении d прямая с 1 x + с 2 y = d , при некотором значении d = d 1 достигнет многоугольника D , назовем эту точку А «точкой входа», и затем, пройдя многоугольник, при некотором значении d = d 2 будем иметь с ним последнюю общую точку В , назовем В «точкой выхода».
Очевидно, что своего наименьшего и наибольшего значения целевая функция F =с 1 x + с 2 y достигнет в точках «входа» А и «выхода» В .
Учитывая, что оптимальное значение на множестве допустимых решений целевая функция принимает в вершинах области D , можно предложить следующий план решения ЗЛП:

  1. построить область решений системы ограничений;
  2. построить прямую, соответствующую целевой функции, и параллельным переносом этой прямой найти точку «входа» или «выхода» (в зависимости от требования минимизировать или максимизировать целевую функцию);
  3. определить координаты этой точки, вычислить в них значение целевой функции.
Заметим, что вектор (с 1 , с 2), перпендикулярный прямой, показывает направление роста целевой функции.

При графическом решении ЗЛП возможны два случая, которые требуют особого обсуждения.

Случай 1
Рисунок 6
При перемещении прямой с 1 x + с 2 y = d «вход» или «выход» (как на рисунке) произойдет по стороне многоугольника. Это случится, если в многоугольнике есть стороны, параллельные прямой с 1 х + с 2 у = d .
В этом случае точек «выхода» (« входа») бесчисленное множество, а именно – любая точка отрезка АВ . Это означает, что целевая функция принимает максимальное(минимальное) значение не в одной точке, а во всех точках, лежащих на соответствующей стороне многоугольника D .

Случай 2
Рассмотрим случай, когда область допустимых значений неограниченна.
В случае неограниченной области целевая функция может быть задана таким образом, что соответствующая ей прямая не имеет точки «выхода» (или «входа»). Тогда максимальное значение функции (минимальное) не достигается никогда – говорят, что функция не ограничена.
Рисунок
Необходимо найти максимальное значение целевой функции F = 4x + 6y → max , при системе ограничений
Построим область допустимых решений, т.е. решим графически систему неравенств. Для этого построим каждую прямую и определим полуплоскости, заданные неравенствами.
x + y = 18


x

12

9

y

6

9

0,5x + y = 12


x

12

18

y

6

3

x = 12 – параллельна оси OY ;
y = 9 – параллельна оси OX ;
x = 0 – ось OY ;
y = 0 – ось OX ;
x ≥ 0 – полуплоскость правее оси OY ;
y ≥ 0 – полуплоскость выше оси OX ;
y ≤ 9 – полуплоскость ниже y = 9;
x ≤ 12 – полуплоскость левее x = 12;
0,5x + y ≤ 12 – полуплоскость ниже прямой 0,5x + y = 12;
x + y ≤ 18 – полуплоскость ниже прямой x + y = 18.
Рисунок
Пересечением всех этих полуплоскостей является очевидно, пятиугольник ОАВСД , с вершинами в точках О (0; 0), А (0; 9), В (6; 9), С (12; 6), Д (12; 0). Этот пятиугольник и образует область допустимых решений задачи.

Рассмотрим целевую функцию задачи F = 4x + 6y → max.


x

3

0

y

–2

0

Построим прямую, отвечающую значению функции F = 0: 4x + 6y = 0. Будем двигать эту прямую параллельным образом. Из всего семейства прямых 4x + 6y = const последней вершиной, через которую пройдет прямая при выходе за границу многоугольника, будет вершина С (12; 6). Именно в ней F = 4x + 6y достигнет своего максимального значения.
Значит, при x = 12, y = 6 функция F достигает своего максимального значения F = 4 ∙ 12 + 6 ∙ 6 = 84, равного 84. Точка с координатами (12; 6) удовлетворяет всем неравенствам системы ограничений, и в ней значение целевой функции оптимально F * = 84 (оптимальное значение будем обозначать «*»).
Задача решена. Итак, необходимо выпустить 12 изделий I вида и 6 изделий II вида, при этом прибыль составит 84 тыс. руб.

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

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

Рассмотрим потребителя, который в результате своего существования потребляет некоторые блага. Уровень удовлетворения потребностей потребителя обозначим через 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) преднамеренное искажение информации, сокрытие информации и целенаправленная экономическая диверсия.

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

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

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