Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Дискретные задачи оптимизации в экономике, планировании и управлении. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
935 Кб
Скачать

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

Еще более ограничить множество траекторий, в котором производится поиск оптимальной траектории, позволяет следующее «угловое» свойство: если границей i и (i + 1)-го участков оптимальной траектории служит угловая точка R k–го препятствия, то последнее (в соответствующий момент времени) целиком находится внутри угла (не большего 180°) между i-м и (i + 1)-м участками траектории.

Рис. 6.1. Допустимые и недопустимые по «угловому

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

Возможные участки траектории, соединяющие угловые точки препятствий, образуют граф. Однако не имеет смысла перебирать всевозможные препятствия вне зависимости от их расположения относительно траектории, ведущей в конечную точку. Сужение множества рассматриваемых препятствий обосновывается следующим тривиальным утверждением: если трасса P* является оптимальной по отношению к множеству препятствий J и не пересекает ни одного из препятствий из множества J1, то она является также оптимальной по отношению к множеству препятствий J J1.

Справедливость утверждения вытекает из того, что, во первых, оптимальная по отношению к множеству препятствий J J1 является

61

допустимой по отношению к множеству препятствий J и поэтому не может доставлять меньшее значение целевой функции, чем P* и, во вторых, P* является допустимой по отношению к множеству препят-

ствий J J1.

Алгоритм построения оптимальной трассы состоит в следующем. Начальная вершина дерева решений соответствует начальной точке, концевые вершины соответствуют конечной точке, прочие – угловым точкам препятствий. Каждая (v-я) вершина определяет участок допустимой трассы от начала до соответствующей точки (и набор вершин Pred(v), через которые она проходит, в том числе непосредственно предшествующую вершину pred(v)) и последующий участок PT(v) – прямую траекторию до конечной точки. Для каждой вершины определяется оценка cv – значение целевого показателя, т.е. длины результирующей трассы. Если в дереве решений имеются концевые вершины, минимальное значение целевого показателя по

всем ним называется рекордом R.

Вершина считается «непросмотренной», если прямой участок трассы из нее до конечной точки не проверялся на допустимость, т.е. на отсутствие пересечений с запретными областями. Просмотренные вершины либо сразу порождают концевую вершину (прямой участок допустим), либо определяют множество Jv запретных областей, которые должна обойти последующая часть трассы. Его подмножество Jv1, состоящее из препятствий, трассы в обход которых из данной вершины уже построены, первоначально пусто. Состояние вершины bv может быть 0 («непросмотренная»), 1 («в состоянии просмотра»), 2 («концевая») или 3 («отработанная»).

В качестве корня дерева решений берется вершина, соответствующая начальной точке, как «непросмотренная» с пустыми множеством Jv. Примем условие, что R = M, где M – число, которое заведомо больше искомого оптимального значения.

Очередная итерация состоит в следующем.

Определяем множество испытуемых вершин I – непросмотренных или с bv = 1, для которых остались непостроенные исходящие участки возможных трасс (Jv ≠ Jv1). Если I пусто или минимальное значение cv на I больше R, выполнение алгоритма заканчивается (концевые вершины с cv = R дают искомые оптимальные трассы). Иначе находим и испытываем вершину с наилучшей оценкой cv, что формально записывается как

62

w = arg min {cv|v I}.

Если bw = 0, проверяем отсутствие пересечений PT(w) с запретными областями. Если их нет, полагаем bw = 3 и вводим конечную точку PT(w) в дерево решений как дочернюю по отношению к w вершину z с bz = 2. Если же cz < R, заменяем значение R на cz. На этом заканчиваем очередную итерацию.

В противном случае полагаем bw = 1, определяем номер k запретной области, первое пересечение которой с PT(w) лежит ближе всего к w, полагаем Jw = {k}, Jw1 = и для всех v Pred(w), для которых cv ≠ 3 и k Jv, полагаем Jv = Jv {k}. Иначе говоря, расширяем набор испытуемых в отношении их обхода препятствий для всех предшествующих w вершин добавлением вновь выявленного препятствия – k-й запретной области.

Далее с вершиной w выполняем следующие вычисления, пока

Jw ≠ Jw1:

1. Выбираем минимальное k Jw\Jw1, добавляем k к Jw1. Находим прямые трассы до всех угловых точек области Ok, берем те из них, для которых трассы PT(w,{k,l}) не пересекаются с внутренностью Ok. Из множества отобранных угловых точек L выбираем крайние l1 (и возможно, l2), т.е. такие, для которых одна из соседних вершин не принадлежит L, и притом не совпадающие с pred(w) (заметим, что если pred(w) является угловой точкой Ok, то крайняя угловая точка единственная и притом смежная с ней). Затем определяем и проверяем прямые трассы до этих крайних точек. Потенциальные вершины, соответствующие концам каждой из этих трасс, вводятся в дерево решений, если проходят следующую проверку.

2. Если трасса пересекла какую-то запретную область, выбирается та, пересечение с которой лежит ближе всего к w. Для v = w и всех v Pred(w), для которых cv ≠ 3, эту запретную область добавляем к Jv, если k Jv, а иначе исключаем из Jv1. Иначе говоря, если для конца прямой трассы выполнено угловое свойство и ее оценка не больше R, выполняем следующую проверку. Если новая вершина – первая, соответствующая своей области, также добавляем эту точку в дерево решений как дочернюю по отношению к w вершину z с bz = 0, Jz = .

При выполнении алгоритма значение R монотонно убывает от + ∞ до Rfin и затем до окончания остается постоянным. При этом набор препятствий, в обход которых были построены все рассмотренные

63

трассы, постепенно расширяется до Jfin, Убедимся, что концевая вершина vfin, дающая значение Rfin, и определяет быстрейшую траекторию.

Во-первых, трасса, определяемая последовательностью вершин от корня дерева до vfin, является допустимой.

Во-вторых, все прочие трассы обхода набора препятствий Jfin были испытаны. Согласно условиям шага 2, если они не были достроены до конца, то по причине того, что давали трассы с длиной, которая заведомо больше Rfin. Таким образом, полученная трасса – оптимальная траектория обхода набора препятствий Jfin. А так как она не пересекает и других препятствий, то это является оптимальным решением поставленной задачи.

Применение алгоритма (рис. 6.2) иллюстрирует построение трассы в обход трех запретных областей. Номера ветвей дерева решений на стрелках в кружках одновременно являются номерами вершин, соответствующих концам прямых траекторий. Вершины появляются в дереве в порядке их нумерации, корню дерева даем номер 0.

70

 

 

 

 

 

 

 

60

 

 

 

 

 

 

 

50

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

6

 

 

 

40

 

 

 

 

 

 

 

30

 

 

 

 

 

 

 

 

1

 

 

 

3

 

 

20

 

 

3

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

10

2

 

4

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

10

20

30

40

50

60

70

80

Рис. 6.2. Задача определения оптимальной трассы обхода трех областей

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

64

ход него – 0–1 и 0–2. Для всех трех вершин наборы препятствий Jv1. Jv1 состоят из одного (первого) препятствия.

Путь через вершину 2 имеет лучшую оценку. Поэтому пытаемся найти участок из вершины 2 до T. Однако прямой путь до T пересекает препятствие 3. По правилам алгоритма мы не только находим пути в обход него (что дает вершины 3 и 4), но и добавляем 3-е препятствие к J0, в результате чего порождается вершина 5, дочерняя нулевой. Она соответствует той же угловой точке препятствия, что и вершина 4, но путь 0–5 короче, чем 0–2, 2–4. Поэтому далее вершина 4 отбрасывается как бесперспективная.

6.2. Применение метода ветвей и границ для поиска кратчайшей траектории на геометрическом графе

Достоинства описанного метода проявлялись в том, что:

1.Искомый путь строился без перебора всех угловых точек, через которые он мог бы пройти;

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

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

1.Вершины графа характеризуются координатами на плоскости;

2.Длины ребер близки к расстояниям между началом и концом ребра.

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

Основные идеи метода состоят в следующем:

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

65

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

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

Рассмотрим построение кратчайшего пути между вершинами 1 и 7 в ранее рассчитанном примере (рис. 6.3). Как мы видим, вершины 3, 5 и 11 остались не затронутыми расчетом, хотя они и находятся ближе к начальной вершине, чем 7-я.

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

2

3

4

6

1

8

9

10

 

 

Координаты

Вершины

 

 

дерева

 

 

 

узлов

 

 

 

 

 

решений

 

 

 

 

 

 

 

j

X

Y

v

cv

5

 

1

1

4

1

7.07

 

2

1

9

2

13.06

 

 

 

 

3

5

9

4

8.61

 

 

4

5

7

8

7.16

 

 

5

6,5

7

9

8.09

 

7

6

5

5

6

8.00

 

7

8

5

10

9.41

 

 

 

 

8

5

4

7

8.00

 

 

9

3

2,5

 

 

 

 

10

5

2,5

 

 

 

 

11

5

1

 

 

11

Рис. 6.3. Граф с выделенным деревом решений

66

Для оценки близости между двумя вершинами графа не всегда уместно использовать расстояние между соответствующими им точками плоскости. Например, если дорожная сеть состоит из двух систем параллельных улиц, ориентированных в двух взаимно перпендикулярных направлениях, с которыми можно связать оси координат, то естественная оценка расстояния так и называется – «расстояние городских кварталов» (city block distance) и выражается как |x1-x2| + |y1-y2|.

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

Вопросы и упражнения

1. Применительно к задаче, решение которой показано на рис. 6.2, объясните: а) В каком состоянии (bv) находятся вершины 1 и 4 в момент окончания выполнения алгоритма? б) Почему у вершины 1 нет дочерних вершин?

2. Определить кратчайший путь из точки с координатами (0,0) в точку с координатами (10,10) в обход трех квадратов, координаты центров которых и длина стороны равны соответственно; 1) 4, 3, 4; 2) 3, 8, 4; 3) 8, 7, 2. Определить ту же задачу как задачу о кратчайшем пути на графе возможных маршрутов, ребра которого – стороны квадратов и отрезки, соединяющие вершины разных квадратов, а также начальная и конечная точки, которые не пересекают внутренности квадратов. Какое количество ребер будет в получившемся графе? Оценить трудоемкость 1) определения графа возможных маршрутов, учитывая, что каждое потенциальное ребро должно быть проверено на отсутствие пересечений со сторонами квадратов; 2) решения задачи методом Дейкстры (с использованием потенциалов вершин).

3. Установлено, что для рассмотренной в разделе 5.4 задачи о кратчайшем пути между вершинами 15 и 22 метод ветвей и границ приводит к вычислению длин маршрутов для тех же вершин и в том же порядке, что и вариант метода Дейкстры, использующий потенциалы вершин. Объясните причину этого явления и постройте дерево решений.

67

4.Для геометрического графа, определенном в упражнении 4 раздела 2, определить методом ветвей и границ кратчайший путь между двумя вершинами, у первой из которых сумма координат минимальна, а у второй – максимальна.

5.Определяя любым возможным способом кратчайшее расстояние по земной поверхности между городами, найти методом ветвей и границ кратчайший маршрут между указанными городами для дорожной сети, данной в табл. 5.12,.

Варианты: 1) Из Тулы в Ригу; 2) Из Ростова н/Д в Ригу 3) Из Таллина в Харьков; 4) Из Одессы в Таллин; 5) Из Львова в СПб; 6) Из Тулы в Варшаву.

Представить дерево решений. Возможный вариант для определения расстояния – обратиться к сервису http://dateandtime.info/ru/ distance.php либо http://onregistrator.ru/rasstoyanie или вычислить по широте и долготе двух городов по формулам сферической геометрии.

68

7. ОПТИМИЗАЦИЯ ДИСКРЕТНОГО РАСПРЕДЕЛЕНИЯ РЕСУРСОВ ПРИ ПЛАНИРОВАНИИ И ВЫПОЛНЕНИИ ПРОЕКТА

7.1. Многовариантность постановки задачи сетевого планирования

Сидят папаши. Каждый хитр: Землю попашет, Попишет стихи

В. Маяковский

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

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

Шутливый эпиграф наводит на мысль, что одни и те же «папаши» (работники) могут выполнять разные работы. И, более того, неодно-

69

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

Продолжительность работы, если она может выполняться с разной интенсивностью, зависит от количества привлеченных для ее выполнения ресурсов-мощностей (оборудования и работников). Только если с работой связано определенное оборудование (проходческий щит для тоннеля, например), можно говорить об определенной, ни от чего не зависящей ее продолжительности. Классическая задача сетевого планирования предполагает, следовательно, предварительное назначение определенных мощностей на каждую работу и определенное распределение мощностей между параллельно выполняемыми однотипными работами. Например, разделение каменщиков между различными одновременно возводимыми сооружениями. Однако мы не можем заранее, до расчета сетевого графика, знать, какие работы окажутся одновременными. К чему это приведет? Одно здание уже возведено, но высвободившихся каменщиков по плану некуда пристроить. Можно бы их перекинуть на второе, но оно не требует такого количества рабочих рук, да и кирпича может не хватить. Отсюда мы видим, что сетевое планирование в традиционной форме обходит основные организационные трудности. На практике это означает, что распределение ресурсов и последовательность работ, зависимых только по ресурсам, приходится выполнять вручную, проверяя ее результаты путем решения соответствующей задачи сетевого планирования. И так много раз, без уверенности в получении качественного плана.

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

70

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]