| Шаг | X0
| X1 | X2 | X3 | X4 | X5 | Xt |
| 0 | 0 |
|
|
|
|
|
|
| 1 | 7
| 2 |
|
|
|
| |
| 2 | 5 | 7 |
|
|
| ||
| 3 | 6 | 10 |
| 15 | |||
| 4 | 9 | 13 | 15 | ||||
| 5 | 12 | 11 |
Квадратами выделены окончательные метки. Путь перемещения от
к
отмечен в таблице ломаной кривой через вершины
и его длина равна 11 (рис.3).

Рис.3. Представление найденного пути на графе примера
Далее приводится алгоритм для создания компьютерной программы поиска пути на графе.
For
do
Begin
Mark[x] = FALSE;
Dist[x] =
;
End;
y = x0;
Mark[x0] = TRUE;
Dist[x0] = 0;
While not Mark[xt] do
Begin
For
do
If not Mark[x] and Dist[x]>Dist[y]+W[y,xt] then
Begin
Dist[x]=Dist[y]+w[y,x];
Prev[x]=y;
End;
{Поиск новой вершины
с минимальной временной меткой}
Dist[y] = min(Dist[x]); {
and Mark[x]=FALSE}
Mark[y] = TRUE;
End.
В приведенном алгоритме граф представляется матрицей весов W. Вектор Mark[x] меток вершин устанавливает принадлежность вершины
постоянной (TRUE) или временной (FALSE) метке. Вектор Dist в алгоритме фиксирует текущие значения вершин. Вектор Prev позволяет восстановить в обратной последовательности вершины найденного пути. Prev[x] указывает на вершину с окончательной меткой, ближайшую к вершине x. Последовательность вершин найденного пути будет иметь следующий вид: xt, Prev[xt], Prev[Prev[xt]], Prev[Prev[Prev[xt]]], …, x0, а значение Dist[xt] составит длину пути из x0 d xt. Очередная новая вершина, претендующая на постоянную метку, обозначается через y.
ВАРИАНТЫ ЗАДАНИЙ
Задания к лабораторной работе состоят из двух частей.
1. Определение оптимального плана действий для игры в восемь - задача №1.
2. Нахождение пути в графе пространства состояний - задача №2.
Данные к выполнению заданий сгруппированы в таблицах (табл. 3, 4).
Таблица 3
Исходные данные для решения задачи №1
| № варианта | Начальная ситуация | № варианта | Начальная ситуация | ||||||||||||||||||
| 1 |
| 6 |
| ||||||||||||||||||
| 2 |
| 7 |
| ||||||||||||||||||
| 3 |
| 8 |
| ||||||||||||||||||
| 4 |
| 9 |
| ||||||||||||||||||
| 5 |
| 10 |
|
Таблица 4
X0
7






