Решение задачи теста для написания и отладки программы - Решение задач методами динамического программирования, нахождение кратчайшего пути

Шаг 1: исходному узлу присваивается метка [0;-], полагаем i=1.

Шаг 2: вычисляются временные метки [ +, i] для всех узлов, которые можно достичь непосредственно из узла 1(i) и которое не имеет постоянных меток.

Рис. 2

Таблица 2

Узел

Метка

Статус метки

1

[0;-]

Постоянная

2

[2;1]

Временная

5

[6;1]

Временная

6

[8;1]

Временная

9

[7;1]

Временная

Среди узлов 2, 5, 6, и 9 наименьшее значение расстояния имеет узел 2, поэтому статус узла меняется на постоянный.

Рис. 3

Таблица 3

Узел

Метка

Статус метки

1

[0;-]

Постоянная

2

[2;1]

Постоянная

5

[6;1]

Временная

6

[8;1]

Временная

9

[7;1]

Временная

3

[8;2]

Временная

7

[13;2]

Временная

Среди узлов 3, 5, 6,7 и 9 наименьшее значение расстояния имеет узел 5, поэтому статус узла меняется на постоянный.

Шаг 3: если узел j уже имеет метку j[k], полученную из другого узла k и если +<, тогда метка меняется на новую.

Рис. 4

Просматриваются все узлы, достижимые из узла 5.

Таблица 4

Узел

Метка

Статус метки

1

[0;-]

Постоянная

2

[2;1]

Постоянная

5

[6;1]

Постоянная

6

[8;1][9;5]

Временная

9

[7;1]

Временная

3

[8;2]

Временная

7

[13;2]

Временная

10

[11;5]

Временная

Среди узлов 3, 6,7,10 и 9 наименьшее значение расстояния имеет узел 9, поэтому статус узла меняется на постоянный.

Рис. 5

Таблица 5

Узел

Метка

Статус метки

1

[0;-]

Постоянная

2

[2;1]

Постоянная

5

[6;1]

Постоянная

6

[8;1]

Временная

9

[7;1]

Постоянная

3

[8;2]

Временная

7

[13;2]

Временная

10

[11;5][11;9]

Временная

8

[16;9]

Временная

Среди узлов 3, 6,7,10 и 8 наименьшее значение расстояния имеет узел 6, поэтому статус узла меняется на постоянный.

Рис. 6

Таблица 6

Узел

Метка

Статус метки

1

[0;-]

Постоянная

2

[2;1]

Постоянная

5

[6;1]

Постоянная

6

[8;1]

Постоянная

9

[7;1]

Постоянная

3

[8;2]

Временная

7

[13;2]

Временная

10

[11;5]

Временная

8

[16;9][15;6]

Временная

Среди узлов 3,7,10 и 8 наименьшее значение расстояния имеет узел 3, поэтому статус узла меняется на постоянный.

Рис. 7

Таблица 7

Узел

Метка

Статус метки

1

[0;-]

Постоянная

2

[2;1]

Постоянная

5

[6;1]

Постоянная

6

[8;1]

Постоянная

9

[7;1]

Постоянная

3

[8;2]

Постоянная

7

[13;2]

Временная

10

[11;5]

Временная

8

[15;6]

Временная

4

[11;3]

Временная

Среди узлов 4,7,10 и 8 наименьшее значение расстояния имеет узел 10, поэтому статус узла меняется на постоянный.

Рис. 8

Таблица 8

Узел

Метка

Статус метки

1

[0;-]

Постоянная

2

[2;1]

Постоянная

5

[6;1]

Постоянная

6

[8;1]

Постоянная

9

[7;1]

Постоянная

3

[8;2]

Постоянная

7

[13;2]

Временная

10

[11;5]

Постоянная

8

[15;6]

Временная

4

[11;3]

Временная

Среди узлов 4,7, и 8 наименьшее значение расстояния имеет узел 4, поэтому статус узла меняется на постоянный.

Рис. 9

Таблица 9

Узел

Метка

Статус метки

1

[0;-]

Постоянная

2

[2;1]

Постоянная

5

[6;1]

Постоянная

6

[8;1]

Постоянная

9

[7;1]

Постоянная

3

[8;2]

Постоянная

7

[13;2]

Временная

10

[11;5]

Постоянная

8

[15;6]

Временная

4

[11;3]

Постоянная

Среди узлов 7, и 8 наименьшее значение расстояния имеет узел 7, поэтому статус узла меняется на постоянный.

Рис. 10

Таблица 10

Узел

Метка

Статус метки

1

[0;-]

Постоянная

2

[2;1]

Постоянная

5

[6;1]

Постоянная

6

[8;1]

Постоянная

9

[7;1]

Постоянная

3

[8;2]

Постоянная

7

[13;2]

Постоянная

10

[11;5]

Постоянная

8

[15;6]

Временная

4

[11;3]

Постоянная

Узел 8 меняет свой статус на постоянный.

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

Рис. 11

Таблица 11

Узел

Метка

Статус метки

1

[0;-]

Постоянная

2

[2;1]

Постоянная

5

[6;1]

Постоянная

6

[8;1]

Постоянная

9

[7;1]

Постоянная

3

[8;2]

Постоянная

7

[13;2]

Постоянная

10

[11;5]

Постоянная

8

[15;6]

Постоянная

4

[11;3]

Постоянная

Так как все узлы имеют статус "постоянная", то процесс вычисления закончен.

Похожие статьи




Решение задачи теста для написания и отладки программы - Решение задач методами динамического программирования, нахождение кратчайшего пути

Предыдущая | Следующая