Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие Пискунов В.А.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.78 Mб
Скачать

4 Варианта

На первом шаге решения при k = 1 выражаются через известные решения при k = 0:

1-й шаг (k = 1)

12 Вариантов

На втором шаге решения при k = 2 выражаются через известные решения при k = 1

2-й шаг (k = 2)

12 Вариантов

………………………………………………………

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

то

Таким образом, всякий раз, попав в z1, чтобы пройти множество, состоящее из z2, z3 и z4, нужно сначала перейти в z2, затем в z3, после чего вернуться в z5, затратив время f (z1;{ z2, z3 }).

На третьем шаге используюется каждое из решений второго шага.

3-й шаг (k = 3)

4 Варианта

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

4-й шаг (k = 4)

1 Вариант

Таким образом операции необходимо выполнять в определённом порядке.

Чтобы оценить объем вычислительной работы, связанной с описываемым методом, подсчитывается число вариантов на каждом шаге. В общем приходится просматривать 33 варианта и проделать 108 арифметических операций с данными, содержащимися в матрице T или полученными на предыдущем шаге. Поиск решения, основанный на методе полного перебора всех вариантов, содержит (n - 1)! вариантов, т.е. 24 варианта. Каждый из этих вариантов требует пяти арифметических операций на основании данных матрицы T, т.е. в общем требуется 120 арифметических операций. С возрастанием числа операций преимущества, даваемые методом динамического программирования, становится еще более ощутимыми.

2.3. Выбор порядка проведения операции контроля в условиях ограничений частичной упорядоченности.

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

Модули Zi включают в себя непосредственно длительность контрольных операций i,а также интервалы tij , к примеру ожидания переходных процессов, или длительности настроек при переходе от операции zi к zj , а также времени для переключения соответствующих цепей коммутации. Минимизация общего времени контроля Tk заключается в оптимальном заполнении указанных времен ожидания контрольно-измерительными операциями других модулей. Однако при этом необходимо, в некоторых случаях, учитывать частичную априорную технологическую упорядоченность модулей в виде ограничений на отношение порядка U, которые задаются в виде графа G(Z,U) , к примеру рис. 2.1, где вершина Z0 (мажоранта), для которой t0 и 0i равны нулю, фиксирует начало процесса построения множества возможных вариантов (допустимых) решений W(S0). Висячая вершина графа (в примере Zv) фиксирует окончание процесса ветвление вариантов.

Путем в графе G(Z,U) является последовательность ориенти­рованных дуг U, которые выражают ограничения порядка между вершинами на этом пути. Длина пути от начала процесса (мажоранты) до некоторой вершины соответствует глубине распо­ложения проверяемого подмножества и равна числу дуг на нем. В дальнейшем, говоря о глубине расположения проверяемого под­множества, подразумевается нахождение соответствующей вершины на некотором k-м уровне графа G, что предполагает пре­образование его в дерево. Такое преобразование необходимо пото­му, что граф, построенный из непосредственного анализа объекта, обычно получается слишком сложным и нуждается в предваритель­ном упорядочении.

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

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

Идея этого метода заключается в следующем. Множест­во W(S0) всех допустимых вариантов решения разбивается на непересекающиеся подмножества W(Sk), которые, в свою очередь, разбиваются на подмножества меньшей мощности W(Si) до полу­чения подмножества W(Sν), состоящего из единственного вариан­та. Процесс разбиения множества допустимых вариантов W(S0) на их непересекающиеся подмножества называется ветвлением вари­антов, а получаемое при этом дерево D ( SD) - деревом реше­ний (ветвлений) (рис. 2.2). Здесь S={Sk} множество вершин этого дерева, а ГD отношение порядка на этом множестве. Каждой вершине дерева решений соответствует некоторый модуль zi Z графа G (Z,U), а любой путь по дереву определяет соответствующий граф очередности V[Y(S), ГV]. Множество вершин Y(S) описывает определенный вариант процесса (незаконченный, если YZ и законченный, если Y=Z) , а ГV отношение порядка на множестве Y(S).

Пусть Y(Sk)—множество вершин в графе очередности V, соот­ветствующих пути от S0 до Sk в дереве D. Из каждой вершины Sk выходит столько ветвей, сколько допустимых модулей (претенден­тов для упорядочения) имеется в подмножестве Z\Y(Sk). Множе­ство допустимых на каждом шаге процесса ветвления модулей об­разует фронт упорядочения. Наглядное представление об образо­вании фронта упорядочения дает преобразованный граф G. Очевидно, на первом шаге процесса построения дерева D фронт упорядочения образуют вершины, ко­торые соединены с мажорантой одной дугой, на втором шаге к ним добавляются все последователи включенной в D вершины, в кото­рую не входят дуги из других вершин, и т. д. Hа произвольное ша­ге фронт упорядочения образуют те модули, для которых Го-1zi= .

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

W(Sk). На каждом шаге, ветвление продолжается из вершины, имеющей минимальную оцен­ку. Задача сводится к отысканию па дереве конечной вершины, со­ответствующей оптимальному допустимому решению со значением целевом функции, меньшим или равным оценкам висячих вершин дерева D.

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

Для минимизации Tk этот метод может быть применен следующим образом.

На основе исходной информации, заданной графом G, строится -размерные квадратные матрицы ||bij|| и ||dij|| такие, что

(2.2)

(2.3)

Вводится понятие Tн(zk)- наиболее раннее время начала модуля zk

. (2.4)

Обозначим H={Lij}—множество всех независимых путей (путей, отличающихся друг от друга хотя бы одной дугой) на графе, ведущих от вершины zi к zj и — множество всех не­зависимых путей, ведущих от вершины zk к миноранте (висячей вершине графа G).

Некоторый путь Lk по этому дереву представляет собой частичный подграф G(Zk, Uk), при этом длина пути:

T(Lk) = (2.5)

Длина критического пути вычисляется из рекуррентного соотношения наиболее длинного пути из вершины zk к миноранте графа G.

. (2.6)

На основании приведенных выражений процесс преобразования графа G(Z,U) в граф очередности V=(YD) может быть интерпретирован следующим образом. Находится для каждой вер­шины Sk S дерева ветвления вариантов D множество

(2.7)

где - предшественники вершины zi на множестве Y(Sk) графа V,

которое определяет фронт упорядочения. Согласно априорной час­тичной упорядоченности модулей, выражаемой отображением Гk, очередной модуль при пошаговом построении графа D может быть выбран только из |N(Sk)|, выражающего мощность фронта упо­рядочения.

На основе (2.6) можно записать выражение для оценки нижних границ для произвольного подмножества вариантов W(Sk) в следующем виде:

. (2.8)

Tоц(Sk) = t*(Sk) + max {t(L*i) +max[0,TH(zi)-t*(Sk)]},

i:ziЄN(Sk)

где t*(Sk)=Στi + Στkl .

i:zi Є-Y(Sk) (k,l Є ГD)

На каждом шаге для дальнейшего разветвления выбирается вершина S*k , для которой справедливо равенство

Тоц (Sk)= min { Тоц (Sk)} | Sk Є S*} , Sk

где S* Є S - подмножество вершин , из которых можно продолжать ветвление на данном этапе построения дерева очередности.

Выбранная вершина Sk Є S* в итоге получает N (Sk) последователей, определяющих разбиение множества возможных вариантов W (Sk) на N (Sk) непересекающихся подмножеств.

При достижении в процессе ветвления W (Sν) , состоящего из единственного варианта V [ Y (Sν), Гν)] , при этом Y (Sν)= Z и последний вариант будет оптимальный, если

Tоц(Sν) ≤ { Тоц (Sk)} | Sk Є S*}. (2.9)

Рассмотрим применение данного алгоритма на численном примере.

Допустим задан следующий граф G(Z,U) (рис. 2.1) и таблицы длительности операций (таблица 2.1), и времён переходов (таблица 2.2):

Рис. 2.1 – Граф исходного множества модулей

Таблица 2.1 – Длительность операций

Вершины zi

Z1

Z2

Z3

Z4

Z5

Длительность τi

2

4

5

3

8

Таблица 2.2 – Минимальное время задержки между модулями

Дуги графа U

(0,1)

(0,2)

(1,4)

(2,3)

(2,5)

(3,4)

(4,6)

(5,6)

Длительность перехода tij

0

0

16

12

4

7

0

0

Требуется определить оптимальную последовательность проведения проверок с использованием метода ветвей и границ.

2.3.1. Составляется граф D (рис. 2.2), заключающий в себе все множество вариантов последовательностей проверок некоторого объекта контроля (рис. 2.1)

Рисунок 2.2 – Дерево ветвления вариантов.

2.3.2. На основе исходных данных стоится z-размерная квадратная матрица bij по формуле (2.2):

2.3.3. Определяется наиболее раннее время начала модуля zk , используя формулы (2.3) и (2.4):

TH(z0) = 0;

TH(z1) = 0;

TH(z2) = 0;

TH(z3) = max {TH(z2) + b23} = 0 + 16 = 16;

TH(z4) = max {TH(z1) + b14 , TH(z3) + b34} = max {0 + 18, 16 + 12} = 28;

TH(z5) = max {TH(z2) + b25} = 0 + 8 = 8;

TH(z6) = max {TH(z4) + b46 , TH(z5) + b56} = max {28 + 3, 8 + 8} = 31;

2.3.4. Определяются длины критических путей юля каждой из вершин zi, которые ведут от вершины zi к миноранте по формулам (2.5) и (2.6):

T[L*(z0)] = τ0 +τ2 +τ3 +τ4 +t02 +t23 +t34 +t46 = 31

T[L*(z1)] = τ1 +τ4 +t14 +t46 = 21

T[L*(z2)] = τ2 +τ3 +τ4 +t23 +t34 +t46 = 31

T[L*(z3)] = τ3 +τ4 +t34 +t46 = 15

T[L*(z4)] = τ4 +t46 = 3

T[L*(z5)] = τ5 +t56 = 8

T[L*(z0)] = τ6 = 0

Полученные данные сводятся в таблицу (таблица 2.3)

Таблица 2.3

Zi

τi

TH(zi)

T[L*(zi)]

U

tij

z0

0

0

31

(0,1)

0

z1

2

0

21

(0,2)

0

z2

4

0

31

(1,4)

16

z3

5

16

15

(2,3)

12

z4

3

28

3

(2,5)

4

z5

8

8

8

(3,4)

7

z6

0

31

0

(4,6)

0

(5,6)

0

2.3.5. Рассчитывается по шагам оценка нижних границ для подмножества вариантов W(Sk) c использованием формул (2.7), (2.8) и (2.9)

ШАГ 1

S0, z0;

N(S1) = {z1,z2};

Y(S1) = {z0};

t*(S0) = τ0 = 0;

Tоц(S0) = t*(S0) + max {t(L*1) + max[0, TH(z1) – t*(S0)],t(L*2) + max[0, TH(z2) – t*(S0)]} = 0 + max {21 + max[0,0];31 + max[0,0]} = 31.

ШАГ 2

S1, z1;

N(S1) = {z2};

Y(S1) = {z0,z1};

t*(S1) = τ0 + t01 + τ1 = 2;

Tоц(S1) = t*(S1) + max {t(L*2) + max[0, TH(z2) – t*(S1)]} = 2 + max {31 + max[0,-2]} = 33.

ШАГ 3

S2, z2;

N(S2) = {z3,z5, z1};

Y(S2) = {z0, z1};

t*(S2) = τ0 + t02 + τ2 = 4;

Tоц(S0) = t*(S2) + max {t(L*3) + max[0, TH(z3) – t*(S2)],t(L*5) + max[0, TH(z5) – t*(S2)],t(L*1) + max[0,TH(z1) – t*(S2)]} = 4 + max {15 + max[0, 16-4],8 + max[0,8-4],21 + max[0,0-4]} = 4 + max{27, 12, 21} = 31.

31 eд.

33 eд.

Рис. 2.3 – Результат ветвления шагов 1 3

ШАГ 4

S3, z3;

N(S3) = {z1,z5};

Y(S3) = {z0, z2, z3};

t*(S3) = τ0 + t02 + τ2 + t23 + τ3 = 21;

Tоц(S3) = t*(S3) + max {t(L*1) + max[0, TH(z1) – t*(S3)],t(L*5) + max[0, TH(z5) – t*(S3)]} = 21 + max {21 + max[0, 0-21],8 + max[0,8-21]} = 21 + max{21, 8} = 42.

ШАГ 5

S4, z5;

N(S4) = {z1,z3};

Y(S4) = {z0, z2, z5};

t*(S4) = τ0 + t01 + τ2 + t25 + τ5 = 16;

Tоц(S4) = t*(S4) + max {t(L*1) + max[0, TH(z1) – t*(S4)],t(L*3) + max[0, TH(z3) – t*(S4)]} = 16 + max {21 + max[0, 0-16],15 + max[0,16-16]} = 16 + max{21, 15} = 37.

ШАГ 6

S5, z1;

N(S5) = {z5,z3};

Y(S5) = {z0, z2, z1};

t*(S5) = τ0 + t02 + τ2 + t21 + τ1 = 6;

Tоц(S5) = t*(S5) + max {t(L*5) + max[0, TH(z5) – t*(S5)],t(L*3) + max[0, TH(z3) – t*(S5)]} = 6 + max {8 + max[0, 8-6],15 + max[0,16-6]} = 6 + max{10, 25} = 31.

31 eд.

33 eд.

42 eд.

31 eд.

37 eд.

Рис. 2.4 – Результат ветвления шагов 1 6

ШАГ 7

S6, z5;

N(S6) = {z3};

Y(S6) = {z0, z2, z1, z5};

t*(S6) = τ0 + t02 + τ2 + t21 + τ1 + t15 + τ5 = 16;

Tоц(S6) = t*(S6) + max {t(L*3) + max[0, TH(z3) – t*(S6)]} =16 + max {15 + max[0, 16-16]} = 31.

ШАГ 8

S7, z3;

N(S7) = {z5, z4};

Y(S7) = {z0, z2, z1, z3};

t*(S7) = τ0 + t02 + τ2 + t21 + τ1 + t13 + τ3 = 11;

Tоц(S7) = t*(S7) + max {t(L*5) + max[0, TH(z5) – t*(S7)],t(L*4) + max[0, TH(z4) – t*(S7)]} = 11 + max {8 + max[0, 8-11],3 + max[0,28-11]} = 11 + max{8, 20} = 31.

33 eд.

31 eд.

42 eд.

31 eд.

37 eд.

31 eд.

31 eд.

Рис. 2.5 – Результат ветвления шагов 1 7

ШАГ 9

S8, z3;

N(S8) = {z4};

Y(S8) = {z0, z2, z1, z5, z3};

t*(S8) = τ0 + t02 + τ2 + t21 + τ1 + t15 + τ5 + t53 + τ3 = 21;

Tоц(S8) = t*(S8) + max {t(L*4) + max[0, TH(z4) – t*(S8)]} =21 + max {3 + max[0, 28-21]} = 31.

31 eд.

33 eд.

42 eд.

31 eд.

37 eд.

31 eд.

31 eд.

31 eд.

Рис. 2.6 – Результат ветвления шагов 1 9

ШАГ 10

S9, z4;

N(S9) = {z6};

Y(S9) = {z0, z2, z1, z5, z3, z4};

t*(S9) = τ0 + t02 + τ2 + t21 + τ1 + t15 + τ5 + t53 + τ3 + t34 + τ4 = 29;

Tоц(S9) = t*(S9) + max {t(L*6) + max[0, TH(z6) – t*(S9)]} =29 + max {3 + max[0, 31-29]} = 31.

Поскольку условие t*(S9) ≤ min {Tоц(Sk) │ Sk S*} выполняется, то получено оптимальное решение.

31 eд.

33 eд.

31 eд.

42 eд.

37 eд.

31 eд.

31 eд.

31 eд.

31 eд.

Рис. 2.7 – Результат ветвления шагов 1 10

Все полученные ранее данные сводятся в таблицу для определения оптимального варианта ветвления исходного графа (таблица 2.4)

Таблица 2.4

S

zi/i=Sk

N(Sk)

Y(Sk)

t*(Sk)

Tоц(Sk)

S0

z0

z1, z2

z0

0

31

S1

z1

z2

z0, z1

2

33

S2

z2

z3, z5, z1

z0, z2

4

31

S3

z3

z5, z1

z0, z2, z3

21

42

S4

z5

z1, z3

z0, z2, z5

16

37

S5

z1

z5, z3

z0, z2, z1

6

31

S6

z5

z3

z0, z2, z1, z5

16

31

S7

z3

z5, z4

z0, z2, z1, z3

11

31

S8

z3

z4

z0, z2, z1, z5, z3

21

31

S9

z4

z6

z0, z2, z1, z5, z3, z4

29

31

Окончательно дерево решений в соответствии с таблицей 2.4 имеет вид:

31 eд.

33 eд.

31 eд.

42 eд.

37 eд.

31 eд.

31 eд.

31 eд.

31 eд.

Рис. 2.8 – Дерево решений (последовательность проведения проверок)

Таким образом оптимальному процессу проведения проверок соответствует следующая стратегия прохождения модулей и их порядков проведения z1, z2, z5, z3, z4. При этом общее время контроля составит Tk = 31 ед.