Решение. Найдём все варианты маршрутов из 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 нашелся бы более короткий маршрут. Поэтому нахождение маршрутов должно выполняться до тех пор, пока маршрут до искомого пункта не окажется самым коротким из тех, которые не были выбраны и запомнены ранее.