Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Целочисленное программирование




Математически эта задача формулируется следующим образом, найти максимум или минимум

R(x)=R(x1,x2,…xn)=Enj=1cjxj (1)

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

Eaijxj<bi i=1,m (2)

Xj=>0, i=1,n (3)

xj-цене, i=1,p, p<=n (4)

если в (4) p=n-> то имеет место полностью целочисленная задача линейного программирования

p<n -> то частична задача ЛП

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

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

Источником дискретности и целочисленности могут быть:

1)физическая неделимость факторов нельзя купить 2,3 самолета, построить полдома

2)комбинаторность

3)размер и партии (иногда нельзя выпускать партии размером меньше чем предельно допустимы

ЦПР ЛПР

Пример

R(x)=R(x1,x2)=21x1+11x2->max (5)

При

7x1+4x2<=13 (6)

X1=>0, x2=>0 (7)

X1,x2-целые (8)

Имеем задачу целочисленного линейного программирования

Вначале решим графически задачу ЛПР (5-7) и если ответ будет целочисленный то задача решена.

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

TO(0,0)=R0=0

TA(0,3(1/4))=R

TB(13/7,0),Rb=

Ra=21*0+11*3(1/4)=35,75

Rb=21*13/7+11*0=139

Оптимальное решение (1-3)задачи ЛПР.

Таким образом решение оптимальным решением задачи (5-7) является (х1*,х2*)=(13/7,0)

R(x1*,x2*)ЛПР=39

Округление х1* до 2 невозможно, потому что это значение не является допустимым, оно не принадлежит области х, значит округлим х1 до 1.

Х1*ЦПР=1

Х2*ЦПР=0

R(x1*,x2*)ЦПР=21*1+11*0=21

Рассмотрим задачу ДПР(5-8) и нанесем целочисленные точки в область Х.

Вычислим значение целевой функции R(x) в целочисленных точках.

(0,0)=R=0

(1,0)=21

(0,1)=11

(0,2)=22

(0,3)=33

(1,1)=32

Таким образом оптимальной точкой в задача (1-8) ЛПР является точка (0,3).

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

Трудности решения задач ЦПР существенно возрастают с ростом размерности задач, то есть с ростом n и m.

Методы решения делятся на 2 группы:

1)методы отсечения

2)перебора

Методы отсечения.

Вначале отбрасываются условия целочисленности (4) и решается задача ЛПР (1-3). Если оптимальное решение получается целочисленным, то задача решена, в противном случае к ограничениям (2-3) добавляется еще одно дополнительное линейное ограничение, которому не удовлетворяет полученное только что оптимальное нецелочисленное решение задачи ЛПР, а все целочисленные решения удовлетворяют. Геометрически это означает что новые ограничения отсекает от многогранника нецелочисленную вершину. Затем решается новая задача ЛПР и процесс повторяется для пополненной системы. Решение достигается за конечное число шагов.

Метод частичного перебора

(самый известный метод ветвей и границ).

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

Объем вычисления растет по экспоненте с ростом n.

 

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

Ричард Беллман

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

Для более простых задач используется используются изученные раннее методы оптимизации.

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

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

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

Многошаговые процессы

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

Рисунок

на каждой стадии имеется некое управление Ui, на вход каждой стадии подается вещество Pi, на выходе I стадии получается Pi+1(i=1,n). Очевидно что вектор на выходе каждой стадии зависит от его входа и управления на этой стадии,

P2=T(P1,U1)...

P3=T(P2,U2)

… (1)

Pn=T(Pn-1, Un-1)

Pn+1=T(Pn,Un)

должны быть известны математические модели. Задача управления таким процессом заключается в том, чтобы найти такие управления U1,U2…Un чтобы максимизировать некоторые критерии F(P1,P2…Pn,U1,U2…Un)=G(P1,U1,U2…Un).

При P1=const и известных математических моделях получается такая задача

F(P1,P2…Pn,U1,U2…Un)=G(P1,U1,U2…Un).-надо максимизировать (2)

При максимизации (2) выполняются математические модели 1, то есть имеет место задача уравнения связи и имеет место задача условной оптимизации.

В нашем случае надо найти n переменных, U1,U2,…Un. Использовать изученные методы нельзя:

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

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

Критерий оптимизации в данном случае адъективный, то есть G зависит от P1, есть сумма gi, на отдельный стадиях от 1 до n, и каждая эта величина есть на входе, и что есть управление.

Есть сумма g1(P1,U1)+g2(P2,U2)+…gn(Pn,Un) так как число состояний на каждой стадии велико, число стадий также значительно то решение этой задачи крайне затруднитульно.

Идея метода ДПр

Основана на приеме которой в физике называется погружением.

Вместо исходной задачи с заданным начальным состоянием P1 и известным числом стадий n, рассматривается совокупность задач или некоторые множества задач с произвольным начальным состояние Р1 и различным числом стадий n, то есть рассматривается целый класс задач.

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

Проведя подобные рассуждения можно получить уравнение связи в виде

Fn(P1)=max[g1(P1,U1)+f(T(P1,U1))]

Где fn(p2) это максимальный доход полученный на n стадиях при известном начальном состоянии P1.

Fn-1(T(P1U1)) максимальный доход полученный на n-1 стадиях начиная со второй. Это уравнение связывает результаты оптимизации то есть функции fn, fn-1.

В основе динамического программирования лежит принцип оптимальности Беллмана. Характеризующий оптимальную политику.

Политика – это последовательность допустимых решений на отдельных стадиях.

Оптимальная политика – это последовательность управлений на отдельных стадиях которая максимизирует критерий оптимальности g.

Именно оптимальная политика обладает свойством:

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

Рассматривая все стадии последовательно, начиная с последней, то есть решая задачу с конца:

1)последняя стадия

2)две последние и т.д.

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

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

 

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

u1*, …, un*

результатом является следующая система Беллмана.

F2(Pn)=max gn(Pn, Un)

F2(Pn-1)=max [gn(Pn-1, Un-1)+f1(T(Pn-1,Un-1))]

Fn(P1)=max[g1(P1,U1)+fn-1(T(P2,U2))]

Эти уравнения лежат в основе алгоритма ДПр.

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

Пример:

Пусть существует N стадийный процесс, на каждой стадии которого может быть n состояний.

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

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

r1(qi-1,qn)

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

Таким образом чтобы результат перехода из 1 стадии на последнюю n стадию был бы максимальный.

RN=sum ri(qi-1,qn)->max

Рисунок (перерисовать)

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

Для этого рассмотрим последнюю N стадию, для нее входными состояниями являются состояния 1,2,3 n-1 стадии.

Рассмотрим состояние n-1 стадии при этом мы перебрали 3 варианта, если мы оказались во втором состоянии предыдущей стадии.

Решением являются числа

q1N=3

q2N=1

q3N=3

всего мы перебрали 9 вариантов, и из них выбрали 3 варианта.

Рассмотрим n-1 стадию и выберем управление с учетом выбора первой стадии.

Рисунок

У нее также 3 состояния на входе 1,2,3. Рассмотрим состояние 1 N-2 стадии.

q1N-2=1

q2N-2=1

q3N-2=2

рассмотрим далее стадию N-2. И так далее вплоть до первой стадии, в итоге получим N*n2

просмотренных вариантов.

N=20

n=3

M=20*32=180 вариантов

Практическое занятие по динамическому программированию

Задача:

Дан сетевой график ( график )

Найти путь при перемещение по которому от узла 1 к узлу 6 затрачивается минимальное время. Двигаться можно только в направление увеличения узлов.

рам путь время рам Путь Время
2а 2б 1,2,5,6 1,2,5,6 1,2,3,5,6 1,2,4,5   4а 4б 4в 4г 1,2,3,4,5,6 1,2,3,4,6 1,3,4,5,6 1,3,4,6  

Метод перебора функции





Поделиться с друзьями:


Дата добавления: 2015-11-23; Мы поможем в написании ваших работ!; просмотров: 796 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Люди избавились бы от половины своих неприятностей, если бы договорились о значении слов. © Рене Декарт
==> читать все изречения...

2475 - | 2272 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.