Смекни!
smekni.com

Экономико-математические методы и прикладные модели (стр. 3 из 5)

f(x) = 7´30+8´40+6´18+10´2+12´5+10´13+8´32=1104

U1=0 Þ V5= 7; U2=0 Þ V4=8=U3+12 Þ U3=-4 Þ

V1= 6-4=2, V2=10-4=+6=U4+10; V3= -4+8= +4

8 1 10 0 0

(dij) = 10 2 6 0 8

0 0 2 0 3

10 0 0 0 5

Матрица оценок (dij) не содержат отрицательных величин Þ данный план является оптимальным, т.к. С34 = 0, а клетка (3,4) не является запятой, то данный план не является единственным. Стоимость перевозок по этому плану, как было рассчитано ранее, равна f(x) = 1104.

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

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

Реализация алгоритма симплекс-метода.

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

2. Разделить переменные на базисные и свободные: перенести свободные переменные в правую часть ограничений-неравенств.

3. Выразить базисные переменные через свободные: решить систему линейных уравнений (ограничений-неравенств) – относительно базисных переменных;

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

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

6. Вычислить полученное базисное решение и функцию цели на нем: приравнять к 0 свободные переменные;

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

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

9. Используя новое разделение переменных на базисное и свободное, вернуться к пункту 3 и повторять все этапы до тех пор, пока не будет найдено оптимальное решение.

В заключение отметим, что определение оптимального решения распадается на два этапа:

· Нахождение какого-либо допустимого решения с положительным свободным членом;

· Определение оптимального решения, дающего экстрему целевой функции.

IV. Методы нелинейного программирования.

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

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

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

Z1(X1, X2,...,Xn) ³ 0;

Z2(X1, X2,...,Xn) ³ 0;

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

Zm(X1, X2,...,Xn) ³ 0;

при Xi ³ 0,

где Z1, Z2,…,Zm – соответствующие функции, характеризующие условие решения поставленной задачи (ограничения); Хi – искомые величины, содержащие решение задачи.

Целевая функция задается в виде:

y = f (X1, X2,…, Xn).

Причем по крайней мере одна из функций y, Z1, Z2,…, Zm – нелинейная.

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

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

Известны оценочные возможности (вероятности) начать бизнес в j-м регионе (Pj), а также эффективности использования i-го ресурса в n-м регионе (wij).

Распределение ресурсов по регионам характеризуется так называемым параметром управления (hij):

hij = 0, если i-й ресурс не направляется в j-й регион,

1, если i-й ресурс направляется в j-й регион.

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

Рц = å Pj [1 - P (1-hijwij] = max.

Должно выполняться также ограничение

S hij = 1, i = 1, 2,…m

Ограничение означает, что каждый из m ресурсов обязательно должен назначаться в какой-либо из регионов.

Динамическое программирование (планирование)

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

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

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

При этом эффективность управления W(U) зависит от всей совокупности управлений на каждом шаге операции:

W = W(U) = W(U1, U2, ..., Um).

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

Оптимальное управление многошаговым процессом состоит из совокупности оптимальных шаговых управлений:

U = (U1, U2, ..., Um).

Задача динамического программирования – определить оптимальное управление на каждом шаге Ui (i = 1, 2, …, m) и, тем самым, оптимальное управление всей операцией в целом.

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

W = å wi,

где wi – эффективность операции на i-м шаге.

При этом в случае оптимального управления

W = max åwi

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

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

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

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

- Так продолжается до первого шага, но поскольку первый шаг не имеет предыдущего, то полученное для него условное оптимальное управление теряет свой условный характер и становится просто оптимальным управлением, которое мы ищем;

- Второй круг оптимизации начинается с первого шага, для которого оптимальное управление известно.

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

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

W = f (G)

Известны массы грузов i-го типа Рi и их стоимости Ci.

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

W = fm(G) = max å xiCi,

где xi – число предметов груза i-го типа, загружаемых в транспортное средство; xi выступает здесь в качестве управления (Ui=xi)

Ограничивающими условиями являются: