Задания
Версия для печати и копирования в MS Word
Тип Д1 № 7750
i

Между населёнными пунк­та­ми A, B, C, D, E, F, G по­стро­е­ны до­ро­ги, про­тяжённость ко­то­рых при­ве­де­на в таб­ли­це. От­сут­ствие числа в таб­ли­це озна­ча­ет, что пря­мой до­ро­ги между пунк­та­ми нет.

ABCDEFG
A26
B253
C518
D63197
E95
F77
G857

Опре­де­ли­те длину крат­чай­ше­го пути между пунк­та­ми A и G. Пе­ре­дви­гать­ся можно толь­ко по ука­зан­ным до­ро­гам.

Спрятать решение

Ре­ше­ние.

Найдём все ва­ри­ан­ты марш­ру­тов из A в G и вы­бе­рем самый ко­рот­кий.

 

A−B−C−D−E−G. Длина марш­ру­та 22.

 

A−B−C−D−F−G. Длина марш­ру­та 22.

 

A−B−C−G. Длина марш­ру­та 15.

 

A−B−D−E−G. Длина марш­ру­та 19.

 

A−B−D−F−G. Длина марш­ру­та 19.

 

A−D−B−C−G. Длина марш­ру­та 22.

 

A−D−C−G. Длина марш­ру­та 15.

 

A−D−F−G. Длина марш­ру­та 20.

 

A−D−E−G. Длина марш­ру­та 20.

 

A−B−D−С−G. Длина марш­ру­та 14.

 

Крат­чай­ший путь равен 14.

 

Ответ: 14.

 

При­ве­дем дру­гое ре­ше­ние.

Будем по­сле­до­ва­тель­но на­хо­дить длину са­мо­го ко­рот­ко­го марш­ру­та до каж­до­го из пунк­тов и вы­би­рать тот пункт, крат­чай­ший марш­рут до ко­то­ро­го будет самым ко­рот­ким, до тех пор, пока вы­бран­ным не ока­жет­ся ко­неч­ный пункт G. Ре­зуль­та­ты будем за­пи­сы­вать в таб­ли­цу. За­ме­тим, что при ре­ше­нии на бу­ма­ге не нужно будет каж­дый раз пе­ре­ри­со­вы­вать таб­ли­цу, до­ста­точ­но будет за­чер­ки­вать ста­рую длину марш­ру­та и за­ме­нять ее новой при не­об­хо­ди­мо­сти. Такое ре­ше­ние не тре­бу­ет пе­ре­бо­ра всех воз­мож­ных путей.

 

Най­дем длину марш­ру­та до каж­до­го из пунк­тов при дви­же­нии не­по­сред­ствен­но из пунк­та А и вы­бе­рем пункт с самым ко­рот­ким марш­ру­том:

пункт длина марш­ру­та
A 0 (ис­ход­ный пункт)
B 2 км, путь А−В
C нет до­ро­ги
D 6 км, путь А−D
Е нет до­ро­ги
F нет до­ро­ги
G нет до­ро­ги

Бли­жай­шим к А пунк­том яв­ля­ет­ся пункт В, длина марш­ру­та до него до него 2 км, путь А−В. За­пом­ним этот марш­рут.

 

Най­дем длину марш­ру­та до каж­до­го пунк­та при дви­же­нии из пунк­та В, для этого сло­жим длину марш­ру­та до пунк­та В и длину пути из В до за­дан­но­го пунк­та. При этом, если длина марш­ру­та до за­дан­но­го пунк­та ока­жет­ся ко­ро­че, чем ранее най­ден­ная, то ранее най­ден­ную длину за­ме­ним на эту более ко­рот­кую. Вы­бе­рем пункт с самым ко­рот­ким (после В) марш­ру­том:

 

пункт ста­рая длина новая длина ре­зуль­тат
A 0 (ис­ход­ный пункт)
B 2 км, путь А−В
C нет до­ро­ги 2 + 5 = 7, путь А−В−С 7 км, путь А−В−С
D 6 км, путь А−D 2 + 3 = 5, путь А−В−D 5 км, путь А−В−D
Е нет до­ро­ги нет до­ро­ги нет до­ро­ги
F нет до­ро­ги нет до­ро­ги нет до­ро­ги
G нет до­ро­ги нет до­ро­ги нет до­ро­ги

Пункт с самым ко­рот­ким (после В) марш­ру­том  — это D, путь А-В-D дли­ной 5 км, за­пом­ним его.

 

Най­дем длину марш­ру­та до каж­до­го пунк­та при дви­же­нии из пунк­та D, для этого сло­жим длину марш­ру­та до пунк­та D и длину пути из D до за­дан­но­го пунк­та. При этом, если длина марш­ру­та до за­дан­но­го пунк­та ока­жет­ся ко­ро­че, чем ранее най­ден­ная, то ранее най­ден­ную длину за­ме­ним на эту более ко­рот­кую. Вы­бе­рем пункт с самым ко­рот­ким (после D) марш­ру­том:

пункт ста­рая длина новая длина ре­зуль­тат
A 0 (ис­ход­ный пункт)
B 2 км, путь А−В
C 7 км, путь А−В−С 5 + 1 = 6, путь А−В−D−C 6 км, путь А−В−D−C
D 5 км, путь А−В−D
Е нет до­ро­ги 5 + 9 = 14, путь А−В−D−E 14 км, путь А−В−D−E
F нет до­ро­ги 5 + 7 = 12, путь А−В−D−F 12 км, путь А−В−D−F
G нет до­ро­ги нет до­ро­ги нет до­ро­ги

Пункт с самым ко­рот­ким (после D) марш­ру­том  — это C, путь А-В-D-C дли­ной 6 км, за­пом­ним его.

 

Най­дем длину марш­ру­та до каж­до­го пунк­та при дви­же­нии из пунк­та С, для этого сло­жим длину марш­ру­та до пунк­та С и длину пути из С до за­дан­но­го пунк­та. При этом, если длина марш­ру­та до за­дан­но­го пунк­та ока­жет­ся ко­ро­че, чем ранее най­ден­ная, то ранее най­ден­ную длину за­ме­ним на эту более ко­рот­кую. Вы­бе­рем пункт с самым ко­рот­ким (после С) марш­ру­том:

пункт ста­рая длина новая длина ре­зуль­тат
A 0 (ис­ход­ный пункт)
B 2 км, путь А−В
C 6 км, путь А−В−D−C
D 5 км, путь А−В−D
Е 14 км, путь А−В−D−E нет до­ро­ги 14 км, путь А−В−D−E
F 12 км, путь А−В−D−F нет до­ро­ги 12 км, путь А−В−D−F
G нет до­ро­ги 6 + 8 = 14, путь A−B−D−C−G 14 км, путь A−B−D−C−G

Пункт с самым ко­рот­ким (после C) марш­ру­том  — это F, путь А-В-D-F дли­ной 12 км, за­пом­ним его.

 

Най­дем длину марш­ру­та до каж­до­го пунк­та при дви­же­нии из пунк­та F, для этого сло­жим длину марш­ру­та до пунк­та F и длину пути из F до за­дан­но­го пунк­та. При этом, если длина марш­ру­та до за­дан­но­го пунк­та ока­жет­ся ко­ро­че, чем ранее най­ден­ная, то ранее най­ден­ную длину за­ме­ним на эту более ко­рот­кую. Вы­бе­рем пункт с самым ко­рот­ким (после F) марш­ру­том:

пункт ста­рая длина новая длина ре­зуль­тат
A 0 (ис­ход­ный пункт)
B 2 км, путь А−В
C 6 км, путь А−В−D−C
D 5 км, путь А−В−D
Е 14 км, путь А−В−D−E нет до­ро­ги 14 км, путь А−В−D−E
F 12 км, путь А−В−D−F
G 14 км, путь A−B−D−C−G 12 + 7 = 19, путь А−В−D−F−G 14 км, путь A−B−D−C−G

Пунк­ты с самым ко­рот­ким (после F) марш­ру­том  — это E и G.

Сле­до­ва­тель­но, самый ко­рот­кий марш­рут до пунк­та G со­став­ля­ет 14 км.

 

За­ме­тим, что длина марш­ру­та до пунк­та G, рав­ная 14 км, была най­де­на на одном из преды­ду­щих шагов, при рас­смот­ре­нии дви­же­ния из пунк­та С. Но при этом имел­ся пункт, марш­рут до ко­то­ро­го был ко­ро­че (пункт F). Если бы из F в G была до­ро­га про­тя­жен­но­стью 1 км, то до пунк­та G на­шел­ся бы более ко­рот­кий марш­рут. По­это­му на­хож­де­ние марш­ру­тов долж­но вы­пол­нять­ся до тех пор, пока марш­рут до ис­ко­мо­го пунк­та не ока­жет­ся самым ко­рот­ким из тех, ко­то­рые не были вы­бра­ны и за­пом­не­ны ранее.

Раздел кодификатора ФИПИ: 1.3.1 Опи­са­ние ре­аль­но­го объ­ек­та и про­цес­са