![](/user_photo/_userpic.png)
книги из ГПНТБ / Голенко Д.И. Статистические модели в управлении производством
.pdfперестановок. Следовательно, чтобы обеспечить равно
мерную |
|
выборку |
|
перестановок |
|
из |
^-окрестности |
ЗТо, |
||||||||||
можно |
применить |
следующий |
поэтапный |
алгоритм. |
||||||||||||||
Этап |
1. |
|
Делим |
отрезок |
(0,1) |
на |
R |
частей |
в отно |
|||||||||
шении |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
H j - l |
|
|
ПІ): |
Я 4 |
- 2 |
|
|
|
2 |
|
|
|
|
1 |
|
|
|
|
2 |
|
(г, |
2 |
(г, п і ) : - : |
2 |
|
{г,п{)- |
|
2 |
(г,пх), |
|
|||||||
Г=1 |
|
|
|
Г=1 |
|
|
|
Г=1 |
|
|
|
Г=г1 |
|
|
||||
|
|
|
|
где |
ПІ = П— |
1 |
и |
Ri = R. |
|
|
|
|
|
|||||
Этап |
2. |
|
После |
того |
как |
отрезок |
|
(0,1) |
разделен |
на |
||||||||
R частей, |
генерируем |
go — случайную |
|
величину, |
равно |
|||||||||||||
мерно |
распределенную |
на |
(0,1). |
Если |
| 0 |
попадает |
на |
|||||||||||
1-й интервал отрезка |
(0,1), |
то |
полагаем |
aj = г—1. |
|
|||||||||||||
Этап |
3. |
Полагая на |
этапе |
1 Rj+i |
= Rj—ctj, п^\ |
= п^—-1 |
||||||||||||
( 1 < / < п — 1 ) |
и повторив этапы |
1 и |
2, |
получим ctj+i. |
|
|||||||||||||
Этап |
4. |
Построив |
полностью |
индекс |
(аь аг,..., |
an-i), |
||||||||||||
находим |
по |
нему |
соответствующую |
|
перестановку. |
|
||||||||||||
Проведенные |
на |
ЭВМ |
исследования |
показали, |
что |
эффективность поиска существенно зависит от свойств
метрики |
и, в частности, от возможностей ее для |
более |
||||||
глубокой |
детализации структуры |
исследуемого |
про |
|||||
странства. |
|
|
|
|
|
|
|
|
Так, |
например, |
при |
организации |
статистического |
||||
поиска с |
помощью |
цепной |
и |
лексикографической |
мет |
|||
рик для |
задачи |
календарного |
планирования |
mXnXl |
||||
(I — количество |
операций |
каждой |
детали) количество |
|||||
недействительных |
планов |
на |
один |
действительный |
оказалось в цепной ме.трике в 5—б раз больше, чем в
лексикографической |
метрике, при одних |
и |
тех |
же |
|
^-окрестностях (расчеты проводились для |
R = 3). |
Это |
|||
указывает на |
то, что эффективность поиска |
с приме |
|||
нением лексикографической метрики в 5—6 |
раз |
боль |
|||
ше, чем при |
цепной |
метрике. Перечисленные |
ранее |
преимущества инверсной метрики по сравнению с цеп
ной |
и |
лексикографической |
позволяют ожидать боль |
|||
шую |
эффективность последней. |
|
||||
Поиск |
с пересчетом |
вероятностных |
характеристик. |
|||
Метод |
направленного |
случайного поиска, |
связанный с |
|||
пересчетом |
вероятностных |
характеристик |
случайного |
расписания, может быть предложен для решения сле
дующей задачи |
календарного планирования. Имеется |
m одинаковых |
станков, на которых нужно обработать |
два типа деталей, причем число деталей каждого типа
равно |
tij |
(/=1,2). Каждая деталь должна |
пройти об |
||||
работку |
на одном станке и только один раз. Требует |
||||||
ся найти |
оптимальное расписание. Эта |
задача |
матема |
||||
тически |
сводится к следующей. |
|
|
|
|||
В |
п= |
(п, + я2 )-мерном |
пространстве |
задано |
множе |
||
ство |
точек |
с булевыми |
переменными, |
т. |
е. |
D = { X } , |
|
где Х={х\...хп), |
ХІ = 0 или 1 означает, |
что |
на |
освобо |
дившийся станок запускается деталь 1-го или, соответ ственно, 2-го типа. Тогда вектор X однозначно опреде
ляет |
некоторое |
расписание |
запуска |
деталей. |
|
|
||||||||||
|
На множестве |
D |
задана |
некоторая |
функция |
К(Х)— |
||||||||||
значение цикла. Тогда алгоритм решения |
задачи |
мож |
||||||||||||||
но |
представить |
в |
следующем |
виде. |
|
|
|
|
|
|
||||||
|
1. |
Задаем |
некоторое |
чисто |
^о- |
|
|
|
|
|
|
|||||
|
2. Выбираем |
за |
v-e |
расписание |
Xv= |
(xvu |
xv2,..., |
|||||||||
xvn) |
|
такое, что |
|
К(Х»)>і0. |
|
|
|
|
|
|
|
|
|
|||
где |
3. |
Вычислим |
pv |
= X |
Я ( Г ) - ; „ |
|
д ^ о , |
|
|
|
||||||
К выбирается |
из |
условий |
улучшения |
сходимости. |
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
— |
|
|
|
|
|
|
4. |
Моделируем |
случайный вектор |
| v |
+ ! =( |
|
|
), |
||||||||
для |
которого |
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
+1_ |
| |
х{* |
с |
вероятностью |
1 —pv |
• |
|
|
|
|||||
|
|
t |
\ |
l—Xiv |
с |
-вероятностью |
p v |
|
|
|
|
|||||
|
Реализацию |
£ v + 1 |
обозначим |
через |
Xv+1 |
|
|
|
||||||||
|
5. Вычислим K(Xv+]) |
и сравним с до |
|
|
|
|
||||||||||
вели K(Xv+l)>f0, |
|
то |
переходим |
к |
п. |
2. |
|
|
|
|
||||||
|
.6. Запоминаем |
Xv+X; уменьшаем |
t0 |
так, |
чтобы |
|||||||||||
io^K(lv+l) |
и переходим |
к |
п. 4 |
|
|
|
|
|
|
|
||||||
|
Признаком |
окончания |
процедуры |
является |
v>N, |
|||||||||||
где |
N задано, |
и за оптимальное |
принимаем |
расписание |
||||||||||||
Xv+l. |
|
Процесс |
моделирования |
|
Xv,v=l,...,N |
|
|
можно |
||||||||
представить |
как |
случайное |
блуждание |
в |
области |
D, |
||||||||||
отвечающее |
некоторой |
марковской |
цепи. |
Состояния |
||||||||||||
X, |
для которых |
K(X)^t0, |
|
являются |
поглощающими. |
|||||||||||
Известно, что |
вероятность |
попадания |
из |
любого |
со |
стояния конечной неприводимой марковской цепи в поглощающее состояние равна единице,
Рассмотренный метод применялся для решения за
дачи |
со |
следующими |
исходными данными [2,9]. |
|
||||||
т = 7, |
« 1 |
= 115, |
я 2 = 20, % = 3. |
|
исследовалось |
|||||
На |
ЭВМ |
«БЭСМ-ЗМ» за минуту |
||||||||
около |
60 |
расписаний. |
Цикл, |
соответствующий |
наилуч |
|||||
шему |
расписанию, |
составил |
/( = 720 |
час. Ранее |
за ме |
|||||
сяц |
(К —717 |
час.) |
на |
т = 7 выполнялось |
число |
деталей |
||||
П ! = 93 |
и |
п2 |
= 20. |
|
|
|
|
|
|
|
|
|
|
§ 2. 6. Вероятностные методы решения |
|
||||||
|
|
|
одномаршрутных задач очередности |
|
||||||
|
|
|
|
с прямоугольной матрицей |
|
|
||||
Выше, в |
§ 2.2 |
настоящей |
главы, |
мы |
уже отмечали, |
что под задачей очередности в теории расписаний по нимается следующая проблема. Имеются т различных станков, на которых необходимо обработать п различ
ных деталей. |
Деталь |
di(i= |
1,2,..., п) характеризуется |
ВеКТОрОМ di— |
(til, ti2, |
. . . ,tim) |
, ГДЄ t{j — ВреМЯ обработ- |
ки ї'-й детали на /-м станке. Необходимо найти такой порядок обработки деталей, при котором время завер
шения |
обработки последней |
детали |
достигает |
миниму |
|
ма при условии, что последовательность |
обработки де |
||||
талей |
на всех станках одна |
и та же |
и |
каждая |
опера |
ция не может быть начата ранее, чем завершится пред шествующая операция данной детали и станок освобо дится от обработки предыдущей детали.
Для задач очередности определенного объема пре
имущество |
некоторого |
метода |
оптимизации проявляет |
ся в том, |
что либо этот |
метод |
за фиксированное время |
дает лучшее решение, нежели остальные, либо эквива лентное решение получается за меньшее время.
Эффективность |
статистических |
методов |
оптимизации, |
|||
как правило, сравнивают |
с чисто случайным поиском |
|||||
(метод Монте-Карло), который |
в |
этом |
случае |
стал |
||
эталоном. |
|
|
|
|
|
|
Можно распространить эту методику на все пред |
||||||
лагаемые методы |
решения |
задачи |
очередности. |
Если |
||
эффективность метода Монте-Карло принять за |
едини |
|||||
цу, то эффективность какого-нибудь |
другого |
метода |
||||
можно считать равной 9 |
единицам; |
эквивалентные |
решения той же ЭВМ могут быть получены во втором случае за время (в среднем) в в раз меньшее, чем в
первом. Величина в показывает, что рассматриваемый метод при реализации на одной ЭВМ за определенное машинное время дает тот же результат, что и в парал лельно работающих ЭВМ, на которых задача решает ся слепым поиском. Поскольку эффективность методов, как правило, зависит от объема задачи, то для срав
нения |
различных |
методов |
поиска и выбора одного |
из |
||
них для решения |
каждой |
конкретной |
задачи |
очеред |
||
ности |
необходимо |
строить |
зависимость |
в = /(7п, |
п), |
ко |
торая |
является полной характеристикой эффективно |
|||||
сти метода. |
|
|
|
|
|
|
В |
предыдущих |
параграфах данной |
главы |
описан |
комплекс статистических методов, которые были реа лизованы на различных ЭВМ. Дальнейшее развитие и углубление этих методов, по всей вероятности, следует искать на пути более полного использования конкрет ных характеристик данной задачи, т. е. на пути своего
рода |
«гибридизации» |
детерминированных |
и |
статисти |
|||||
ческих методов. |
|
|
|
|
|
|
|
||
Ниже строятся алгоритмы последовательного улуч |
|||||||||
шения |
плана |
(порядка |
обработки |
деталей), |
сочетаю |
||||
щие случайный выбор |
последовательности |
с |
анализом |
||||||
вариантов ее |
«исправления». |
|
|
|
|
||||
Рассмотрим формальную постановку задачи очеред |
|||||||||
ности |
на матричной математической модели. Для |
||||||||
этого |
введем |
определения: |
|
|
|
|
|||
Путем на произвольной |
матрице |
\\йм\\ (І= |
1, 2, ... , m, |
||||||
k = \, |
2 , . . . , n) |
называется |
сумма (m + n |
1) |
слагаемых, |
||||
составленных таким образом, что первое |
слагаемое |
||||||||
равно |
ап, последнее |
атп |
|
и любые |
два |
—рядом |
втоящих |
слагаемых расположены либо в одной строке, либо в одном столбце матрицы. Другими словами, путь обра
зует сумма |
элементов |
матрицы, |
|
расположенных |
по |
|||||||
«лестнице», |
ведущей из |
ап |
в |
атп. |
|
|
|
|
||||
|
Критическим |
путем |
F(\\aik\\) |
на |
матрице ||а,-ь|| назы |
|||||||
вается путь, который |
не |
меньше |
любого другого |
пути |
||||||||
на |
данной |
матрице, а |
слагаемые |
этого |
пути |
называют |
||||||
ся |
критическими |
элементами. |
|
|
|
|
|
|
||||
|
Рассмотрим множество Q, состоящее из п! матриц, |
|||||||||||
образованных |
из исходной |
матрицы |
||аг -й || путем |
про |
||||||||
извольной |
перестановки |
столбцов. |
Каждый |
элемент |
||||||||
этого множества Цая || может быть |
однозначно охарак |
|||||||||||
теризован |
перестановкой |
|
n—{iu-k, |
•••,*«)>. |
указываю- |
щей порядок |
следования |
столбцов исходной матрицы, |
|
т. е. |
|
|
|
|
O l t j > |
ali2 |
>•••> aUn |
|
^ 2 І ! , |
# 2 t 2 |
>•••> а 2 і „ |
а" |
= |
|
|
Решением задачи очередности является такая пере становка я*, что
/•(||a"*||)=minF(||a«||).
Пая и e Q
В дальнейшем предполагается, что исходная мат рица \\аш}\ фиксирована, и для обозначения какогонибудь пути на матрице \\аік\\ употребляется запись /л, а для обозначения конкретного пути, соответствую
щего |
некоторой |
последовательности |
а-элементов на |
||
||ая || запись fa{n). |
Вместо ^(Ца1 1 !!) |
для простоты будем |
|||
использовать символ F(jt) либо |
(если |
не |
возникнет |
||
двусмысленности) |
просто F. |
|
|
|
|
Чтобы продемонстрировать удобство введенных по |
|||||
нятий, |
покажем |
оптимальность алгоритма |
Джонсона |
||
для задач очередности с матрицей |
2Хп. |
|
|||
Оптимальность |
алгоритма Джонсона. |
Не |
уменьшая |
||
общности, можно |
считать столбцы матрицы |
2 Х п пе |
|||
ренумерованными |
так, что последовательность |
1,2, . . . , , п |
определяет порядок, указанный Джонсоном. Непосред
ственно |
из алгоритма |
следует, что всегда |
найдется та |
||||||||
кое |
k(l^k^.n— |
последний |
невычеркнутый столбец), |
||||||||
что |
|
|
|
|
|
|
|
|
|
|
|
і аіа^а^; |
|
а1а^а2а'< |
|
« і р ^ й з р , |
если |
a<fi<k |
(2.6.1) |
||||
I а 2 а ^ а 2 р ; a2a^ala; |
а 2 р ^ а Ц } , |
е с л и |
a > P > f e - |
|
|||||||
Пусть |
критическим |
путем |
|
последовательности |
|||||||
1, 2 , . . . , |
п является |
|
|
|
|
|
|
|
|
||
|
|
|
F = S аи+ |
2 |
a2i |
|
|
|
|
(2.6.2) |
|
|
|
|
1=1 |
|
l=z |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Чтобы доказать оптимальность исходной последо |
|||||||||||
вательности, |
достаточно |
показать, |
что |
|
произвольная |
||||||
последовательность столбцов i\, i2,..., |
t n |
содержит |
путь |
||||||||
}~^F. |
С этой |
целью |
рассмотрим |
отдельно |
случаи |
z = k |
|||||
z>k, |
z<k. |
|
|
|
|
|
|
|
|
|
При |
z = k |
определяем |
|
для |
|
последовательности |
|||||||||||
г'ь к,...,in |
|
такую |
величину |
у, |
что |
iy = k, и, |
|
используя |
|||||||||
(2.6.1) |
и |
(2.6.2), |
немедленно |
получаем |
|
|
|
|
|
||||||||
|
|
|
fy= |
V |
|
|
п |
ац |
>F. |
|
|
|
|
|
|
||
|
|
|
2 а« |
|
+ |
2 |
|
|
|
|
(2.6.3) |
||||||
При |
|
|
|
j=l |
|
j = Y |
|
|
|
|
|
1,2, |
|||||
|
|
выделяем |
|
из |
последовательности |
||||||||||||
множество |
|
Q=(t, |
t + l, |
t+2,...,t |
|
+ m), |
где |
|
|
|
|
||||||
|
, |
|
( k, |
если |
|
a2k^aik |
|
|
|
|
|
|
|
|
|
||
|
|
|
( « + 1 , |
если |
a2ft>aift |
|
|
|
|
|
iy |
|
|
||||
Далее |
определяем |
величину |
у |
так, |
чтобы |
|
явля |
||||||||||
лось последним |
элементом |
|
из |
множества |
|
Q в |
ряду |
||||||||||
h, Ї2,--.,іп. |
|
Из (2.6.1) и (2.6.2) следует, что для опре |
|||||||||||||||
деленной таким образом у неравенство (2.6.3) |
всегда |
||||||||||||||||
выполняется. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
При |
z<k |
множество |
Q |
определяем |
так, |
что |
|
|
|||||||||
|
t = z |
и t + m = |
|
k, |
если |
|
aih<a2k |
|
|
|
|
||||||
|
k—l, |
|
если |
|
aik>a2k, |
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
а у является индексом |
|
первого |
в |
ряду i\, i2,..., |
i n |
эле |
|||||||||||
мента из Q. Нетрудно определить, |
что и в этом |
случае |
|||||||||||||||
(2.6.3) |
также имеет |
место. |
Из |
рассмотрения |
|
этих |
|||||||||||
случаев |
делаем |
заключение, |
что |
алгоритм |
Джонсона |
||||||||||||
определяет |
|
оптимальную последовательность |
|
столбцов |
|||||||||||||
для матриц |
2 Х « . |
|
|
|
|
|
|
|
|
|
|
т, |
п ~>2, |
||||
Для |
задаче |
матрицами |
Ца^-Цтп, имеющими |
|
|||||||||||||
в настоящее время неизвестен практически |
|
реализуе |
|||||||||||||||
мый метод |
|
нахождения |
оптимальной |
последовательно |
сти столбцов, а описанные в литературе подходы сво дятся к отысканию последовательностей, близких к оп тимальным.
Опираясь на введенные понятия, рассмотрим кри тическую последовательность элементов. Пусть задана
произвольная |
перестановка |
я = |
i2,..., |
|
in) и |
соответ |
||||||
ствующая |
ей |
матрица |
||ал |]. |
Используя |
алгоритм |
Фор |
||||||
да |
[2.26], |
определим F(n) |
и |
выпишем |
критическую |
по |
||||||
следовательность элементов |
(если |
критических |
после |
|||||||||
довательностей |
несколько, |
|
то выбираем |
любую |
из |
|||||||
них). В указанной последовательности |
отметим номе |
|||||||||||
ра |
столбцов, |
которые |
встречаются |
более |
одного |
раза |
||||||
(т. |
е. столбцы, |
содержащие |
более чем |
один |
элемент |
|||||||
из |
критической |
последовательности). |
|
|
|
|
Перестановка я разбивается помеченными элемен тами на ряд упорядоченных подмножеств, которые в дальнейшем будем называть блоками, а элементы,
разделяющие |
блоки, назовем |
критическими |
столбца |
|||
ми. Матрица, состоящая из т строк, содержит |
не бо |
|||||
лее т—1 критических столбцов |
и не |
более т |
блоков. |
|||
В качестве примера найдем критические столбцы и |
||||||
блоки для матрицы |
4X10, у |
которой |
критический путь |
|||
F(n) =аН1+ан2 |
+ а2г2+ |
а2із |
+ а2 г4 |
+ а2г 5 +. |
|
|
+ а2г „ + а щ |
+ аіів |
+ аи 7 + a4i |
8 + an 9 + ан 1 0 • |
(2.6.4) |
Критическими столбцами в этой последовательности будут к и к, а тремя образовавшимися при разбиении блоками являются
|
|
|
|
Б\ = |
(tj), |
Б2 |
= |
(к, |
i\, к), |
|
|
|
|
|
||
|
|
|
|
|
£ 3 = |
(к, is, к, ijo). |
|
|
|
|
|
|
||||
Для критической последовательности элементов до |
||||||||||||||||
казаны |
следующие |
теоремы |
[2.12]. |
|
|
|
|
|
|
|||||||
Теорема |
|
1. |
Для любой |
последовательности |
яі, по |
|||||||||||
лученной из я путем перестановки |
|
элементов внутри |
||||||||||||||
блоков |
при |
условии, |
что |
порядок |
следования |
самих |
||||||||||
блоков |
и |
критических |
столбцов |
не |
меняется, |
|
напри |
|||||||||
мер, для |
(2.6.4) яі=(г'ь |
к, |
іІ, |
к, |
к, |
к, |
к, ho, к, |
к) |
име |
|||||||
ет место неравенство |
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
F(n)^F(m). |
|
|
|
|
|
|
|
(2.6.5) |
|||
Данное предложение объясняет эффективность «цеп |
||||||||||||||||
ного метода» [2.13], в котором при каждой |
новой реа |
|||||||||||||||
лизации |
исходная |
последовательность |
перемешивается |
|||||||||||||
так, что перемещения элементов внутри |
блоков |
прак |
||||||||||||||
тически |
исключены. |
|
|
|
|
|
|
|
|
|
|
|
||||
В качестве |
следствия теоремы |
1 |
можно |
получить |
||||||||||||
следующий |
интересный |
результат. |
|
|
|
|
|
|
||||||||
Теорема |
|
2. |
Пусть |
задана |
случайная |
|
перестановка |
|||||||||
я—(t'i, i2,. |
•. ,к,. |
• • ,in), |
где k, з |
свою |
очередь, |
выбрано |
||||||||||
случайно |
(т. е. P{k — j/\^j^n} |
|
|
= — |
) . Обозначим че |
|||||||||||
рез я* |
перестановку, |
которая |
получена |
из я |
транспо |
|||||||||||
зицией |
элемента ih с элементом |
к+х |
либо |
с к-х, |
если |
|||||||||||
таковые |
существуют, |
т. е. |
|
|
|
|
|
|
|
|
|
|||||
|
Я * = |
(i\ |
к,---, |
ih-U |
h+x, |
ih+i<"''h+x~U |
|
iki |
|
|
|
Ік+х+і,'" |
An) |
' |
либо
Я* — (t'l, І2,'">Ік-х-1, 'ft' ik-x+i,"', |
|
ih-U ih-x, 6t+l>"' ' г 'п) • |
|
||||||
Тогда |
для любой |
матрицы, |
у которой п^ат, |
име |
|||||
ет место |
неравенство |
|
|
|
|
|
|
||
|
|
P{F{n*)<F(n)}< |
|
*** |
• |
|
(2.6.6) |
||
Например, |
для |
матрицы |
10x100 |
транспозиция |
|||||
двух |
случайно |
выбранных |
рядом |
стоящих столбцов |
|||||
может улучшить исходный результат в |
среднем |
менее |
|||||||
чем один |
раз на пять испытаний. |
|
|
|
|||||
Из |
описания |
процедуры |
разбиения |
последователь |
|||||
ности |
на |
блоки |
ясно, |
что любому пути |
на фиксирован |
ной матрице можно поставить в соответствие опреде ленную последовательность блоков и критических столбцов. Чтобы это соответствие было взаимно-одно значным, необходимо каждый блок, кроме перечня входящих в него столбцов, снабдить указателем номе ра строки, определяющей эти столбцы. Так как последо вательность номеров строк а ь а2,..., аь. возрастает, то конкретный блок определяется значением щ. Имеет мес то теорема 3.
|
Теорема |
3. |
Пусть критическому |
пути |
на |
матрице |
|||||
||ая || соответствует такая |
последовательность |
блоков, |
|||||||||
что элементы iu |
и iv принадлежат блокам, определяемым |
||||||||||
аи |
и av- Если перестановка |
Яі получена |
из я транспози |
||||||||
цией элементов l ' u и iv, то |
|
|
|
|
|
|
|||||
|
F(ni)<F(n) |
= > a a t i U - a a |
u i v |
+ао |
|
|
|
||||
|
|
|
|
|
-аа |
. |
> 0 |
а,,г„ |
|
(2.6.7) |
|
|
|
|
|
|
|
|
|
||||
(А=>В |
обозначает, что из |
А |
следует |
В). |
|
||||||
|
Из |
(2.6.5) и |
(2.6.7) |
следует, |
что |
последовательность |
|||||
Яі |
может |
оказаться лучше, |
чем я, только |
в том случае, |
|||||||
если элементы |
\ и и і„ расположены |
в разных блоках и |
|||||||||
|
|
|
.. |
—а„ . |
+ а |
. |
а |
. > 0 . |
|
||
|
|
|
а аиги |
au\v |
а « Ь |
— «V» |
|
|
|
V
Используя эти выводы для отсеивания неперспектив ных вариантов, построим алгоритм приближенного реше ния задачи очередности, сочетающий случайный выбор исходной перестановки и анализ полученной при этом критической последовательности с целью определения элементов, транспозиция которых с наибольшей вероят ностью приведет к улучшению плана.
Алгоритм поиска. Функции алгоритма заключаются
в отборе некоторой части случайных перестановок й улуч шении каждой из них. Для этого исследуемая переста новка разбивается на блоки, которые затем анализиру ются путем попарного сравнения. Первый блок последо вательно сравнивается со вторым, третьим и т. д. до по следнего блока, и, если при этом ни на каком шаге не об
наруживается лучший вариант, то далее второй |
блок |
|
сравнивается последовательно с каждым |
из следующих |
|
за ним блоков и т. д., пока не произойдет |
сравнение |
пред |
последнего блока. Этот процесс прерывается либо тогда,
когда обнаружена лучшая перестановка, |
которая затем |
в таком же порядке анализируется, либо |
после оконча |
ния просмотра всех блоков. При описании алгоритма принцип выбора случайной перестановки из п элементов, а также способ определения критического пути и крити ческой последовательности элементов (алгоритм Форда) считаются известными.
|
Фигурирующие в описании специальные ячейки памя |
|||||||
ти |
имеют следующие условные обозначения: |
|
|
|||||
|
М-—массив, содержащий элементы исходной матри |
|||||||
цы |
lloijll; |
|
|
|
|
|
|
|
|
у0 — ячейка, |
в которой хранится величина F— про |
||||||
межуточное значение критического пути; |
|
|
|
|||||
|
у\ — рабочее |
поле перестановки, с помощью которой |
||||||
была получена величина F; |
|
|
|
|
|
|||
|
У2 — ячейка, |
содержащая |
значение |
Fy —наимень |
||||
шую из достигнутых величин критического пути; |
|
|
||||||
|
уз —• поле, сохраняющее перестановку, на которой |
по |
||||||
лучено значение Fy ^; |
|
|
|
|
|
|||
|
Y4 — ячейка, |
отведенная для счета количества проана |
||||||
лизированных вариантов (случайных |
перестановок); |
|
||||||
|
Y5 — ячейка, в которую заносится |
величина К — коли |
||||||
чество блоков в перестановке из у и |
|
|
|
|
||||
|
уе — ячейка, |
сохраняющая |
величину |
і — номер |
пер |
|||
вого сравниваемого блока; |
|
|
|
|
|
|||
|
У7 — ячейка, |
сохраняющая |
величину |
/ — номер |
вто |
|||
рого сравниваемого блока; |
|
|
|
|
|
|||
|
Y8 — ячейка, |
сохраняющая |
номера |
переставляемых |
||||
столбцов. |
|
|
|
|
|
|
|
|
|
Действия операторов заключаются в следующем: |
|
||||||
|
Л[ — записывает |
в М исходную матрицу \\а^\\, |
в ячей |
|||||
ку |
у2 заносит число, |
которое |
заведомо |
больше |
любого |
пути на llaijll;
|
Ф2 — формирует случайную перестановку п= |
t2 , |
..., |
|||||||||
i7l), |
которая и засылается |
с признаком |
нуль в |
уи |
|
|
||||||
М |
Л 3 |
— по перестановке |
я |
из |
YI и |
исходной |
матрице |
из |
||||
определяет |
критический |
путь F(n) |
(прямой ход алго |
|||||||||
ритма Форда). Величина F посылается в YO; |
|
|
|
|
||||||||
|
РА — проверяет условие |
F<.F^ |
(т. е. F |
сравнивается |
||||||||
с содержимым |
ячейки у2). |
Если F<F-i2, |
то |
управление |
||||||||
передается оператору As, |
при |
F^F^—оператору |
|
Ре; |
||||||||
|
А5 |
— величину F засылает |
в ячейку |
Y2, а |
последова |
|||||||
тельность я — в рабочее .поле уз; |
|
|
|
|
|
|
||||||
|
Лз |
сравнивает признак перестановки |
из Yi с |
едини |
цей. Если признак равен единице (это означает, что за |
|||
писанная— |
в yi перестановка получена транспозицией), то |
||
передает |
управление Ра, если же признак |
равен нулю |
|
(т. е. перестановка является случайной), то — |
Pf, |
||
Р 7 — проверяет условие F — Fy.2>6, |
где |
б — наперед |
заданное число. Случайная перестановка я выбирается для анализа только в том случае, если соответствующий ей критический путь попал в 6 — окрестность наилучшего из достигнутых результатов. Чем больше б, тем больший удельный вес в алгоритме приобретают элементы анали
за; при |
6 = 0 алгоритм практически мало |
отличается |
от |
||
слепого |
поиска; при F — Fy2^.6 |
управление передается |
|||
Рі2, в противном случае Ф2 ; |
|
|
|
|
|
Р 8 — проверяет условие F<Fyo. |
Если |
F<Fy0 |
( F 7 |
q — |
число из ячейки YO), то, следовательно, в результате тран спозиции первоначальная перестановка улучшилась и управление передается Ад, если же i 7 > F Y ; ) , то Аю;
Ад — величину F записывает в ячейку Yo;
Л10 — по данным из ячейки YS восстанавливает-пред шествующую перестановку я и посылает в YIДругими словами, в перестановке из yi производится транспозиция
элементов, указанных |
в ув", |
||
ет |
— |
1) определяет |
критическую последовательность |
Аи |
|
элементов (обратный ход алгоритма Форда) и формиру
блоки; 2) в ячейку ys записывает величину |
К — коли |
||||||||
чество |
блоков; 3) |
в ячейку |
Y6 и Y7 записывает |
единицы; |
|||||
Pi2 |
— проверяет условие j<K, |
|
где величина / — содер |
||||||
жимое |
ячейки у7, |
а К — ячейки |
|
у5. Е С Л И |
j<.K, |
то управ |
|||
ление |
передается |
на А ] 4 , |
в |
противном |
случае — на Pi 3 ; |
||||
Л з |
проверят |
условие |
i<cK |
|
|
1, где |
і — содержимое |
||
ячейки—ув, а К — ячейки ys- |
Если условие выполнено, то |
||||||||
|
— |
|
|
|