Решение задачи состоит в отыскании такой точки - umotnas.ru o_O
Главная
Поиск по ключевым словам:
страница 1
Похожие работы
Название работы Кол-во страниц Размер
Решение задачи. Рассмотрим пример. Пусть имеется ряд предметов П1... 1 35.44kb.
Коллективное поведение роботов. Желаемое и действительное Карпов В. 1 20.56kb.
Проверочная работа «Решение задач» Учитель информатики Батракова Л. 1 126.86kb.
Решение задач оптимизации методом 1 53.98kb.
Решение. Возьмем на комплексной плоскости ℂ две различные точки и... 1 245.67kb.
Вопросы к экзамену Основные понятия, этапы и методы математического... 1 23kb.
Задача этих рекомендаций состоит в предложении вожатому некоторых... 4 1386.49kb.
Лабораторная работа №1. "Система" Указать пропущенные атрибуты системы... 1 29.92kb.
Решение задачи Коши для обыкновенных дифференциальных уравнений 1 33.74kb.
Конкурса "Юный программист-2006" 1 23.07kb.
Решение задачи получение результата с помощью программного 1 259.14kb.
Задача оптимизации туристических групп Поиск решения и сценарии. 1 171.42kb.
Викторина для любознательных: «Занимательная биология» 1 9.92kb.

Решение задачи состоит в отыскании такой точки - страница №1/1





9. МЕТОДЫ МАТЕМАТИЧЕСКОГО ПРОГРАММИРОВАНИЯ ДЛЯ АНАЛИЗА СИСТЕМ

9.1. Математическое программирование как инструмент решения задач

выбора

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



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

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

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

К
(9.1)


ритерий эффективности W можно представить в виде целевой функции

W=Ф(х)

Н
(9.2)


а множестве X = {x: qi(x)≥0, i = 1, 2, …..,kj
hj(x)=0, j = 1, 2, …., m}.

Здесь qi(x) и hj(x) – скалярные функции, определяющие ограничения на элементах х множества Х.

Решение задачи состоит в отыскании такой точки х*, которая обеспечивает оптимальное (минимальное или максимальное) значение целевой функции Ф(х), при заданных функциями q(x) и h(x) ограничениях.

Если целевая функция Ф(х) и функция ограничения q(x) и h(x) линейны, то соответствующая задача является задачей линейного программирования.

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

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

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

Если в целевой функции Ф(х) и функциях q(x) и h(x), определяющих ограничения, содержатся параметры с элементами неопределённости, то такая задача относится к задаче стохастического программирования.

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

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

Как следует из определения, целевая функция имеет следующий вид:


(9.3)
W = C1x1 + C2x2 + … + Cjxj + … + Cnxn

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

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

Пусть из общего числа m ограничений I заданы в виде равенств, а остальные m - 1 в виде неравенств.

Получаем следующую систему уравнений:


(9.4)


Ч
(9.5)


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

Xj>0, j=l,2,...n

В системе (9.4) ограничений записаны только односторонние неравенства. В общем случае возможны такие случаи, когда в одной задаче имеются неравенства, направленные в разные стороны, т.е. неравенства противоположного смысла. В системе (9.4) все значения bi положительны. Если какое – либо значение bi будет отрицательным, то направление неравенства будет противоположным. Чтобы привести это уравнение к тому же направлению знака неравенства, достаточно все члены этого уравнения умножить на -1.

Совокупность значений x1 ≥ 0, х2 0,...хп 0, удовлетворяющих системе ограничений (9.4), образует многомерную область допустимых решений (ОДР). Значение же max (min) W (x1, х2,...xn) может быть достигнуто (если оно существует) не при всех точках ОДР, а только при определенных, обеспечивающих условие max (min) целевой функции.

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

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

9.2.2. Геометрическая интерпретация линейного программирования.

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


(9.6)


Условие неотрицательности всех n переменных запишется в этом случае в виде следующих неравенств


(9.7)


(9.8)


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

Свободные переменные x1 и х2 будем откладывать по осям 0x1 и 2. (рис. 9.1).

Условия (9.7) означают, что допустимые переменные лежат правее оси 2 и выше


оси 1.

Р
ис. 9.1

Если положить величину х3 равной нулю, то получим уравнение

31 х1 + 32 х2 + 3 = 0,

которое является уравнением прямой линии. Штриховкой отметим ту сторону от прямой, где х3> 0.

Аналогичную процедуру можно провести и с оставшимися переменными, получив, кроме осей координат n - 2 прямых, с обозначениями сторон, где каждая переменная xi > 0.

Многоугольник, внутри которого расположена область, принадлежащая одновременно всем полуплоскостям, удовлетворяющим условиям xi > 0, есть область допустимых решений (ОДР). На рис 9.1 ОДР помечена затемнениями. Заметим, что область допустимых решений представляет собой выпуклый многоугольник.

Рассмотрим далее геометрическую интерпретацию поведения целевой


функции W =C1x1 + С2х2 +...+ CjXj +...+ Сnхn

Д
(9.9)


ля тех же условий, т.е. когда n - m =2n в качестве свободных переменных выбраны x1 и х2. Так же как и раньше можно базисные переменные х3, x4, ..., хn выразить через x1 и х2, и для целевой функции получим выражение

W = 0 + 1x1 + 2х2

Здесь 0 - свободный член, который появился при переходе к переменным x1 и х2.

Линейная функция (9.9) имеет угловой коэффициент и она достигает max(min) при тех значениях х1 и х2, что и функция


(9.10)
W1 = 1х1 + 2х2 ,

Придавая величине W1 различные значения С1, С2..., получим на плоскости x10x2 различные прямые, параллельные между собой (рис. 9.2). Направление, в котором при параллельном перемещении прямой W1 величина W1 будет увеличиваться (уменьшаться), зависит от величины и знака величины 1 и 2.

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

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

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

1. Решение задачи линейного программирования единственно и оно соответствует одной из вершин многоугольника ОДР (рис. 9.3a)

2. Решение соответствует любой точке отрезка АВ, которая является одной
из сторон многоугольника ОДР и она параллельна линейной целевой функции W1 (рис. 9.3б).

3. ОДР незамкнута, именно неограниченна в направлении перемещения прямой W1. В этом случае задача не имеет решения (рис. 9.3в).

Р
ис. 9.2

Р
ис. 9.3

9.3. Нелинейное и динамическое программирование

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

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

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

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

Н
(9.13)


айти максимальное значение функции

W = x2 x12 + 6x1

При следующих ограничениях на переменные x1 и х2:


(9.14)

(9.15)

Строим линии уровней W = х2 x1 + 6x1 = h, где h - возможные значения функции W(x1,x2).

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

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

Функция W(x1,x2) принимает экстремальное значение в точке касания одной из парабол с границей многоугольника OABCD. В нашем случае эта точка Е. Координаты точки Е можно найти из системы уравнений


(9.16)

Решая эту систему, получаем x1* = 3, х2* = 4 и Wmax = 13 при этих значениях переменных.

Как видим, в задаче этого примера решение не является вершиной многоугольника ОДР. Поэтому метод перебора вершин, который используется при решении задач линейного программирования, в данном случае неприемлем.

Рис. 9.4


9.3.2. Динамическое программирование

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



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

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

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

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

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

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

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

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

Пусть исходное состояние системы есть S0, а конечное состояние системы, в которое необходимо перевести систему, есть Sk.

Предполагается, что система управляема, способ воздействия на систему - управление U, должен быть таким, чтобы перевод из состояния S0 в состояние Sk был бы оптимальным (например, максимальным должен быть выигрыш). Поскольку выигрыш зависит от управления, то можно записать


(9.17)

Запись эта означает "максимальное" из всех значений W(U) при всех возможных управлениях U.

Для любого промежуточного i - го шага принцип оптимальности (принцип Беллмана) может быть записан в виде следующего функционального рекуррентного соотношения


(9.18)




Wi(S) = - условный оптимальный выигрыш, получаемый на всех последующих шагах, начиная с i - го и до конца. Слово "условный" означает выигрыш при условии, что на i-м шаге система находится в состоянии S;

Wi(S1Ui) - выигрыш на i-м шаге, который зависит от состояния S и принятого управления Ui;

Фi(S1Ui) = S - состояние системы перед следующим i + 1 шагом, которое естественно зависит от предыдущего состояния S и управления, принятого на i-м шаге.

Wi+1i(S1Ui)} - условный оптимальный выигрыш, получаемый на всех шагах, начиная с (i + 1) - го шага. Отметим существующую особенность, заложенную в функциональном соотношении (9.18): функция Wi(S) i - го шага зависит от функции Wi+1(S1) последующего шага, т.е. функцию Wi(S) можно определить, если известна следующая за ней по порядку функция Wi(S).

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

Одно за другим строится вся цепочка условных оптимальных управлений. Действительно, зная WK(S), можно по общей формуле (9.18), полагая в ней i + 1 = m, найти функцию Wm-1(S) и соответствующее условное оптимальное управление Um-1(S); затем
Wm-2(S) и Um-2(S) и так далее вплоть до последнего от конца, т.е. до первого шага, для которого будут найдены функция W1(S) и управление U1(S).

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

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

И
(9.19)


сходное состояние S0 задано. Условный оптимальный выигрыш для первого шага был определен. Следовательно, для первого шага

Wmax = W1(S0)

Одновременно находится и оптимальное управление на первом шаге

U1 U1(S0)

П
(9.20)


о исходному состоянию S0 и управлению U1 находят состояние после первого шага

S11 = Ф1(S0,U1)

П
(9.21)


о состоянию S11 находим оптимальное управление на втором шаге U2=U2(S11), затем S21 = Ф2(S11,U2) и т.д. Образуется цепочка

S0 U1(S0) S11 U2(S11) Sk-11 Uk(Sk-11) Sk1