
лекции, учебные пособия / лекции, отформатированная 2 часть / ЛекцииЧ1
.pdf
|
|
|
|
51 |
|
|
|
|
Пример: вернемся к задаче раскроя материала, рассмотренной ранее. |
|
|||||||
z x min |
Q 80 |
Q 40 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Способ |
|
1 |
2 |
3 |
4 |
|
|
Раскрой первого типа |
|
3 |
2 |
1 |
0 |
|
|
|
Раскрой второго типа |
|
1 |
6 |
9 |
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3x1 2x2 |
x3 |
|
80 |
выполним |
|||||||||||||||||
40 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
U |
x1 |
6x2 9x3 13x4 40 |
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||
13 |
X4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
несколько шагов решения задачи. Получим |
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
аддитивный критерий сравниваемых |
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
X3 |
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||
9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
вариантов. Считаем для. |
|
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
X2 |
|
|
1: A |
1 1 |
1 |
|
1 |
|
1,04 |
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
2 |
|
|
|
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
n |
|
|
|
2 |
|
|
|
6 |
|
|
|
|
|
1 |
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
X1 |
2: A |
|
1 |
|
|
|
0,9 |
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
|
13 |
2 |
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
n |
|
1 |
|
|
|
9 |
|
|
|
|
1 |
|
0,7 . Лучший вариант 1 |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3: A |
|
|
1 |
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
|
13 |
|
2 |
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
2 |
3 |
80 |
|
4: A |
0 1 1 |
1 |
|
|
0,5 |
|
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(х1 = 1). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Q1 |
80 3 77 |
. Задача не решена, следовательно |
|||||||||||||||||||||
Формируем новые ограничения: |
40 1 39 |
|||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Q2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
требуется следующий шаг решения (не все ограничения нулевые). Следующий шаг отличается от предыдущего тем, что в аддитивном критерии изменяется значение
m |
Qm |
с учетом вновь полученных значений ограничений. Рассчитываем значение |
||||||||||
Q max |
||||||||||||
|
m |
|
|
|
|
|
|
|
|
|
|
|
|
|
1: A |
1 1 |
1 |
|
7739 |
... |
|||||
|
|
13 |
||||||||||
|
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
2: A |
|
2 |
1 |
6 |
7739 |
... |
||||
|
|
3 |
13 |
|||||||||
аддитивного критерия 3: A |
13 |
1 139 |
7739 |
... . И так далее (выбираем лучшее значение |
||||||||
|
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
4: A |
0 1 1 7739 |
... |
||||||||
|
|
n |
|
|
|
|
|
|
|
|
|
|
по аддитивному критерию, фиксируем отложенный х, пересчитываем ограничения, проверяем решена ли задача полностью или требуется следующий шаг решения).
-----------------------------------------------------------------------------------------------------------------
--------------------
Способы точного решения задачи векторным методом.
Коментарий: Существуют два подхода к точному решению задачи векторным методом. Соответственно это методы либо минимизирующие вычислительную сложность на каждом шаге (ориентированные на решение на ЭВМ). Либо минимизирующее число шагов.
Метод ориентированный на ЭВМ: идея метода состоит в том, что задачи решаются за два этапа. На первом находятся целочисленные решения и фиксируется точка пересечения последнего отложенного вектора допустимой области решения. Второй этап связан с точным решением и предполагает решение не с целыми векторами, а с их частями. После пересечения последним отложенным вектором допустимой области следует изменить систему координат и откладывать исходные вектора в обратном направлении (см. рис.).

52
При этом вектора следует выбирать относительно нового вектора рассположенного в новой системе координат. Вектора же следует откладывать не целиком, а какие-то фиксированные части, задаваемые какими-то коэффициентами к. После выхода последнего вектора из допустимой области вновь меняется система координат на противоположную. Соответствующим образом меняется коэффициент к (уменьшается). И вектора откладываются в сторону допустимой области. Решение проводится до тех пор, пока либо задача не будет решена точно, либо решена с заданной точностью. Точность решения определяется допущением ограничений, формально задаваемых Q + Q. В допустимую область решения при этом выделяется некая область, в которую должна попасть последний откладываемый вектор. Данный метод входит в состав методов возможных направлений. Общая идея этих методов следующая: из начальной допустимой области по условиям задачи точке, осуществляется переход к новой допустимой точке, в которой значение целевой функции лучше предыдущего. Каждый шаг задается двумя параметрами: направлением выходом х из очередной точки с индексом к, и выбором задания длины шага. Общая формула для данной группы методов имеет вид: xk 1 xk k rk , где k - величина к – ого порядка; rk - единичный
вектор, задающий направление перемещения на к –ом шаге. Именно способом задания |
||
этих двух параметров различаются методы данного класса. В нашем случае мы задаем |
||
параметры k и rk . |
|
|
|
Второй способ предполагает минимизацию числа этапов |
|
|
вычислений (соответственно с увеличение вычислительной |
|
Q1 |
сложности на каждом шаге). В этом случае после выбора |
|
Q0 |
лучшего вектора следует определить ту часть вектора, |
|
A |
которую следует отложить в выбранном направлении. |
|
Рассмотрим на примере: пусть на очередном шаге в качестве |
||
|
||
|
лучшего выбран вектор Q1 , и пусть на следующем шаге |
|
Q2 |
лучшем становится вектор Q2 , это означает, что существует |
|
такая точка А, на идеальном векторе, отложенного из |
||
|
||
|
которой два исходных вектора имеют равную длину |
|
O |
проекции, следовательно вместо вектора Q1 на данном шаге |
|
следует отложить вектор OA . Если отложить вектор короче, то в лучшем направлении |
||
можно еще двигаться. Если отложим вектор длинее чем OA , то часть вектора (за |
||
точкой А) откладывается не в сторону лучшего направления. Задача определить |
||
уравнение (формальное условие) выбора части, откладываемого лучшего вектора |
(длина OA ). (предлагается сделать студенту).
-----------------------------------------------------------------------------------------------------------------
--------------------
Приоритетная задача, линейного программирования
В общем случае приоритетная задача линейного программирования в своей формальной постановке выглядит следующим образом: пусть задано I приоритетов на заданную область ограничений. Соответственно имеем следующую систему
ограничений: I , Qmi , m 1, M , i 1, I . При этом задается, что I-ю очередь требуется выполнить Qm ограничений. Постановка задачи имеет вид: найти xn ,i , такие, что
|
|
|
|
|
|
|
Ni |
|
|
|
|
|
|
|
|
|
|
xn |
|
|
|
|
|
||
xn,i , n 1, N ,i 1, I . Обращается в минимум целевая функция: |
min,i 1, I При |
|||||||||||
условии, что: q11x1i |
q12 x2i ... q1N xNi Q1i |
|
ni 1 |
|
|
|
|
|
||||
. При чем: Qmi Qm , m 1, M . |
||||||||||||
|
|
|
|
|
|
I |
|
|
|
|
|
|
|
|
q M 1x1i |
q M 2 x2i ... q MN xNi QMi |
i 1 |
|
|
|
|
|
|

|
|
53 |
----------------------------------------------------------------------------------------------------------------- |
||
-------------------- |
|
|
интерпритация задачи состоит в следующем (см. рис.). На плосткости появляется |
||
|
|
система допустимых областей решений. |
|
|
Допустимая область с меньшим порядковым |
|
U2 |
номером более приоритетна, данные |
|
ограничения должны выполняться в первую |
|
|
|
|
U1 |
|
очередь. В каждой допустимой области |
|
|
должен быть отложен идеальный вектор из |
|
|
начала координат в первую область и из |
|
|
вершины предыдущей области в начало |
|
|
координат во второй области. Далее задача |
|
|
может решаться так же как и в случае |
|
|
безприоритетной постановке, путем выбора |
|
|
лучшего вектора на каждом этапе. Однако |
существуют два правила преодоления области допустимых решений. |
1.В качестве оптимального между двумя допустимыми областями в общем случае следует рассматривать не исходный вектор, а вектор определяемый по некоторому правилу. Т.к. последний из отложенных векторов некоторым образом пересекает допустимую область, то в общем случае идеальный вектор не будет исходить из начала координат допустимой области. Т.е. имеет смысл говорить об откладывании идеального вектора из конца вектора, пересекающего допустимую область.
2.При использовании подхода рассмотренного выше, часть последнего отложенного в допустимую область вектора является не оптимальной с точки зрения идеального вектора между допустимыми областями. Поэтому целесообразно реализовать следующий подход:
Вернуться к предыдущему шагу и построить идеальный вектор из конца предыдущего отложенного вектора качества. Именно относительно этого идеального вектора следует выбирать следующее идеальное решение на следующем шаге.
Таким образом данный подход позволяет использовать возможности векторой интерпритации (возможность поиска не только лучших решений в плане, но и их очередность) для решения приоритетных задач, отличающимися своей постановкой заданием очередности выполнения ограничения.
-----------------------------------------------------------------------------------------------------------------
--------------------
Динамическое программирование.
Особый класс задач, а следовательно особый класс методов решений, специально приспособленных к так называемым многошаговым или многоэтапным операциям называют динамическим программированием. Идеей постановки оптимальной задачи и возможности применения метода динамического программирования заключается в том, что процесс принятия решения можно разбить на ряд однотипных шагов или этапов, каждый из которых планируется отдельно, но с учетом результатов, получаемых на других шагах. Принцип оптимальности при этом формулируется следующим образом: необходимо всегда обеспечить оптимального в смысле принятого критерия продолжения процесса относительно уже достигнутого результата. Другими словами решение на каждом последующем шаге должно приниматься с учетом результата, получаемого на всех предыдущих шагах.

|
|
|
|
54 |
|
|
|
|
|
|
|
|
|
|
|
|
Рассмотрим |
|
11 |
30 |
|
30 |
|
|
|
пример: пусть |
|
21 |
31 |
|
|
требуется |
|||
|
|
|
|
|
|
|||
47 |
|
|
|
30 |
|
|
|
проанализиро |
|
|
|
|
|
36 |
|
вать сеть |
|
|
12 |
30 |
22 |
|
32 |
|
||
|
|
|
|
связи, где |
||||
|
|
|
|
|
|
|
|
|
30 |
|
30 |
|
30 |
|
30 |
|
сообщения |
|
|
|
|
|
|
должно |
||
|
|
|
|
|
|
|
|
|
А |
13 |
|
23 |
|
33 |
|
В |
попасть из А в |
19 |
32 |
38 |
22 |
В. Возможные |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
маршруты и |
21 |
|
32 |
|
42 |
|
25 |
|
расстояния |
|
|
|
|
|
|
указаны на |
||
|
|
|
|
|
|
|
|
|
|
14 |
42 |
|
30 |
|
|
|
рисунке. |
|
|
24 |
|
34 |
|
|
Требуется |
|
|
|
|
|
|
|
|||
|
|
30 |
|
36 |
|
|
|
найти |
|
|
|
|
|
|
|
наикротчайщи |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
й путь. |
|
|
|
25 |
|
|
|
|
Принятие |
|
|
|
|
|
|
|
|
очередного |
решения или выбор маршрута равносилен выбору направления выхода из того узла камутации (УК), куда попало сообщение. Шагом или этапом процесса является перемещение сообщения из одного УК в другой по допустимому маршруту. Состояние поцесса непосредственно перед началом каждого этапа хранится местоположение сообщения (в каком УК находится). Критерием эффективности является пройденное сообщением расстояние, которое подлежит минимизазии. Замечание, в качестве критерия оптимальности может быть выбраны и иные величины например: можно охарактеризовать путь вероятностью доставки сообщения (характеристика помехозащищенности), стоимость передачи информации по сети, уровень защищенности данного сообщения.
-----------------------------------------------------------------------------------------------------------------
--------------------
Идея метода динамического программирования.
Возможный подход в решении задач состоит в полном переборе возможных решений. Т.е. могут быть рассчитаны длины всех путей и выбраны минимальные из них. Отметим, что любой метод оптимизации, как раз и состоит в решении задачи с использованием какого-либо подхода, позволяющего уйти от полного перебора, т.е. уменьшить вычислительную сложность решения. Метод же динамического программирования предполагает построение оптимального решения шаг за шагом на каждом этапе оптимизируя только один шаг. Здесь лежит общая идея данного класса методов, состоящая в том, что всегда алгоритмически проще многократно решать простую задачу, чем однократно – сложную. Проблема задач динамического программирования состоит в том, что оптимизация маршрутов вне зависимости от выбора оптимальных решений на других или предыдущих шагах, т.к. выигрыш полученный на отдельном шаге может не дать совокупного выигрыша с учетом всех выбранных шагов маршрута, т.е. оптимальный маршрут может быть не найден. Следовательно, планируя многошаговую операцию, надо выбирать на каждом шаге управление с учетом всех его последствий на предстоящих шагах. Т.е. для i-ого шага необходимо учитывать весь последовательный выигрыш, включая последний шаг. Однако из данного правила есть исключения, это последний шаг. Данная особенность обуславливает последовательность пошаговой оптимизации в методе динамического
55
программирования от конца к началу. Возникает вопрос: как оптимизировать последний шаг, если не известно, чем занончился предпоследний. Метод динамического программирования состоит в следующим: планируя последний шаг делают различные предположения о том, чем закончился предпоследний (m-1), и для каждого из этих предположений находятся так называемые условно-оптимальное решение на m-ом шаге (условно-оптимально, т.к. данное оптимальное решение находится в предположении или при условии, что предпоследний шаг закончился такто). Аналогичным образов могут быть выбраны оптимальные шаги последовательно, вплоть до первого. В результате проведения данной процедуры для выбранных решений (обозначим их x ) известны критерии (обозначим их w ), если известно состояние системы на первом шаге S0 , выбирается на этом шаге некое оптимальное
решение x1 . Использовав данное решение, переходим в новое состояние s1 , в этом состоянии подошли ко второму шагу, для которого нам так же изветсно x2 переводящее систему в состояние s2 и т.д. Таким образом в процессе оптимизации
методом динамического программирования многошаговый процесс осуществляется дважды:
3.От конца к началу в результате чего находится условно-оптимальное решение и условно-оптимальный выигрыш.
4.От начала к концу, когда необходимо только прочитать готовые рекомендации
оптимальности шаговых решений x1 ...