Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Обслуж. центры.doc
Скачиваний:
2
Добавлен:
07.09.2019
Размер:
163.33 Кб
Скачать

Для неориентированной дуги центр находится в вершине, абсолютный центр – в любой точке дуги.

Решим вначале задачу о поиске центра.

Алгоритм поиска центра

1. Алгоритмом Флойда найдем матрицу d расстояний между всеми парами вершин:

1

2

3

4

5

6

Max

1

0

6

8

12

9

7

12

2

6

0

2

6

3

8

8

3

8

2

0

4

5

9

9

4

12

6

4

0

9

5

12

5

9

3

5

9

0

5

9

6

7

8

9

5

5

0

9

2. Выпишем справа от матрицы наибольшие расстояния в соответствующей строке – это расстояние до наиболее удаленной вершины, если полиция находится в вершине, соответствующей номеру строки. Например, число 12 в первой строке – расстояние до наиболее удаленной вершины при условии, что полиция находится в вершине 1.

3. Найдем в столбце Max наименьшее. Это число 8, которое соответствует расстоянию до наиболее удаленного объекта при условии, что центр находится в вершине 2.

Итак, центр соответствует номеру строки матрицы D с минимальным значением максимального элемента.

Попробуем улучшить этот результат, располагая полицейский участок на ребрах сети. Рассмотрим ребро i-j и некоторую удаленную от него вершину k. Если расположить участок r в x км от i, то расстояние от r от до произвольной вершины k равно

Drik=x+ Dik через вершину i и

Drjk=Dij – x + DDik через вершину j (рис.4).

D[j,k]

D[i,k]

A[i,j]

Рис. 4

Из двух возможных маршрутов выбираем минимальный, следовательно,

k, i-j=min(x+ Dik, Dij – x + Dik).

Так как x0 и Dij – x 0, то min(Dik, Dik) заведомо не превосходит k, i-j и может считаться нижней оценкой целевой функции при условии, что полицейский участок расположен на ребре i-j. Посчитав нижние оценки по всем ребрам получаем следующие значения:

Ребро

1-2

1-6

2-3

2-5

3-4

4-6

5-6

Расстояние до самой удаленной вершины

7

8

8

6

8

7

7

Ребра 1-6, 2-3 и 3-4 можно сразу отбросить, так как при размещении участка на этих ребрах значение целевой функции 8. Попробуем разместить участок на ребре 2-5, имеющем минимальную оценку.

Для этого воспользуемся графическим алгоритмом Хакими.

Подсчитаем расстояния от центра r, находящегося на дуге i-j до всех вершин k. Как уже было показано, k, i-j =min(x+ Dik, Dij – x + Dijk), где k, i-j - расстояние от центра до вершины k. Для вершины k=1 получаем:

1, 2-5 =min(x+ D21, D25 – x + D51)= min(x+6, 12 – x)

Т ак как ребро 2-5 имеет вес, равный 3, то x может изменяться в пределах от 0 до 3. На всей области изменения x верно, что x+6<12 – x (рис.5).

Рис.5

Поэтому 1, 2-5 = x+6.

Аналогично получаем расстояния до остальных вершин.

2, 2-5 = x. D´3, 2-5 = x+2. D´4, 2-5 = x+6. D´5, 2-5 = 3-x. D´6, 2-5 = 8-x.

Изобразим графически полученные зависимости (рис. 6).

Рис.6

Мы ищем расстояние до самой удаленной вершины, поэтому берем верхнюю огибающую, соответствующую графикам расстояния до вершин 1 и 6.

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

Получаем, что расстояние до самой удаленной вершины равно 7 при условии расположения центра на дуге 2-5 на расстоянии 1 от вершины 2. Так как нижние оценки для остальных ребер 7, данное расположение является оптимальным.

Рассмотрим алгоритм поиска абсолютного центра, основанный на алгоритме Хакими, но предназначенный для машинной обработки. Введем некоторые обозначения.

Обозначим r вершину – центр, x – расстояние абсолютного центра от от i – граничной точки дуги i-j , minmax – расстояние абсолютного центра от наиболее удаленной вершины.

Будем производить перебор всех дуг графа и для каждой дуги i-j вычислять два расстояния:

MaxI – расстояние между вершинами i и k1, максимально удаленной от точки дуги, совпадающей с вершиной i;

MaxJ – расстояние между вершинами j и k2, максимально удаленной от точки дуги, совпадающей с вершиной j; где k1, k2i, j.